
AnyJev Inachofanya
AnyJev hubadilisha modeli ya lugha iliyo wazi kuwa modeli ya maamuzi ya mtindo wa Jev. Badala ya kuiomba modeli itengeneze jibu na kisha kuchanganua maandishi yake, AnyJev husoma usambazaji wa tokeni inayofuata wa modeli kutoka kwenye prefill na kurejesha uamuzi wenye aina pamoja na uwezekano.
Hii ni muhimu kwa mtiririko wa kazi kama vile kuelekeza ombi, kukadiria kama hatua fulani ni hatari, au kupima ukamilishaji wa kazi. Kila matokeo huhifadhi kiwango cha uamuzi kilichotumika, hivyo msimbo wa baadaye unaweza kutofautisha matokeo ambayo hayajarekebishwa au yenye lebo sifuri na yale yaliyotolewa na kichwa kilichofitishwa.
AnyJev hushughulikia matatizo mawili ya kiutendaji ya logits ghafi: utabiri unaweza kubadilika mpangilio wa chaguo unapobadilika, na thamani ghafi za ujasiri huenda zisirekebishwe vya kutosha kwa ajili ya uwekaji otomatiki unaotegemea vizingiti. Katika jaribio la Qwen3-8B BANKING77 kwenye README, L0 ilipunguza kiwango cha mabadiliko kutokana na mpangilio wa chaguo kutoka 0.230 hadi 0.073 bila lebo. L1 ilipunguza hitilafu inayotarajiwa ya urekebishaji kutoka 0.240 hadi 0.095 kwa mifano yenye lebo.

Viwango vya Uamuzi
AnyJev hutoa viwango kadhaa vyenye mahitaji tofauti ya data na uendeshaji:
- raw: Hutumia softmax iliyowekewa mipaka juu ya tokeni za lebo. Haisahihishi upendeleo wa nafasi wala kurekebisha ujasiri.
- L0: Haihitaji lebo. Hutathmini mizunguko ya chaguo, huondoa kwa wastani upendeleo wa nafasi, na huondoa athari ya awali ya lebo iliyokadiriwa.
- L1: Hutumia takriban lebo 100–500 kwa swali ili kufitisha urekebishaji wa halijoto juu ya L0. Huboresha urekebishaji lakini haibadilishi mpangilio wa majibu.
- L2: Hutumia takriban lebo 100–300 kwa swali ili kutatua kichwa cha LDA iliyopunguzwa au ridge kutoka hali iliyofichika ya kati. Inahitaji modeli ya ndani na ni mahususi kwa modeli na swali.
L0 huhitaji prefills nyingi kwa chaguo lenye chaguo kadhaa kwa sababu hutathmini mizunguko. L2 badala yake hutumia prompt moja na kusimama kwenye bloku ya kati iliyowekwa, hivyo ni nafuu kuliko upitishaji kamili wa mbele katika majaribio ya Qwen3 yaliyoripotiwa.
Sifa Muhimu
- Maswali yenye aina
choice,noul, nascore. - Hakuna utengenezaji wa maandishi wala uchanganuzi wa majibu.
- Marekebisho ya L0 yenye lebo sifuri kwa athari za nafasi ya chaguo na awali ya lebo.
- Urekebishaji wa halijoto wa L1 kwa mamia chache za lebo.
- Vichwa vya L2 vya umbo lililofungwa vinavyofitishwa kwa sekunde bila gradienti wala urekebishaji wa modeli.
- Uteuzi wa kiotomatiki wa L2, L1, au L0 kupitia
level="auto". - Ukusanyaji wa lebo kwa hatua kwa hatua kwa
observe. - Maamuzi ya kundi kwa hali nyingi na swali moja.
- Vibaki vidogo vya JSON vinavyoweza kuhifadhiwa na kupakiwa kwa uendeshaji wa baadaye.
Usakinishaji na Usanidi
Weka backend ya Hugging Face
Sakinisha AnyJev pamoja na muunganisho wake wa Hugging Face:
pip install "anyjev[hf]"Toleo la sasa huendesha viwango vyote vya uamuzi kupitia backend ya anyjev.backends.hf inayotumia Transformers. Usaidizi wa vLLM na SGLang uko kwenye ramani ya baadaye na haupatikani katika toleo hili.
Unda mtoa uamuzi
Ingiza API ya msingi na anzisha HFBackend kwa modeli iliyo wazi:
from anyjev import Decider, Question
from anyjev.backends.hf import HFBackend
decider = Decider(HFBackend("Qwen/Qwen3-8B"))Vichwa vya L2 vilivyosafirishwa vinashughulikia modeli tano za Qwen3: 1.7B, 4B, 8B, 30B-A3B, na 32B. Vichwa vya L2 hubaki kuwa mahususi kwa modeli yao ya msingi na swali, hivyo kichwa kilichofitishwa kwa modeli au swali moja hakiwezi kutumiwa tena kiotomatiki kwa nyingine.
Fafanua Maswali Yenye Aina
Swali hufafanua aina ya matokeo, majibu halali, na jina thabiti. Unaweza kutathmini aina kadhaa za maswali dhidi ya hali ileile ya programu.
route = Question.choice(
"Ni timu gani inapaswa kushughulikia hili?",
["billing", "technical", "sales", "other"],
name="route",
)
risky = Question.noul(
"Je, mwito huu wa zana ni wa kuharibu au hauwezi kutenduliwa?",
name="risky",
)
done = Question.score(
"Kazi imekamilika kwa kiwango gani?",
bins=5,
name="done",
)Tumia choice kwa uamuzi wa kategoria, noul kwa uamuzi wa kweli-au-sikweli, na score kwa alama ya nambari iliyogawanywa katika makundi. Usomaji wa tokeni za herufi kwa sasa unaunga mkono chaguo zisizozidi 26.
Fanya Uamuzi wa Msingi wa L0
L0 ndiyo chaguo-msingi na haihitaji mifano yenye lebo. Unda hali iliyo na taarifa zinazohitajika na maswali, kisha ita decide:
state = {
"conversation": [
{"role": "user", "content": "Nilitozwa mara mbili."}
],
"tool_call": {
"name": "refund_payment",
"arguments": {"payment_id": "pay_123"},
},
}
result = decider.decide(state, [route, risky, done])
print(result["route"].distribution)
print(result["risky"].p_true)
print(result["done"].value)
print(result.level)Usambazaji wa njia unaweza, kwa mfano, kuoanisha kila chaguo lililotolewa na uwezekano wake. Maamuzi ya boolean hutoa p_true, huku maamuzi ya alama yakitoa value. Matokeo ya jumla huripoti L0 wakati hakuna kibaki cha kiwango cha juu kinachopatikana.
Uwezekano unapaswa kutafsiriwa kulingana na kiwango chake. L0 huboresha uthabiti na kusahihisha upendeleo wa lebo uliokadiriwa, lakini haifanyi kutokuwa na uhakika kurekebishwa kikamilifu.
Ongeza Urekebishaji wa L1
Ikiwa una takriban hali 100–500 zenye lebo kwa swali, ita calibrate ili kufitisha halijoto ya L1:
decider.calibrate(risky, states, labels)L1 hurekebisha uwezekano unaozalishwa juu ya L0. Haibadilishi jibu lililo katika nafasi ya kwanza, lakini inaweza kufanya vizingiti vya ujasiri viwe na maana zaidi.
Fitisha Kichwa cha L2 cha Umbo Lililofungwa
Kwa usahihi wa juu zaidi, tengeneza kichwa cha L2 kinacholenga swali kwa kutumia takribani mifano 100–300 yenye lebo:

