Ruka hadi maudhui makuu
Mafunzo ya AI

Panga Matokeo ya CLI Ndani kwa Verdict

Jifunze jinsi ya kusakinisha Verdict, kupanga matokeo ya amri kupitia Python au CLI, kuelewa lebo zake nne za matokeo, na kuunganisha modeli yake ya ndani ya KB 197 kwenye mawakala wa uandishi wa msimbo na mitiririko ya CI bila kubadilisha uthibitishaji wa kubainisha.

Panga Matokeo ya CLI Ndani kwa Verdict

Verdict Hufanya Nini

Verdict ni hakiki ya utafiti ya safu ya kisemantiki ya matokeo kwa mawakala wa uandishi wa msimbo, waendeshaji wa CI, na mifumo mingine inayotumia zana. Badala ya kuchukulia msimbo wa kutoka wa mchakato kuwa ushahidi wa mwisho, huchunguza amri, msimbo wa kutoka, matokeo ya kawaida, na makosa ya kawaida kwa pamoja.

Muundo huu hurejesha mojawapo ya lebo nne: success, failure, blocked, au unknown. Tofauti hii ni muhimu kwa sababu amri inaweza kutoka na msimbo sifuri bila kuendesha majaribio yoyote, kurudisha jibu la HTTP 500, kusubiri mfanyakazi, au kutoa matokeo yasiyokamilika. Vivyo hivyo, msimbo usio sifuri unaweza kuashiria kizuizi cha mazingira badala ya dai lililoshindikana.

Muhimu: Verdict ni kiainishaji cha ushauri. Hithibitishi kuwa kazi imekamilika au kwamba mazingira yamebadilika kama ilivyokusudiwa. Endelea kutumia ukaguzi wa kiamua na uthibitishaji wa hali halisi wenye mamlaka kama chanzo cha ukweli.

Vipengele Muhimu

  • Utabiri wa ndani: Ingizo huchakatwa kwenye CPU ya ndani bila miito ya mtandao au telemetria.
  • Muundo mdogo: Muundo uliopunguzwa ukubwa una takribani KB 197.
  • Mazingira ya utekelezaji yasiyotegemea vifurushi: Utabiri hutumia maktaba ya kawaida ya Python na hauhitaji faili za tokenizer, GPU, au vitegemezi vya Python zaidi ya kifurushi chenyewe.
  • Uainishaji wa kisemantiki: Muundo huzingatia amri, msimbo wa kutoka, stdout, na stderr badala ya kutegemea msimbo wa kutoka pekee.
  • Utabiri wa haraka: Hifadhi ya msimbo inaripoti muda wa wastani wa utabiri wa 0.54 ms katika mazingira yake ya kipimo yaliyorekodiwa ya Windows 11, AMD64, na Python 3.12.
  • Miingiliano ya Python na CLI: Tumia muundo katika programu au moja kwa moja kutoka kwenye mfululizo wa amri wa shell.
  • Onyesho la kivinjari: Ukurasa wa mradi huendesha uzani huohuo uliopunguzwa ukubwa kwenye kivinjari bila kupakia kumbukumbu za matokeo.

Verdict hutumia 3–5-grams za herufi zilizohashwa na 1–3-grams za maneno pamoja na urejeleaji wa lojistiki wa madaraja mengi. Maingizo yake ni maandishi ya UTF-8, huku kila mkondo wa matokeo ukiwekewa kikomo cha herufi 12,288 kupitia ukataji wa wazi wa mwanzo na mwisho.

Kuelewa Lebo Nne

  • success: Matokeo yana ushahidi chanya kwamba operesheni imekamilika.
  • failure: Operesheni imeendeshwa na kuripoti kushindwa kwa wazi.
  • blocked: Ruhusa, vitegemezi, mtandao, vikomo vya mgao, au mazingira yamezuia utekelezaji.
  • unknown: Ushahidi haupo, haujakamilika, umerukwa, umewekewa kikomo kwenye uendeshaji wa majaribio, au hauwezi kutoa hitimisho kwa njia nyingine.

