Benchmark kode punya rahasia kotor: untuk menilai model, Anda harus menjalankan apa yang ditulisnya. Eksekusi pass@k atas beberapa ratus soal dengan sepuluh solusi masing-masing berarti ribuan program yang baru saja dibuat — dan Anda tidak akan pernah menjalankan curl | bash untuk satu pun dari mereka jika datang dari orang asing.
Kebanyakan orang memulai di laptop dengan subprocess.run dan timeout. Itu berhasil sampai sebuah solusi menulis file 40 GB, membuat proses terus-menerus sampai mesin macet, atau diam-diam membaca direktori home Anda. Solusinya bukan timeout yang lebih pintar. Solusinya adalah menjalankan solusi-solusi itu di tempat yang tidak Anda pedulikan.
Penyiapan yang berhasil
Sandbox adalah microVM Firecracker dengan Python 3.12, Node.js 22, dan bash, menyala dalam sekitar satu detik dan dihapus saat Anda selesai. Internet keluar berfungsi, masuk tidak, dan tidak ada milik Anda di dalamnya.
Jebakannya adalah memperlakukan sandbox seperti pemanggilan fungsi. Masing-masing ditagih minimal 60 detik dan butuh satu detik untuk menyala, jadi satu sandbox per solusi itu lambat dan boros. Sebaliknya, taruh harness di dalamnya:
from eqvps import Sandbox
with Sandbox.create(tariff="standard", ttl=4 * 3600) as sb:
sb.upload("/root/harness.py", open("harness.py").read())
sb.upload("/root/samples.jsonl", open("slice_03.jsonl").read())
task = sb.exec("python3 /root/harness.py /root/samples.jsonl > /root/results.jsonl",
background=True)
task.wait(poll_interval=10)
results = sb.download_text("/root/results.jsonl")
Di dalamnya, harness.py menjalankan setiap solusi di subproses dengan timeout singkatnya sendiri dan mencatat pass, fail, atau timeout. Solusi yang berulah hanya mematikan subprosesnya sendiri, bukan seluruh eksekusi. Jika sebuah solusi berhasil merusak sandbox itu sendiri, Anda kehilangan satu potongan, membuat ulang sandbox, dan melanjutkan.
File maksimal 5 MB per transfer, jadi bagi dataset besar menjadi potongan — hal yang memang Anda inginkan untuk paralelisme.
Throughput, dengan jujur
Satu akun bisa memegang hingga 20 sandbox, tetapi 2 perintah dieksekusi bersamaan. Tugas latar belakang dihitung selama ia berjalan. Jadi evaluasi yang cepat berbentuk dua sandbox yang masing-masing menggiling potongannya di latar belakang, bukan dua puluh sandbox yang berebut dua slot.
Untuk benchmark kode pada umumnya, itu lebih dari cukup: sebagian besar solusi selesai dalam kurang dari satu detik, dan satu sandbox bisa mengerjakan ribuan per jam. Jika Anda perlu mengevaluasi banyak model sekaligus terhadap suite yang sangat besar, Anda akan menabrak plafon. Pada titik itu, VPS dengan isolasi Anda sendiri adalah alat yang lebih baik.
Aturan CPU yang perlu Anda ketahui
Sandbox dibuat untuk beban kerja yang sifatnya lonjakan. Sandbox yang bertahan di atas 90% CPU selama lebih dari 15 menit dianggap penyalahgunaan — sandbox sementara akan dihentikan. Evaluasi normal, yang bergantian antara eksekusi cepat dan pencatatan hasil, tidak mendekati batas itu. Benchmark yang membakar CPU penuh berjam-jam (mengompilasi proyek besar per solusi, uji stres numerik) akan mendekatinya. Untuk itu, ambil VPS bulanan: tarif AI agent memberi 4 vCPU dan 4 GB seharga $10.
Berapa biaya satu eksekusi
Anda membayar per detik untuk vCPU dan RAM tarif, minimal 60 detik, dari saldo prabayar.
| Beban kerja | Tarif | Waktu | Perkiraan biaya |
|---|---|---|---|
| 1.000 solusi Python singkat | small (0.5 vCPU, 1 GB) | ~20 mnt | $0.011 |
| 5.000 solusi, numpy diizinkan | standard (1 vCPU, 2 GB) | ~2 jam | $0.13 |
| Build + tes per solusi | plus (2 vCPU, 4 GB) | ~3 jam | $0.40 |
Panggilan model yang menghasilkan solusi-solusi itu akan lebih mahal daripada eksekusinya — biasanya selisih satu orde besaran.
Kunci dan reprodusibilitas
Jika harness memanggil API model dari dalam sandbox — misalnya untuk penilaian gaya LLM-as-judge — berikan kunci sebagai variabel lingkungan sandbox. Nilainya disimpan terenkripsi, tidak pernah dicatat di log, dan API hanya mengembalikan nama variabel.
Untuk reprodusibilitas, kunci versi paket di harness Anda dan catat tarif sandbox bersama hasilnya. Setiap sandbox dimulai dari image bersih yang sama, sehingga variabel "di laptop saya jalan" hilang dari angka-angka Anda. Jujur saja, itu saja sudah sepadan untuk beralih.
Mulailah dari halaman sandbox dan dokumentasi sandbox. Akun baru mendapat $1 waktu sandbox — cukup untuk eksekusi evaluasi pertama berisi beberapa ribu solusi pada tarif small. Referensi SDK membahas tugas latar belakang dan transfer file, dan batas dan penagihan sandbox memuat tabel kuota lengkap.
Terkait: sandbox untuk agen AI dan tugas agen pertama Anda di sandbox.
Komentar
Belum ada komentar. Jadilah yang pertama.