−25%

Windows-এর বার্ষিক পেমেন্টে, ৩১ অক্টোবর পর্যন্ত। প্ল্যান দেখুন

EQVPS
শুরু করুন

LLM মূল্যায়নের জন্য স্যান্ডবক্স: মডেলের লেখা 1,000টি সমাধান প্রায় এক সেন্টে চালান

প্রোগ্রামিং কাজে মডেলকে নম্বর দেওয়া মানে হাজার হাজার এমন প্রোগ্রাম চালানো যা কেউ হাতে লেখেনি। সেগুলো ল্যাপটপে না চালিয়ে microVM-ভিত্তিক একবার-ব্যবহারের স্যান্ডবক্সে চালান — প্রতি সেকেন্ডে বিলিং, সঙ্গে থ্রুপুট ও CPU সীমা নিয়ে সৎ মন্তব্য।

কোডিং বেঞ্চমার্কের একটা নোংরা গোপন কথা আছে: মডেলকে নম্বর দিতে হলে তার লেখা জিনিস চালাতে হয়। কয়েকশো প্রশ্নে প্রতিটির দশটি সমাধান নিয়ে pass@k চালানো মানে হাজার হাজার সদ্য তৈরি প্রোগ্রাম — আর সেগুলো কোনো অচেনা লোকের কাছ থেকে এলে আপনি একটিকেও curl | bash করতেন না।

বেশিরভাগ মানুষ ল্যাপটপে subprocess.run আর একটি টাইমআউট দিয়ে শুরু করেন। এটা ততক্ষণ কাজ করে যতক্ষণ না কোনো সমাধান 40 GB-এর ফাইল লিখে ফেলে, মেশিন আটকে না যাওয়া পর্যন্ত প্রসেস তৈরি করতে থাকে, বা চুপচাপ আপনার হোম ডিরেক্টরি পড়ে ফেলে। সমাধান আরও চতুর টাইমআউট নয়। সমাধান হলো এমন জায়গায় সমাধানগুলো চালানো, যা নিয়ে আপনার মাথাব্যথা নেই।

যে সেটআপ কাজ করে

স্যান্ডবক্স হলো Python 3.12, Node.js 22 ও bash-যুক্ত একটি Firecracker microVM, যা প্রায় এক সেকেন্ডে চালু হয় এবং কাজ শেষে মুছে ফেলা হয়। বাইরে যাওয়ার ইন্টারনেট কাজ করে, ভেতরে আসার নয়, আর ভেতরে আপনার কিছুই থাকে না।

ফাঁদটা হলো স্যান্ডবক্সকে একটি ফাংশন কলের মতো দেখা। প্রতিটির ন্যূনতম 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 কখনো তা ফেরত দেয় না।

মন্তব্য

এখনো কোনো মন্তব্য নেই। প্রথম হোন।

একটি মন্তব্য দিন

মন্তব্য প্রকাশের আগে মডারেট করা হয়।