
Jeeves کیا ہے؟
Jeeves ایک Jev طرز کا درجہ بند کنندہ ہے جو ساختہ فیصلہ کرنے سے پہلے استدلال کی ایک زنجیر تیار کرتا ہے۔ یہ Qwen3.5-9B، LoRA اڈاپٹرز، ایک pointer head، calibrated probabilities، اور block-4 diffusion drafter سے بنایا گیا ہے۔ ریپوزٹری میں ماڈل اور drafter کا کوڈ، تربیتی پائپ لائن، جائزہ لینے کے ٹولز، اور training، development، اور test ڈیٹا شامل ہیں۔
یہ پروجیکٹ ایسی ایپلی کیشنز کے لیے تیار کیا گیا ہے جنہیں آزادانہ متن تیار کرنے سے زیادہ صلاحیت درکار ہوتی ہے۔ ایک مشترکہ state اور ایک یا زیادہ سوالات دیے جانے پر Jeeves، Jev-compatible API کے ذریعے ساختہ جوابات اور probabilities واپس کرتا ہے۔ ایک ہی request میں متعدد سوالات پر کارروائی کی جا سکتی ہے۔
اہم خصوصیات
- تین فیصلہ جاتی اقسام: binary
noul، categoricalchoice، اور ordinalscoreسوالات۔ - فیصلوں سے پہلے استدلال: ماڈل استدلال کی ایک زنجیر تیار کر سکتا ہے، پھر اپنے pointer head کے ذریعے دستیاب اختیارات کو score کر سکتا ہے۔
- Calibrated output: حتمی option probabilities میں development set پر فٹ کیا گیا temperature استعمال ہوتا ہے۔
- Jev-compatible API: موجودہ Jev clients بنیادی request format جمع کرا سکتے ہیں، جبکہ Jeeves کے مخصوص options استدلال کو کنٹرول کرتے ہیں۔
- Python SDK: شامل
sdk/package، Jev کےtypesafe-sdkکا براہِ راست متبادل ہے۔ - Diffusion drafting: block-4 drafter استدلال کی زنجیر بنانے کی رفتار بڑھاتا ہے اور Qwen3.5 کی Gated DeltaNet layers کو سپورٹ کرتا ہے۔
- Training code: ریپوزٹری میں SFT، CISPO، calibration، evaluation، export، اور drafter-training components شامل ہیں۔
Greedy reasoning کو 2,560 tokens تک محدود رکھنے پر، README کے مطابق اس کے held-out اور out-of-domain test set پر accuracy 0.889، اور 231 public JevBench items پر 0.935 ہے۔ تاہم، MMLU اور MMLU-Pro پر اس کے knowledge results، Jev سے کم ہیں، اس لیے benchmark کی موزونیت task پر منحصر ہے۔
ضروریات
آپ کو Python 3.12 اور ایک CUDA GPU درکار ہے۔ inference implementation کا FP8 kernel چلانے کے لیے Hopper GPU ضروری ہے۔ درج ذیل commands ریپوزٹری کی root سے چلائیں۔
Dependencies انسٹال کریں
pip install -r requirements.txt
جاری کردہ weights ڈاؤن لوڈ کریں
شائع کردہ 9B checkpoint اور اس کے block-4 drafter کو ڈاؤن لوڈ کرنے کے لیے Hugging Face CLI استعمال کریں:
hf download PostHog/jeeves --local-dir jeeves-weights
جاری کردہ model Hugging Face پر دستیاب ہے۔
API server شروع کریں
python -m inference.serve --model jeeves-weights --drafter jeeves-weights/drafter_k4.safetensors --port 8009
یہ Jev-compatible service کو port 8009 پر شروع کرتا ہے۔ bundled Python client، بطورِ ڈیفالٹ http://127.0.0.1:8009 استعمال کرتا ہے، اسے API key کی ضرورت نہیں ہوتی، اور یہ response کے لیے 120 seconds تک انتظار کرتا ہے۔
اپنی پہلی decision request بھیجیں
/v1/systemone endpoint ایک state، questions کا map، اور اختیاری inference controls قبول کرتا ہے۔ درج ذیل request میں Jeeves سے customer issue کو متعلقہ team تک بھیجنے، یہ فیصلہ کرنے کے لیے کہا گیا ہے کہ آیا اسے escalation درکار ہے، اور customer کی frustration کی درجہ بندی کرنے کو کہا گیا ہے۔
curl -s localhost:8009/v1/systemone \
-H 'content-type: application/json' \
-d '{
"state": "Shoes arrived two weeks late and in the wrong size. Also I see two charges on my card.",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this?",
"criteria": {
"returns": "Exchanges, refunds, wrong or damaged items",
"shipping": "Delivery status, delays, lost packages",
"billing": "Charges, invoices, payment problems"
}
},
"escalate": {
"type": "noul",
"instructions": "Does this need urgent human attention?"
},
"frustration": {
"type": "score",
"instructions": "How frustrated is the customer?",
"criteria": ["Calm", "Frustrated", "Very angry"]
}
},
"options": {"max_think": 512}
}'
سوالات کی اقسام سمجھیں
choice: نامزد متبادل میں سے انتخاب کرتا ہے اور منتخب key، probabilities، اور confidence واپس کرتا ہے۔noul: ہاں/نہیں طرز کے فیصلے کی نمائندگی کرتا ہے اور عددیnoulvalue واپس کرتا ہے۔score: labels کی ایک مرتب فہرست کا جائزہ لیتا ہے اور عددی score، legend، probabilities، اور confidence واپس کرتا ہے۔
Response میں usage information بھی شامل ہوتی ہے، جس میں input، output، اور reasoning token counts کے علاوہ مجموعی latency بھی شامل ہے۔ ایک ہی request میں موجود سوالات بیک وقت reasoning کر سکتے ہیں۔
Python سے Jeeves استعمال کریں
شامل SDK انسٹال کریں
pip install ./sdk
Typed questions بنائیں
from jeeves_sdk import Choice, Noul, Score, TypeSafeClient
with TypeSafeClient() as client:
result = client.system_one(
state="مجھ سے دو بار رقم وصول کی گئی ہے۔ براہِ کرم مدد کریں۔",
questions={
"billing": Noul(
instructions="کیا یہ بلنگ سے متعلق ہے؟"
),
"tone": Choice(
instructions="لہجہ کیا ہے؟",
criteria={"calm": None, "angry": None},
),
"urgency": Score(
instructions="یہ کتنا فوری ہے؟",
criteria=["انتظار کر سکتا ہے", "اس ہفتے", "آج"],
),
},
max_think=768,
return_reasoning=True,
)
print(result.nouls["billing"].noul)
print(result.choices["tone"].choice)
print(result.scores["urgency"].score)
print(result.reasoning["tone"].text)
TypeSafeClient واپس کیے گئے نتائج کو سوال کی قسم کے لحاظ سے گروپ کرتا ہے۔ return_reasoning=True مقرر کرنے سے ہر سوال کے استدلالی متن تک بھی رسائی حاصل ہو جاتی ہے۔ README میں خبردار کیا گیا ہے کہ تربیت کے دوران زبان کی مطابقت کا کوئی انعام استعمال نہیں کیا گیا، اس لیے استدلالی سلسلوں کی تشریح ہمیشہ آسان نہیں ہوتی۔
کسی مختلف سرور سے مربوط ہوں
کلائنٹ پہلے سے طے شدہ طور پر http://127.0.0.1:8009 کو ہدف بناتا ہے۔ جب سرور کسی دوسرے پتے پر چل رہا ہو تو JEEVES_BASE_URL ماحول متغیر مقرر کریں۔
export JEEVES_BASE_URL=http://your-server:8009
استدلال اور تاخیر کو کنٹرول کریں
اختیاری options آبجیکٹ استدلال کے چار کنٹرولز فراہم کرتا ہے۔ متعلقہ سرور فلیگز پورے سرور کے لیے پہلے سے طے شدہ اقدار مقرر کر سکتے ہیں۔
think: پہلے سے طے شدہ قدرtrueہے۔ استدلالی سلسلہ بنائے بغیر پرامپٹ سے براہِ راست جواب دینے کے لیے اسےfalseکریں۔max_think: پہلے سے طے شدہ قدر2560ہے۔ یہ ماڈل کے جواب دینے سے پہلے ہر استدلالی سلسلے کو مقررہ ٹوکن تعداد پر مختصر کر دیتا ہے۔nothink_threshold: پہلے سے طے شدہ قدرnullہے۔ مقرر کیے جانے پر، اگر استدلال نہ کرنے کا اعتماد اس حد تک پہنچ جائے یا اس سے بڑھ جائے تو Jeeves استدلال چھوڑ دیتا ہے۔return_reasoning: پہلے سے طے شدہ قدرfalseہے۔ جواب میں استدلالی متن شامل کرنے کے لیے اسے فعال کریں۔
تاخیر کا پروفائل منتخب کریں
README کی 325 سوالات پر مشتمل ترقیاتی جانچ میں، مکمل استدلال نے 0.825 درستگی حاصل کی، اوسطاً 1,138 استدلالی ٹوکن استعمال کیے، اور درمیانی تاخیر 3.3 سیکنڈ رہی۔ max_think کو 768 اور nothink_threshold کو 0.9 رکھنے سے 0.806 درستگی، اوسطاً 344 استدلالی ٹوکن، اور 2.0 سیکنڈ کی درمیانی تاخیر حاصل ہوئی۔ استدلال غیر فعال کرنے سے تقریباً 0.3 سیکنڈ میں 0.775 درستگی حاصل ہوئی۔
عملی متوازن تشکیل یہ ہے:
{
"options": {
"max_think": 768,
"nothink_threshold": 0.9,
"return_reasoning": false
}
}
مکمل استدلال میں تاخیر کی طویل دُم ہوتی ہے: رپورٹ شدہ p90 مقدار 17.1 سیکنڈ ہے۔ جب جواب کا وقت اہم ہو تو مختصر سلسلے یا اعتماد پر مبنی استدلال استعمال کریں۔
Jeeves فیصلے کیسے کرتا ہے
Jeeves، Qwen ٹوکنائزر کے نایاب ٹوکنز کے ذریعے حالت، سوال کی ہدایات اور جوابی اختیارات کو فارمیٹ کرتا ہے۔ پھر یہ ایک تھنک مارکر سے شروع ہونے والا استدلالی سلسلہ تیار کرتا ہے۔ استدلال کے بعد فیصلہ مارکر سے پہلے سوال اور اختیارات دوبارہ دہرائے جاتے ہیں۔
ایک پوائنٹر ہیڈ فیصلہ مارکر پر موجود کوئری پروجیکشن اور ہر اختیار کی حدود پر موجود کلیدی پروجیکشنز کے درمیان اسکیل شدہ ڈاٹ پروڈکٹ کا حساب کرتا ہے۔ سافٹ میکس ان اسکورز کو احتمالات میں تبدیل کرتا ہے، اور ترقیاتی سیٹ پر فِٹ کیا گیا درجۂ حرارت ان احتمالات کو کیلیبریٹ کرتا ہے۔ README کی ایبلیشنز کے مطابق، خصوصی پرامپٹ ٹوکنز کو عام لیبلز سے بدلنے یا استدلال کے بعد دہرائے گئے سوال کو حذف کرنے سے کارکردگی کم ہوئی۔
ڈفیوژن ڈرافٹر
اختیاری ڈرافٹر قیاسی ڈی کوڈنگ کے ذریعے استدلال کی تیاری تیز کرتا ہے۔ یہ Orthrus ڈفیوژن طریقے کو Qwen3.5 کی Gated DeltaNet تہوں کے مطابق ڈھالتا ہے، جس کے لیے ماسک ٹوکنز کو کنوولوشن کے بعد کیز اور ویلیوز کے ساتھ کراس اٹینڈ کرنے کی اجازت دی جاتی ہے۔
رپورٹ شدہ رفتار ایک سوال کے لیے سادہ گرافڈ گریڈی ڈی کوڈنگ میں 109 سلسلہ ٹوکن فی سیکنڈ سے بڑھ کر بلاک 4 کے ساتھ 176 ٹوکن فی سیکنڈ ہو جاتی ہے۔ بلاک 8، 193 ٹوکن فی سیکنڈ تک پہنچتا ہے، لیکن بلاک 4 اب بھی پہلے سے طے شدہ ہے کیونکہ متعدد سوالات کو بیچ کرنے پر یہ کم مہنگا رہتا ہے۔ بلاک 4 کے ساتھ آٹھ سوالات کا بیچ مجموعی طور پر تقریباً 960 سلسلہ ٹوکن فی سیکنڈ تک پہنچتا ہے۔
اپنے تربیت یافتہ چیک پوائنٹ کو سرور کے طور پر چلائیں
Jeeves تربیت کے دوران LoRA استعمال کرتا ہے۔ تربیت یافتہ چیک پوائنٹ کو سرور کے طور پر چلانے سے پہلے اسے ایک خودمختار ماڈل میں ضم کریں اور متعلقہ ڈرافٹر فائل فراہم کریں:
python export.py runs/cispo/final --out runs/fused
python -m inference.serve \
--model runs/fused \
--drafter runs/drafter_k4/drafter.safetensors \
--port 8009
تربیتی پائپ لائن دوبارہ تیار کریں
ڈیٹا سیٹس تیار کریں
تیاری کے اسکرپٹس prep/public.py میں مقرر کردہ ریویژنز پر Hugging Face سے عوامی ڈیٹا سیٹس ڈاؤن لوڈ کرتے ہیں۔ ہر ماخذ ڈیٹا سیٹ اپنے لائسنس کے تحت رہتا ہے۔
python -m prep.prep
تربیت اور جانچ چلائیں
دستاویزی طور پر دوبارہ تیار کرنے والی پائپ لائن آٹھ GPUs استعمال کرتی ہے۔ یہ زیرِ نگرانی فائن ٹیوننگ، CISPO تربیت، ٹیسٹ اور JevBench جانچ، ماڈل ایکسپورٹ، سلسلہ تخلیق، اور بلاک-4 ڈرافٹر کی تربیت انجام دیتی ہے۔
torchrun --nproc_per_node 8 train.py sft --run-dir runs/sft
torchrun --nproc_per_node 8 train.py cispo \
--run-dir runs/cispo \
--init runs/sft/final
torchrun --nproc_per_node 8 test.py runs/cispo/final
torchrun --nproc_per_node 8 jevbench.py runs/cispo/final
python export.py runs/cispo/final --out runs/fused
torchrun --nproc_per_node 8 -m drafter.gen --model runs/fused
torchrun --nproc_per_node 8 train.py drafter \
--model runs/fused \
--block 4 \
--run-dir runs/drafter_k4
شائع شدہ ترکیب میں پہلے 12 عوامی ڈیٹاسیٹس اور مصنوعی پالیسی ڈیٹا سے حاصل کیے گئے 19,126 سوالات پر SFT کے دو ادوار چلائے جاتے ہیں۔ اس کے بعد ہر سوال کے لیے آٹھ رول آؤٹس، درجۂ حرارت 1، اور 2,560 ٹوکنز کی استدلالی حد کے ساتھ CISPO نافذ کیا جاتا ہے۔ تربیت کو منصوبہ بند 624 مراحل کے شیڈول کے مرحلہ 402 پر روک دیا گیا، کیونکہ بعد کے مراحل نے سیر شدہ reinforcement-learning pool پر pointer head کو حد سے زیادہ تیز کر دیا تھا۔ آخر میں development set پر ایک calibration temperature فِٹ کیا گیا۔
اعلیٰ استعمال کے نکات
- متعلقہ فیصلوں کو بیچ میں جمع کریں۔ کئی سوالات کو ایک مشترکہ state کے تحت رکھیں تاکہ سرور ان کی reasoning chains کو متوازی طور پر پراسیس کر سکے۔
- آسان معاملات کے لیے براہِ راست جوابات استعمال کریں۔
nothink_thresholdکو اس طرح ترتیب دیں کہ reasoning صرف ان فیصلوں کے لیے محفوظ رہے جن میں no-think confidence آپ کی منتخب کردہ حد سے کم ہو۔ - تاخیر کے لیے حساس سروسز میں reasoning کی حد مقرر کریں۔ جب رفتار اور درستگی کے درمیان درمیانی راستہ درکار ہو تو reasoning کو مکمل طور پر غیر فعال کرنے کے بجائے
max_thinkکم کریں۔ - reasoning کو منتخب طور پر واپس کریں۔
return_reasoningکو غیر فعال رکھیں، جب تک ایپلیکیشن کو متن کی ضرورت نہ ہو، خاص طور پر اس لیے کہ یہ chains آسانی سے قابلِ فہم ہونے کی ضمانت نہیں رکھتیں۔ - اپنے ڈومین پر جائزہ لیں۔ Jeeves پروجیکٹ کے test split اور عوامی JevBench tiers پر مضبوط کارکردگی دکھاتا ہے، لیکن رپورٹ کردہ MMLU اور MMLU-Pro علمی جائزوں میں Jev سے پیچھے رہتا ہے۔
- موازنوں کی محتاط تشریح کریں۔ JevBench کے باہر، شائع شدہ Kev اور Jev موازنوں میں ایک ہی بنیادی ذرائع سے لیے گئے مختلف items استعمال کیے گئے ہیں۔
نتیجہ
Jeeves، Jev طرز کے منظم outputs کو test-time reasoning، calibrated probabilities، اور تیز رفتار chain generation کے ساتھ یکجا کرتا ہے۔ جاری کردہ weights اور Jev-compatible HTTP endpoint سے آغاز کریں، typed application code کے لیے Python SDK استعمال کریں، اور درستگی و تاخیر میں توازن قائم کرنے کے لیے max_think اور nothink_threshold کو ایڈجسٹ کریں۔ مزید گہری تخصیص کے لیے repository مکمل SFT، CISPO، calibration، export، اور drafter pipeline فراہم کرتی ہے۔
