Parafraseeritud teksti tuvastamisel on paljudel kasutusjuhtudel äriline väärtus. Näiteks lauseparafraaside tuvastamisega võib teksti kokkuvõttesüsteem eemaldada üleliigse teabe. Teine rakendus on plagieeritud dokumentide tuvastamine. Selles postituses täpsustame a Kallistav nägu trafo sisse Amazon SageMaker parafraseeritud lausepaaride tuvastamiseks mõne sammuga.
Tõeliselt jõuline mudel suudab tuvastada parafraseeritud teksti, kui kasutatav keel võib olla täiesti erinev, ja tuvastada ka erinevusi, kui kasutataval keelel on suur leksikaalne kattuvus. Selles postituses keskendume viimasele aspektile. Täpsemalt uurime, kas saame treenida mudelit, mis suudab tuvastada erinevuse kahe suure leksikaalse kattuvuse ja väga erineva või vastupidise tähendusega lause vahel. Näiteks järgmistel lausetel on täpselt samad sõnad, kuid vastupidine tähendus:
- Lennutasin New Yorgist Pariisi
- Lennutasin Pariisist New Yorki
Lahenduse ülevaade
Juhendame teid läbi järgmiste kõrgetasemeliste sammude:
- Seadistage keskkond.
- Valmistage andmed ette.
- Tokeniseerige andmestik.
- Täpsustage mudelit.
- Rakendage mudel ja tehke järeldused.
- Hinnake mudeli jõudlust.
Kui soovite keskkonna seadistamise vahele jätta, võite kasutada järgmist märkmikku GitHub ja käivitage kood SageMakeris.
Hugging Face ja AWS teatasid 2022. aasta alguses partnerlusest, mis muudab Hugging Face mudelite treenimise SageMakeris veelgi lihtsamaks. See funktsioon on saadaval Hugging Face arenduse kaudu AWS-i süvaõppekonteinerid (DLC-d). Nende konteinerite hulka kuuluvad Hugging Face Transformers, Tokenizerid ja andmekogumite teek, mis võimaldab meil neid ressursse kasutada koolituste ja järelduste tegemiseks. Saadaolevate DLC-piltide loendi vaatamiseks vt Saadaolevad süvaõppekonteinerite pildid. Neid hooldatakse ja uuendatakse regulaarselt turvapaikadega. Leiate palju näiteid selle kohta, kuidas treenida Hugging Face mudeleid nende DLC-de ja Kallistava näo Python SDK järgnevalt GitHub repo.
PAWS-i andmestik
Mõistes tõhusate lausepaaride andmekogude puudumist, millel on suur leksikaalne kattuvus, ilma et need oleksid parafraasid, PAWS 2019. aastal välja antud andmestiku eesmärk oli pakkuda loomuliku keele töötlemise (NLP) kogukonnale uut ressurssi parafraaside tuvastamise mudelite koolitamiseks ja hindamiseks. PAWS-i lausepaarid genereeritakse kahes etapis kasutades Wikipedia ja Quora küsimustepaarid (QQP) andmestik. Keelemudel vahetab kõigepealt lausepaari sõnad sama sõnapaari (BOW) vahel, et luua lausepaar. Tagasitõlke samm genereerib seejärel parafraasid, millel on suur BOW kattuvus, kuid kasutatakse erinevat sõnajärjestust. Lõplik PAWS-i andmestik sisaldab kokku 108,000 656,000 inimese märgistatud ja XNUMX XNUMX mürarikkalt märgistatud paari.
Selles postituses kasutame PAWS-Wiki märgistatud (lõplik) Hugging Face'i andmestik. Hugging Face on meie jaoks andmejaotuse juba teostanud, mille tulemuseks on 49,000 8,000 lausepaari treeningu andmekogus ja 1 lausepaari valideerimis- ja testandmekogumite jaoks. Järgmises näites on näidatud kaks treeningandmestiku lausepaari näidet. Silt XNUMX näitab, et need kaks lauset on teineteise parafraasid.
1. lause | 2. lause | silt |
Ehkki vahetatavad, ei ole kahe auto keredetailid sarnased. | Kuigi kereosad on sarnased, ei ole need kahel autol omavahel vahetatavad. | 0 |
Katz sündis 1947. aastal Rootsis ja kolis 1-aastaselt New Yorki. | Katz sündis 1947. aastal Rootsis ja kolis aastasena New Yorki. | 1 |
Eeldused
Peate täitma järgmised eeltingimused:
- Registreerige AWS-i konto, kui teil seda pole. Lisateabe saamiseks vt Seadistage Amazon SageMakeri eeltingimused.
- Alustage kasutamist SageMakeri märkmiku eksemplarid.
- Seadistage parempoolne AWS-i identiteedi- ja juurdepääsuhaldus (IAM) load. Lisateabe saamiseks vt SageMakeri rollid.
Seadistage keskkond
Enne kui hakkame oma andmeid mudeli peenhäälestamiseks uurima ja ette valmistama, peame seadistama oma keskkonna. Alustame SageMakeri märkmiku eksemplari üleskeeramisega. Valige oma AWS-i kontol AWS-i piirkond ja järgige juhiseid looge SageMakeri märkmiku eksemplar. Märkmiku eksemplari üleskeeramiseks võib kuluda mõni minut.
Kui sülearvuti eksemplar töötab, valige conda_pytorch_p38
nagu teie kerneli tüüp. Hugging Face andmestiku kasutamiseks peame esmalt installima ja importima Hugging Face teegi:
Järgmisena loome SageMakeri seansi. Kasutame vaikimisi Amazoni lihtne salvestusteenus (Amazon S3) ämber, mis on seotud SageMakeri seansiga PAWS-i andmestiku ja mudeli artefaktide salvestamiseks:
Valmistage andmed ette
Saame laadida PAWS-i andmestiku Hugging Face versiooni koos sellega load_dataset()
käsk. See kõne laadib alla ja impordib PAWS Pythoni töötlemisskripti Hugging Face GitHubi hoidlast, mis seejärel laadib PAWS-i andmestiku alla skripti salvestatud algsest URL-ist ja salvestab andmed draivi nooletabelina. Vaadake järgmist koodi:
Enne kui alustame oma eelkoolitatud BERT-mudeli peenhäälestamist, vaatame oma sihtklasside jaotust. Meie kasutusjuhtumi puhul on PAWS-i andmestikul binaarsed sildid (0 näitab, et lausepaar ei ole parafraas ja 1 näitab, et see on). Loome klassijaotuse vaatamiseks veergdiagrammi, nagu on näidatud järgmises koodis. Näeme, et meie koolituskomplektis on klasside tasakaalustamatuse probleem (56% negatiivseid proove vs. 44% positiivseid proove). Tasakaalustamatus on siiski piisavalt väike, et vältida klassi tasakaalustamatuse leevendamise tehnikate kasutamist.
Tokeniseerige andmestik
Enne peenhäälestamise alustamist peame oma andmestiku märgistama. Oletame alustuseks, et tahame täpsustada ja hinnata roberta-base
trafo. Valisime roberta-base
sest see on üldotstarbeline trafo, mis on eelnevalt koolitatud suurel hulgal ingliskeelsetest andmetest ja mis on sageli näidanud head jõudlust mitmesuguste NLP-ülesannete täitmisel. Mudelit tutvustati algselt paberil RoBERTa: Tugevalt optimeeritud BERT eelkoolitus.
Tokeniseerimise teostame lausetel a-ga roberta-base
Hugging Face'i tokeniseerija, mis kasutab dokumendi märkideks jagamiseks baiditaseme baitpaari kodeeringut. Lisateavet RoBERTa tokenisaatori kohta leiate aadressilt RobertaTokenizer. Kuna meie sisendid on lausepaarid, peame mõlemad laused samaaegselt märgistama. Kuna enamik BERT-i mudeleid nõuab, et sisendil oleks fikseeritud tokeniseeritud sisendi pikkus, määrame järgmised parameetrid. max_len=128
ja truncation=True
. Vaadake järgmist koodi:
Viimane eeltöötlusetapp meie BERT-mudeli peenhäälestamiseks on teisendada tokeniseeritud rongi- ja valideerimisandmed PyTorchi tensoriteks ja laadida need üles meie S3 ämbrisse:
Täpsustage mudelit
Nüüd, kui oleme andmete ettevalmistamise lõpetanud, oleme valmis oma eelkoolitatud teavet viimistlema roberta-base
parafraasi tuvastamise ülesande mudel. Saame kasutada klassi SageMaker Hugging Face Estimator, et algatada peenhäälestusprotsess kahes etapis. Esimene samm on treeningu hüperparameetrite ja mõõdikute määratluste täpsustamine. Mõõdikute definitsioonide muutuja ütleb Kallistava näo prognoosijale, millist tüüpi mõõdikuid mudeli treeninglogidest välja võtta. Siin oleme peamiselt huvitatud valideerimiskomplekti mõõdikute eraldamisest igal koolitusperioodil.
Teine samm on Hugging Face Estimatori käivitamine ja peenhäälestusprotsessi alustamine .fit()
meetod:
Peenhäälestusprotsess võtab määratud hüperparameetreid kasutades umbes 30 minutit.
Rakendage mudel ja tehke järeldused
SageMaker pakub sõltuvalt teie kasutusjuhtumist mitut juurutamisvalikut. Püsivate reaalajas lõpp-punktide jaoks, mis teevad ühe ennustuse korraga, soovitame kasutada SageMakeri reaalajas hostimisteenused. Kui teil on töökoormusi, mille vahel esineb jõudeperioode ja talute külmkäivitust, soovitame kasutada Serverita järeldus. Serverita lõpp-punktid käivitavad automaatselt arvutusressursid ja skaleerivad neid sõltuvalt liiklusest sisse ja välja, välistades vajaduse valida eksemplaritüüpe või hallata skaleerimispoliitikaid. Näitame, kuidas rakendada meie peenhäälestatud Hugging Face mudelit nii reaalajas järelduse lõpp-punktis kui ka serverita järelduse lõpp-punktis.
Juurutage reaalajas järelduse lõpp-punkti
Saate juurutada koolitusobjekti SageMakeris reaalajas järelduste hostimisse, kasutades .deploy()
meetod. Aktsepteeritud parameetrite täieliku loendi leiate jaotisest Kallistav näomudel. Alustuseks juurutame mudeli ühele eksemplarile, edastades järgmised parameetrid: initial_instance_count
, instance_type
ja endpoint_name
. Vaadake järgmist koodi:
Mudeli kasutuselevõtt võtab paar minutit. Pärast mudeli kasutuselevõttu saame esitada näidiskirjed nähtamatu testandmestikust lõpp-punkti järelduste tegemiseks.
Juurutage serverita järelduse lõpp-punkti
Oma koolitusobjekti juurutamiseks serverita lõpp-punktis peame esmalt määrama serverita konfiguratsioonifaili memory_size_in_mb
ja max_concurrency
argumendid:
memory_size_in_mb
määrab teie serverita lõpp-punkti RAM-i kogumahu; minimaalne RAM-i maht on 1024 MB (1 GB) ja see võib ulatuda kuni 6144 MB (6 GB). Üldiselt peaksite püüdma valida mälumahu, mis on vähemalt sama suur kui teie mudeli suurus. max_concurrency
määrab kvoodi, mitu samaaegset kutset saab ühe lõpp-punkti jaoks korraga töödelda (kuni 50 samaaegset kutset).
Peame esitama ka Hugging Face järelduskujutise URI, mille saate hankida järgmise koodi abil:
Nüüd, kui meil on serverita konfiguratsioonifail, saame luua serverita lõpp-punkti samamoodi nagu meie reaalajas järelduse lõpp-punkt, kasutades .deploy()
meetod:
Lõpp-punkt tuleks luua mõne minutiga.
Tehke mudeli järeldus
Ennustuste tegemiseks peame looma lausepaari, lisades [CLS]
ja [SEP]
spetsiaalsed märgid ja seejärel sisestage sisend mudeli lõpp-punktidesse. Reaalajas järelduste ja serverita järelduste süntaks on sama:
Järgmistes näidetes näeme, et mudel suudab õigesti klassifitseerida, kas sisendlausepaar sisaldab parafraseeritud lauseid.
Järgmine on reaalajas järelduste näide.
Järgmine on serverita järelduse näide.
Hinnake mudeli jõudlust
Mudeli hindamiseks laiendame eelmist koodi ja esitame kõik 8,000 nähtamatut testikirjet reaalajas lõpp-punkti:
Järgmisena saame ekstraheeritud ennustuste abil luua klassifitseerimisaruande:
Saame järgmised testitulemused.
Me võime seda jälgida roberta-base
selle kombineeritud makrokeskmine F1 skoor on 92% ja see suudab parafraasideks olevate lausete tuvastamisel veidi paremini. The roberta-base
mudel toimib hästi, kuid hea tava on mudeli jõudlust arvutada vähemalt ühe teise mudeli abil.
Järgmises tabelis võrreldakse roberta-base
sama katsekomplekti jõudlustulemused teise peenhäälestatud trafo suhtes paraphrase-mpnet-base-v2
, spetsiaalselt parafraaside tuvastamise ülesande jaoks ettevalmistatud lausemuundur. Mõlemat mudelit õpetati ml.p3.8xlarge eksemplaril.
Tulemused näitavad seda roberta-base
on 1% kõrgem F1 skoor väga sarnaste treeningute ja järeldusaegadega, kasutades SageMakeris reaalajas järelduste hostimist. Mudelite jõudluse erinevus on siiski suhteliselt väike, roberta-base
on lõppkokkuvõttes võitja, kuna sellel on veidi paremad jõudlusnäitajad ning peaaegu identsed treeningu- ja järeldusajad.
Täpsus | Tagasikutsumine | F1-skoor | Treeningu aeg (arveldatav) | Järeldusaeg (täielik testikomplekt) | |
roberta-alus | 0.92 | 0.93 | 0.92 | 18 minuti | 2 minuti |
parafraas-mpnet- baas-v2 |
0.92 | 0.91 | 0.91 | 17 minuti | 2 minuti |
Koristage
Kui olete mudeli lõpp-punktide kasutamise lõpetanud, saate need tulevaste tasude vältimiseks kustutada.
Järeldus
Selles postituses arutasime, kuidas kiiresti luua parafraaside tuvastamise mudel, kasutades SageMakeri Hugging Face trafosid. Täpsustasime kahte eelkoolitatud trafot, roberta-base
ja paraphrase-mpnet-base-v2
, kasutades PAWS-i andmestikku (mis sisaldab suure leksikaalse kattumisega lausepaare). Demonstreerisime ja arutasime reaalajas järelduste ja serverita järelduste juurutamise eeliseid. Viimane on uus funktsioon, mis sihib teravaid töökoormusi ja kõrvaldab vajaduse hallata skaleerimispoliitikaid. 8,000 rekordiga ennenägematul testikomplektil näitasime, et mõlemad mudelid saavutasid F1 skoori üle 90%.
Selle lahenduse laiendamiseks kaaluge järgmist.
- Proovige oma kohandatud andmekogumiga peenhäälestada. Kui teil pole piisavalt koolitussilte, saate kohandatud testiandmestikul hinnata sellise peenhäälestatud mudeli toimivust, nagu selles postituses näidatud.
- Integreerige see peenhäälestatud mudel allavoolurakendusse, mis nõuab teavet selle kohta, kas kaks lauset (või tekstiplokki) on teineteise parafraasid.
Õnnelik hoone!
Autoritest
Bala Krishnamoorthy on AWS Professional Services andmeteadlane, kus talle meeldib masinõppe rakendamine klientide äriprobleemide lahendamiseks. Ta on spetsialiseerunud loomuliku keele töötlemise kasutusjuhtudele ja on töötanud klientidega sellistes tööstusharudes nagu tarkvara, rahandus ja tervishoid. Vabal ajal meeldib talle proovida uusi toite, vaadata komöödiaid ja dokumentaalfilme, treenida Apelsiniteoorias ja vee peal olla (aerulauaga sõitmine, snorgeldamine ja loodetavasti peagi ka sukeldumine).
Ivan Cui on AWS-i professionaalsete teenuste andmeteadlane, kes aitab klientidel luua ja juurutada lahendusi, kasutades AWS-is masinõpet. Ta on töötanud klientidega erinevates tööstusharudes, sealhulgas tarkvara, rahanduse, farmaatsia ja tervishoiu valdkonnas. Vabal ajal meeldib talle lugeda, perega aega veeta ja aktsiaportfelli maksimeerida.
- Münditark. Euroopa parim Bitcoini ja krüptobörs.
- Platoblockchain. Web3 metaversiooni intelligentsus. Täiustatud teadmised. TASUTA PÄÄS.
- CryptoHawk. Altcoini radar. Tasuta prooviversioon.
- Allikas: https://aws.amazon.com/blogs/machine-learning/identify-paraphrased-text-with-hugging-face-on-amazon-sagemaker/
- '
- "
- 000
- 10
- 100
- 2019
- 2022
- 84
- MEIST
- juurdepääs
- konto
- saavutada
- üle
- Materjal: BPA ja flataatide vaba plastik
- juba
- Amazon
- teatas
- Teine
- taotlus
- Rakendades
- umbes
- argumendid
- saadaval
- AWS
- on
- Kasu
- keha
- piir
- ehitama
- äri
- helistama
- võimeline
- autod
- juhtudel
- koormuste
- Vali
- Linn
- klass
- klassifikatsioon
- kood
- Veerg
- kombineeritud
- kogukond
- täiesti
- Arvutama
- usaldus
- Konteinerid
- sisaldab
- võiks
- looma
- loodud
- tava
- klient
- Kliendid
- andmed
- andmeteadlane
- näitama
- Näidatud
- Olenevalt
- juurutada
- lähetatud
- kasutuselevõtu
- detailid
- Detection
- & Tarkvaraarendus
- erinev
- jaotus
- dokumentaalfilme
- dokumendid
- allalaadimine
- ajam
- tõhus
- Lõpp-punkt
- Inglise
- keskkond
- looma
- hindama
- näide
- näitama
- Laiendama
- nägu
- pere
- tunnusjoon
- rahastama
- esimene
- lend
- Keskenduma
- järgima
- Järel
- toit
- tasuta
- täis
- funktsioon
- funktsionaalsus
- tulevik
- Üldine otstarve
- üldiselt
- tekitama
- GitHub
- hea
- suurem
- tervishoid
- kõrgus
- aitab
- siin
- Suur
- rohkem
- Hosting
- Kuidas
- Kuidas
- HTTPS
- Identifitseerimine
- identifitseerima
- identifitseerimiseks
- Identity
- pilt
- sisaldama
- Kaasa arvatud
- tööstusharudes
- info
- sisend
- paigaldama
- huvitatud
- probleem
- IT
- Tööturg
- Labels
- keel
- suur
- algatama
- õppimine
- Raamatukogu
- nimekiri
- koormus
- masin
- masinõpe
- TEEB
- juhtima
- Mälu
- Meetrika
- ML
- mudel
- mudelid
- rohkem
- kõige
- mitmekordne
- Natural
- negatiivne
- New York
- New York City
- märkmik
- Pakkumised
- optimeeritud
- Valikud
- et
- Muu
- enda
- Paber
- Paris
- Partnerlus
- Mööduv
- Paikade
- jõudlus
- perioodid
- Pharmaceutical
- Punkt
- Poliitika
- portfell
- positiivne
- tava
- ennustus
- Ennustused
- probleeme
- protsess
- töötlemine
- professionaalne
- anda
- küsimus
- Quora
- RAM
- rand
- Lugemine
- reaalajas
- soovitama
- andmed
- vabastatud
- aru
- Hoidla
- nõudma
- ressurss
- Vahendid
- Tulemused
- tagasipöördumine
- jooks
- jooksmine
- Skaala
- ketendamine
- teadlane
- turvalisus
- väljavalitud
- Serverita
- Teenused
- komplekt
- kehtestamine
- sarnane
- lihtne
- SUURUS
- väike
- tarkvara
- tahke
- lahendus
- Lahendused
- LAHENDAGE
- eriline
- spetsialiseerunud
- eriti
- Kulutused
- Spin
- jagada
- algus
- alustatud
- algab
- varu
- ladustamine
- salvestada
- Järgnevalt
- varustama
- Rootsi
- süsteem
- sihtmärk
- ülesanded
- tehnikat
- ütleb
- test
- Läbi
- aeg
- Tokeniseerimine
- märgistatud
- märgid
- ülemine
- tõrvik
- liiklus
- koolitus
- Tõlge
- us
- kasutama
- kinnitamine
- väärtus
- sort
- vaade
- Vesi
- M
- kas
- Wikipedia
- jooksul
- ilma
- sõnad
- töötas
- töö
- trenni tegema