Kuinka käyttää halaavia kasvomuuntajia Pythonissa

Kuinka Kayttaa Halaavia Kasvomuuntajia Pythonissa



Hugging Face on tunnustettu tekoälyyhteisöksi, joka on avoimen lähdekoodin ja joka tarjoaa kaikki tärkeät puitteet, työkalut, mallit ja arkkitehtuurit, jotka auttavat kommunikoimaan tai harjoittelemaan kielimallien kanssa (luonnollinen kielenkäsittely). Hugging Face Transformers on kieliarkkitehtuuri, joka auttaa esiopetettujen kieltenkäsittelymallien tarjoamisessa Pythonissa. Nämä Hugging Facen muuntajat tarjoavat laajan valikoiman tietojoukkoja ja kerrostettuja sovellusliittymiä, joiden avulla ohjelmoijat voivat helposti luoda vuorovaikutuksen esikoulutettujen mallien kanssa kirjastopakettien avulla.

Syntaksi

Huippuluokan Hugging Face -muuntajissa on laaja valikoima esikoulutettuja malleja. Näitä malleja voidaan soveltaa eri kielimalleihin, jotka on lueteltu seuraavassa:

  • Nämä muuntajat voivat käsitellä tekstiä eri kielillä ja suorittaa tekstille erilaisia ​​tehtäviä, kuten tekstin luokittelu, kyseenalaistaminen ja vastaaminen, tekstin kääntäminen eri kielille ja tekstin generointi.
  • Voimme myös hyödyntää näitä muuntajia Hugging Facessa visioon perustuvissa luokittelutehtävissä, kuten kohteen havaitsemisessa ja puhepohjaisissa tehtävissä, esim. puhujien luokittelu tai puheen tunnistus/tunnistus.

Hugging Facen muuntajia ovat TensorFlow, PyTorch, ONNX jne. Näiden muuntajien paketin asennuksen syntaksia varten käytämme seuraavaa komentoa:







$ pip asentaa muuntajia

Nyt yritämme kokeilla erilaisia ​​esimerkkejä, joissa käytämme Hugging Face -muuntajan malleja erilaisiin kielenkäsittelytehtäviin.



Esimerkki 1: Tekstin luominen Hugging Face Transformers -muuntajia käyttämällä

Tämä esimerkki kattaa menetelmän käyttää muuntajia tekstin luomiseen. Tekstin luomiseen hyödynnetään ja tuodaan muuntajasta esiopetettua tekstin generointimallia. Muuntajassa on peruskirjasto, joka tunnetaan nimellä 'putkilinjat'. Nämä putkistot toimivat muuntajille tekemällä kaikki tarvittavat esi- ja jälkikäsittelyt tiedoille, jotka on syötettävä esikoulutettuihin malleihin tulona.



Aloitamme esimerkin koodauksen asentamalla ensin 'muuntajien' kirjastopaketin Python-päätteeseen. Lataa muuntajan paketti käyttämällä 'pip asennusta paketin nimellä, eli muuntaja'. Kun olemme ladaneet ja asentaneet muuntajapaketin, siirrymme eteenpäin tuomalla 'pipelines' -paketin muuntajasta. Liukulinjaa käytetään tietojen käsittelemiseen ennen kuin se syötetään malliin.





Tuomme 'pprintin' pprintistä. Tämä paketti on asennettu tulostamaan tekstinluontimallin tuloste luettavammassa, jäsennellymmässä ja paremmin muotoillussa muodossa. Muussa tapauksessa, jos käytämme 'print()'-funktiota, se näyttää tulosteen yhdellä rivillä, joka ei ole hyvin muotoiltu ja helposti luettavissa. Tekstin luontimallit auttavat luomaan tai lisäämään tekstiä tekstiin, jonka alun perin toimitimme malliin syötteenä.

Koulutetun mallin kutsumiseksi muuntajasta käytämme pipeline()-funktiota, jonka syötteenä on kaksi parametria. Ensimmäinen määrittää valitun tehtävän nimen ja toinen on mallin nimi muuntajasta. Tässä skenaariossa valittu tehtävä on tekstin luominen. Esikoulutettu malli, jota hyödynnämme muuntajasta, on 'gpt'.



