−25%

yıllık Windows ödemesinde, 31 Ekim'e kadar. Paketlere git

EQVPS
Hemen başla

LLM değerlendirmesi için sandbox: modelin yazdığı 1.000 çözümü yaklaşık bir sente çalıştırın

Bir modeli programlama görevlerinde puanlamak, kimsenin elle yazmadığı binlerce programı çalıştırmak demektir. Bunları dizüstü bilgisayarınız yerine microVM üzerindeki tek kullanımlık sandbox'larda çalıştırın — saniye bazında faturalama, üstelik verim ve CPU sınırları hakkında dürüst bir notla.

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üTarifeSüreYaklaşık maliyet
1.000 kısa Python çözümüsmall (0.5 vCPU, 1 GB)~20 dk$0.011
5.000 çözüm, numpy serbeststandard (1 vCPU, 2 GB)~2 sa$0.13
Çözüm başına derleme + testplus (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.

Dağıtmaya hazır mısınız? Kripto ile ödeyin, KYC yok — yaklaşık bir dakikada çevrimiçi.

Dağıt →

SSS

Bir değerlendirmenin neden sandbox'a ihtiyacı var?

Çünkü bir modelin yazdığı binlerce programı çalıştırıyorsunuz. Çoğu zararsızdır, bazıları sonsuz döngüye girer, birkaçı dosya siler ya da ağ bağlantısı açar. İş istasyonunuzda bu verileriniz için bir risktir; sandbox'ta ise yalnızca başarısız bir çözümdür.

Her çözüm için bir sandbox mı oluşturmalıyım?

Genellikle hayır. Sandbox oluşturmak yaklaşık bir saniye sürer ve en az 60 saniye olarak faturalanır; yani çözüm başına bir sandbox ikisini de boşa harcar. Tek bir sandbox içinde, her biri kendi zaman aşımına sahip çok sayıda çözümü çalıştıran bir harness koşturun ve sandbox'ı modeller arasında ya da bir şey onu bozduğunda yeniden oluşturun.

Ne kadar hızlı gidebilirim?

Bir hesap, 20 sandbox'a kadar dağılmış olarak aynı anda en fazla 2 komut çalıştırır. Pratik desen, her birinde harness'inizin arka plan görevi olarak veri kümesinin bir dilimini işlediği birkaç sandbox'tır.

Uzun bir benchmark'ı saatlerce çalıştırabilir miyim?

Arka plan görevi olarak evet, sandbox'ın ömrü bitene kadar (geçici sandbox için 24 saat). Ancak CPU'su 15 dakikadan uzun süre tam yükte tutulan bir sandbox kötüye kullanım sayılır. Patlamalı değerlendirmeler sorun değil; saatlerce süren düzenli hesaplama bir VPS'in işidir.

Sandbox, modelimin API'sini çağırabilir mi?

Giden internet açık, yani evet. API anahtarını üretilen koda yapıştırmak yerine sandbox ortam değişkeni olarak verin — şifreli saklanır ve API tarafından asla geri döndürülmez.

Yorumlar

Henüz yorum yok. İlk olun.

Bir yorum bırakın

Yorumlar görünmeden önce denetlenir.