Ruka hadi maudhui makuu
Mafunzo ya AI

Jenga Vainishaji wa Haraka wa Zero-Shot wa Ndani ukitumia Jeff

Jifunze jinsi ya kupakua na kuendesha Jeff ndani ya kifaa chako, kutuma maombi ya uainishaji yanayooana na Jev, kuchagua kati ya anuwai za miundo yake, kuboresha vidokezo, na kuifanyia marekebisho maalum kwa maamuzi ya kikoa mahususi.

Jenga Vainishaji wa Haraka wa Zero-Shot wa Ndani ukitumia Jeff

Jeff ni nini?

Jeff ni familia ya miundo midogo ya Qwen3.5 na Gemma 4 iliyofanyiwa fine-tuning, iliyoundwa kwa uainishaji wa haraka wa zero-shot. Unatoa hali iliyoelezwa kwa lugha ya kawaida, unaainisha chaguo zinazopatikana, na unapokea uwezekano uliopimwa kwa kila chaguo kupitia upitishaji mmoja wa mbele.

Tofauti na muundo wa kawaida wa kuzalisha, Jeff haitoi maandishi ya maelezo ambayo programu yako inapaswa kuchanganua. Imekusudiwa kufanya maamuzi ya moja kwa moja kwa kazi kama vile kuelekeza maombi ya usaidizi, kutambua dhamira, udhibiti wa maudhui, amri za sauti, na hatua za mchezo. Kategoria hazihitaji kuwa ziliwahi kuonekana katika data yake ya mafunzo, mradi tu uzieleze kwa uwazi.

Jeff hutumia muundo wa ombi sawa na Jev, lakini ni mradi huru na hauhusiani wala haujaidhinishwa na TypeSafe. Msimbo wake wa mafunzo unatokana na kichocheo cha chanzo huria cha AutoJev.

Sifa kuu

  • Uendeshaji wa haraka wa ndani: Jeff-Qwen3.5-0.8B huchukua takriban ms 22 kwa kila uamuzi kwenye RTX PRO 6000 na ms 28 kwenye Apple M4 Max ikitumia MLX katika kipimo cha utendaji kilichoripotiwa.
  • Matokeo yaliyopimwa: Kila uamuzi unajumuisha uwezekano, chaguo lililochaguliwa, na kiwango cha kujiamini.
  • Kategoria za zero-shot: Chaguo hufafanuliwa wakati wa ombi badala ya kuzuiwa kwa seti maalum ya lebo.
  • Aina tatu za maswali: Tumia maswali ya choice, noul, au score.
  • Uchanganyaji wa maombi: Maswali kadhaa huru kuhusu hali ileile yanaweza kujibiwa pamoja.
  • Mifumo ya ndani: Endesha kwa PyTorch kwenye GPU au CPU za NVIDIA, au tumia MLX na muundo wa Qwen kwenye Apple silicon.
  • Ubadilishaji wa kikoa: Fanya fine-tuning ya checkpoint ya Jeff wakati utendaji wa zero-shot hautoshi.

Chagua muundo

Jeff inatoa checkpoints tatu za miundo kwenye Hugging Face:

  • Jeff-Qwen3.5-0.8B: muundo wenye vigezo bilioni 0.8 na uzani wa GB 1.7 wa biti 16. Ni chaguo linalopendekezwa kwa uteuzi wa haraka wa chaguo.
  • Jeff-Qwen3.5-2B: muundo wenye vigezo bilioni 2 na uzani wa GB 4.2 wa biti 16. Una alama ya juu zaidi kwa ujumla kwenye paneli ya vipimo iliyoripotiwa, lakini ni wa polepole na wenye tahadhari zaidi.
  • Jeff-Gemma4-E2B: muundo wenye vigezo bilioni 2 vinavyofanya kazi, vigezo bilioni 4.6 vilivyohifadhiwa, na uzani wa GB 9.3 wa biti 16. Mfumo wa MLX wa mradi huu unaunga mkono miundo ya Qwen pekee.

Kwa usambazaji wa awali, anza na Jeff-Qwen3.5-0.8B. Hamia kwenye checkpoint nyingine baada tu ya kuutathmini kwa mifano wakilishi kutoka kwenye programu yako.

