Kuidas kasutada Pythonis kallistavaid näotransformereid

Kuidas Kasutada Pythonis Kallistavaid Naotransformereid



Hugging Face on tunnustatud kui tehisintelligentne kogukond, mis on avatud lähtekoodiga ja pakub kõiki olulisi raamistikke, tööriistu, mudeleid ja arhitektuure, mis aitavad keelemudelitega suhelda või nendega treenida (loomuliku keele töötlemine). Hugging Face transformers on keelearhitektuur, mis aitab Pythonis pakkuda eelkoolitatud keeletöötlusmudeleid. Need Hugging Face'i trafod pakuvad laias valikus andmekogumeid ja kihilisi API-sid, mis aitavad programmeerijatel hõlpsasti luua interaktsiooni eelkoolitatud mudelitega koos oma teegipakettidega.

Süntaks

Kaasaegsetel Hugging Face trafodel on suur valik eelkoolitatud mudeleid. Neid mudeleid saab rakendada erinevatele keelemudelitele, mis on loetletud järgmises.

  • Need transformaatorid võivad töödelda teksti erinevates keeltes ja täita tekstiga erinevaid ülesandeid, nagu teksti liigitamine, küsimine ja vastamine, teksti tõlkimine erinevatesse keeltesse ja teksti genereerimine.
  • Me võime neid trafosid Hugging Face'is kasutada ka nägemispõhiste klassifitseerimisülesannete jaoks, nagu objektide tuvastamine ja kõnepõhised ülesanded, nt. kõneleja klassifikatsioon või kõne tuvastamine/tuvastus.

Hugging Face'i trafode hulka kuuluvad TensorFlow, PyTorch, ONNX jne. Nende trafode paketi installimise süntaksiks kasutame järgmist käsku:







$ pip paigalda trafod

Nüüd proovime proovida erinevaid näiteid, kus kasutame Hugging Face trafo mudeleid erinevate keeletöötlusülesannete jaoks.



Näide 1: Teksti loomine kallistava näo transformerite abil

See näide hõlmab meetodit trafode kasutamiseks teksti genereerimiseks. Teksti genereerimiseks kasutame ja impordime trafost eelnevalt koolitatud teksti genereerimise mudelit. Trafol on põhiteek, mida nimetatakse torujuhtmeteks. Need torujuhtmed töötavad trafode jaoks, tehes kogu eel- ja järeltöötluse andmetele, mis on nõutavad eelkoolitatud mudelitele sisendina sisestamiseks.



Näite kodeerimist alustame esmalt Pythoni terminali 'transformaatorite' teegipaketi installimisega. Trafo paketi allalaadimiseks kasutage käsku 'pip install koos paketi nimega, st trafo'. Kui oleme trafo paketi alla laadinud ja installinud, liigume edasi, importides trafost torujuhtmete paketi. Konveierit kasutatakse andmete töötlemiseks enne nende mudelisse sisestamist.





Impordime pprintist “pprint”. See pakett on installitud teksti genereerimise mudeli väljundi trükkimiseks loetavamal, struktureeritumal ja paremini vormindatud kujul. Vastasel juhul, kui kasutame funktsiooni 'print()', kuvab see väljundi ühel real, mis pole hästi vormindatud ja kergesti loetav. Teksti genereerimise mudelid aitavad luua või lisada tekstile rohkem teksti, mille me algselt mudelile sisendiks andsime.

Treenitud mudeli kutsumiseks trafost kasutame funktsiooni pipeline(), mille sisendiks on kaks parameetrit. Esimene määrab valitud ülesande nime ja teine ​​on mudeli nimi trafost. Selle stsenaariumi korral on valitud ülesanne teksti genereerimine. Eelkoolitatud mudel, mida me trafost kasutame, on 'gpt'.



Pärast konveieri funktsiooni kasutamist otsustame sisendi, mille tahame oma mudelile anda, et genereerida selle jaoks lisateksti. Seejärel edastame selle sisendi funktsioonile „task_pipeline()”. See funktsioon loob mudeli jaoks väljundi, võttes sisendi, väljundi maksimaalse pikkuse ja lausete arvu, mis väljundis peaks olema sisendparameetritena.

Anname sisendiks 'See on keelemudel'. Väljundi maksimaalseks pikkuseks fikseerime “30” ja väljundis olevate lausete arvuks “3”. Nüüd kutsume lihtsalt funktsiooni pprint(), et kuvada meie mudelist genereeritud tulemused.

!pip install trafod

trafode imporditorustikust
pprintist import pprint

SELECTED_TASK = 'teksti genereerimine'
MUDEL = 'gpt2'
ülesanne = konveier(f'{SELECTED_TASK}', mudel = MUDEL)

INPUT = 'See on keelemudel'
OUT_put = ülesanne (SISEND, maksimaalne_pikkus = 30, tagastamise_jadade arv = 3)

pprint(OUT_put)

Eelnevalt mainitud koodilõigu ja väljundi põhjal näeme, et mudel genereerib lisateavet/teksti, mis on asjakohane sellele sisestatud sisendile.

Näide 2: Teksti klassifitseerimine trafode torujuhtmete abil

Eelmises näites käsitleti meetodit sisendi jaoks asjakohase lisateksti genereerimiseks trafode ja nende pakettide torustike abil. See näide näitab meile, kuidas konveieridega teksti klassifitseerida. Teksti klassifitseerimine on protsess, mille käigus identifitseeritakse sisend, mis on mudelisse antud konkreetse klassi liikmena, nt. positiivne või negatiivne.

Esmalt impordime trafodest torujuhtmed. Seejärel kutsume funktsiooni 'pipeline()'. Anname selle parameetritele edasi mudeli nime, mis meie puhul on 'teksti klassifikatsioon'. Kui mudel on torujuhtme abil täpsustatud, võime seda nüüd nimetada 'klassifikaatoriks'. Kuni selle hetkeni laaditakse meie hostmasinasse alla tekstiklassifikatsiooni vaikemudel. Nüüd saame seda mudelit oma ülesande täitmiseks kasutada.

Niisiis, importige Pandad kui 'pd'. Soovime selle paketi importida, kuna tahame printida mudeli väljundi DataFrame'i kujul. Nüüd täpsustame teksti, mille tahame oma mudelile sisendina anda, et klassifitseerida see positiivseks või negatiivseks lauseks. Panime tekstiks 'Ma olen hea mees'. Edastame selle teksti klassifikaatori() mudelile, mille me just selles näites lõime, ja salvestame tulemused muutujasse 'väljund'.

Väljundi kuvamiseks kutsume Panda prefiksi, st pd kui “.Dataframe()” ja edastame klassifikaatori mudeli väljundi sellele funktsioonile. See kuvab nüüd klassifikaatori mudeli tulemused, nagu on näidatud järgmises väljundi lõigus. Meie klassifikaatori mudel liigitab teksti positiivsesse klassi.

!pip install trafod
trafode imporditorustikust
importida pandad pd-na
klassifikaator = pipeline('teksti klassifikatsioon',mudel = 'textattack/distilbert-base-uncased-CoLA')
text = 'ma olen hea mees'
tulemus = klassifikaator (tekst)
pprint(tulemus)
df = pd.DataFrame(tulemus)

Järeldus

See juhend käsitles Hugging Face'i trafo arhitektuuri. Arutasime Hugging Face trafo 'torujuhtme' teeki. Seejärel kasutasime selle teegi abil teksti genereerimise ja klassifitseerimise ülesannete jaoks eelkoolitatud trafode mudeleid.