AI-työkalut 101

Hugging Face LLM-työkalujen täydellinen aloittajan opas

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa
HUGGING FACE - COMPLETE GUIDE

Hugging Face on AI-tutkimuslaboratorio ja -keskus, joka on luonut yhteisön tutkijoista, tutkijoista ja harrastajista. Lyhyessä ajassa Hugging Face on saavuttanut merkittävän aseman AI-tilassa. Teknologiajättien joukossa Google (GOOGL ), Amazon (AMZN ) ja Nvidia (NVDA ) ovat tukenneet AI-startup Hugging Facea merkittävillä sijoituksilla, mikä on nostanut sen arvon 4,5 miljardiin dollariin.

Tässä opasohjelmassa esittelemme muunnettuja transformaattoreita, LLM:itä ja kuinka Hugging Face -kirjasto toimii tärkeässä roolissa avoimen lähdekoodin AI-yhteisön edistämisessä. Selitämme myös Hugging Facen olennaiset ominaisuudet, kuten putkistot, tietokannat, mallit ja muut, käyttäen käytännön Python-esimerkkejä.

Transformaattorit NLP:ssä

Vuonna 2017 Cornellin yliopisto julkaisi vaikuttavan artikkelin, jossa esiteltiin transformaattorit. Nämä ovat syvän oppimisen mallit, joita käytetään NLP:ssä. Tämä löytö sytytti suurten kielen mallien kehittämisen, kuten ChatGPT.

Suuret kielen mallit eli LLM:t ovat tekoälyjärjestelmiä, jotka käyttävät transformaattoreita ymmärtääkseen ja luodakseen ihmisen kaltaista tekstiä. Luoda nämä mallit on kuitenkin kallista, usein vaaditaan miljoonia dollareita, mikä rajoittaa niiden saatavuutta suurille yrityksille.

Hugging Face, joka perustettiin vuonna 2016, pyrkii tekemään NLP-malleja saataviksi kaikille. Vaikka se on kaupallinen yritys, se tarjoaa laajan valikoiman avoimia resursseja, jotka auttavat ihmisiä ja organisaatioita rakentamaan ja käyttämään transformaattorimalleja edullisesti. Tekoäly on opettamista tietokoneille suorittamaan tehtäviä tunnistamalla kuvioita, kun taas syvä oppiminen, joka on tekoälyn alaluokka, luo verkoston, joka oppii itsenäisesti. Transformaattorit ovat syvän oppimisen arkkitehtuuri, joka käyttää syötetietoja tehokkaasti ja joustavasti, mikä tekee niistä suositun valinnan suurten kielen mallien rakentamiseen lyhyemmän koulutusajan vuoksi.

Miten Hugging helpottaa NLP- ja LLM-projekteja

Hugging Face -ekosysteemi - Mallit, tietokannat, mittarit, transformaattorit, kiihdytys, tokenisaattorit

Hugging Face on tehnyt työstä LLM:ien kanssa helpompaa tarjoamalla:

  1. Valikoiman esikoulutettuja malleja valitsemista varten.
  2. Työkaluja ja esimerkkejä näiden mallien hienosäätöön erityistarpeisiin.
  3. Helppokäyttöisiä käyttöönottovaihtoehtoja eri ympäristöihin.

Yksi Hugging Facen erinomaisista resursseista on Open LLM Leaderboard. Toimien kattavana alustana, se seuraa, arvioi ja vertaa systemaattisesti laajan valikoiman suuria kielen malleja ja chatbottien tehokkuutta, tarjoten tarkan analyysin edistymisestä avoimen lähdekoodin alueella.

LLM-benchmarkit mitataan neljällä mittarilla:

  • AI2 Reasoning Challenge (25-shot) — sarja kysymyksiä perusluonnontieteiden opetussuunnitelman ympärillä.
  • HellaSwag (10-shot) — yleistietäminen, joka on yksinkertainen ihmisille, mutta merkittävä haaste kehittyneille malleille.
  • MMLU (5-shot) — monipuolinen arviointi, joka koskee tekstin mallin taitoa 57 eri alueella, kuten perusmatematiikka, laki ja tietokoneet.
  • TruthfulQA (0-shot) — työkalu mallin taipumusta toistamaan usein koettua verkkotietoa.

