−25%

Windows-ის წლიურ გადახდაზე, 31 ოქტომბრამდე. ტარიფებზე

EQVPS
დაწყება

Sandbox LLM-ის შეფასებისთვის: მოდელის დაწერილი 1 000 ამოხსნა დაახლოებით ერთ ცენტად

მოდელის შეფასება პროგრამირების ამოცანებზე ნიშნავს ათასობით ისეთი პროგრამის გაშვებას, რომელიც ხელით არავის დაუწერია. გაუშვით ისინი microVM-ზე დაფუძნებულ ერთჯერად sandbox-ებში და არა ლეპტოპზე — წამობრივი ბილინგი და გულწრფელი შენიშვნა გამტარუნარიანობასა და CPU-ის ლიმიტებზე.

კოდის ბენჩმარკებს უსიამოვნო საიდუმლო აქვთ: მოდელის შესაფასებლად მისი დაწერილი უნდა გაუშვათ. pass@k-ის გაშვება რამდენიმე ასეულ ამოცანაზე, თითოეულზე ათი ამოხსნით, ათასობით ახლად შექმნილ პროგრამას ნიშნავს — და უცნობისგან რომ მოსულიყო, ერთსაც კი არ გაუშვებდით curl | bash-ით.

ადამიანების უმეტესობა ლეპტოპზე subprocess.run-ითა და ტაიმაუტით იწყებს. ეს მუშაობს მანამ, სანამ რომელიმე ამოხსნა 40 GB-იან ფაილს არ ჩაწერს, პროცესებს მანამ არ შექმნის, სანამ მანქანა არ გაიჭედება, ან ჩუმად არ წაიკითხავს თქვენს საწყის დირექტორიას. გამოსავალი უფრო ჭკვიანი ტაიმაუტი არ არის. გამოსავალია ამოხსნების გაშვება ისეთ ადგილას, რომელიც არ გენანებათ.

დაყენება, რომელიც მუშაობს

sandbox არის Firecracker microVM Python 3.12-ით, Node.js 22-ითა და bash-ით, რომელიც დაახლოებით ერთ წამში ირთვება და დასრულებისას იშლება. გამავალი ინტერნეტი მუშაობს, შემომავალი — არა, და შიგნით თქვენი არაფერია.

ხაფანგი ის არის, რომ sandbox-ს ფუნქციის გამოძახებასავით მოეპყრათ. თითოეული მინიმუმ 60 წამით ითვლება და ჩართვას ერთი წამი სჭირდება, ამიტომ თითო ამოხსნაზე თითო sandbox ნელიც არის და ფუჭიც. ამის ნაცვლად 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-ს. ურჩი ამოხსნა მხოლოდ საკუთარ ქვეპროცესს კლავს და არა მთელ გაშვებას. თუ ამოხსნა თავად sandbox-ს გააფუჭებს, ერთ ნაწილს კარგავთ, sandbox-ს თავიდან ქმნით და აგრძელებთ.

ფაილები თითო გადაცემაზე 5 MB-მდეა, ამიტომ დიდი მონაცემთა ნაკრებები ნაწილებად დაყავით — რაც პარალელიზმისთვის ისედაც გინდათ.

გამტარუნარიანობა, გულწრფელად

ანგარიშს შეუძლია ჰქონდეს 20 sandbox-მდე, მაგრამ ერთდროულად 2 ბრძანება სრულდება. ფონური ამოცანა ითვლება, სანამ მუშაობს. ასე რომ, სწრაფი შეფასება ასე გამოიყურება: ორი sandbox, თითოეული ფონურად საკუთარ ნაწილს ამუშავებს — და არა ოცი sandbox, რომლებიც ორ ადგილზე ჩხუბობენ.

ტიპური კოდის ბენჩმარკებისთვის ეს საკმარისზე მეტია: ამოხსნების უმეტესობა წამზე ნაკლებ დროში სრულდება და ერთი sandbox საათში ათასობითს ამუშავებს. თუ ბევრი მოდელის ერთდროულად შეფასება გჭირდებათ უზარმაზარ ნაკრებზე, ჭერს მიაღწევთ. ამ დროს უკეთესი ინსტრუმენტი VPS-ია, რომელიც თქვენს იზოლაციას ამუშავებს.

CPU-ის წესი, რომელიც უნდა იცოდეთ

sandbox-ები პერიოდული დატვირთვისთვისაა შექმნილი. sandbox, რომელიც 15 წუთზე მეტხანს 90%-ზე მაღალ CPU-ზეა, ბოროტად გამოყენებად ითვლება — დროებითი sandbox ჩერდება. ჩვეულებრივი შეფასებები, რომლებიც სწრაფ გაშვებებსა და შედეგების აღრიცხვას შორის მონაცვლეობს, ამას ახლოსაც ვერ ეკარება. ბენჩმარკი, რომელიც საათობით სრულ 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
Build + ტესტები თითო ამოხსნაზეplus (2 vCPU, 4 GB)~3 სთ$0.40

