Kaip naudoti apsikabinančius veido transformatorius Python

Kaip Naudoti Apsikabinancius Veido Transformatorius Python



Hugging Face yra pripažinta dirbtinio intelekto bendruomene, kuri yra atvirojo kodo ir teikia visas svarbias sistemas, įrankius, modelius ir architektūras, padedančias bendrauti ar treniruotis su kalbos modeliais (natūralios kalbos apdorojimas). Hugging Face transformatoriai yra kalbos architektūra, kuri padeda teikti iš anksto parengtus kalbos apdorojimo modelius Python. Šie Hugging Face transformatoriai suteikia platų duomenų rinkinių ir daugiasluoksnių API asortimentą, kurie padeda programuotojams lengvai sukurti sąveiką su iš anksto paruoštais modeliais su savo bibliotekos paketais.

Sintaksė

Šiuolaikiniai Hugging Face transformatoriai turi daugybę iš anksto paruoštų modelių. Šie modeliai gali būti taikomi įvairiems kalbų modeliams, kurie išvardyti toliau:

  • Šie transformatoriai gali apdoroti tekstą skirtingomis kalbomis ir atlikti įvairias su tekstu susijusias užduotis, tokias kaip teksto klasifikavimas, klausinėjimas ir atsakymas, teksto vertimas į skirtingas kalbas ir teksto generavimas.
  • Šiuos transformatorius „Hugging Face“ taip pat galime naudoti regėjimu pagrįstoms klasifikavimo užduotims, tokioms kaip objektų aptikimas ir kalbomis pagrįstos užduotys, pvz., kalbėtojų klasifikacija arba kalbos identifikavimas/atpažinimas.

Hugging Face transformatoriai apima TensorFlow, PyTorch, ONNX ir kt. Šių transformatorių paketo diegimo sintaksei naudojame šią komandą:







$ pip įdiegti transformatorius

Dabar bandome išbandyti skirtingus pavyzdžius, kai naudojame Hugging Face transformatoriaus modelius skirtingoms kalbos apdorojimo užduotims atlikti.



1 pavyzdys: teksto generavimas naudojant apsikabinančio veido transformatorius

Šiame pavyzdyje aprašomas transformatorių naudojimo būdas tekstui generuoti. Teksto generavimui naudojame ir importuojame iš transformatoriaus paruoštą teksto generavimo modelį. Transformatorius turi pagrindinę biblioteką, kuri yra žinoma kaip „vamzdynai“. Šie dujotiekiai veikia transformatoriams, atliekant visus būtinus išankstinius ir vėlesnius duomenų apdorojimus, kurie turi būti pateikti iš anksto paruoštiems modeliams kaip įvestis.



Pavyzdžio kodavimą pradedame pirmiausia įdiegdami „transformatorių“ bibliotekos paketą „Python“ terminale. Norėdami atsisiųsti transformatoriaus paketą, naudokite „pip install su paketo pavadinimu, ty transformatorius“. Atsisiuntę ir įdiegę transformatoriaus paketą, mes judame į priekį importuodami „vamzdynų“ paketą iš transformatoriaus. Dujotiekis naudojamas duomenims apdoroti prieš pateikiant juos į modelį.





Importuojame „pprint“ iš pprint. Šis paketas įdiegtas norint spausdinti teksto generavimo modelio išvestį lengviau skaitoma, struktūrizuota ir geriau suformatuota forma. Priešingu atveju, jei naudosime funkciją „print()“, ji rodo išvestį vienoje eilutėje, kuri nėra gerai suformatuota ir lengvai skaitoma. Teksto generavimo modeliai padeda sugeneruoti arba pridėti prie teksto daugiau teksto, kurį iš pradžių pateikėme modeliui kaip įvestį.

Norėdami iškviesti apmokytą modelį iš transformatoriaus, naudojame funkciją pipeline(), kurios įvestis yra du parametrai. Pirmasis nurodo pasirinktos užduoties pavadinimą, o antrasis yra modelio pavadinimas iš transformatoriaus. Pagal šį scenarijų pasirinkta užduotis yra teksto generavimas. Iš anksto paruoštas modelis, kurį naudojame iš transformatoriaus, yra „gpt“.



