V zadnjem času je bilo na področju NLP veliko napredka. Vnaprej usposobljeni modeli in popolnoma upravljane NLP storitve so demokratizirale dostop in sprejemanje NLP. Amazonsko razumevanje je v celoti upravljana storitev, ki lahko izvaja naloge NLP, kot so prepoznavanje subjektov po meri, modeliranje tem, analiza razpoloženja in več, da pridobi vpoglede iz podatkov, ne da bi potrebovali predhodne izkušnje z ML.
Lansko leto je AWS napovedal a Partnerstvo z Objemni obraz za pomoč pri hitrejši uvedbi modelov za obdelavo naravnega jezika (NLP). Hugging Face je odprtokodna skupnost umetne inteligence, osredotočena na NLP. Njihova knjižnica, ki temelji na Pythonu (transformatorji) ponuja orodja za preprosto uporabo priljubljenih najsodobnejših arhitektur Transformer, kot so BERT, RoBERTa in GPT. Te modele lahko uporabite za različne naloge NLP, kot so klasifikacija besedila, pridobivanje informacij in odgovarjanje na vprašanja, med drugi.
Amazon SageMaker je popolnoma upravljana storitev, ki razvijalcem in podatkovnim znanstvenikom omogoča hitro gradnjo, usposabljanje in uvajanje modelov strojnega učenja (ML). SageMaker odstrani težko delo iz vsakega koraka procesa ML, kar olajša razvoj visokokakovostnih modelov. SDK SageMaker Python ponuja odprtokodne API-je in vsebnike za usposabljanje in uvajanje modelov na SageMaker z uporabo več različnih ogrodij ML in globokega učenja.
Integracija Hugging Face s SageMaker vam omogoča izdelavo modelov Hugging Face v velikem obsegu na vaših lastnih primerih uporabe, specifičnih za domeno.
V tej objavi vas vodimo skozi primer, kako zgraditi in razmestiti povzemalnik besedila Hugging Face po meri na SageMaker. Za ta namen uporabljamo Pegasus [1], prvi model, ki temelji na Transformerju in je posebej predhodno usposobljen za cilj, prilagojen za povzemanje abstraktnega besedila. BERT je predhodno usposobljen za maskiranje naključnih besed v stavku; v nasprotju s tem pa so med Pegasusovim predhodnim usposabljanjem stavki prikriti iz vhodnega dokumenta. Model nato generira manjkajoče stavke kot eno samo izhodno zaporedje z uporabo vseh nezamaskiranih stavkov kot konteksta in kot rezultat ustvari izvršni povzetek dokumenta.
Zahvaljujoč prilagodljivosti knjižnice HuggingFace lahko preprosto prilagodite kodo, prikazano v tej objavi, za druge vrste modelov transformatorjev, kot so t5, BART in drugi.
Naložite svoj nabor podatkov za natančno nastavitev modela Hugging Face
Za nalaganje nabora podatkov po meri iz datoteke CSV uporabimo load_dataset
metoda iz paketa Transformers. Tokenizacijo lahko uporabimo za naložen nabor podatkov z uporabo datasets.Dataset.map
funkcijo. The map
funkcija ponovi naložen nabor podatkov in za vsak primer uporabi funkcijo tokenize. Tokenizirani nabor podatkov se lahko nato posreduje inštruktorju za natančno nastavitev modela. Oglejte si naslednjo kodo:
Sestavite svoj skript za usposabljanje za ocenjevalnik Hugging Face SageMaker
Kot je razloženo v objavi AWS in Hugging Face sodelujeta pri poenostavitvi in pospešitvi sprejemanja modelov obdelave naravnega jezika, usposabljanje modela Hugging Face na SageMakerju še nikoli ni bilo lažje. To lahko storimo z uporabo ocenjevalca Hugging Face iz SDK SageMaker.
Naslednji delček kode natančno prilagodi Pegasus našemu naboru podatkov. Najdete jih tudi veliko vzorčni zvezki ki vas vodijo skozi natančno nastavitev različnih vrst modelov, ki so na voljo neposredno v repozitoriju transformers GitHub. Da omogočimo porazdeljeno usposabljanje, lahko uporabimo Knjižnica paralelizma podatkov v SageMakerju, ki je vgrajen v HuggingFace Trainer API. Da omogočimo vzporednost podatkov, moramo definirati distribution
parameter v našem ocenjevalcu Hugging Face.
Največja velikost vadbene serije, ki jo lahko konfigurirate, je odvisna od velikosti modela in pomnilnika GPE uporabljenega primerka. Če je omogočeno porazdeljeno usposabljanje SageMaker, je skupna velikost serije vsota vsake serije, ki je porazdeljena po vsaki napravi/GPU. Če uporabimo ml.g4dn.16xlarge s porazdeljenim usposabljanjem namesto primerka ml.g4dn.xlarge, imamo osemkrat (8 grafičnih procesorjev) toliko pomnilnika kot primerek ml.g4dn.xlarge (1 grafični procesor). Velikost serije na napravo ostaja enaka, vendar se vzporedno usposablja osem naprav.
Kot običajno pri SageMakerju ustvarimo a train.py
skript za uporabo s skriptnim načinom in posredovanje hiperparametrov za usposabljanje. Naslednji delček kode za Pegasus naloži model in ga uri s pomočjo Transformerjev Trainer
razred:
Celotna koda je na voljo na GitHub.
Razmestite usposobljeni model Hugging Face v SageMaker
Naši prijatelji pri Hugging Face so sklepanje o modelih SageMaker for Transformers poenostavili kot kdaj koli SageMaker Hugging Face Inference Toolkit. Prej usposobljeni model lahko neposredno uvedete tako, da preprosto nastavite spremenljivko okolja "HF_TASK":"summarization"
(za navodila glejte Modeli Pegasus), izbiranje uvajanje, in nato izbiranje Amazon SageMaker, ne da bi bilo treba napisati sklepni skript.
Če pa potrebujete določen način za generiranje ali naknadno obdelavo napovedi, na primer generiranje več predlogov povzetkov na podlagi seznama različnih parametrov za generiranje besedila, je pisanje lastnega sklepnega skripta lahko koristno in razmeroma preprosto:
Kot je prikazano v prejšnji kodi, potrebuje tak inferencialni skript za HuggingFace na SageMaker le naslednje funkcije predloge:
- model_fn () – Prebere vsebino tistega, kar je bilo shranjeno ob koncu usposabljanja
SM_MODEL_DIR
, ali iz obstoječega imenika uteži modela, shranjenega kot datoteka tar.gz v Preprosta storitev shranjevanja Amazon (Amazon S3). Uporablja se za nalaganje usposobljenega modela in povezanega tokenizatorja. - input_fn () – Oblikuje podatke, prejete iz zahteve, poslane končni točki.
- predvidi_fn () – Prikliče izhod
model_fn()
(model in tokenizator), da izvede sklepanje na izhoduinput_fn()
(oblikovani podatki).
Po želji lahko ustvarite output_fn()
funkcija za oblikovanje sklepanja z uporabo izhoda predict_fn()
, česar v tej objavi nismo prikazali.
Nato lahko uvedemo izurjen model Hugging Face s pripadajočim sklepnim skriptom v SageMaker z uporabo Model objemajočega obraza SageMaker razred:
Preizkusite nameščeni model
Za to predstavitev smo usposobili model na Nabor podatkov o ocenah ženskih e-trgovinskih oblačil, ki vsebuje ocene oblačilnih artiklov (ki jih obravnavamo kot vhodno besedilo) in z njimi povezane naslove (ki jih obravnavamo kot povzetke). Ko odstranimo članke z manjkajočimi naslovi, nabor podatkov vsebuje 19,675 ocen. Natančna nastavitev modela Pegasus na učnem nizu, ki vsebuje 70 % teh člankov za pet epoh, je na primerku ml.p3.5xlarge trajala približno 3.16 ure.
Nato lahko uvedemo model in ga preizkusimo z nekaj vzorčnimi podatki iz testnega niza. Sledi primer ocene, ki opisuje pulover:
Zahvaljujoč našemu sklepnemu skriptu po meri, ki gostuje v končni točki SageMaker, lahko ustvarimo več povzetkov za ta pregled z različnimi parametri generiranja besedila. Na primer, od končne točke lahko zahtevamo, da ustvari vrsto zelo kratkih do zmerno dolgih povzetkov, ki določajo različne kazni za dolžino (manjša kot je kazen za dolžino, krajši je ustvarjeni povzetek). Sledi nekaj primerov vnosa parametrov in poznejši strojno ustvarjeni povzetki:
Kateri povzetek vam je ljubši? Prvi ustvarjeni naslov zajema vsa pomembna dejstva o recenziji, s četrtino manj besed. V nasprotju s tem zadnji uporablja samo tri besede (manj kot 1/10 dolžine prvotne ocene), da se osredotoči na najpomembnejšo lastnost puloverja.
zaključek
S tem preprostim primerom, ki je na voljo na strani GitHub. Dodatno vzorčni zvezki za usposabljanje in uvajanje modelov Hugging Face na SageMaker so na voljo tudi.
Kot vedno, AWS pozdravlja povratne informacije. Prosimo, pošljite kakršne koli pripombe ali vprašanja.
Reference
[1] PEGASUS: Predhodno usposabljanje z ekstrahiranimi vrzelnimi stavki za abstraktno povzemanje
O avtorjih
Viktor Malešević je inženir strojnega učenja pri AWS Professional Services, navdušen nad obdelavo naravnega jezika in MLOps. Sodeluje s strankami pri razvoju in uvajanju zahtevnih modelov globokega učenja v proizvodnjo na AWS. V prostem času si s prijatelji rad privošči kozarec rdečega vina in malo sira.
Aamna Najmi je podatkovni znanstvenik pri AWS Professional Services. Strastno želi pomagati strankam pri inovacijah s tehnologijami velikih podatkov in umetne inteligence, da iz podatkov izkoristijo poslovno vrednost in vpoglede. V prostem času rada vrtnari in potuje v nove kraje.
- AI
- ai art
- ai art generator
- imajo robota
- Amazon SageMaker
- Umetna inteligenca
- certificiranje umetne inteligence
- umetna inteligenca v bančništvu
- robot z umetno inteligenco
- roboti z umetno inteligenco
- programska oprema za umetno inteligenco
- Strojno učenje AWS
- blockchain
- blockchain konferenca ai
- coingenius
- pogovorna umetna inteligenca
- kripto konferenca ai
- dall's
- globoko učenje
- strojno učenje
- platon
- platon ai
- Platonova podatkovna inteligenca
- Igra Platon
- PlatoData
- platogaming
- lestvica ai
- sintaksa
- zefirnet