Uwezekano unaorejeshwa unatokana na muundo wa mstari wa madaraja mengi. Haupaswi kutafsiriwa kama uhakika uliopimwa kwa maamuzi muhimu ya usalama.

Sakinisha Verdict

Nakili hifadhi ya msimbo, ingia kwenye saraka yake, kisha sakinisha kifurushi kwa kutumia pip:

git clone https://github.com/Balanov/verdict.git
cd verdict
python -m pip install .

Hii husakinisha kifurushi cha Python cha verdict_tiny na kiolesura cha mstari wa amri cha verdict.

Endesha Utabiri Wako wa Kwanza wa Python

Unda mfano wa Verdict na uupitishe ushahidi uleule ambao kiendeshaji cha zana yako kiliona. Mfano huu unawakilisha mchakato wa pytest uliofanikiwa ambao kwa kweli haukuendesha majaribio yoyote:

from verdict_tiny import Verdict

model = Verdict()
result = model.predict(
    command="pytest tests/",
    exit_code=0,
    stdout="collected 0 items\nno tests ran in 0.01s",
)
print(result)

Matokeo yaliyoandikwa ya muundo yanaainisha ushahidi huu kama unknown, licha ya msimbo wa kutoka kuwa sifuri:

{
  "label": "unknown",
  "confidence": 0.999981,
  "probabilities": {
    "success": 0.000019,
    "failure": 0.0,
    "blocked": 0.0,
    "unknown": 0.999981
  },
  "advisory": true
}

label ni matokeo yaliyochaguliwa. Kipengee cha probabilities hufichua alama ya kila daraja, huku advisory kikisisitiza kwamba utabiri huo si uthibitisho wenye mamlaka.

Tumia Verdict kutoka kwenye Mstari wa Amri

Unaweza kupitisha matokeo ya amri kwenye Verdict huku ukitoa amri na msimbo wake wa awali wa kutoka:

printf 'collected 0 items\nno tests ran\n' | verdict \
  --command 'pytest tests/' --exit-code 0

Kwa matokeo ambayo tayari yamehifadhiwa kwenye faili, tumia --stdout na --stderr:

verdict \
  --command 'pytest tests/' \
  --exit-code 0 \
  --stdout output.log \
  --stderr error.log

Unaweza pia kupakia uzani kutoka eneo mahususi:

verdict \
  --command 'pytest tests/' \
  --exit-code 0 \
  --stdout output.log \
  --stderr error.log \
  --weights /path/to/verdict-q8.bin

Unganisha Verdict kwa Usalama

Muunganisho wa vitendo unapaswa kuichukulia Verdict kama ishara ya ziada ya kufanya uamuzi, si mwamuzi wa mwisho. Wakala wa uandishi wa msimbo au kiendeshaji cha CI kinaweza kutumia lebo kuamua ikiwa kichunguze ushahidi zaidi, kirudie operesheni, au kiombe ukaguzi wa binadamu.

  1. Endesha amri ya awali na uhifadhi msimbo wake wa kutoka, stdout, na stderr.
  2. Pitisha ushahidi wote unaopatikana kwa Verdict.
  3. Kagua lebo iliyotabiriwa pamoja na uwezekano wa madaraja.
  4. Tumia viwango maalum vya programu kabla ya kuchukua hatua zenye madhara makubwa.
  5. Thibitisha kukamilika kwa ukaguzi wa kiamua, kama vile idadi ya majaribio, faili zilizozalishwa, hali ya API, au rekodi za hifadhidata.

Kwa mfano, matokeo ya unknown kwa kawaida yanapaswa kuchochea uchunguzi zaidi badala ya dai la kukamilika. Matokeo ya blocked yanaweza kuhalalisha kukagua vitambulisho, vitegemezi, muunganisho, ruhusa, au mgao kabla ya kujaribu tena. Matokeo ya success bado yanahitaji uthibitishaji wenye mamlaka wakati usahihi ni muhimu.

Vidokezo vya Juu

Hifadhi Muktadha Kamili wa Utekelezaji