Sakinisha na pakua Jeff

Hazina hutumia uv kusawazisha vitegemezi na kuendesha amri. Kutoka kwenye saraka ya mradi, sakinisha vitegemezi vya chaguo-msingi na upakue checkpoint ya 0.8B:

uv sync
uv run hf download mstrasser/Jeff-Qwen3.5-0.8B --local-dir checkpoints/jeff-0.8b

Checkpoint itawekwa kwenye checkpoints/jeff-0.8b. Unaweza kubadilisha hazina ya Hugging Face na saraka ya ndani ikiwa ungependa kutumia muundo mwingine uliochapishwa.

Endesha kwa PyTorch

Kwa GPU ya NVIDIA au CPU, anzisha seva kwa mfumo chaguo-msingi wa PyTorch:

JEFF_CHECKPOINT=checkpoints/jeff-0.8b PORT=8765 uv run jeff-serve

Endesha kwenye Apple silicon kwa MLX

Kwenye Mac inayooana, sakinisha vitegemezi vya ziada vya Mac na uchague mfumo wa MLX. Uendeshaji wa MLX unapatikana kwa checkpoints za Qwen:

uv sync --extra mac
JEFF_BACKEND=mlx JEFF_CHECKPOINT=checkpoints/jeff-0.8b PORT=8765 uv run jeff-serve

Amri zote mbili hufanya huduma ipatikane ndani ya kifaa kwenye porti 8765.

Tuma ombi lako la kwanza la uainishaji

Ombi lina state inayoeleza hali na kitu cha questions kinachofafanua uamuzi mmoja au zaidi. Mfano ufuatao unamwomba Jeff kuelekeza ujumbe wa mteja na kwa kujitegemea kukadiria ikiwa mteja amekasirika:

curl -s localhost:8765/v1/systemone \
  -H 'content-type: application/json' \
  -d '{
    "model": "jeff-latest",
    "state": "Ombi la kurejeshewa fedha: mteja anasema kifurushi kiliwasili kikiwa kimepondwa na anataka arudishiwe fedha zake.",
    "questions": {
      "route": {
        "type": "choice",
        "instructions": "Ni timu gani inapaswa kushughulikia hili?",
        "criteria": {
          "1": "Marejesho ya fedha na malipo",
          "2": "Vifurushi vilivyoharibika au kupotea",
          "3": "Matatizo ya akaunti na kuingia"
        }
      },
      "angry": {
        "type": "noul",
        "instructions": "Je, mteja amekasirika?"
      }
    }
  }'

Jeff hutathmini maswali yote mawili katika ombi moja. Kila jibu hutoa uwezekano, chaguo lililochaguliwa, na thamani ya kujiamini. Programu yako inaweza kutumia jibu lililochaguliwa moja kwa moja au kutumia kizingiti chake cha kujiamini.

Elewa aina za maswali

Choice

Swali la choice huchagua moja kati ya chaguo zisizozidi 255. Weka vitambulisho vifupi kwenye criteria na utumie thamani zinazohusiana kueleza maana ya chaguo hizo.

"route": {
  "type": "choice",
  "instructions": "Ni timu gani inapaswa kushughulikia hili?",
  "criteria": {
    "1": "Marejesho ya fedha na malipo",
    "2": "Vifurushi vilivyoharibika au kupotea",
    "3": "Matatizo ya akaunti na kuingia"
  }
}

Noul

Swali la noul huwakilisha uamuzi wa ndiyo-au-hapana unaorejeshwa kama uwezekano. Linafaa kwa ukaguzi kama vile ikiwa ujumbe una hasira, ni wa dharura, si salama, au unahusiana.

"angry": {
  "type": "noul",
  "instructions": "Is the customer angry?"
}

Alama

Swali la score huweka jibu kwenye kipimo unachokieleza. Litumie wakati programu inahitaji tathmini ya viwango badala ya lebo ya kategoria.

Andika vidokezo bora vya maamuzi