decider.fit_head(route, states, labels)
decider.save_artifacts("qwen3-8b.json")Uundaji huu hupitisha modeli mara moja juu ya mifano, kisha hutatua kichwa kwa njia ya fomula iliyofungwa. Hautumii gradienti wala kubadilisha uzani wa modeli ya lugha. Kulingana na mradi, kwa kawaida kichwa huwa na ukubwa wa takribani KB 100 na kinaweza kutatuliwa ndani ya sekunde chache kwa modeli ndogo za Qwen3 zinazoungwa mkono.
Pakia vizalia vilivyohifadhiwa katika mchakato wa baadaye, kisha omba uteuzi wa kiwango kiotomatiki:
decider.load_artifacts("qwen3-8b.json")
result = decider.decide(state, [route], level="auto")
print(result["route"].level)Kwa level="auto", AnyJev hutumia L2 wakati kichwa kinachooana kinaweza kuelekeza swali. Vinginevyo, hurudi kwenye L1 ikiwa urekebishaji upo, kisha kwenye L0.
Kusanya Lebo Hatua kwa Hatua
AnyJev inaweza kupokea lebo zinapowasili kutoka kwenye foleni ya ukaguzi, matokeo yaliyoonekana, au chanzo kingine cha mrejesho:
decider.observe(route, state, correct_label)Mzunguko wa kiotomatiki wa mradi hutatua kichwa baada ya uchunguzi 30, kisha hukitatua tena kwenye viwango vya uchunguzi 60, 120, na hatua zinazofuata. Hii huwezesha mzunguko wa uwekaji ambapo swali jipya huanza kwenye L0 na kuhamia L2 baada ya kukusanywa kwa mrejesho wa kutosha.
Utabiri wa Kundi
Unapotumia swali moja kwa hali nyingi, tumia API ya kundi badala ya kuita decide mara kwa mara:
results = decider.decide_batch(states, route)Hii ndiyo kiolesura kinachokusudiwa kuchakata pembejeo nyingi kwa kutumia swali moja lenye aina maalum.
Jaribu Onyesho Lililofungwa
Ukiwa kwenye nakala ya hazina, endesha onyesho la sintetiki bila kupakua modeli:
python -m demo.jev_mode --backend fakeIli kuiga mzunguko wa uwekaji, ongeza chaguo la mzunguko:
python -m demo.jev_mode --backend fake --lifecycleOndoa --backend fake ili kuendesha onyesho halisi la Qwen3 lenye vichwa vilivyosafirishwa pamoja na mradi.
Vidokezo vya Juu vya Uwekaji
Dumisha utambulisho thabiti wa swali
L2 huundwa kwa kila swali na modeli. Seti mpya ya chaguo huhitaji lebo mpya na kichwa kipya. Kuandika upya swali lilelile au kubadilisha mpangilio wa chaguo zilezile kunaweza kuelekeza kwenye kichwa kilichopo.
Tumia trafiki isiyo na lebo kwa urekebishaji wa maneno
Kwa maswali yaliyoandikwa upya, AnyJev inaweza kuweka upya wastani wa vipengele vya kichwa na kipimo chake kwa kutumia takribani maombi 30 yasiyo na lebo. Urekebishaji huu unahusu maneno ya swali na mpangilio wa chaguo; hautambui mabadiliko katika hali za programu zenyewe.
Fuatilia mabadiliko halisi ya data
Kwa kuwa mabadiliko ya mgawanyo wa hali hayaonekani kwa utaratibu wa kuweka upya wastani, hifadhi sehemu ya tathmini yenye lebo inayosasishwa mara kwa mara na ukague utendaji kwa sampuli. Usichukulie urekebishaji wa maneno kuwa mbadala wa ufuatiliaji wa uzalishaji.
Weka masharti ya vitendo kulingana na kiwango cha uamuzi
Kila uamuzi hubeba kiwango chake. Mifumo ya chini inaweza kukikagua kabla ya kutekeleza kitendo nyeti, na mradi pia unaunga mkono kulazimisha viwango kwa require=. Hii huzuia mchakato ulioundwa kwa ajili ya maamuzi yaliyorekebishwa au ya L2 kutenda kimya kimya kwa matokeo ya kurudi nyuma.
Chagua vizingiti baada tu ya uthibitishaji
Faida kuu ya urekebishaji ni uwezo wa kutuma visa vyenye uhakika mkubwa kwenye otomatiki huku visa visivyo na uhakika vikipelekwa kwenye ukaguzi wa ziada. Chagua vizingiti kwa kutumia data wakilishi yenye lebo na pima makosa pamoja na wigo unaopatikana, badala ya kudhani kuwa uwezekano unaoonyeshwa unaaminika moja kwa moja.
Vikwazo Muhimu
- Vichwa vya L2 haviwezi kuhamishiwa kwenye swali au modeli msingi tofauti.
- Ni vichwa vya Qwen3 pekee vinavyosafirishwa pamoja na toleo la sasa la mradi.
- L2 huhitaji ufikiaji wa hali zilizofichika, ambao kwa sasa hutolewa kupitia mazingira ya Transformers.
- Urekebishaji hauwezi kuifanya modeli itatue kazi ambayo kimsingi haiwezi kuijibu.
- L0 inaweza kupunguza usahihi wakati lebo moja inatawala sana kipaumbele cha kundi.
- Usomaji wa herufi wa sasa unaunga mkono chaguo zisizozidi 26.
- Makadirio yaliyoripotiwa ya wigo wa hatari wa 5% yanategemea mifano 300, na hivyo yana utofauti mkubwa.
- Usahihi wa maamuzi yenye aina maalum uliochapishwa hupima ulinganifu na LLM mwalimu, wala si ukweli halisi uliothibitishwa kwa kujitegemea.
- Maamuzi yaliyoripotiwa yalitathminiwa yakiwa peke yake badala ya kutathminiwa ndani ya mzunguko kamili wa wakala.
Hitimisho
AnyJev hutoa maendeleo ya kimatendo kutoka kwenye maamuzi yenye aina maalum yasiyo na lebo hadi uwezekano uliorekebishwa na vichwa bora vya hali zilizofichika. Anza na L0, kusanya lebo halisi, ongeza L1 wakati urekebishaji ndiyo kipaumbele, na tengeneza L2 unapohitaji njia sahihi zaidi ya uamuzi inayolenga swali. Hifadhi kiwango kilichoripotiwa, thibitisha vizingiti, na fuatilia sampuli zenye lebo kadiri data ya uzalishaji inavyobadilika.
Kwa maelezo ya utekelezaji na mipango ya sasa, tazama hazina ya AnyJev, mkataba wake wa viwango, nyaraka za vigezo vya utendaji, na ramani ya maendeleo.