Toa amri halisi, msimbo wa kutoka, stdout, na stderr inapowezekana. Kuacha baadhi ya mitiririko kunaweza kuondoa ushahidi unaotofautisha hitilafu halisi na kizuizi cha mazingira au utekelezaji usio na hitimisho.

Hesabu Ukataji wa Ingizo

Kila mtiririko wa matokeo una kikomo cha vibambo 12,288 kwa kutumia ukataji wa mwanzo na mwisho. Kumbukumbu zinapokuwa kubwa sana, hakikisha ujumbe muhimu unaonekana karibu na mwanzo au mwisho, au fanya uchanganuzi mwingine wa kubainisha wa kumbukumbu kamili.

Weka Vizingiti vya Uamuzi vya Tahadhari

Uwezekano huu si viwango vya kujiamini vilivyopimwa kwa maana ya usalama muhimu. Tumia vizingiti vinavyofaa mtiririko wako wa kazi na peleka hali zisizo na uhakika au zenye madhara makubwa kwenye ukaguzi wa kubainisha au mapitio ya binadamu.

Tumia Uzani Maalum au Uliopakuliwa

Uzani uliotolewa uliopunguzwa huhifadhiwa katika weights/verdict-q8.bin na pia unapatikana kutoka Hugging Face. CLI inakubali njia mbadala ya uzani kupitia --weights.

Jaribu Onyesho la Kivinjari

Ukurasa wa mradi wa Verdict huendesha uzani huohuo uliopunguzwa kwenye kivinjari. Kulingana na nyaraka za mradi, kumbukumbu hazipakiwa.

Rudia Mafunzo na Tathmini

Sakinisha viongezi vya mafunzo na uendelezaji, tengeneza upya mkusanyo sintetiki, fundisha modeli, hamisha uzani wa int8, tathmini kifaa, na endesha majaribio:

python -m pip install -e '.[train,dev]'
python training/train.py
pytest -q

Kipimo cha umma kinatumia mifano sintetiki 192 kutoka familia 48 za CLI ambazo hazikuwepo kwenye mafunzo. Mafunzo yanatumia mifano sintetiki 1,440 kutoka familia 60 tofauti. Modeli iliyopunguzwa iliyoripotiwa ilipata usahihi wa 93.2% na macro-F1 ya 93.2%, ikilinganishwa na usahihi wa 47.9% na macro-F1 ya 31.9% kwa msingi wa msimbo wa kutoka.

Mkusanyo huu ni sintetiki na umeegemea Kiingereza. Vipimo hivi hutathmini violezo vilivyotengwa kwa majaribio, si utegemezi kwenye rekodi za uzalishaji za mawakala, na matokeo ya muda wa kusubiri si ahadi kwa vifaa vyote.

Jua Mipaka ya Mradi

Verdict imewekewa upeo finyu kwa makusudi. Inaainisha ushahidi unaoonekana kwenye matokeo ya CLI, lakini haiamui ikiwa kazi pana imekamilika. Pia haithibitishi usahihi wa msimbo, usalama, au ukweli.

Kwa hiyo, mradi huu hutumika vyema kama safu ya kisemantiki kati ya utekelezaji ghafi wa mchakato na hatua inayofuata ya wakala. Unaweza kubaini ushahidi ambao msimbo wa kutoka hukosa, lakini unapaswa kukamilisha, si kuchukua nafasi ya, majaribio, ukaguzi wa hali, kanuni za uthibitishaji, na uamuzi wa binadamu.

Hitimisho

Verdict hutoa njia ndogo, ya haraka na ya ndani ya kutafsiri matokeo ya CLI kwa uangalifu zaidi kuliko ukaguzi unaotegemea msimbo wa kutoka pekee. Isakinishe kama kifurushi cha Python, toa muktadha kamili wa utekelezaji, na tumia lebo zake nne kuongoza hatua za ufuatiliaji. Kwa otomatiki inayotegemeka, kila mara unganisha matokeo yake ya ushauri na uthibitishaji wa kubainisha na wenye mamlaka.