მოდელის გამოძახებები, რომლებიც ამ ამოხსნებს ქმნის, გაშვებაზე მეტი დაგიჯდებათ — ჩვეულებრივ დაახლოებით ათჯერ მეტი.

გასაღებები და განმეორებადობა

თუ harness sandbox-ის შიგნიდან მოდელის API-ს იძახებს — მაგალითად, LLM-as-judge სტილის შეფასებისთვის — გასაღები sandbox-ის გარემოს ცვლადად გადაეცით. მნიშვნელობები დაშიფრულად ინახება, ლოგებში არასდროს იწერება, API კი მხოლოდ ცვლადების სახელებს აბრუნებს.

განმეორებადობისთვის harness-ში პაკეტების ვერსიები დააფიქსირეთ და შედეგებთან ერთად sandbox-ის ტარიფი ჩაიწერეთ. ყოველი sandbox ერთი და იმავე სუფთა იმიჯიდან იწყება, რაც თქვენი რიცხვებიდან „ჩემს ლეპტოპზე მუშაობდა“ ცვლადს აქრობს. გულწრფელად, მხოლოდ ამის გამოც ღირს გადასვლა.

დაიწყეთ sandbox-ების გვერდით და sandbox-ის დოკუმენტაციით. ახალი ანგარიშები იღებს $1-ის sandbox-დროს — საკმარისს პირველი შეფასებისთვის რამდენიმე ათასი ამოხსნით small ტარიფზე. SDK-ის ცნობარი ფონურ ამოცანებსა და ფაილების გადაცემას ხსნის, sandbox-ის ლიმიტები და ბილინგი კი კვოტების სრულ ცხრილს შეიცავს.

დაკავშირებული: Sandbox AI აგენტებისთვის და აგენტის პირველი ამოცანა sandbox-ში.

მზად ხართ განთავსებისთვის? გადაიხადეთ კრიპტოთი, KYC-ის გარეშე — ჩართული დაახლოებით წუთში.

განათავსეთ ახლა →

ხდკ

საერთოდ რატომ სჭირდება შეფასებას sandbox?

იმიტომ, რომ ათასობით პროგრამას უშვებთ, რომლებიც მოდელმა დაწერა. უმეტესობა უვნებელია, ზოგი უსასრულო ციკლში ებმება, რამდენიმე კი ფაილებს შლის ან ქსელურ კავშირებს ხსნის. თქვენს სამუშაო კომპიუტერზე ეს მონაცემების რისკია; sandbox-ში კი უბრალოდ წარუმატებელი ამოხსნა.

თითო ამოხსნაზე თითო sandbox შევქმნა?

როგორც წესი, არა. sandbox-ის შექმნას დაახლოებით ერთი წამი სჭირდება და მინიმუმ 60 წამი ითვლება, ამიტომ თითო ამოხსნაზე თითო sandbox ორივეს ფლანგავს. ერთ sandbox-ში გაუშვით harness, რომელიც ბევრ ამოხსნას უშვებს, თითოეულს საკუთარი ტაიმაუტით, და sandbox თავიდან შექმენით მოდელებს შორის ან როცა რამე გააფუჭებს.

რამდენად სწრაფად შემიძლია ვიმოძრაო?

ანგარიში 20 sandbox-მდე ერთდროულად მაქსიმუმ 2 ბრძანებას ასრულებს. პრაქტიკული სქემაა რამდენიმე sandbox, თითოეულში თქვენი harness ფონურ ამოცანად მუშაობს და მონაცემთა ნაკრების ნაწილს ამუშავებს.

შემიძლია გრძელი ბენჩმარკი საათობით ვატარო?

ფონურ ამოცანად კი, sandbox-ის სიცოცხლის ბოლომდე (დროებითისთვის 24 საათი). მაგრამ sandbox, რომელიც 15 წუთზე მეტხანს სრულ CPU დატვირთვაზეა, ბოროტად გამოყენებად ითვლება. პერიოდული შეფასებები ნორმალურია; საათობით თანაბარი გამოთვლები VPS-ის საქმეა.

შეუძლია sandbox-ს ჩემი მოდელის API-ის გამოძახება?

გამავალი ინტერნეტი ღიაა, ასე რომ, კი. API-ის გასაღები გადაეცით sandbox-ის გარემოს ცვლადად — ის დაშიფრულად ინახება და API მას არასდროს აბრუნებს — ნაცვლად იმისა, რომ გენერირებულ კოდში ჩასვათ.

კომენტარები

ჯერ არ არის კომენტარები. იყავით პირველი.

დატოვეთ კომენტარი

კომენტარები მოდერირდება გამოჩენამდე.