Az átfogalmazott szöveg azonosítása sok felhasználási esetben üzleti értékkel bír. Például a mondatparafrázisok azonosításával egy szövegösszefoglaló rendszer eltávolíthatja a felesleges információkat. Egy másik alkalmazás a plagizált dokumentumok azonosítása. Ebben a bejegyzésben finomhangoljuk a Átölelő arc transzformátor bekapcsolva Amazon SageMaker hogy néhány lépésben azonosítsa az átfogalmazott mondatpárokat.
Egy igazán robusztus modell képes azonosítani az átfogalmazott szöveget, ha a használt nyelv teljesen eltérő lehet, és azonosítani tudja a különbségeket is, ha a használt nyelv nagy lexikális átfedéssel rendelkezik. Ebben a bejegyzésben az utóbbi szempontra koncentrálunk. Konkrétan azt vizsgáljuk, hogy tudunk-e olyan modellt képezni, amely képes azonosítani a különbséget két olyan mondat között, amelyeknek nagy lexikális átfedése van, és nagyon eltérő vagy ellentétes jelentése van. Például a következő mondatok pontosan ugyanazokat a szavakat tartalmazzák, de ellentétes jelentésűek:
- New Yorkból Párizsba repültem
- Párizsból New Yorkba repültem
Megoldás áttekintése
Végigvezetjük a következő magas szintű lépéseken:
- Állítsa be a környezetet.
- Készítse elő az adatokat.
- Tokenizálja az adatkészletet.
- Finomhangolja a modellt.
- Telepítse a modellt, és hajtson végre következtetést.
- A modell teljesítményének értékelése.
Ha ki szeretné hagyni a környezet beállítását, használhatja a következő jegyzetfüzetet GitHub és futtassa a kódot a SageMakerben.
A Hugging Face és az AWS 2022 elején bejelentette, hogy együttműködést kötnek, amely még könnyebbé teszi a Hugging Face modellek SageMakeren való betanítását. Ez a funkció a Hugging Face fejlesztésén keresztül érhető el AWS Deep Learning Containers (DLC-k). Ezek a tárolók magukban foglalják a Hugging Face Transformereket, a Tokenizereket és a Datasets könyvtárat, amely lehetővé teszi számunkra, hogy ezeket az erőforrásokat képzési és következtetési munkákhoz használjuk. Az elérhető DLC-képek listáját lásd: Elérhető Deep Learning Containers képek. Karbantartják és rendszeresen frissítik biztonsági javításokkal. Számos példát találhat arra, hogyan taníthat Hugging Face modelleket ezekkel a DLC-kkel és a Hugging Face Python SDK a következőkben GitHub repo.
A PAWS adatkészlet
Felismerve a hatékony mondatpár-adatkészletek hiányát, amelyek nagy lexikális átfedést mutatnak anélkül, hogy parafrázisok lennének, az eredeti MANCS A 2019-ben kiadott adatkészlet célja, hogy a természetes nyelvi feldolgozó (NLP) közösség számára új erőforrást biztosítson a parafrázis-észlelési modellek képzéséhez és értékeléséhez. A PAWS mondatpárok két lépésben jönnek létre a használatával Wikipedia és a Quora kérdéspárok (QQP) adatkészlet. A nyelvi modell először felcseréli a mondatpárban lévő szavakat ugyanazzal a Szavakkal (BOW), hogy mondatpárt generáljon. A visszafordítási lépés ezután olyan parafrázisokat generál, amelyek nagy ÍJ átfedéssel rendelkeznek, de eltérő szórendet használnak. A végső PAWS adatkészlet összesen 108,000 656,000 ember által jelölt és XNUMX XNUMX zajosan jelölt párt tartalmaz.
Ebben a bejegyzésben a PAWS-Wiki feliratú (végleges) Hugging Face adatkészlete. A Hugging Face már elvégezte helyettünk az adatfelosztást, ami 49,000 8,000 mondatpárt eredményez a betanítási adatkészletben, és 1 XNUMX mondatpárt az érvényesítési és tesztadatkészletben. A következő példa két mondatpár példát mutat be a betanítási adatkészletből. Az XNUMX-es címke azt jelzi, hogy a két mondat egymás parafrázisa.
1. mondat | 2. mondat | Címke |
Bár cserélhető, a karosszériaelemek a 2 autón nem hasonlítanak egymásra. | Bár hasonlóak, a karosszériaelemek nem cserélhetők fel a 2 autón. | 0 |
Katz Svédországban született 1947-ben, és 1 évesen New Yorkba költözött. | Katz 1947-ben született Svédországban, és egy évesen New Yorkba költözött. | 1 |
Előfeltételek
A következő előfeltételeket kell teljesítenie:
- Regisztráljon egy AWS-fiókot, ha nincs. További információkért lásd Állítsa be az Amazon SageMaker előfeltételeit.
- Kezdje el használni SageMaker notebook példányok.
- Állítsa be a jobb oldalt AWS Identity and Access Management (IAM) engedélyek. További információkért lásd SageMaker szerepek.
Állítsa be a környezetet
Mielőtt elkezdenénk megvizsgálni és előkészíteni adatainkat a modell finomhangolásához, be kell állítani a környezetünket. Kezdjük egy SageMaker notebook példány felpörgetésével. Válasszon egy AWS-régiót AWS-fiókjában, és kövesse az utasításokat hozzon létre egy SageMaker notebook példányt. A notebook-példány felpörgése eltarthat néhány percig.
Amikor a notebook példány fut, válassza a lehetőséget conda_pytorch_p38
mint a kernel típusa. A Hugging Face adatkészlet használatához először telepítenünk és importálnunk kell a Hugging Face könyvtárat:
Ezután hozzunk létre egy SageMaker munkamenetet. Az alapértelmezettet használjuk Amazon egyszerű tárolási szolgáltatás (Amazon S3) a SageMaker munkamenethez társított vödör a PAWS adatkészlet és a modell műtermékek tárolására:
Készítse elő az adatokat
Ezzel betölthetjük a PAWS adatkészlet Hugging Face verzióját load_dataset()
parancs. Ez a hívás letölti és importálja a PAWS Python feldolgozó szkriptet a Hugging Face GitHub adattárból, amely ezután letölti a PAWS adatkészletet a szkriptben tárolt eredeti URL-ről, és az adatokat nyíl táblázatként gyorsítótárazza a meghajtón. Lásd a következő kódot:
Mielőtt elkezdené az előre betanított BERT-modell finomhangolását, nézzük meg a célosztályok eloszlását. A mi használati esetünkben a PAWS adatkészlet bináris címkékkel rendelkezik (a 0 azt jelzi, hogy a mondatpár nem parafrázis, az 1 pedig azt, hogy az). Hozzon létre egy oszlopdiagramot az osztályeloszlás megtekintéséhez, ahogy az a következő kódban látható. Azt látjuk, hogy enyhe osztálykiegyensúlyozatlansági probléma van a képzési készletünkben (56% negatív minták vs. 44% pozitív minták). Az egyensúlyhiány azonban elég kicsi ahhoz, hogy elkerüljük az osztálykiegyensúlyozatlanság-csökkentő technikák alkalmazását.
Tokenizálja az adatkészletet
Mielőtt elkezdhetnénk a finomhangolást, tokenizálnunk kell az adatkészletünket. Tegyük fel, hogy kiindulópontként szeretnénk finomhangolni és értékelni a roberta-base
transzformátor. válogattunk roberta-base
mert ez egy általános célú transzformátor, amelyet előre betanítottak egy nagy mennyiségű angol adathalmazra, és gyakran mutatott magas teljesítményt számos NLP-feladaton. A modellt eredetileg a lapban mutatták be RoBERTa: Robusztusan optimalizált BERT előképzési megközelítés.
A mondatokon tokenizálást végzünk a roberta-base
a Hugging Face tokenizátora, amely bájtszintű bájtpáros kódolást használ a dokumentum tokenekre való felosztására. A RoBERTa tokenizátorral kapcsolatos további részletekért lásd: RobertaTokenizer. Mivel a bemeneteink mondatpárok, mindkét mondatot egyszerre kell tokenizálnunk. Mivel a legtöbb BERT modell megköveteli, hogy a bemenetnek fix tokenizált bemeneti hossza legyen, a következő paramétereket állítjuk be: max_len=128
és a truncation=True
. Lásd a következő kódot:
A BERT-modell finomhangolásának utolsó előfeldolgozási lépése az, hogy a tokenizált vonat- és validációs adatkészleteket PyTorch tenzorokká konvertáljuk, és feltöltjük az S3 tárolóba:
Finomhangolja a modellt
Most, hogy végeztünk az adatok előkészítésével, készen állunk az előképzettség finomhangolására roberta-base
modell a parafrázis azonosítási feladaton. A SageMaker Hugging Face Estimator osztály segítségével két lépésben elindíthatjuk a finomhangolási folyamatot. Az első lépés a betanítási hiperparaméterek és metrikadefiníciók meghatározása. A metrikadefiníciók változója megmondja az Ölelésarc-becslőnek, hogy milyen típusú mérőszámokat nyerjen ki a modell edzésnaplóiból. Itt elsősorban az érvényesítési halmaz mérőszámainak kinyerésére vagyunk kíváncsiak az egyes képzési időszakokban.
A második lépés a Hugging Face Estimator példányosítása, és a finomhangolási folyamat elindítása a .fit()
eljárás:
A finomhangolás körülbelül 30 percet vesz igénybe a megadott hiperparaméterek használatával.
Telepítse a modellt, és hajtson végre következtetést
A SageMaker többféle telepítési lehetőséget kínál a használati esettől függően. A tartós, valós idejű végpontokhoz, amelyek egyszerre csak egy előrejelzést adnak, javasoljuk a használatát SageMaker valós idejű hosting szolgáltatások. Ha olyan munkateherjei vannak, amelyek a forgalmi ugrások között üresjáratokkal járnak, és elviselik a hidegindítást, javasoljuk, hogy Szerver nélküli következtetés. A kiszolgáló nélküli végpontok automatikusan elindítják a számítási erőforrásokat, és a forgalomtól függően be- és kicsinyítik azokat, így nincs szükség a példánytípusok kiválasztására vagy a méretezési házirendek kezelésére. Bemutatjuk, hogyan telepíthetjük a finomhangolt Hugging Face modellünket valós idejű következtetési végpontra és kiszolgáló nélküli következtetés végpontra is.
Telepítés egy valós idejű következtetési végpontra
A SageMakeren belüli valós idejű következtetési tárhelyen telepíthet egy betanító objektumot a .deploy()
módszer. Az elfogadott paraméterek teljes listáját lásd: Átölelő arcmodell. Kezdésként telepítsük a modellt egy példányra a következő paraméterek átadásával: initial_instance_count
, instance_type
és endpoint_name
. Lásd a következő kódot:
A modell telepítése néhány percet vesz igénybe. A modell üzembe helyezése után mintarekordokat küldhetünk be a nem látott tesztadatkészletből a végpontba következtetés céljából.
Telepítés kiszolgáló nélküli következtetés végpontra
A képzési objektum kiszolgáló nélküli végponton való üzembe helyezéséhez először meg kell adnunk egy kiszolgáló nélküli konfigurációs fájlt memory_size_in_mb
és a max_concurrency
érvek:
memory_size_in_mb
meghatározza a kiszolgáló nélküli végpont teljes RAM-méretét; a minimális RAM mérete 1024 MB (1 GB), és akár 6144 MB-ra (6 GB) is méretezhető. Általában célszerű olyan memóriaméretet választani, amely legalább akkora, mint a modell mérete. max_concurrency
Meghatározza a kvótát arra vonatkozóan, hogy hány párhuzamos hívást lehet egyszerre feldolgozni (legfeljebb 50 párhuzamos hívást) egyetlen végponthoz.
Meg kell adnunk a Hugging Face következtetési kép URI-ját is, amelyet a következő kóddal tud lekérni:
Most, hogy megvan a kiszolgáló nélküli konfigurációs fájl, ugyanúgy létrehozhatunk egy kiszolgáló nélküli végpontot, mint a valós idejű következtetési végpontunk, a .deploy()
eljárás:
A végpontot néhány percen belül létre kell hozni.
Végezzen modellkövetkeztetést
A jóslatok készítéséhez létre kell hoznunk a mondatpárt a következő hozzáadásával [CLS]
és a [SEP]
speciális tokeneket, majd elküldi a bemenetet a modell végpontjainak. A valós idejű következtetés és a szerver nélküli következtetés szintaxisa megegyezik:
A következő példákban láthatjuk, hogy a modell képes helyesen osztályozni, hogy a bemeneti mondatpár tartalmaz-e átfogalmazott mondatokat.
A következő egy valós idejű következtetési példa.
A következő példa egy szerver nélküli következtetésre.
A modell teljesítményének értékelése
A modell értékeléséhez bontsa ki az előző kódot, és küldje el mind a 8,000 nem látott tesztrekordot a valós idejű végponthoz:
Ezután létrehozhatunk egy osztályozási jelentést a kivont előrejelzések felhasználásával:
A következő teszteredményeket kapjuk.
Ezt megfigyelhetjük roberta-base
1%-os kombinált makroátlagos F92-es pontszámmal rendelkezik, és valamivel jobban teljesít a parafrázis mondatok észlelésében. A roberta-base
modell jól teljesít, de célszerű legalább egy másik modell használatával kiszámítani a modell teljesítményét.
Az alábbi táblázat összehasonlítja roberta-base
teljesítményeredmények ugyanazon a tesztkészleten egy másik, úgynevezett finomhangolt transzformátorral szemben paraphrase-mpnet-base-v2
, kifejezetten a parafrázis azonosítási feladatra előre kiképzett mondattranszformátor. Mindkét modellt egy ml.p3.8xlarge példányon képezték ki.
Az eredmények azt mutatják roberta-base
1%-kal magasabb F1-pontszámmal rendelkezik, nagyon hasonló képzési és következtetési időkkel a SageMaker valós idejű következtetési tárhelyén. A modellek közötti teljesítménykülönbség azonban viszonylag csekély, roberta-base
végső soron a győztes, mivel némileg jobb teljesítménymutatókkal és majdnem azonos képzési és következtetési idővel rendelkezik.
Pontosság | visszahívás | F1-pontszám | Képzési idő (számlázható) | Következtetési idő (teljes tesztkészlet) | |
roberta-alap | 0.92 | 0.93 | 0.92 | 18 perc | 2 perc |
parafrázis-mpnet- base-v2 |
0.92 | 0.91 | 0.91 | 17 perc | 2 perc |
Tisztítsuk meg
Ha végzett a modell végpontjaival, törölheti őket, hogy elkerülje a jövőbeni költségeket:
Következtetés
Ebben a bejegyzésben megvitattuk, hogyan lehet gyorsan felépíteni egy parafrázis azonosítási modellt Hugging Face transzformátorokkal a SageMakeren. Két előre betanított transzformátort finomhangoltunk, roberta-base
és a paraphrase-mpnet-base-v2
, a PAWS adatkészlet használatával (amely nagy lexikai átfedéssel rendelkező mondatpárokat tartalmaz). Bemutattuk és megvitattuk a valós idejű következtetés előnyeit a szerver nélküli következtetéssel szemben. Ez utóbbi olyan új funkció, amely a túlzott munkaterheléseket célozza meg, és szükségtelenné teszi a méretezési házirendek kezelését. Egy 8,000 rekordot tartalmazó, nem látott tesztsorozaton kimutattuk, hogy mindkét modell 1%-nál nagyobb F90-es pontszámot ért el.
A megoldás bővítéséhez vegye figyelembe a következőket:
- Próbáljon finomhangolni saját egyéni adatkészletével. Ha nem rendelkezik elegendő képzési címkével, értékelheti egy olyan finomhangolt modell teljesítményét, mint amilyet ebben a bejegyzésben mutatunk be, egyéni tesztadatkészleten.
- Integrálja ezt a finomhangolt modellt egy olyan downstream alkalmazásba, amely információt igényel arról, hogy két mondat (vagy szövegblokk) egymás parafrázisa-e.
Boldog épület!
A szerzőkről
Bala Krishnamoorthy az AWS Professional Services adattudósa, ahol szívesen alkalmazza a gépi tanulást az ügyfelek üzleti problémáinak megoldására. Szakterülete a természetes nyelvi feldolgozás használati esetei, és olyan iparágakban dolgozott ügyfelekkel, mint a szoftver, a pénzügy és az egészségügy. Szabadidejében szeret új ételeket kipróbálni, vígjátékokat és dokumentumfilmeket nézni, edzeni az Orange Theory-ban, és kint tartózkodik a vízen (evezős, snorkelezés és remélhetőleg hamarosan búvárkodás).
Ivan Cui az AWS Professional Services adattudósa, ahol segít az ügyfeleknek az AWS gépi tanulást használó megoldások létrehozásában és üzembe helyezésében. Különféle iparágakban dolgozott ügyfelekkel, beleértve a szoftvereket, a pénzügyeket, a gyógyszerészetet és az egészségügyet. Szabadidejében szívesen olvas, a családjával tölt időt, és maximalizálja részvényportfólióját.
- Coinsmart. Európa legjobb Bitcoin- és kriptográfiai tőzsdéje.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. SZABAD HOZZÁFÉRÉS.
- CryptoHawk. Altcoin radar. Ingyenes próbaverzió.
- Forrás: https://aws.amazon.com/blogs/machine-learning/identify-paraphrased-text-with-hugging-face-on-amazon-sagemaker/
- '
- "
- 000
- 10
- 100
- 2019
- 2022
- 84
- Rólunk
- hozzáférés
- Fiók
- elért
- át
- Minden termék
- már
- amazon
- bejelentés
- Másik
- Alkalmazás
- Alkalmazása
- körülbelül
- érvek
- elérhető
- AWS
- hogy
- Előnyök
- test
- határ
- épít
- üzleti
- hívás
- képes
- autók
- esetek
- díjak
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- Város
- osztály
- besorolás
- kód
- Oszlop
- kombinált
- közösség
- teljesen
- Kiszámít
- bizalom
- Konténerek
- tartalmaz
- tudott
- teremt
- készítette
- szokás
- vevő
- Ügyfelek
- dátum
- adattudós
- bizonyítani
- igazolták
- attól
- telepíteni
- telepített
- bevetés
- részletek
- Érzékelés
- Fejlesztés
- különböző
- terjesztés
- dokumentumfilmek
- dokumentumok
- letöltések
- hajtás
- hatékony
- Endpoint
- Angol
- Környezet
- létrehozni
- értékelni
- példa
- kiállít
- Bontsa
- Arc
- család
- Funkció
- finanszíroz
- vezetéknév
- repülés
- Összpontosít
- következik
- következő
- élelmiszer
- Ingyenes
- Tele
- funkció
- funkcionalitás
- jövő
- Általános rendeltetésű
- általában
- generál
- GitHub
- jó
- nagyobb
- egészségügyi
- magasság
- segít
- itt
- Magas
- <p></p>
- tárhely
- Hogyan
- How To
- HTTPS
- Azonosítás
- azonosítani
- azonosító
- Identitás
- kép
- tartalmaz
- Beleértve
- iparágak
- információ
- bemenet
- telepíteni
- érdekelt
- kérdés
- IT
- Állások
- Címkék
- nyelv
- nagy
- indít
- tanulás
- könyvtár
- Lista
- kiszámításának
- gép
- gépi tanulás
- KÉSZÍT
- kezelése
- Memory design
- Metrics
- ML
- modell
- modellek
- több
- a legtöbb
- többszörös
- Természetes
- negatív
- New York
- new york city
- jegyzetfüzet
- Ajánlatok
- optimalizált
- Opciók
- érdekében
- Más
- saját
- Papír
- Párizs
- Létrehozása
- Múló
- Patches
- teljesítmény
- időszakok
- Gyógyszeripari
- pont
- Politikák
- portfolió
- pozitív
- gyakorlat
- előrejelzés
- Tippek
- problémák
- folyamat
- feldolgozás
- szakmai
- ad
- kérdés
- quora
- RAM
- sor
- Olvasás
- real-time
- ajánl
- nyilvántartások
- felszabaduló
- jelentést
- raktár
- szükség
- forrás
- Tudástár
- Eredmények
- visszatérés
- futás
- futás
- Skála
- skálázás
- Tudós
- biztonság
- kiválasztott
- vagy szerver
- Szolgáltatások
- készlet
- beállítás
- hasonló
- Egyszerű
- Méret
- kicsi
- szoftver
- szilárd
- megoldások
- Megoldások
- SOLVE
- speciális
- specializálódott
- kifejezetten
- Költési
- Centrifugálás
- osztott
- kezdet
- kezdődött
- kezdődik
- készlet
- tárolás
- tárolni
- Később
- kínálat
- Svédország
- rendszer
- cél
- feladatok
- technikák
- megmondja
- teszt
- Keresztül
- idő
- tokenizálás
- Vezérjeles
- tokenek
- felső
- fáklya
- forgalom
- Képzések
- Fordítás
- us
- használ
- érvényesítés
- érték
- fajta
- Megnézem
- Víz
- Mit
- vajon
- Wikipedia
- belül
- nélkül
- szavak
- dolgozott
- dolgozó
- edzeni