למדדי תכנות יש סוד מלוכלך: כדי לתת ציון למודל צריך להריץ את מה שכתב. הרצת pass@k על כמה מאות בעיות עם עשרה פתרונות לכל אחת היא אלפי תוכניות שנוצרו זה עתה — ולא הייתם מריצים אף אחת מהן ב-curl | bash אילו הגיעה מאדם זר.
רוב האנשים מתחילים על המחשב הנייד עם subprocess.run ומגבלת זמן. זה עובד עד שפתרון כותב קובץ של 40 GB, מפצל תהליכים עד שהמכונה נתקעת, או קורא בשקט את תיקיית הבית שלכם. הפתרון הוא לא מגבלת זמן חכמה יותר. הפתרון הוא להריץ את הפתרונות במקום שלא אכפת לכם ממנו.
ההגדרה שעובדת
ארגז חול הוא Firecracker microVM עם Python 3.12, Node.js 22 ו-bash, שעולה בתוך כשנייה ונמחקת כשסיימתם. אינטרנט יוצא עובד, נכנס לא, ואין בפנים שום דבר שלכם.
המלכודת היא להתייחס לארגז חול כמו לקריאה לפונקציה. כל ארגז מחויב לפחות על 60 שניות ולוקח שנייה לעלות, כך שארגז לכל פתרון הוא איטי ובזבזני. במקום זאת שימו את ה-harness בפנים:
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 שכדאי להכיר
ארגזי חול בנויים לעבודה בפרצים. ארגז חול שמוחזק מעל 90% CPU יותר מ-15 דקות נחשב לשימוש לרעה — ארגז זמני נעצר. הערכות רגילות, שמתחלפות בין הרצות מהירות לרישום תוצאות, לא מתקרבות לזה. מדד ששורף CPU מלא במשך שעות (הידור פרויקט גדול לכל פתרון, בדיקות עומס מספריות) כן יתקרב. לשם כך קחו VPS חודשי: תעריף AI agent נותן 4 vCPU ו-4 GB ב-10 דולר.
כמה עולה הרצה
אתם משלמים לפי שנייה עבור ה-vCPU וה-RAM של התעריף, מינימום 60 שניות, מיתרה בתשלום מראש.
| עומס | תעריף | זמן | עלות משוערת |
|---|---|---|---|
| 1,000 פתרונות Python קצרים | small (0.5 vCPU, 1 GB) | ~20 דקות | $0.011 |
| 5,000 פתרונות, numpy מותר | standard (1 vCPU, 2 GB) | ~שעתיים | $0.13 |
| בנייה + בדיקות לכל פתרון | plus (2 vCPU, 4 GB) | ~3 שעות | $0.40 |
הקריאות למודל שמייצרות את הפתרונות יעלו לכם יותר מההרצה — בדרך כלל פי עשרה בערך.
מפתחות ושחזוריות
אם ה-harness קורא ל-API של מודל מתוך ארגז החול — למשל לציון בסגנון LLM-as-judge — העבירו את המפתח כמשתנה סביבה של ארגז החול. הערכים נשמרים מוצפנים, לעולם לא נרשמים ביומן, וה-API מחזיר רק את שמות המשתנים.
לשחזוריות, קבעו גרסאות חבילות ב-harness ורשמו את תעריף ארגז החול יחד עם התוצאות. כל ארגז חול מתחיל מאותה תמונה נקייה, וזה מוציא מהמספרים שלכם את המשתנה "אצלי במחשב זה עבד". בכנות, רק בשביל זה שווה לעבור.
התחילו בדף ארגזי החול ובתיעוד ארגזי החול. חשבונות חדשים מקבלים 1 דולר של זמן ארגז חול — מספיק להערכה ראשונה של כמה אלפי פתרונות בתעריף small. מדריך ה-SDK מסביר משימות רקע והעברת קבצים, ומגבלות וחיוב של ארגזי חול כולל את טבלת המכסות המלאה.
תגובות
אין עדיין תגובות. היו הראשונים.