Näiden benchmarkien “25-shot”, “10-shot”, “5-shot” ja “0-shot” termeillä tarkoitetaan esimerkkien määrää, jonka malli saa arviointiprosessin aikana sen suorituskyvyn ja päättelykyvyn arvioimiseksi eri alueilla. “Vähän esimerkki”-paradigmoissa malleille annetaan pieni määrä esimerkkejä, jotka ohjaavat niiden vastauksia, kun taas “0-shot”-tilanteessa malleille ei anneta esimerkkejä, ja ne joutuvat turvautumaan aikaisempiin tietoihinsa.

Hugging Facen komponentit

Putkistot

‘Putkistot‘ ovat osa Hugging Facen transformaattorikirjastoa, ominaisuus, joka helpottaa esikoulutettujen mallien käyttöä Hugging Facen tietokannassa. Se tarjoaa intuitiivisen API:n useille tehtäville, kuten mielipidetutkimukselle, kysymyksiin vastaamiselle, maskitun kielen mallinnukselle, nimettyjen entiteettien tunnistamiselle ja yhteenvetoksi.
Putkistot yhdistävät kolme keskeistä Hugging Facen komponenttia:

  1. Tokenisaattori: Valmistaa tekstisi mallille ymmärrettäväksi muotoa.
  2. Malli: Tämä on putkiston sydän, jossa tehdään todelliset ennusteet esikäsitellyn syötteen perusteella.
  3. Jälkikäsittelijä: Muuttaa mallin raakennusteet luettavaksi muotoon.

Nämä putkistot vähentävät laajaa koodaamista ja tarjoavat käyttäjäystävällisen käyttöliittymän useiden NLP-tehtävien suorittamiseen.

Transformaattorin sovellukset Hugging Facen kirjaston avulla

Hugging Facen kirjaston erityispiirre on Transformaattorikirjasto, joka yksinkertaa NLP-tehtäviä yhdistämällä mallin tarvittaviin esikäsittely- ja jälkikäsittelyvaiheisiin, suorittamalla analyysin prosessia. Kirjaston ja sen käyttämisen asentamiseksi käytetään seuraavia komentoja:

[koodi kieli=”Python”]
pip install -q transformers
from transformers import pipeline
[/koodi]

Sen jälkeen voit suorittaa NLP-tehtäviä, kuten mielipidetutkimusta, joka luokittelee tekstin positiiviseksi tai negatiiviseksi mielipiteeksi. Kirjaston voimakas pipeline() -funktio toimii keskuksena, joka kattaa muita putkistoja ja mahdollistaa tehtäväkohtaiset sovellukset äänessä, visiossa ja moniaistisissa tiloissa.

Käytännön sovellukset

Tekstin luokittelu

Tekstin luokittelu on helppoa Hugging Facen pipeline() -funktion avulla. Tässä on, miten voit aloittaa tekstin luokittelu -putkiston:

[koodi kieli=”Python”]
luokittelija = pipeline(“tekstin-luokittelu”)
[/koodi]

Käytännön kokemukseen voit syöttää merkkijonon tai merkkijonojen luettelon putkeen saadaksesi ennusteet, jotka voidaan visualisoida Pythonin Pandas-kirjaston avulla. Tässä on Python- esimerkki, jossa näytetään tämä:

[koodi kieli=”Python”]
lauseet = [“Olen innoissani esittelemään teille upean AI-maailman.”,
“Toivon, että se ei pettäisi sinua.”]

# Hae luokittelutulokset kullekin lauseelle luettelossa
tulokset = luokittelija(lauseet)

# Käy läpi jokainen tulos ja tulosta luokka ja pisteytys
for i, tulos in enumerate(tulokset):
print(f”Tulos {i + 1}:”)
print(f”Luokka: {tulos[‘luokka’]}”)
print(f”Pisteytys: {round(tulos[‘pisteytys’], 3)}\n”)
[/koodi]

Tuloste

[koodi kieli=”Bash”]
Tulos 1:
Luokka: POSITIIVINEN
Pisteytys: 1.0

Tulos 2:
Luokka: POSITIIVINEN
Pisteytys: 0.996
[/koodi]
… (jatkuu)

Olen viettänyt viimeiset viisi vuotta uppoutumalla kiinnostavaan koneoppimisen ja syvän oppimisen maailmaan. Minun intohimoni ja asiantuntemukseni ovat johtaneet minun osallistumiseen yli 50:een monipuoliseen ohjelmistosuunnitteluhankkeeseen, joissa on erityisesti painottunut AI/ML. Minun jatkuva uteliaisuuteni on myös ohjannut minun luontaisen kielen prosessoinnin pariin, jota haluan tutkia tarkemmin.