−25%

Windows کی سالانہ ادائیگی پر، 31 اکتوبر تک۔ پلانز دیکھیں

EQVPS
شروع کریں

LLM جانچ کے لیے سینڈباکس: ماڈل کے لکھے 1,000 حل تقریباً ایک سینٹ میں چلائیں

پروگرامنگ کاموں پر ماڈل کو نمبر دینے کا مطلب ہے ہزاروں ایسے پروگرام چلانا جو کسی نے ہاتھ سے نہیں لکھے۔ انہیں اپنے لیپ ٹاپ کے بجائے microVM پر بنے ایک بار استعمال ہونے والے سینڈباکس میں چلائیں — فی سیکنڈ بلنگ، ساتھ میں تھروپٹ اور CPU حدود پر ایمان دارانہ نوٹ۔

کوڈنگ بینچ مارکس کا ایک ناخوشگوار راز ہے: ماڈل کو نمبر دینے کے لیے آپ کو اس کا لکھا ہوا چلانا پڑتا ہے۔ چند سو سوالوں پر دس دس حلوں کے ساتھ 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 ایجنٹس کے لیے سینڈباکس اور سینڈباکس میں ایجنٹ کا پہلا کام۔

تعینات کے لیے تیار؟ کرپٹو میں ادائیگی کریں، بغیر KYC — تقریباً ایک منٹ میں لائیو۔

ابھی ڈیپلائے کریں →

عمومی سوالات

جانچ کو سینڈباکس کی ضرورت ہی کیوں ہے؟

کیونکہ آپ ماڈل کے لکھے ہزاروں پروگرام چلا رہے ہیں۔ زیادہ تر بے ضرر ہوتے ہیں، کچھ لامتناہی لوپ میں پھنس جاتے ہیں، اور چند فائلیں حذف کرتے ہیں یا نیٹ ورک کنکشن کھولتے ہیں۔ آپ کے ورک اسٹیشن پر یہ آپ کے ڈیٹا کے لیے خطرہ ہے؛ سینڈباکس میں یہ محض ایک ناکام حل ہے۔

کیا ہر حل کے لیے ایک سینڈباکس بناؤں؟

عام طور پر نہیں۔ سینڈباکس بنانے میں تقریباً ایک سیکنڈ لگتا ہے اور کم از کم 60 سیکنڈ کا بل بنتا ہے، اس لیے ہر حل کے لیے ایک سینڈباکس دونوں کو ضائع کرتا ہے۔ ایک سینڈباکس کے اندر ایسا ہارنیس چلائیں جو بہت سے حل چلائے، ہر ایک کا اپنا ٹائم آؤٹ ہو، اور ماڈل بدلتے وقت یا کچھ ٹوٹنے پر سینڈباکس دوبارہ بنائیں۔

میں کتنی تیزی سے چلا سکتا ہوں؟

ایک اکاؤنٹ زیادہ سے زیادہ 20 سینڈباکس میں ایک وقت پر زیادہ سے زیادہ 2 کمانڈز چلاتا ہے۔ عملی طریقہ چند سینڈباکس ہیں، جن میں سے ہر ایک میں آپ کا ہارنیس بیک گراؤنڈ ٹاسک کے طور پر ڈیٹا سیٹ کے ایک حصے پر کام کرتا ہے۔

کیا میں طویل بینچ مارک گھنٹوں چلا سکتا ہوں؟

بیک گراؤنڈ ٹاسک کے طور پر ہاں، سینڈباکس کی عمر ختم ہونے تک (عارضی سینڈباکس کے لیے 24 گھنٹے)۔ لیکن جو سینڈباکس 15 منٹ سے زیادہ پورے CPU پر چلے، اسے غلط استعمال سمجھا جاتا ہے۔ وقفے وقفے سے ہونے والی جانچ ٹھیک ہے؛ گھنٹوں چلنے والا مسلسل حساب VPS کا کام ہے۔

کیا سینڈباکس میرے ماڈل کا API بلا سکتا ہے؟

باہر جانے والا انٹرنیٹ کھلا ہے، تو ہاں۔ API کلید کو بنے ہوئے کوڈ میں چسپاں کرنے کے بجائے سینڈباکس کے ماحولیاتی متغیر کے طور پر دیں — وہ خفیہ کر کے محفوظ کی جاتی ہے اور API اسے کبھی واپس نہیں کرتا۔

تبصرے

ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔

ایک تبصرہ چھوڑیں

تبصرے ظاہر ہونے سے پہلے moderate کیے جاتے ہیں۔