Maneno ya kidokezo yana athari kubwa kwa vianishi vidogo. Mbinu zifuatazo ni muhimu hasa unapotumia Jeff.

  1. Fikiri kwa msimbo na amua kwa Jeff. Kokotoa sheria za kiashiria, hali zijazo, na matokeo ya hatua nyingi katika programu yako. Mpe Jeff hali inayotokana na hayo ili afanye uamuzi wa mwisho.
  2. Eleza matokeo moja kwa moja. Badala ya kuomba modeli itabiri kwamba gari litafika baada ya zamu mbili, sema kwamba hatua fulani itasababisha kugongwa na gari.
  3. Weka maelezo ya chaguo katika muundo unaolingana. Chaguo zitumie muundo unaofanana na kiwango cha maelezo kinacholinganishwa. Maneno yasiyolingana yanaweza kupendelea uamuzi fulani.
  4. Tumia funguo fupi za chaguo. Pendelea {"1": "Engagement letter"} badala ya kitambulisho kirefu cha ndani. Funguo ndefu huongeza gharama ya uchakataji bila kuboresha maelezo ya chaguo.
  5. Unganisha maswali huru. Ikiwa maamuzi kadhaa yanashiriki hali ileile, yatume katika ombi moja badala ya kurudia ingizo.
  6. Jaribu data wakilishi. Matokeo ya vigezo vya ulinganishaji ni muktadha muhimu, lakini hayahakikishi utendaji kwenye mtiririko mahususi wa kazi.

Jeff ni kiainishi, si mpangaji. Hufanya kazi vizuri zaidi wakati msimbo wako unaandaa mambo muhimu na modeli inachagua kati ya njia mbadala zilizoelezwa wazi.

Utendaji na vikwazo

Kwenye vigezo vitano vya ulinganishaji vya umma, Jeff-Qwen3.5-0.8B ilipata 79.1, Jeff-Qwen3.5-2B ilipata 83.1, na Jeff-Gemma4-E2B ilipata 81.6 katika tathmini ya mradi. Matokeo ya Qwen 2B yalikuwa karibu na takwimu ya jumla iliyochapishwa ya Jev ya 83.0, ingawa takwimu za Jev na AutoJev zilipimwa kwenye sampuli tofauti za vigezo hivyo hivyo.

Ulinganisho wa usahihi wa vigezo vya modeli ya Jeff

Matokeo hutofautiana kwa kiasi kikubwa kulingana na kazi. Jeff hufanya vizuri kwenye tathmini kadhaa za uainishaji na ulinganishaji wa msingi, zikiwemo Financial PhraseBank na RAGTruth, lakini bado iko chini ya mifumo mikubwa kwenye vigezo vinavyohitaji zaidi hoja kama BBH, JudgeBench, na kiwango kigumu cha JevBench.

Muda wa wastani ulioripotiwa wa uelekezaji kwa maingizo ya takriban tokeni 200 ulikuwa 22 ms kwenye RTX PRO 6000, 28 ms kwenye M4 Max yenye MLX, na 463 ms kwenye CPU yenye nyuzi 32 kwa modeli ya 0.8B. Nambari hizi zinategemea maunzi mahususi na zinapaswa kupimwa tena katika uwekaji wako.

Jaribu mfumo wa michezo

Hazina inajumuisha majaribio ya Doom, Frogger, na Pac-Man yanayoonyesha maamuzi kuhusu hatua halali zinazofafanuliwa kwa nguvu. Sakinisha vitegemezi vya hiari vya michezo kabla ya kuyaendesha:

uv sync --extra games

Ukiwa na seva ya Jeff inayoendesha tayari, unaweza kuanzisha tathmini za Doom na Frogger zilizotolewa:

uv run python -m jeff.games --game doom --player jeff --criteria situation --url http://127.0.0.1:8765 --video --out runs/games/doom.json
uv run python -m jeff.games --game frogger --player jeff --criteria outcomes --url http://127.0.0.1:8765 --out runs/games/frogger.json

Unaweza pia kuendesha mchezaji wa Pac-Man wa kanuni za sheria kwa kulinganisha:

uv run python -m jeff.games --game pacman --player rule --out runs/games/pacman-rule.json

