کوڈنگ بینچ مارکس کا ایک ناخوشگوار راز ہے: ماڈل کو نمبر دینے کے لیے آپ کو اس کا لکھا ہوا چلانا پڑتا ہے۔ چند سو سوالوں پر دس دس حلوں کے ساتھ pass@k کا رن یعنی ہزاروں تازہ بنے پروگرام — اور اگر وہ کسی اجنبی سے آتے تو آپ ان میں سے ایک کو بھی curl | bash نہ کرتے۔
زیادہ تر لوگ اپنے لیپ ٹاپ پر subprocess.run اور ایک ٹائم آؤٹ سے شروع کرتے ہیں۔ یہ تب تک چلتا ہے جب تک کوئی حل 40 GB کی فائل نہ لکھ دے، مشین رکنے تک پراسیس نہ بناتا رہے، یا خاموشی سے آپ کی ہوم ڈائریکٹری نہ پڑھ لے۔ حل کوئی زیادہ چالاک ٹائم آؤٹ نہیں۔ حل یہ ہے کہ حلوں کو ایسی جگہ چلایا جائے جس کی آپ کو پروا نہ ہو۔
وہ سیٹ اپ جو کام کرتا ہے
سینڈباکس ایک Firecracker microVM ہے جس میں Python 3.12، Node.js 22 اور bash ہیں، جو تقریباً ایک سیکنڈ میں شروع ہوتی ہے اور کام ختم ہونے پر حذف کر دی جاتی ہے۔ باہر جانے والا انٹرنیٹ کام کرتا ہے، اندر آنے والا نہیں، اور اندر آپ کا کچھ بھی نہیں ہوتا۔
جال یہ ہے کہ سینڈباکس کو فنکشن کال کی طرح سمجھا جائے۔ ہر سینڈباکس کا کم از کم 60 سیکنڈ کا بل بنتا ہے اور اسے شروع ہونے میں ایک سیکنڈ لگتا ہے، اس لیے ہر حل کے لیے ایک سینڈباکس سست بھی ہے اور فضول بھی۔ اس کے بجائے ہارنیس کو اندر رکھیں:
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")
اندر، فائل harness.py ہر حل کو ایک ذیلی پراسیس میں اس کے اپنے مختصر ٹائم آؤٹ کے ساتھ چلاتی ہے اور pass، fail یا timeout درج کرتی ہے۔ گڑبڑ کرنے والا حل صرف اپنے ذیلی پراسیس کو ختم کرتا ہے، پورے رن کو نہیں۔ اگر کوئی حل خود سینڈباکس کو بگاڑ دے تو آپ ایک حصہ کھوتے ہیں، سینڈباکس دوبارہ بناتے ہیں اور آگے بڑھتے ہیں۔
ہر منتقلی میں فائلیں 5 MB تک ہو سکتی ہیں، اس لیے بڑے ڈیٹا سیٹ کو حصوں میں بانٹیں — جو آپ متوازی چلانے کے لیے ویسے بھی چاہیں گے۔
تھروپٹ، ایمان داری سے
ایک اکاؤنٹ میں 20 سینڈباکس تک ہو سکتے ہیں، لیکن ایک وقت میں 2 کمانڈز چلتی ہیں۔ بیک گراؤنڈ ٹاسک جب تک چلتا ہے، گنا جاتا ہے۔ اس لیے تیز جانچ یوں دکھتی ہے: دو سینڈباکس، جن میں سے ہر ایک بیک گراؤنڈ میں اپنا حصہ نمٹا رہا ہے — نہ کہ بیس سینڈباکس جو دو جگہوں کے لیے لڑ رہے ہوں۔
عام کوڈنگ بینچ مارکس کے لیے یہ کافی سے زیادہ ہے: زیادہ تر حل ایک سیکنڈ سے کم میں مکمل ہو جاتے ہیں، اور ایک سینڈباکس ایک گھنٹے میں ہزاروں نمٹا دیتا ہے۔ اگر آپ کو ایک بہت بڑے سویٹ پر کئی ماڈلز کی بیک وقت جانچ کرنی ہے تو آپ چھت سے ٹکرائیں گے۔ اس وقت اپنی علیحدگی خود چلانے والا VPS بہتر اوزار ہے۔
CPU کا قاعدہ جو آپ کو معلوم ہونا چاہیے
سینڈباکس وقفے وقفے سے ہونے والے کام کے لیے بنے ہیں۔ جو سینڈباکس 15 منٹ سے زیادہ 90٪ سے اوپر CPU پر رہے، اسے غلط استعمال سمجھا جاتا ہے — عارضی سینڈباکس روک دیا جاتا ہے۔ عام جانچ، جو تیز رفتار عمل درآمد اور نتائج درج کرنے کے درمیان بدلتی رہتی ہے، اس کے قریب بھی نہیں پہنچتی۔ جو بینچ مارک گھنٹوں پورا CPU جلاتا ہے (ہر حل کے لیے بڑا پروجیکٹ کمپائل کرنا، عددی اسٹریس ٹیسٹ)، وہ پہنچے گا۔ اس کے لیے ماہانہ VPS لیں: AI agent ٹیرف 10 ڈالر میں 4 vCPU اور 4 GB دیتا ہے۔
ایک رن کی لاگت
آپ ٹیرف کے vCPU اور RAM کے لیے فی سیکنڈ ادائیگی کرتے ہیں، کم از کم 60 سیکنڈ، پیشگی ادا شدہ بیلنس سے۔
| کام کا بوجھ | ٹیرف | وقت | تخمینی لاگت |
|---|---|---|---|
| 1,000 مختصر Python حل | small (0.5 vCPU, 1 GB) | ~20 منٹ | $0.011 |
| 5,000 حل، numpy کی اجازت | standard (1 vCPU, 2 GB) | ~2 گھنٹے | $0.13 |
| ہر حل پر بلڈ + ٹیسٹ | plus (2 vCPU, 4 GB) | ~3 گھنٹے | $0.40 |
یہ حل بنانے والی ماڈل کالز عمل درآمد سے زیادہ مہنگی پڑیں گی — عام طور پر تقریباً دس گنا۔
کلیدیں اور نتائج کو دہرانے کی صلاحیت
اگر ہارنیس سینڈباکس کے اندر سے ماڈل کا API بلاتا ہے — مثلاً LLM-as-judge انداز کی جانچ کے لیے — تو کلید کو سینڈباکس کے ماحولیاتی متغیر کے طور پر دیں۔ قدریں خفیہ کر کے محفوظ کی جاتی ہیں، کبھی لاگ نہیں ہوتیں، اور API صرف متغیرات کے نام لوٹاتا ہے۔
نتائج دہرائے جا سکیں، اس کے لیے ہارنیس میں پیکیجز کے ورژن مقرر کر دیں اور نتائج کے ساتھ سینڈباکس کا ٹیرف درج کریں۔ ہر سینڈباکس ایک ہی صاف امیج سے شروع ہوتا ہے، جس سے آپ کے اعداد سے "میرے لیپ ٹاپ پر تو چل رہا تھا" والا عنصر ہٹ جاتا ہے۔ سچ پوچھیں تو صرف اسی کے لیے تبدیلی فائدہ مند ہے۔
سینڈباکس صفحہ اور سینڈباکس دستاویزات سے شروع کریں۔ نئے اکاؤنٹس کو 1 ڈالر کا سینڈباکس وقت ملتا ہے — small ٹیرف پر چند ہزار حلوں کی پہلی جانچ کے لیے کافی۔ SDK حوالہ بیک گراؤنڈ ٹاسک اور فائل منتقلی سمجھاتا ہے، اور سینڈباکس کی حدود اور بلنگ میں مکمل کوٹا جدول ہے۔
متعلقہ: AI ایجنٹس کے لیے سینڈباکس اور سینڈباکس میں ایجنٹ کا پہلا کام۔
تبصرے
ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