
Jeeves ni nini?
Jeeves ni kiainishaji cha mtindo wa Jev kinachozalisha mfuatano wa hoja kabla ya kufanya uamuzi uliopangwa. Kimejengwa kutoka Qwen3.5-9B yenye adapta za LoRA, kichwa cha pointer, uwezekano uliosawazishwa, na mtayarishaji wa diffusion wa block-4. Hifadhi hii inajumuisha msimbo wa modeli na mtayarishaji, mchakato wa mafunzo, zana za tathmini, pamoja na data ya mafunzo, maendeleo, na majaribio.
Mradi huu umeundwa kwa ajili ya programu zinazohitaji zaidi ya uzalishaji wa maandishi huru. Kwa kupewa hali iliyoshirikiwa na swali moja au zaidi, Jeeves hurejesha majibu yaliyopangwa na uwezekano kupitia API inayooana na Jev. Maswali mengi yanaweza kuchakatwa katika ombi moja.
Vipengele muhimu
- Aina tatu za maamuzi: maswali ya binary
noul, ya kategoriachoice, na ya mpangilioscore. - Hoja kabla ya maamuzi: modeli inaweza kuzalisha mfuatano wa hoja kisha kutumia kichwa chake cha pointer kukadiria chaguo zinazopatikana.
- Matokeo yaliyosawazishwa: uwezekano wa mwisho wa chaguo hutumia halijoto iliyowekwa kwa kutumia seti ya maendeleo.
- API inayooana na Jev: wateja waliopo wa Jev wanaweza kutuma muundo msingi wa ombi, huku chaguo mahususi za Jeeves zikidhibiti hoja.
- SDK ya Python: kifurushi cha
sdk/kilichojumuishwa ni mbadala wa moja kwa moja watypesafe-sdkya Jev. - Uandishi kwa diffusion: mtayarishaji wa block-4 huharakisha uzalishaji wa mfuatano wa hoja na kusaidia tabaka za Gated DeltaNet za Qwen3.5.
- Msimbo wa mafunzo: hifadhi hii ina vipengele vya SFT, CISPO, usawazishaji, tathmini, uhamishaji, na mafunzo ya mtayarishaji.
Kwa hoja ya greedy iliyowekewa kikomo cha tokeni 2,560, README inaripoti usahihi wa 0.889 kwenye seti yake ya majaribio iliyotengwa na ya nje ya kikoa, na 0.935 kwenye vipengee 231 vya JevBench vya umma. Hata hivyo, matokeo yake ya maarifa yako nyuma ya Jev kwenye MMLU na MMLU-Pro, kwa hiyo ufaafu wa benchmark hutegemea kazi.
Mahitaji ya awali
Unahitaji Python 3.12 na GPU ya CUDA. Kernel ya FP8 ya utekelezaji wa inference inahitaji GPU ya Hopper. Tekeleza amri zifuatazo kutoka kwenye mzizi wa hifadhi.
Sakinisha utegemezi
pip install -r requirements.txt
Pakua uzani uliotolewa
Tumia CLI ya Hugging Face kupakua checkpoint ya 9B iliyochapishwa pamoja na mtayarishaji wake wa block-4:
hf download PostHog/jeeves --local-dir jeeves-weights
Modeli iliyotolewa inapatikana kwenye Hugging Face.
Anzisha seva ya API
python -m inference.serve --model jeeves-weights --drafter jeeves-weights/drafter_k4.safetensors --port 8009
Hii huanzisha huduma inayooana na Jev kwenye porti 8009. Mteja wa Python aliyejumuishwa hutumia http://127.0.0.1:8009 kwa chaguo-msingi, hauhitaji ufunguo wa API, na husubiri hadi sekunde 120 kwa jibu.
Tuma ombi lako la kwanza la uamuzi
Endpoint ya /v1/systemone inakubali state, ramani ya questions, na vidhibiti vya hiari vya inference. Ombi lifuatalo linaiomba Jeeves kuelekeza suala la mteja, kuamua ikiwa linahitaji kupandishwa kwa kiwango cha juu, na kukadiria kufadhaika kwa mteja.
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}
}'
Elewa aina za maswali
choice: huchagua kutoka kwa mbadala wenye majina na kurejesha ufunguo uliochaguliwa, uwezekano, na kiwango cha uaminifu.noul: huwakilisha uamuzi wa aina ya ndiyo/hapana na kurejesha thamani ya nambari yanoul.score: hutathmini orodha iliyopangwa ya lebo na kurejesha alama ya nambari, ufafanuzi, uwezekano, na kiwango cha uaminifu.
Jibu pia lina maelezo ya matumizi, ikiwemo idadi ya tokeni za ingizo, tokeo, na hoja, pamoja na muda wote wa kusubiri. Maswali katika ombi hilo hilo yanaweza kufanya hoja kwa sambamba.
Tumia Jeeves kutoka Python
Sakinisha SDK iliyojumuishwa
pip install ./sdk
Unda maswali yenye aina
from jeeves_sdk import Choice, Noul, Score, TypeSafeClient
with TypeSafeClient() as client:
result = client.system_one(
state="Nimeshtakiwa mara mbili. Tafadhali nisaidie.",
questions={
"billing": Noul(
instructions="Je, hili linahusu malipo?"
),
"tone": Choice(
instructions="Toni ni ipi?",
criteria={"calm": None, "angry": None},
),
"urgency": Score(
instructions="Hili lina umuhimu wa haraka kiasi gani?",
criteria=["inaweza kusubiri", "wiki hii", "leo"],
),
},
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 hupanga thamani zilizorejeshwa kulingana na aina ya swali. Kuweka return_reasoning=True pia hufanya maandishi ya hoja za kila swali yapatikane. README inaonya kuwa hakuna zawadi ya ulinganifu wa lugha iliyotumika wakati wa mafunzo, hivyo misururu ya hoja si lazima iwe rahisi kutafsiri.
Unganisha kwenye seva tofauti
Mteja hulenga http://127.0.0.1:8009 kwa chaguo-msingi. Weka kigezo cha mazingira cha JEEVES_BASE_URL seva inapofanya kazi kwenye anwani nyingine.
export JEEVES_BASE_URL=http://your-server:8009
Dhibiti hoja na muda wa kusubiri
Kipengee cha hiari cha options hutoa vidhibiti vinne vya hoja. Alama zinazolingana za seva zinaweza kuweka chaguo-msingi za seva nzima.
think: chaguo-msingi nitrue. Wekafalseili kujibu moja kwa moja kutokana na dodoso bila kutoa msururu wa hoja.max_think: chaguo-msingi ni2560. Hupunguza kila msururu wa hoja hadi idadi maalum ya tokeni kabla ya modeli kujibu.nothink_threshold: chaguo-msingi ninull. Ikisanidiwa, Jeeves huruka hoja ikiwa imani yake ya kutohitaji hoja inafikia au kuzidi kizingiti hicho.return_reasoning: chaguo-msingi nifalse. Iwashe ili kujumuisha maandishi ya hoja kwenye jibu.
Chagua wasifu wa muda wa kusubiri
Kwenye tathmini ya maendeleo ya README yenye maswali 325, hoja kamili ilifikisha usahihi wa 0.825 kwa wastani wa tokeni 1,138 za hoja na muda wa wastani wa kusubiri wa sekunde 3.3. Kutumia max_think ya 768 pamoja na nothink_threshold ya 0.9 kulitoa usahihi wa 0.806, wastani wa tokeni 344 za hoja, na muda wa wastani wa kusubiri wa sekunde 2.0. Kuzima hoja kulitoa usahihi wa 0.775 kwa takriban sekunde 0.3.
Mipangilio ya vitendo yenye uwiano ni:
{
"options": {
"max_think": 768,
"nothink_threshold": 0.9,
"return_reasoning": false
}
}
Hoja kamili ina mkia mrefu wa muda wa kusubiri: p90 iliyoripotiwa ni sekunde 17.1. Tumia misururu mifupi au hoja inayotegemea imani wakati muda wa kujibu ni muhimu.
Jeeves hufanyaje maamuzi
Jeeves huunda muundo wa hali, maelekezo ya swali na chaguo za majibu kwa kutumia tokeni adimu kutoka kwa tokeniza ya Qwen. Kisha hutengeneza msururu wa hoja unaoanza na alama ya kufikiri. Baada ya hoja, swali na chaguo hurudiwa kabla ya alama ya uamuzi.
Kichwa cha pointer hukokotoa bidhaa ya nukta iliyopimwa kati ya makadirio ya swali kwenye alama ya uamuzi na makadirio muhimu kwenye mipaka ya kila chaguo. Softmax hubadilisha alama hizo kuwa uwezekano, na halijoto iliyowekwa kwa kutumia seti ya maendeleo huzipanga vizuri. Kulingana na majaribio ya kuondoa vipengele yaliyo kwenye README, kubadilisha tokeni maalum za dodoso kwa lebo za kawaida au kuacha swali lililorudiwa baada ya hoja kulipunguza utendaji.
Kiunda rasimu cha diffusion
Kiunda rasimu cha hiari huharakisha uzalishaji wa hoja kupitia usimbaji wa kubashiri. Hubadilisha mbinu ya diffusion ya Orthrus kwa tabaka za Gated DeltaNet za Qwen3.5 kwa kuruhusu tokeni za mask kufanya cross-attention kwenye funguo na thamani za baada ya convolution.
Uzalishaji ulioripotiwa wa swali moja huongezeka kutoka tokeni 109 za msururu kwa sekunde kwa usimbaji wa kawaida wa greedy uliopangwa hadi tokeni 176 kwa sekunde kwa block 4. Block 8 hufikia tokeni 193 kwa sekunde, lakini block 4 hubaki chaguo-msingi kwa kuwa ni nafuu wakati maswali kadhaa yanawekwa kwenye kundi. Maswali manane yaliyowekwa kwenye kundi kwa block 4 hufikia takriban tokeni 960 za msururu kwa sekunde kwa jumla.
Tumikisha checkpoint uliyofunza
Jeeves hutumia LoRA wakati wa mafunzo. Kabla ya kutumikisha checkpoint iliyofunzwa, iunganishe kuwa modeli inayojitegemea na utoe faili ya kiunda rasimu inayolingana:
python export.py runs/cispo/final --out runs/fused
python -m inference.serve \
--model runs/fused \
--drafter runs/drafter_k4/drafter.safetensors \
--port 8009
Rudia mchakato wa mafunzo
Andaa seti za data
Scripti za maandalizi hupakua seti za data za umma kutoka Hugging Face kwenye marekebisho yaliyowekwa katika prep/public.py. Kila seti ya data chanzo hubaki chini ya leseni yake.
python -m prep.prep
Endesha mafunzo na tathmini
Mchakato wa urudufishaji ulioandikwa hutumia GPU nane. Hufanya urekebishaji unaosimamiwa, mafunzo ya CISPO, tathmini ya test na JevBench, uhamishaji wa modeli, uzalishaji wa misururu, na mafunzo ya kiunda rasimu cha block-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
Kichocheo kilichochapishwa huanza kwa kuendesha vipindi viwili vya SFT kwenye maswali 19,126 kutoka seti 12 za data za umma na data sanisi ya sera. Kisha hutumia CISPO ikiwa na marudio manane kwa kila swali, halijoto 1, na kikomo cha tokeni 2,560 za hoja. Mafunzo yalisitishwa katika hatua ya 402 kati ya ratiba iliyopangwa ya hatua 624 kwa sababu hatua za baadaye ziliifanya kichwa cha pointer kuwa chenye ukali kupita kiasi kwenye kundi lililojaa la ujifunzaji wa kuimarisha. Hatimaye, halijoto moja ya urekebishaji iliwekwa kulingana na seti ya usanidi.
Vidokezo vya matumizi ya kina
- Weka maamuzi yanayohusiana pamoja. Weka maswali kadhaa chini ya hali moja iliyoshirikiwa ili seva iweze kuchakata misururu yao ya hoja kwa sambamba.
- Tumia majibu ya moja kwa moja kwa hali rahisi. Sanidi
nothink_thresholdili kuhifadhi hoja kwa maamuzi ambayo ujasiri wa kutofikiri uko chini ya kizingiti ulichochagua. - Weka kikomo cha hoja katika huduma zinazohitaji muda mfupi wa majibu. Punguza
max_thinkbadala ya kuzima hoja kabisa unapotaka uwiano wa kati kati ya kasi na usahihi. - Rudisha hoja kwa kuchagua. Acha
return_reasoningikiwa imezimwa isipokuwa programu inahitaji maandishi hayo, hasa kwa kuwa misururu hiyo haijahakikishiwa kuwa rahisi kutafsiri. - Tathmini kwenye eneo lako mwenyewe. Jeeves hufanya vizuri kwenye mgawanyo wa majaribio wa mradi na viwango vya umma vya JevBench, lakini iko nyuma ya Jev katika tathmini za maarifa za MMLU na MMLU-Pro zilizoripotiwa.
- Tafsiri ulinganisho kwa uangalifu. Nje ya JevBench, ulinganisho uliochapishwa wa Kev na Jev hutumia vipengee tofauti kutoka vyanzo vilevile vya msingi.
Hitimisho
Jeeves huunganisha matokeo yaliyopangwa kwa mtindo wa Jev na hoja wakati wa majaribio, uwezekano uliorekebishwa, na uundaji wa misururu ya hoja ulioharakishwa. Anza na uzani uliotolewa na mwisho wa HTTP unaooana na Jev, tumia SDK ya Python kwa msimbo wa programu wenye aina, na rekebisha max_think na nothink_threshold ili kusawazisha usahihi dhidi ya muda wa majibu. Kwa ubinafsishaji wa kina zaidi, hazina hutoa mchakato kamili wa SFT, CISPO, urekebishaji, uhamishaji na drafter.
