Kod benchmark'larının utanılacak bir sırrı var: bir modeli puanlamak için yazdığı şeyi çalıştırmanız gerekir. Her biri on çözümlü birkaç yüz problem üzerinde bir pass@k koşusu, binlerce yeni üretilmiş program demektir — ve bunlardan tek birini bile bir yabancıdan gelse curl | bash ile çalıştırmazdınız.
Çoğu kişi dizüstü bilgisayarında bir subprocess.run ve bir zaman aşımıyla başlar. Bu, bir çözüm 40 GB'lık bir dosya yazana, makine kilitlenene kadar süreç çatallayana ya da sessizce ev dizininizi okuyana kadar işe yarar. Çözüm daha akıllı bir zaman aşımı değil. Çözümleri umursamadığınız bir yerde çalıştırmaktır.
İşe yarayan kurulum
Sandbox, Python 3.12, Node.js 22 ve bash içeren, yaklaşık bir saniyede açılan ve işiniz bittiğinde silinen bir Firecracker microVM'dir. Giden internet çalışır, gelen çalışmaz ve içinde size ait hiçbir şey yoktur.
Tuzak, sandbox'ı bir fonksiyon çağrısı gibi ele almaktır. Her biri en az 60 saniye faturalanır ve açılması bir saniye sürer; yani çözüm başına bir sandbox hem yavaş hem israftır. Bunun yerine harness'i içeri koyun:
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")
İçeride harness.py her çözümü kendi kısa zaman aşımına sahip bir alt süreçte çalıştırır ve pass, fail ya da timeout olarak kaydeder. Yaramazlık yapan bir çözüm koşuyu değil, kendi alt sürecini öldürür. Bir çözüm sandbox'ın kendisini bozmayı başarırsa bir dilim kaybedersiniz, sandbox'ı yeniden oluşturur ve devam edersiniz.
Dosyalar aktarım başına 5 MB'a kadardır; büyük veri kümelerini dilimlere bölün — paralellik için bunu zaten istersiniz.
Verim, dürüstçe
Bir hesap 20 sandbox'a kadar tutabilir, ama aynı anda 2 komut çalışır. Arka plan görevi çalıştığı sürece sayılır. Dolayısıyla hızlı bir değerlendirme, iki slot için kavga eden yirmi sandbox değil, her biri kendi dilimini arka planda öğüten iki sandbox gibi görünür.
Tipik kod benchmark'ları için bu fazlasıyla yeterli: çözümlerin çoğu bir saniyeden kısa sürede biter ve tek bir sandbox saatte binlercesini işler. Çok sayıda modeli aynı anda devasa bir pakete karşı değerlendirmeniz gerekiyorsa tavana çarparsınız. O noktada kendi izolasyonunuzu çalıştıran bir VPS daha iyi araçtır.
Bilmeniz gereken CPU kuralı
Sandbox'lar patlamalı iş yükleri için tasarlandı. 15 dakikadan uzun süre %90'ın üzerinde CPU kullanan bir sandbox kötüye kullanım sayılır — geçici sandbox durdurulur. Hızlı çalıştırmalarla sonuç kaydını dönüşümlü yapan normal değerlendirmeler buna yaklaşmaz bile. Saatlerce tam CPU yakan bir benchmark (her çözüm için büyük bir projeyi derlemek, sayısal stres testleri) yaklaşır. Bunun için aylık bir VPS alın: AI agent tarifesi $10'a 4 vCPU ve 4 GB sunar.
Bir koşunun maliyeti
Tarifenin vCPU ve RAM'i için saniye başına, en az 60 saniye, ön ödemeli bakiyeden ödersiniz.
| İş yükü | Tarife | Süre | Yaklaşık maliyet |
|---|---|---|---|
| 1.000 kısa Python çözümü | small (0.5 vCPU, 1 GB) | ~20 dk | $0.011 |
| 5.000 çözüm, numpy serbest | standard (1 vCPU, 2 GB) | ~2 sa | $0.13 |
| Çözüm başına derleme + test | plus (2 vCPU, 4 GB) | ~3 sa | $0.40 |
Bu çözümleri üreten model çağrıları, çalıştırmadan daha pahalıya gelir — genellikle bir mertebe daha fazla.
Anahtarlar ve tekrarlanabilirlik
Harness sandbox içinden bir model API'si çağırıyorsa — örneğin LLM-as-judge tarzı puanlama için — anahtarı sandbox ortam değişkeni olarak verin. Değerler şifreli saklanır, asla loglanmaz ve API yalnızca değişken adlarını döndürür.
Tekrarlanabilirlik için harness'inizde paket sürümlerini sabitleyin ve sonuçlarla birlikte sandbox tarifesini kaydedin. Her sandbox aynı temiz imajdan başlar; bu da "benim dizüstümde çalışıyordu" değişkenini rakamlarınızdan çıkarır. Açıkçası, sırf bunun için bile geçiş yapmaya değer.
Sandbox sayfası ve sandbox belgeleri ile başlayın. Yeni hesaplar $1 sandbox süresi alır — small tarifesinde birkaç bin çözümlük ilk değerlendirme koşusu için yeterli. SDK başvurusu arka plan görevlerini ve dosya aktarımlarını anlatır, sandbox sınırları ve faturalama ise tam kota tablosunu içerir.
İlgili: yapay zekâ ajanları için sandbox ve sandbox'ta ilk ajan göreviniz.
Yorumlar
Henüz yorum yok. İlk olun.