Parafraasoidun tekstin tunnistamisella on liikearvoa monissa käyttötapauksissa. Esimerkiksi tunnistamalla lauseparafraaseja tekstin yhteenvetojärjestelmä voi poistaa tarpeettoman tiedon. Toinen sovellus on tunnistaa plagioituja asiakirjoja. Tässä viestissä hienosäädämme a Halaaminen kasvot muuntaja päälle Amazon Sage Maker tunnistaa parafrasoidut lauseparit muutamassa vaiheessa.
Todella vankka malli pystyy tunnistamaan parafrasoidun tekstin, kun käytetty kieli voi olla täysin erilainen, ja tunnistaa myös erot, kun käytetyllä kielellä on suuri leksikaalinen päällekkäisyys. Tässä viestissä keskitymme jälkimmäiseen näkökohtaan. Tarkastelemme erityisesti, voimmeko kouluttaa mallin, joka tunnistaa eron kahden lauseen välillä, joilla on suuri leksikaalinen päällekkäisyys ja hyvin erilaiset tai vastakkaiset merkitykset. Esimerkiksi seuraavilla lauseilla on täsmälleen samat sanat, mutta päinvastaiset merkitykset:
- Lensin New Yorkista Pariisiin
- Lensin Pariisista New Yorkiin
Ratkaisun yleiskatsaus
Opastamme sinut seuraavien korkean tason vaiheiden läpi:
- Järjestä ympäristö.
- Valmistele tiedot.
- Tokenisoi tietojoukko.
- Hienosäädä mallia.
- Ota malli käyttöön ja tee johtopäätös.
- Arvioi mallin suorituskykyä.
Jos haluat ohittaa ympäristön määrittämisen, voit käyttää seuraavaa muistikirjaa GitHub ja suorita koodi SageMakerissa.
Hugging Face ja AWS ilmoittivat kumppanuudesta aiemmin vuonna 2022, mikä tekee Hugging Face -mallien kouluttamisesta entistäkin helpompaa SageMakerilla. Tämä toiminto on saatavilla Hugging Facen kehityksen kautta AWS Deep Learning Containers (DLC:t). Näihin säilöihin kuuluvat Hugging Face Transformers, Tokenizerit ja Datasets-kirjasto, jonka avulla voimme käyttää näitä resursseja koulutukseen ja päättelytyöhön. Katso luettelo käytettävissä olevista DLC-kuvista kohdasta Käytettävissä olevat Deep Learning Containers -kuvat. Niitä ylläpidetään ja päivitetään säännöllisesti tietoturvakorjauksilla. Löydät monia esimerkkejä Hugging Face -mallien kouluttamisesta näillä lisäosilla ja Hugging Face Python SDK seuraavassa GitHub repo.
PAWS-tietojoukko
Ymmärrettyään tehokkaiden lauseparien puuttumisen, jotka osoittavat suurta leksikaalista päällekkäisyyttä ilman parafraaseja, alkuperäinen PAWS Vuonna 2019 julkaistun tietojoukon tarkoituksena oli tarjota luonnollisen kielen käsittely (NLP) -yhteisölle uusi resurssi parafraasien havaitsemismallien koulutukseen ja arviointiin. PAWS-lauseparit luodaan kahdessa vaiheessa käyttämällä wikipedia ja Quoran kysymysparit (QQP) tietojoukko. Kielimalli vaihtaa ensin lauseparin sanat saman Bag of Words (BOW) kanssa lauseparin muodostamiseksi. Taaksepäin käännösvaihe luo sitten parafraaseja, joissa on suuri BOW-päällekkäisyys, mutta joissa käytetään eri sanajärjestystä. Lopullinen PAWS-tietojoukko sisältää yhteensä 108,000 656,000 ihmisleimattua ja XNUMX XNUMX äänekkäästi merkittyä paria.
Tässä viestissä käytämme PAWS-Wiki-merkitty (lopullinen) Hugging Facen tietojoukko. Hugging Face on jo suorittanut meille datan jakamisen, jonka tuloksena on 49,000 8,000 lauseparia harjoitustietojoukossa ja 1 XNUMX lauseparia kumpikin validointi- ja testitietojoukoissa. Seuraavassa esimerkissä esitetään kaksi lausepari esimerkkiä harjoitustietojoukosta. Merkintä XNUMX osoittaa, että nämä kaksi lausetta ovat toistensa parafraaseja.
Lause 1 | Lause 2 | Merkki |
Vaikka kahden auton koriosat ovat vaihdettavissa, ne eivät ole samanlaisia. | Vaikka korin osat ovat samankaltaisia, ne eivät ole vaihdettavissa kahdessa autossa. | 0 |
Katz syntyi Ruotsissa vuonna 1947 ja muutti New Yorkiin 1-vuotiaana. | Katz syntyi vuonna 1947 Ruotsissa ja muutti New Yorkiin vuoden ikäisenä. | 1 |
Edellytykset
Sinun on täytettävä seuraavat edellytykset:
- Luo AWS-tili, jos sinulla ei ole sellaista. Katso lisätietoja Määritä Amazon SageMakerin edellytykset.
- Aloita käyttö SageMaker-muistikirjan esiintymät.
- Aseta oikea AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) käyttöoikeudet. Katso lisätietoja SageMakerin roolit.
Määritä ympäristö
Ennen kuin alamme tutkia ja valmistella tietojamme mallin hienosäätöä varten, meidän on määritettävä ympäristömme. Aloitetaan pyörittämällä SageMaker-muistikirjan ilmentymä. Valitse AWS-alue AWS-tilistäsi ja seuraa ohjeita luo SageMaker-muistikirjaesiintymä. Muistikirjan ilmentymä voi kestää muutaman minuutin.
Kun muistikirjan ilmentymä on käynnissä, valitse conda_pytorch_p38
kuten ytimen tyyppi. Hugging Face -tietojoukon käyttämiseksi meidän on ensin asennettava ja tuotava Hugging Face -kirjasto:
Perustetaan seuraavaksi SageMaker-istunto. Käytämme oletusarvoa Amazonin yksinkertainen tallennuspalvelu (Amazon S3) -ämpäri, joka liittyy SageMaker-istuntoon PAWS-tietojoukon ja mallin artefaktien tallentamiseen:
Valmistele tiedot
Voimme ladata PAWS-tietojoukon Hugging Face -version sen kanssa load_dataset()
komento. Tämä puhelu lataa ja tuo PAWS Python -prosessointikomentosarjan Hugging Face GitHub -arkistosta, joka sitten lataa PAWS-tietojoukon skriptiin tallennetusta alkuperäisestä URL-osoitteesta ja tallentaa tiedot välimuistiin levyn nuolitaulukona. Katso seuraava koodi:
Ennen kuin aloitamme esikoulutetun BERT-mallimme hienosäädön, katsotaanpa kohdeluokkajakaumaamme. Meidän käyttötapauksessamme PAWS-tietojoukossa on binääritunnisteet (0 tarkoittaa, että lausepari ei ole parafraasi, ja 1 tarkoittaa, että se on). Luodaan sarakekaavio nähdäksesi luokkajakauman seuraavan koodin mukaisesti. Näemme, että harjoitussarjassamme on pieni luokkaepätasapainoongelma (56 % negatiivisia näytteitä vs. 44 % positiivisia näytteitä). Epätasapaino on kuitenkin riittävän pieni, jotta vältetään luokkaepätasapainon lieventämistekniikoiden käyttäminen.
Tokenisoi tietojoukko
Ennen kuin voimme aloittaa hienosäädön, meidän on tokenisoitava tietojoukkomme. Aloituskohtana sanotaan, että haluamme hienosäätää ja arvioida roberta-base
muuntaja. Valitsimme roberta-base
koska se on yleiskäyttöinen muuntaja, joka on esikoulutettu suurelle englanninkieliselle datalle ja joka on usein osoittanut korkeaa suorituskykyä erilaisissa NLP-tehtävissä. Malli esiteltiin alun perin lehdessä RoBERTa: Voimakkaasti optimoitu BERT-esikäsittelymenetelmä.
Suoritamme tokenisoinnin lauseille a:lla roberta-base
Hugging Facen tokenizer, joka käyttää tavutason tavuparikoodausta asiakirjan jakamiseen tunnuksiksi. Lisätietoja RoBERTa-tokenizeristä on kohdassa RobertaTokenizer. Koska syötteemme ovat lausepareja, meidän on tokenisoitava molemmat lauseet samanaikaisesti. Koska useimmat BERT-mallit edellyttävät, että syötteellä on kiinteä tokenoitu tulopituus, asetamme seuraavat parametrit: max_len=128
ja truncation=True
. Katso seuraava koodi:
Viimeinen esikäsittelyvaihe BERT-mallimme hienosäädössä on muuntaa tokenoidut juna- ja validointitietojoukot PyTorch-tensoreiksi ja ladata ne S3-säihösimme:
Hienosäädä mallia
Nyt kun tietojen valmistelu on valmis, olemme valmiita hienosäätämään esikoulutettujamme roberta-base
malli parafraasin tunnistustehtävästä. Voimme käyttää SageMaker Hugging Face Estimator -luokkaa aloittaaksesi hienosäätöprosessin kahdessa vaiheessa. Ensimmäinen vaihe on määrittää koulutuksen hyperparametrit ja metriikan määritelmät. Mittarin määrittelymuuttuja kertoo Hugging Face Estimatorille, minkä tyyppisiä mittareita mallin harjoituslokeista poimitaan. Tässä olemme ensisijaisesti kiinnostuneita validointijoukon mittareiden poimimisesta kullakin koulutusjaksolla.
Toinen vaihe on Hugging Face Estimatorin instantoiminen ja hienosäätöprosessin aloittaminen .fit()
menetelmä:
Hienosäätöprosessi kestää noin 30 minuuttia määritettyjä hyperparametreja käyttäen.
Ota malli käyttöön ja tee johtopäätös
SageMaker tarjoaa useita käyttöönottovaihtoehtoja käyttötapauksestasi riippuen. Suosittelemme käyttämään pysyviä, reaaliaikaisia päätepisteitä, jotka tekevät yhden ennusteen kerrallaan SageMakerin reaaliaikaiset isännöintipalvelut. Jos sinulla on työkuormia, joissa on joutojaksoja liikenneruuhkien välillä ja jotka sietävät kylmäkäynnistystä, suosittelemme Palvelimeton päätelmä. Palvelimettomat päätepisteet käynnistävät automaattisesti laskentaresurssit ja skaalaavat niitä sisään ja ulos liikenteestä riippuen, jolloin ei tarvitse valita ilmentymätyyppejä tai hallita skaalauskäytäntöjä. Esittelemme, kuinka hienosäädettyä Hugging Face -malliamme voidaan ottaa käyttöön sekä reaaliaikaisessa päättelypäätepisteessä että palvelimettomassa päätepisteessä.
Ota käyttöön reaaliaikaiseen päättelypäätepisteeseen
Voit ottaa harjoitusobjektin käyttöön SageMakerin reaaliaikaisessa päättelypalvelussa käyttämällä .deploy()
menetelmä. Katso täydellinen luettelo hyväksytyistä parametreista kohdasta Halaava kasvomalli. Aloita ottamalla malli käyttöön yhteen esiintymään välittämällä seuraavat parametrit: initial_instance_count
, instance_type
ja endpoint_name
. Katso seuraava koodi:
Mallin käyttöönotto kestää muutaman minuutin. Kun malli on otettu käyttöön, voimme lähettää näytetietueita näkymättömästä testidatajoukosta päätepisteeseen päätelmiä varten.
Ota käyttöön palvelimettomaan päätepisteeseen
Jotta harjoitusobjektimme voidaan ottaa käyttöön palvelimettomaan päätepisteeseen, meidän on ensin määritettävä palvelimeton konfiguraatiotiedosto memory_size_in_mb
ja max_concurrency
argumentit:
memory_size_in_mb
määrittää palvelimettoman päätepisteesi RAM-muistin kokonaiskoon; RAM-muistin vähimmäiskoko on 1024 Mt (1 Gt) ja se voi skaalata jopa 6144 Mt (6 Gt). Yleensä sinun tulee pyrkiä valitsemaan muistin koko, joka on vähintään yhtä suuri kuin mallisi koko. max_concurrency
määrittää kiintiön, kuinka monta samanaikaista kutsua voidaan käsitellä samanaikaisesti (enintään 50 samanaikaista kutsua) yhdelle päätepisteelle.
Meidän on myös toimitettava Hugging Face -päätelmäkuvan URI, jonka voit noutaa käyttämällä seuraavaa koodia:
Nyt kun meillä on palvelimeton konfigurointitiedosto, voimme luoda palvelimettoman päätepisteen samalla tavalla kuin reaaliaikainen päätelmäpäätepistemme käyttämällä .deploy()
menetelmä:
Päätepisteen pitäisi luoda muutamassa minuutissa.
Suorita mallin päättely
Ennusteita varten meidän on luotava lausepari lisäämällä [CLS]
ja [SEP]
erityisiä tokeneita ja lähettää sitten syöte mallin päätepisteisiin. Reaaliaikaisen ja palvelimettoman päättelyn syntaksi on sama:
Seuraavissa esimerkeissä voimme nähdä, että malli pystyy luokittelemaan oikein, sisältääkö syöttölausepari parafrasoituja lauseita.
Seuraava on esimerkki reaaliaikaisesta päättelystä.
Seuraava on esimerkki palvelimettomasta päätelmästä.
Arvioi mallin suorituskykyä
Mallin arvioimiseksi laajenna edellinen koodi ja lähetä kaikki 8,000 XNUMX näkymätöntä testitietuetta reaaliaikaiseen päätepisteeseen:
Seuraavaksi voimme luoda luokitteluraportin käyttämällä poimittuja ennusteita:
Saamme seuraavat testitulokset.
Voimme tarkkailla sitä roberta-base
sen yhdistetty makrokeskiarvo F1-pistemäärä on 92 %, ja se pystyy havaitsemaan hieman paremmin parafraaseja. The roberta-base
malli toimii hyvin, mutta on hyvä käytäntö laskea mallin suorituskyky käyttämällä ainakin yhtä muuta mallia.
Seuraava taulukko vertaa roberta-base
suorituskykytuloksia samassa testisarjassa toista hienosäädettyä muuntajaa vastaan paraphrase-mpnet-base-v2
, lausemuuntaja, joka on esikoulutettu erityisesti parafraasien tunnistustehtävää varten. Molemmat mallit koulutettiin ml.p3.8xlarge-instanssilla.
Tulokset osoittavat sen roberta-base
on 1 % korkeampi F1-pistemäärä hyvin samankaltaisilla harjoittelu- ja päättelyajoilla käyttämällä SageMakerin reaaliaikaista päättelypalvelua. Suorituskykyero mallien välillä on kuitenkin suhteellisen pieni, roberta-base
on viime kädessä voittaja, koska sillä on hieman paremmat suorituskykymittarit ja lähes identtiset harjoitus- ja päättelyajat.
Tarkkuus | Palauttaa mieleen | F1-pisteet | Harjoitusaika (laskutettava) | Päätelmäaika (koko testisarja) | |
roberta-pohja | 0.92 | 0.93 | 0.92 | 18 minuuttia | 2 minuuttia |
parafraasi-mpnet- base-v2 |
0.92 | 0.91 | 0.91 | 17 minuuttia | 2 minuuttia |
Puhdistaa
Kun olet lopettanut mallipäätepisteiden käytön, voit poistaa ne välttääksesi tulevia maksuja:
Yhteenveto
Tässä viestissä keskustelimme siitä, kuinka nopeasti rakennetaan parafraasien tunnistusmalli käyttämällä Hugging Face -muuntajia SageMakerissa. Hienosäädimme kaksi esikoulutettua muuntajaa, roberta-base
ja paraphrase-mpnet-base-v2
, käyttämällä PAWS-tietoaineistoa (joka sisältää lausepareja, joilla on suuri leksikaalinen päällekkäisyys). Esittelimme ja keskustelimme reaaliaikaisen päättelyn ja palvelimettoman päättelyn käyttöönoton eduista. Jälkimmäinen on uusi ominaisuus, joka kohdistuu piikkisiin työkuormiin ja poistaa tarpeen hallita skaalauskäytäntöjä. Näkymättömällä 8,000 1 ennätyksen testisarjalla osoitimme, että molemmat mallit saavuttivat F90-pisteet yli XNUMX %.
Jos haluat laajentaa tätä ratkaisua, harkitse seuraavaa:
- Kokeile hienosäätöä omalla mukautetulla tietojoukollasi. Jos sinulla ei ole riittävästi koulutusmerkintöjä, voit arvioida tässä viestissä esitetyn kaltaisen hienosäädetyn mallin suorituskykyä mukautetussa testitietojoukossa.
- Integroi tämä hienosäädetty malli alavirran sovellukseen, joka vaatii tietoa siitä, ovatko kaksi lausetta (tai tekstilohkoa) toistensa parafraaseja.
Hyvää rakennusta!
Tietoja Tekijät
Bala Krishnamoorthy on tietotutkija AWS Professional Services -palvelussa, jossa hän nauttii koneoppimisen soveltamisesta asiakkaiden liiketoimintaongelmien ratkaisemiseen. Hän on erikoistunut luonnollisen kielen käsittelyyn ja työskennellyt asiakkaiden kanssa muun muassa ohjelmisto-, talous- ja terveydenhuollon aloilla. Vapaa-ajallaan hän nauttii uusien ruokien kokeilemisesta, komedia- ja dokumenttielokuvien katselusta, Orange Theoryssa treenaamisesta ja vedestä (meloamisesta, snorklausta ja toivottavasti pian sukellusta).
Ivan Cui on tietotutkija AWS Professional Services -palvelussa, jossa hän auttaa asiakkaita rakentamaan ja ottamaan käyttöön ratkaisuja koneoppimisen avulla AWS:ssä. Hän on työskennellyt asiakkaiden kanssa eri toimialoilla, mukaan lukien ohjelmisto-, rahoitus-, lääke- ja terveydenhuoltoala. Vapaa-ajallaan hän nauttii lukemisesta, perheen kanssa viettämisestä ja osakesalkkunsa maksimoinnista.
- '
- "
- 000
- 10
- 100
- 2019
- 2022
- 84
- Meistä
- pääsy
- Tili
- saavutettu
- poikki
- Kaikki
- jo
- Amazon
- ilmoitti
- Toinen
- Hakemus
- Hakeminen
- suunnilleen
- perustelut
- saatavissa
- AWS
- ovat
- Hyödyt
- elin
- reunus
- rakentaa
- liiketoiminta
- soittaa
- kykenee
- autot
- tapauksissa
- maksut
- Valita
- Kaupunki
- luokka
- luokittelu
- koodi
- Sarake
- yhdistetty
- yhteisö
- täysin
- Laskea
- luottamus
- Kontit
- sisältää
- voisi
- luoda
- luotu
- asiakassuhde
- asiakas
- Asiakkaat
- tiedot
- tietojen tutkija
- osoittaa
- osoittivat
- Riippuen
- sijoittaa
- käyttöön
- käyttöönotto
- yksityiskohdat
- Detection
- Kehitys
- eri
- jakelu
- dokumentteja
- asiakirjat
- lataukset
- ajaa
- tehokas
- päätepiste
- Englanti
- ympäristö
- perustaa
- arvioida
- esimerkki
- näyttely
- Laajentaa
- Kasvot
- perhe
- Ominaisuus
- rahoittaa
- Etunimi
- lento
- Keskittää
- seurata
- jälkeen
- ruoka
- Ilmainen
- koko
- toiminto
- toiminnallisuus
- tulevaisuutta
- yleinen tarkoitus
- yleensä
- tuottaa
- GitHub
- hyvä
- suurempi
- terveydenhuollon
- korkeus
- auttaa
- tätä
- Korkea
- korkeampi
- hotellit
- Miten
- Miten
- HTTPS
- Tunnistaminen
- tunnistaa
- tunnistaminen
- Identiteetti
- kuva
- sisältää
- Mukaan lukien
- teollisuuden
- tiedot
- panos
- asentaa
- kiinnostunut
- kysymys
- IT
- Työpaikat
- tarrat
- Kieli
- suuri
- käynnistää
- oppiminen
- Kirjasto
- Lista
- kuormitus
- kone
- koneoppiminen
- TEE
- hoitaa
- Muisti
- Metrics
- ML
- malli
- mallit
- lisää
- eniten
- moninkertainen
- Luonnollinen
- negatiivinen
- New York
- new york city
- muistikirja
- Tarjoukset
- optimoitu
- Vaihtoehdot
- tilata
- Muut
- oma
- Paperi
- Pariisi
- Kumppanuus
- Ohimenevä
- Merkit
- suorituskyky
- aikoja
- Lääkealan
- Kohta
- politiikkaa
- salkku
- positiivinen
- harjoitusta.
- ennustus
- Ennusteet
- ongelmia
- prosessi
- käsittely
- ammatillinen
- toimittaa
- kysymys
- Quora
- RAM
- rand
- Lukeminen
- reaaliaikainen
- suositella
- asiakirjat
- julkaistu
- raportti
- säilytyspaikka
- edellyttää
- resurssi
- Esittelymateriaalit
- tulokset
- palata
- ajaa
- juoksu
- Asteikko
- skaalaus
- Tiedemies
- turvallisuus
- valittu
- serverless
- Palvelut
- setti
- asetus
- samankaltainen
- Yksinkertainen
- Koko
- pieni
- Tuotteemme
- vankka
- ratkaisu
- Ratkaisumme
- SOLVE
- erityinen
- erikoistunut
- erityisesti
- menot
- Kierre
- jakaa
- Alkaa
- alkoi
- alkaa
- Varastossa
- Levytila
- verkkokaupasta
- Myöhemmin
- toimittaa
- Ruotsi
- järjestelmä
- Kohde
- tehtävät
- tekniikat
- kertoo
- testi
- Kautta
- aika
- tokenization
- tokenized
- tokens
- ylin
- taskulamppu
- liikenne
- koulutus
- Kääntäminen
- us
- käyttää
- validointi
- arvo
- lajike
- Näytä
- vesi
- Mitä
- onko
- wikipedia
- sisällä
- ilman
- sanoja
- työskenteli
- työskentely
- käydä salilla