Majaribio haya pia yanaonyesha kikwazo muhimu: viwango vya vigezo vya ulinganishaji si lazima vitabiri utendaji katika michezo shirikishi. Katika matokeo yaliyochapishwa, modeli ya Jeff ya 0.8B ilicheza michezo vizuri zaidi kuliko modeli ya Jeff ya 2B katika baadhi ya hali, licha ya modeli ya 2B kuwa na alama ya juu zaidi kwa jumla kwenye vigezo.

Fanya urekebishaji maalum wa Jeff kwa kikoa chako

Ikiwa usahihi wa zero-shot hautoshi, anza na checkpoint ya Jeff na uifunze kwa mifano kutoka kwenye programu yako. README inaripoti kwamba urekebishaji maalum wa urambazaji wa sauti kwa kutumia takriban mifano 11,000 mahususi ya programu uliboresha usahihi kwenye data iliyotengwa kutoka 31.7% hadi 95.8% kwa takriban nusu saa kwenye GPU moja.

autojev-train --initial-checkpoint <jeff> --epochs 1 ...

Hazina pia hutoa mtiririko wake mpana wa mafunzo. Mfuatano wa kawaida huunda mchanganyiko wa data, huendesha mafunzo, na hutathmini checkpoint iliyochaguliwa:

uv run autojev-mix ...
scripts/train.sh RUN data/mix/public.jsonl data/mix 5e-6 40 Qwen/Qwen3.5-0.8B <revision> --epochs 1
uv run autojev-evaluate --data data/panel.jsonl --local --checkpoint checkpoints/RUN/selected --output runs/eval/RUN.json

Mbinu iliyochapishwa hutumia urekebishaji kamili wa uzani kwa enzi moja, mafungu ya 256, entropia mtambuka juu ya herufi za chaguo, na halijoto iliyolinganishwa kwa ajili ya urekebishaji wa uwezekano. Checkpoint huchaguliwa kwa kutumia seti ya uendelezaji badala ya jopo la vigezo vya ulinganishaji.

Kwa mtiririko kamili wa ndani wa data sanisi, uchujaji wa uvujaji, majaribio ya viwango vya ujifunzaji, na mtiririko wa dashibodi, soma scripts/train_all.sh. Mradi unaandika vyanzo vya mafunzo na leseni zake katika docs/data-sources.md.

Vidokezo vya kina vya uwekaji

  • Pima urekebishaji wa vipimo kwa data yako mwenyewe. Muundo wa jumla uliorekebishwa bado unaweza kuhitaji vizingiti maalum vya programu kwa ajili ya kupandisha ombi au kutumia tabia ya mbadala.
  • Ongeza mbadala salama. Uhakika unapokuwa mdogo sana, elekeza ombi kwa mtu, kanuni bainifu, au muundo wenye uwezo zaidi.
  • Weka hali kwa ufupi. Toa ukweli unaohitajika kwa uamuzi na epuka maandishi yasiyohusiana ambayo yanaweza kuvuruga muundo mdogo.
  • Tathmini matoleo ya maneno. Linganisha miundo kadhaa thabiti ya maelekezo na vigezo kabla ya kuweka schema ya uzalishaji.
  • Chagua miundo kwa majaribio. Tumia muundo wa 0.8B kwa uteuzi wa chaguo unaozingatia ucheleweshaji, lakini jaribu checkpoint zote zinazofaa dhidi ya seti yako ya uthibitishaji.
  • Heshimu mipaka ya aina ya data. Kulingana na README, Jeff inaunga mkono maandishi ya Kiingereza pekee.

Hitimisho

Jeff hutoa njia ya vitendo ya kuongeza maamuzi ya haraka, ya ndani na yanayotegemea uwezekano kwenye programu bila kuzalisha au kuchanganua maandishi huru. Anza na Jeff-Qwen3.5-0.8B, eleza kila chaguo kwa uwazi, unganisha maswali huru kwenye ombi moja, na tathmini kwa mifano halisi ya programu. Tabia ya zero-shot isipotosha, fanya fine-tune ya checkpoint iliyopo ya Jeff kwa data maalum ya kikoa.