Razumevanje naravnega jezika se uporablja v številnih primerih uporabe, od klepetalnih robotov in virtualnih pomočnikov do strojnega prevajanja in povzemanja besedil. Za zagotovitev, da te aplikacije delujejo na pričakovani ravni zmogljivosti, je pomembno, da so podatki v učnem in produkcijskem okolju iz iste distribucije. Ko se podatki, ki se uporabljajo za sklepanje (podatki o proizvodnji), razlikujejo od podatkov, uporabljenih med usposabljanjem modela, naletimo na pojav, znan kot odmik podatkov. Ko pride do premika podatkov, model ni več pomemben za podatke v proizvodnji in verjetno deluje slabše od pričakovanega. Pomembno je nenehno spremljati sklepne podatke in jih primerjati s podatki, uporabljenimi med usposabljanjem.
Lahko uporabite Amazon SageMaker za hitro izdelavo, usposabljanje in uvajanje modelov strojnega učenja (ML) v poljubnem obsegu. Kot proaktivni ukrep proti degradaciji modela lahko uporabite Amazonski model monitorja SageMaker za stalno spremljanje kakovosti vaših modelov ML v realnem času. Z Model Monitor lahko konfigurirate tudi opozorila za obveščanje in sprožitev dejanj, če opazite kakršen koli zamik v zmogljivosti modela. Zgodnje in proaktivno odkrivanje teh odstopanj vam omogoča, da izvedete popravne ukrepe, kot je zbiranje novih podatkov o usposabljanju resnice na terenu, ponovno usposabljanje modelov in revizija sistemov navzgor, ne da bi morali ročno spremljati modele ali graditi dodatna orodja.
Model Monitor ponuja štiri različne vrste nadzornih zmogljivosti za zaznavanje in ublažitev premikanja modela v realnem času:
- Kakovost podatkov – Pomaga zaznati spremembo podatkovnih shem in statističnih lastnosti neodvisnih spremenljivk ter opozori, ko je zaznan premik.
- Kakovost modela – Za spremljanje značilnosti delovanja modela, kot sta točnost ali natančnost v realnem času, vam Model Monitor omogoča, da zaužijete osnovne oznake resnice, zbrane iz vaših aplikacij. Model Monitor samodejno združi informacije o resnici na tleh s podatki napovedi za izračun metrike učinkovitosti modela.
- Model pristranskost –Model Monitor je integriran z Amazon SageMaker Pojasni izboljšati vpogled v morebitno pristranskost. Čeprav vaši začetni podatki ali model morda niso pristranski, lahko spremembe v svetu povzročijo, da se pri modelu, ki je že bil usposobljen, sčasoma razvije pristranskost.
- Razložljivost modela – Zaznavanje odmika vas opozori, ko pride do spremembe relativne pomembnosti pripisov funkcij.
V tej objavi razpravljamo o vrstah nihanja kakovosti podatkov, ki se uporabljajo za besedilne podatke. Predstavljamo tudi pristop k odkrivanju premika podatkov v besedilnih podatkih z uporabo Model Monitorja.
Odmik podatkov v NLP
Premik podatkov je mogoče razvrstiti v tri kategorije, odvisno od tega, ali se premik porazdelitve dogaja na vhodni ali izhodni strani ali ali se je razmerje med vhodom in izhodom spremenilo.
Kovariatni premik
V kovariatni premik, se porazdelitev vložkov s časom spreminja, vendar pogojna porazdelitev P(y|x) se ne spremeni. Ta vrsta odmika se imenuje premik kovariate, ker problem nastane zaradi premika v porazdelitvi kovariat (značilnosti). Na primer, v modelu razvrščanja vsiljene e-pošte se lahko porazdelitev podatkov o usposabljanju (korpusi e-pošte) razlikuje od porazdelitve podatkov med točkovanjem.
Premik etikete
Medtem ko se kovariatni premik osredotoča na spremembe v porazdelitvi značilnosti, premik oznake se osredotoča na spremembe v porazdelitvi spremenljivke razreda. Ta vrsta premika je v bistvu obratna stran od kovariatnega premika. Intuitiven način razmišljanja o tem bi lahko bil, da razmislite o neuravnoteženem nizu podatkov. Če je razmerje med neželeno in neželeno pošto v našem naboru za usposabljanje 50 %, v resnici pa 10 % naših e-poštnih sporočil ni neželene, se je porazdelitev ciljnih oznak premaknila.
Premik koncepta
Premik koncepta se razlikuje od kovariate in premika oznake po tem, da ni povezan s porazdelitvijo podatkov ali porazdelitvijo razreda, temveč je povezan z razmerjem med obema spremenljivkama. Pošiljatelji neželene e-pošte na primer pogosto uporabljajo različne koncepte za prenos modelov filtrov za neželeno pošto, koncept e-poštnih sporočil, uporabljenih med usposabljanjem, pa se lahko s časom spremeni.
Zdaj, ko razumemo različne vrste premikanja podatkov, poglejmo, kako lahko uporabimo Model Monitor za odkrivanje kovariatnega premika v besedilnih podatkih.
Pregled rešitev
Za razliko od tabelarnih podatkov, ki so strukturirani in omejeni, so besedilni podatki kompleksni, visoko dimenzionalni in prosti obliki. Za učinkovito odkrivanje odmika v NLP sodelujemo z vdelave, ki so nizkodimenzionalni prikazi besedila. Vdelave lahko pridobite z uporabo različnih jezikovnih modelov, kot je Word2Vec, in transformatorskih modelov, kot je BERTI. Ti modeli projicirajo visokodimenzionalne podatke v nizkodimenzionalne prostore, hkrati pa ohranjajo semantične informacije besedila. Rezultati so gosti in kontekstualno pomembni vektorji, ki jih je mogoče uporabiti za različne naloge na nižji stopnji, vključno s spremljanjem premikanja podatkov.
V naši rešitvi uporabljamo vdelave za odkrivanje kovariatnega premika angleških stavkov. Model Monitor uporabljamo za olajšanje stalnega spremljanja besedilnega klasifikatorja, ki je nameščen v produkcijskem okolju. Naš pristop je sestavljen iz naslednjih korakov:
- Natančno prilagodite model BERT z uporabo SageMakerja.
- Namestite natančno nastavljen klasifikator BERT kot končno točko v realnem času z zajemanje podatkov omogočeno.
- Ustvarite osnovni nabor podatkov, ki je sestavljen iz vzorca stavkov, uporabljenih za usposabljanje klasifikatorja BERT.
- Ustvarite nadzorno opravilo SageMaker po meri za izračun kosinusne podobnosti med podatki, zajetimi v proizvodnji, in osnovnim naborom podatkov.
Naslednji diagram prikazuje potek dela rešitve:
Natančno prilagodite model BERT
V tej objavi uporabljamo Korpus jezikovne sprejemljivosti (CoLA), podatkovni niz 10,657 angleških stavkov, označenih kot slovnični ali neslovnični iz objavljene jezikoslovne literature. Uporabljamo usposabljanje SageMaker za natančno nastavitev modela BERT z uporabo nabora podatkov CoLa z definiranjem razreda ocenjevalca PyTorch. Za več informacij o tem, kako uporabljati ta SDK s PyTorch, glejte Uporabite PyTorch s SageMaker Python SDK. Klicanje fit()
metoda ocenjevalca zažene nalogo usposabljanja:
Namestite model
Po usposabljanju našega modela ga gostimo na končni točki SageMaker. Da bi končna točka naložila model in služila napovedim, implementiramo nekaj metod train_deploy.py:
- model_fn () - Naloži shranjeni model in vrne objektni model, ki ga je mogoče uporabiti za vročanje modelov. Strežnik modelov SageMaker PyTorch naloži naš model s klicem
model_fn
. - input_fn () - Deserializira in pripravi vnos predvidevanja. V tem primeru je naše telo zahteve najprej serializirano v JSON in nato poslano končni točki, ki prikazuje model. Zato je v
input_fn()
, najprej deserializiramo telo zahteve v obliki JSON in vnos vrnemo kottorch.tensor
, kot je potrebno za BERT. - predvidi_fn () – Izvede napoved in vrne rezultat.
Omogoči zajemanje podatkov Model Monitor
Omogočamo Zajem podatkov monitorja modela za snemanje vhodnih podatkov v Preprosta storitev shranjevanja Amazon (Amazon S3) vedro, da se nanj sklicujete pozneje:
Nato ustvarimo končno točko SageMaker v realnem času z modelom, ustvarjenim v prejšnjem koraku:
Sklepanje
Predvidevanje izvajamo z uporabo objekta napovedovalca, ki smo ga ustvarili v prejšnjem koraku. Nastavimo JSON serializator in deserializer, ki ju uporablja končna točka sklepanja:
Končna točka v realnem času je konfigurirana za zajemanje podatkov iz zahteve, odgovor in podatki pa se shranijo v Amazon S3. Ogledate si lahko podatke, ki so bili zajeti v prejšnjem urniku spremljanja.
Ustvarite osnovno črto
Uporabljamo natančno nastavljen model BERT za pridobivanje funkcij vdelave stavkov iz podatkov o usposabljanju. Te vektorje uporabljamo kot visokokakovostne vnose funkcij za primerjavo kosinusne razdalje, ker BERT ustvari dinamično predstavitev besed s semantičnim kontekstom. Izvedite naslednje korake, da dobite vdelavo stavkov:
- Uporabite tokenizer BERT, da pridobite ID-je žetonov za vsak žeton (
input_id
) v vhodnem stavku in maski, da označite, kateri elementi v vhodnem zaporedju so žetoni v primerjavi z elementi oblazinjenja (attention_mask_id
). Uporabljamo BERTtokenizer.encode_plus
funkcijo za pridobitev teh vrednosti za vsak vhodni stavek:
input_ids
in attention_mask_ids
se posredujejo modelu in pridobijo skrita stanja omrežja. The hidden_states
ima štiri dimenzije v naslednjem vrstnem redu:
- Številka plasti (BERT ima 12 plasti)
- Številka serije (1 stavek)
- Indeksi besednih žetonov
- Skrite enote (768 funkcij)
- Uporabite zadnji dve skriti plasti, da dobite en sam vektor (vdelava stavka) z izračunom povprečja vseh vhodnih žetonov v stavku:
- Pretvorite vdelavo stavka kot matriko NumPy in jo shranite na lokaciji Amazon S3 kot osnovo, ki jo uporablja Model Monitor:
Evalvacijski skript
Model Monitor zagotavlja vnaprej zgrajen vsebnik z možnostjo analiziranja podatkov, zajetih s končnih točk, za tabelarične nize podatkov. Če želite prinesti svojo posodo, Model Monitor nudi razširitvene točke, ki jih lahko uporabite. Ko ustvarite a MonitoringSchedule
, Model Monitor končno začne z obdelavo opravil. Zato mora biti vsebnik seznanjen s pogodbo o opravilu obdelave. Ustvariti moramo ocenjevalni skript, ki je združljiv s vsebnikom pogodbeni vložki in izhodi.
Model Monitor uporablja ocenjevalno kodo za vse vzorce, ki so zajeti med urnikom spremljanja. Za vsako podatkovno točko sklepanja izračunamo vdelavo stavka z uporabo iste logike, ki je bila opisana prej. Kosinusna podobnost se uporablja kot metrika razdalje za merjenje podobnosti podatkovne točke sklepanja in vdelanih stavkov v osnovni črti. Matematično meri kosinusni kot med dvema stavčnima vektorjema. Visok kosinusni rezultat podobnosti kaže na podobne vdelave stavkov. Nižji rezultat kosinusne podobnosti kaže na zamik podatkov. Izračunamo povprečje vseh rezultatov kosinusne podobnosti in če je nižje od praga, se zajame v poročilu o kršitvi. Glede na primer uporabe lahko uporabite druge meritve razdalje, kot je manhattan
or euclidean
za merjenje podobnosti vdelanih stavkov.
Naslednji diagram prikazuje, kako uporabljamo spremljanje modela SageMaker za vzpostavitev osnovne linije in zaznavanje odstopanja podatkov z uporabo podobnosti kosinusne razdalje.
Sledi koda za izračun kršitev; celoten ocenjevalni scenarij je na voljo na GitHub:
Izmerite premik podatkov s pomočjo Model Monitor
V tem razdelku se osredotočamo na merjenje premika podatkov z uporabo Model Monitorja. Model Monitor Vnaprej vgrajene monitorje poganja Deequ, ki je knjižnica, zgrajena na vrhu Apache Spark za definiranje testov enot za podatke, ki merijo kakovost podatkov v velikih nizih podatkov. Za uporabo teh vnaprej vgrajenih zmožnosti spremljanja ne potrebujete kodiranja. Imate tudi prilagodljivost za spremljanje modelov s kodiranjem za zagotavljanje analize po meri. Vse meritve, ki jih oddaja Model Monitor, lahko zbirate in pregledujete v Amazon SageMaker Studio, tako da lahko vizualno analizirate delovanje svojega modela brez pisanja dodatne kode.
V določenih scenarijih, na primer, ko podatki niso tabelarični, privzeto opravilo obdelave (poganja Deequ) ne zadostuje, ker podpira samo tabelarične nabore podatkov. Vnaprej vgrajeni monitorji morda ne bodo zadostovali za ustvarjanje sofisticiranih meritev za zaznavanje odmikov in bodo morda morali prinesti lastne meritve. V naslednjih razdelkih opisujemo nastavitev za vnos meritev z izdelavo vsebnika po meri.
Zgradite posodo Model Monitor po meri
Mi uporabljamo ocenjevalni scenarij iz prejšnjega razdelka, da zgradite vsebnik Docker in ga potisnete v Registar elastičnih zabojnikov Amazon (Amazon ECR):
Ko je vsebnik Docker stranke v Amazon ECR, lahko načrtujemo opravilo za spremljanje modela in ustvarimo poročilo o kršitvah, kot je prikazano v naslednjih razdelkih.
Načrtujte opravilo spremljanja modela
Za načrtovanje opravila spremljanja modela ustvarimo primerek Model Monitor in v image_uri
, se sklicujemo na vsebnik Docker, ki smo ga ustvarili v prejšnjem razdelku:
Opravilo spremljanja načrtujemo z uporabo create_monitoring_schedule
API. Opravilo spremljanja lahko razporedite na uro ali dnevno. Nalogo konfigurirate z uporabo destination
parameter, kot je prikazano v naslednji kodi:
Za opis in seznam urnika spremljanja in njegovih izvajanj lahko uporabite naslednje ukaze:
Poročilo o kršitvi umika podatkov
Ko je opravilo spremljanja modela končano, se lahko pomaknete do ciljne poti S3 za dostop do poročil o kršitvah. To poročilo vsebuje vse vnose, katerih povprečna kosinusna ocena (avg_cosine_score
) je pod pragom, konfiguriranim kot spremenljivka okolja THRESHOLD:0.5
v ModelMonitor primerek. To je znak, da podatki, opaženi med sklepanjem, presegajo uveljavljeno izhodiščno vrednost.
Naslednja koda prikazuje ustvarjeno poročilo o kršitvi:
Končno lahko na podlagi tega opazovanja konfigurirate svoj model za ponovno usposabljanje. Lahko tudi omogočite Amazon Simple notification Service (Amazon SNS) obvestila za pošiljanje opozoril, ko pride do kršitev.
zaključek
Model Monitor vam omogoča ohranjanje visoke kakovosti vaših modelov v proizvodnji. V tem prispevku smo poudarili izzive pri spremljanju odmika podatkov za nestrukturirane podatke, kot je besedilo, in ponudili intuitiven pristop za odkrivanje odmika podatkov s pomočjo skripta za spremljanje po meri. Kodo, povezano z objavo, najdete v nadaljevanju GitHub repozitorij. Poleg tega lahko prilagodite rešitev za uporabo drugih meritev razdalje, kot je največja povprečna razlika (MMD), neparametrična metrika razdalje za izračun mejne porazdelitve med izvorno in ciljno porazdelitvijo v vdelanem prostoru.
O avtorjih
Vikram Elango je specialist za rešitve AI/ML pri Amazon Web Services s sedežem v Virginiji v ZDA. Vikram pomaga strankam v finančni in zavarovalniški industriji z oblikovanjem, miselnim vodstvom za izdelavo in uvajanje aplikacij strojnega učenja v velikem obsegu. Trenutno je osredotočen na obdelavo naravnega jezika, odgovorno umetno inteligenco, optimizacijo sklepanja in skaliranje ML v podjetju. V prostem času uživa v potovanjih, pohodništvu, kuhanju in kampiranju z družino.
Raghu Ramesha je arhitekt rešitev ML pri ekipi Amazon SageMaker Service. Osredotoča se na pomoč strankam pri preselitvi proizvodnih delovnih obremenitev ML na SageMaker v velikem obsegu. Specializiran je za področje strojnega učenja, umetne inteligence in računalniškega vida ter ima magisterij iz računalništva na UT Dallas. V prostem času rada potuje in fotografira.
Tony Chen je arhitekt rešitev za strojno učenje pri Amazon Web Services, ki strankam pomaga oblikovati razširljive in robustne zmogljivosti strojnega učenja v oblaku. Kot nekdanji podatkovni znanstvenik in podatkovni inženir izkorišča svoje izkušnje za pomoč pri reševanju nekaterih najzahtevnejših težav, s katerimi se srečujejo organizacije pri operacionalizaciji strojnega učenja.
- '
- "
- 100
- 11
- 7
- O meni
- dostop
- Račun
- čez
- dejavnosti
- Dodatne
- AI
- vsi
- že
- Čeprav
- Amazon
- Amazon SageMaker
- Amazon Web Services
- Analiza
- Apache
- Apache Spark
- primerno
- aplikacije
- Na voljo
- povprečno
- AWS
- Izhodišče
- telo
- izgradnjo
- Building
- kampiranje
- primeri
- Vzrok
- izzivi
- spremenite
- klepetalnice
- Razvrstitev
- Cloud
- Koda
- Kodiranje
- Zbiranje
- kompleksna
- Izračunajte
- Računalništvo
- Računalniška vizija
- Posoda
- Vsebuje
- neprekinjeno
- Naročilo
- kuhanje
- Ustvarjanje
- Stranke, ki so
- Dallas
- datum
- kakovosti podatkov
- podatkovni znanstvenik
- Oblikovanje
- Odkrivanje
- Razvoj
- drugačen
- razpravlja
- razdalja
- Lučki delavec
- Kontejner Docker
- Ne
- domen
- vožnjo
- med
- dinamično
- Zgodnje
- E-naslov
- srečanje
- Končna točka
- inženir
- Angleščina
- Podjetje
- okolje
- ustanovljena
- Primer
- izkušnje
- Obraz
- družina
- Feature
- Lastnosti
- finančna
- prva
- prilagodljivost
- Osredotočite
- osredotočena
- obrazec
- Naprej
- brezplačno
- funkcija
- ustvarjajo
- GitHub
- ob
- pomoč
- Pomaga
- visoka
- Poudarjeno
- pohodništvo
- Domov
- Kako
- Kako
- HTTPS
- slika
- izvajati
- Pomembno
- Vključno
- Industrija
- Podatki
- zavarovanje
- zavarovalništvo
- IT
- Job
- Delovna mesta
- Oznake
- jezik
- velika
- Zadnji
- izstrelki
- Vodstvo
- učenje
- Stopnja
- Leverages
- Knjižnica
- jezikoslovje
- Seznam
- literatura
- obremenitev
- kraj aktivnosti
- strojno učenje
- strojno prevajanje
- Maska
- merjenje
- Meritve
- ML
- Model
- modeli
- spremljanje
- več
- Naravni jezik
- Obdelava Natural Language
- mreža
- nlp
- Obvestilo
- Ponudbe
- Da
- organizacije
- Ostalo
- performance
- fotografija
- Precision
- napoved
- Napovedi
- predstaviti
- problem
- proizvodnja
- Projekt
- zagotavljajo
- zagotavlja
- Python
- pitorha
- kakovost
- območje
- v realnem času
- Reality
- zapis
- poročilo
- Poročila
- Odgovor
- Rezultati
- preusposabljanje
- vrne
- nazaj
- pregleda
- Run
- tek
- sagemaker
- Lestvica
- skaliranje
- Znanost
- SDK
- Storitve
- služijo
- nastavite
- premik
- Podoben
- Enostavno
- So
- rešitve
- Vesolje
- prostori
- spam
- specializirano
- Države
- shranjevanje
- trgovina
- Podpira
- sistemi
- ciljna
- Test
- Testiranje
- testi
- svet
- mislil
- miselno vodstvo
- čas
- žeton
- Boni
- vrh
- baklo
- Prometa
- usposabljanje
- prevod
- ZDA
- Poglej
- Virginia
- Virtual
- vidljivost
- Vizija
- Počakaj
- web
- spletne storitve
- Wikipedia
- brez
- delo
- potek dela
- svet
- pisanje