Panaudoję konvejerio funkciją, nusprendžiame, kokią įvestį norime suteikti savo modeliui, kad sugeneruotume jam papildomą tekstą. Tada perduodame šią įvestį funkcijai „task_pipeline()“. Ši funkcija sukuria modelio išvestį, įvesdama įvestį, didžiausią išvesties ilgį ir sakinių skaičių, kurį išvestis turi turėti kaip įvesties parametrus.

Pateikiame įvestį kaip „Tai yra kalbos modelis“. Mes nustatome maksimalų išvesties ilgį iki „30“, o sakinių skaičių išvestyje – „3“. Dabar tiesiog iškviečiame funkciją pprint(), kad būtų rodomi rezultatai, sugeneruoti iš mūsų modelio.

!pip įdiegti transformatoriai

iš transformatorių importo vamzdyno
iš pprint importuoti pprint

SELECTED_TASK = 'teksto generavimas'
MODEL = 'gpt2'
užduotis = vamzdynas (f'{SELECTED_TASK}', modelis = MODEL)

INPUT = 'Tai kalbos modelis'
OUTt_put = užduotis (INPUT, maksimalus_ilgis = 30, grąžinimo_sekų skaičius = 3)

pprint (OUT_put)

Iš anksčiau minėto kodo fragmento ir išvesties matome, kad modelis generuoja papildomą informaciją / tekstą, susijusią su įvestimi, kurią jam pateikėme.

2 pavyzdys: teksto klasifikavimas naudojant transformatorių vamzdynus

Ankstesnis pavyzdys apėmė metodą, kaip generuoti papildomą tekstą, susijusį su įvestimi naudojant transformatorius ir jų paketinius vamzdynus. Šiame pavyzdyje parodyta, kaip atlikti teksto klasifikaciją su konvejeriais. Teksto klasifikavimas – tai įvesties, kuri yra įvedama į modelį kaip konkrečios klasės narys, identifikavimo procesas, pvz. teigiamas ar neigiamas.

Pirmiausia iš transformatorių importuojame vamzdynus. Tada mes vadiname funkciją „pipeline ()“. Modelio pavadinimą, kuris, mūsų atveju, yra „teksto klasifikavimas“, perduodame jo parametrams. Kai modelis bus nurodytas naudojant konvejerį, dabar galime pavadinti jį „klasifikatoriumi“. Iki šio momento numatytasis teksto klasifikavimo modelis atsisiunčiamas į mūsų pagrindinį kompiuterį. Dabar mes galime naudoti šį modelį savo užduočiai.

Taigi, importuokite Pandas kaip „pd“. Norime importuoti šį paketą, nes norime išspausdinti modelio išvestį DataFrame pavidalu. Dabar mes nurodome tekstą, kurį norime pateikti savo modeliui kaip įvestį, kad klasifikuotume jį kaip teigiamą arba neigiamą sakinį. Mes nustatėme tekstą kaip „Aš esu geras vaikinas“. Šį tekstą perduodame klasifikatoriaus () modeliui, kurį ką tik sukūrėme šiame pavyzdyje, ir išsaugome rezultatus „išvesties“ kintamajame.

Norėdami parodyti išvestį, vadiname Pandas priešdėlį, ty pd kaip '.Dataframe()' ir perduodame klasifikatoriaus modelio išvestį šiai funkcijai. Dabar rodomi klasifikatoriaus modelio rezultatai, kaip parodyta kitame išvesties fragmente. Mūsų klasifikatoriaus modelis klasifikuoja tekstą kaip teigiamą klasę.

!pip įdiegti transformatoriai
iš transformatorių importo vamzdyno
importuoti pandas kaip pd
klasifikatorius = pipeline('text-classification',modelis = 'textattack/distilbert-base-uncased-CoLA')
tekstas = 'Aš esu geras vaikinas'
rezultatas = klasifikatorius (tekstas)
pprint (rezultatas)
df = pd.DataFrame(rezultatas)

Išvada

Šis vadovas apėmė Hugging Face transformatoriaus architektūrą. Aptarėme Hugging Face transformatoriaus „vamzdyno“ biblioteką. Tada šios bibliotekos pagalba panaudojome iš anksto paruoštus transformatorių modelius teksto generavimo ir klasifikavimo užduotims atlikti.