Liukuhihnafunktion käytön jälkeen päätämme syötteen, jonka haluamme antaa mallillemme luodaksemme sille lisätekstiä. Sitten välitämme tämän syötteen 'task_pipeline()' -funktiolle. Tämä toiminto luo mallin lähdön ottamalla syötteen, lähdön maksimipituuden ja lauseiden lukumäärän, jotka tulosteen syöttöparametreina tulee olla.

Annamme syötteen muodossa 'Tämä on kielimalli'. Asetamme lähdön enimmäispituudeksi '30' ja tulosteen lauseiden lukumääräksi '3'. Nyt kutsumme yksinkertaisesti pprint()-funktiota näyttääksemme mallistamme luodut tulokset.

!pip asennusmuuntajat

muuntajien tuontiputkesta
pprintistä tuonti pprint

SELECTED_TASK = 'tekstin luominen'
MALLI = 'gpt2'
tehtävä = liukuhihna(f'{SELECTED_TASK}', malli = MALLI)

INPUT = 'Tämä on kielimalli'
OUT_put = tehtävä(INPUT, max_length = 30, num_return_sequences = 3)

pprint (OUT_put)

Aiemmin mainitusta koodinpätkästä ja tulosteesta voimme nähdä, että malli luo lisätietoa/tekstiä, joka liittyy siihen syöttämämme tuloon.

Esimerkki 2: Tekstin luokittelu muuntajien putkistojen avulla

Edellinen esimerkki käsitti menetelmän luoda lisäteksti, joka on olennainen tulon kannalta muuntajia ja niiden pakettiputkia käyttämällä. Tämä esimerkki näyttää meille, kuinka tekstin luokittelu suoritetaan liukuhihnalla. Tekstin luokittelu on prosessi, jossa malliin syötettävä syöte tunnistetaan tietyn luokan jäseneksi, esim. positiivista tai negatiivista.

Tuomme ensin putkistot muuntajista. Sitten kutsumme 'pipeline()'-funktiota. Välitämme mallin nimen, joka meidän tapauksessamme on 'tekstiluokitus' sen parametreille. Kun malli on määritetty liukuhihnalla, voimme nyt nimetä sen 'luokittajaksi'. Tähän asti tekstiluokituksen oletusmalli ladataan isäntäkoneellemme. Nyt voimme käyttää tätä mallia tehtävässämme.

Joten tuo Pandat nimellä 'pd'. Haluamme tuoda tämän paketin, koska haluamme tulostaa mallin tulosteen DataFrame-muodossa. Nyt määritämme tekstin, jonka haluamme antaa mallillemme syötteenä luokitellaksemme sen positiiviseksi tai negatiiviseksi lauseeksi. Asetamme tekstiksi 'Olen hyvä kaveri'. Välitämme tämän tekstin tässä esimerkissä juuri luomaamme classifier()-malliin ja tallennamme tulokset 'output'-muuttujaan.

Tuotoksen näyttämiseksi kutsumme Pandasin etuliitettä, eli pd:tä nimellä '.Dataframe()' ja välitämme luokitinmallin tulosteen tälle funktiolle. Se näyttää nyt luokitinmallin tulokset seuraavan tulostepätkän mukaisesti. Luokitinmallimme luokittelee tekstin positiiviseen luokkaan.

!pip asennusmuuntajat
muuntajien tuontiputkesta
tuo pandat pd-muodossa
luokitin = pipeline('text-classification',malli = 'textattack/distilbert-base-uncased-CoLA')
teksti = 'Olen hyvä kaveri'
tulos = luokitin(teksti)
pprint (tulos)
df = pd.DataFrame(tulos)

Johtopäätös

Tämä opas käsitteli Hugging Facen muuntajaarkkitehtuuria. Keskustelimme Hugging Face -muuntajan 'putkikirjastosta'. Sitten tämän kirjaston avulla hyödynsimme valmiiksi koulutettuja muuntajamalleja tekstin luomiseen ja luokitteluun.