Luonnollisen kielen ymmärtämistä sovelletaan monenlaisiin käyttötapauksiin chatboteista ja virtuaaliassistenteista konekäännöksiin ja tekstin yhteenvetoon. Jotta voidaan varmistaa, että nämä sovellukset toimivat odotetulla suorituskykytasolla, on tärkeää, että koulutus- ja tuotantoympäristöjen tiedot ovat samasta jakelusta. Kun päättelyyn käytettävä data (tuotantodata) eroaa mallikoulutuksen aikana käytetystä tiedosta, kohtaamme ilmiön, joka tunnetaan nimellä data drift. Kun tietojen ajautuminen tapahtuu, malli ei ole enää merkityksellinen tuotannossa olevan datan kannalta ja toimii todennäköisesti odotettua huonommin. On tärkeää seurata johtopäätöstietoja jatkuvasti ja verrata niitä harjoittelun aikana käytettyyn tietoon.
Voit käyttää Amazon Sage Maker rakentaa, kouluttaa ja ottaa käyttöön koneoppimismalleja (ML) nopeasti missä tahansa mittakaavassa. Ennakoivana toimenpiteenä mallin huonontumista vastaan voit käyttää Amazon SageMaker -mallimonitori seurataksesi jatkuvasti ML-malliesi laatua reaaliajassa. Model Monitorin avulla voit myös määrittää hälytyksiä ilmoittamaan ja käynnistämään toimia, jos mallin suorituskyvyssä havaitaan poikkeamia. Näiden poikkeamien varhainen ja ennakoiva havaitseminen mahdollistaa korjaavien toimenpiteiden toteuttamisen, kuten uusien totuusharjoitustietojen keräämisen, uudelleenkoulutusmallien ja alkupään järjestelmien auditoinnin ilman, että sinun tarvitsee valvoa manuaalisesti malleja tai rakentaa lisätyökaluja.
Model Monitor tarjoaa neljä erityyppistä valvontamahdollisuutta havaita ja vähentää mallin kulkeutumista reaaliajassa:
- Tietojen laatu – Auttaa havaitsemaan muutokset tietoskeemoissa ja riippumattomien muuttujien tilastollisissa ominaisuuksissa ja hälyttämään, kun poikkeama havaitaan.
- Mallin laatu – Model Monitorin avulla voit seurata mallien suorituskykyominaisuuksia, kuten tarkkuutta tai tarkkuutta reaaliajassa, sovelluksistasi kerättyjen perustotuusmerkintöjen avulla. Model Monitor yhdistää automaattisesti pohjatotuustiedot ennustetietoihin mallin suorituskykymittareiden laskemiseksi.
- Mallin puolueellisuus – Mallinäyttö on integroitu Amazon SageMaker selkeyttää parantaaksesi näkyvyyttä mahdollisesta harhasta. Vaikka alkuperäiset tiedot tai mallisi eivät ehkä ole puolueellisia, maailmassa tapahtuvat muutokset voivat aiheuttaa harhaa ajan mittaan mallissa, joka on jo koulutettu.
- Mallin selitettävyys – Poikkeaman tunnistus varoittaa, kun ominaisuuden attribuuttien suhteellinen tärkeys muuttuu.
Tässä viestissä käsittelemme tekstidataan sovellettavia tiedonlaadun vaihtelutyyppejä. Esittelemme myös lähestymistavan tiedon ajautumisen havaitsemiseen tekstitiedoissa Model Monitorin avulla.
Tietojen ajautuminen NLP:ssä
Tietojen ajautuminen voidaan luokitella kolmeen luokkaan riippuen siitä, tapahtuuko jakauman muutos tulon vai lähdön puolella vai onko tulon ja lähdön välinen suhde muuttunut.
Kovariaattisiirtymä
Jonkin sisällä kovariaattisiirtymä, syötteiden jakautuminen muuttuu ajan myötä, mutta ehdollinen jakauma P(y|x) ei muutu. Tämän tyyppistä ajautumista kutsutaan kovariaattisiirtymäksi, koska ongelma syntyy kovariaattien (ominaisuuksien) jakauman muutoksesta. Esimerkiksi sähköpostiroskapostin luokittelumallissa koulutustietojen (sähköpostikorjaukset) jakaminen voi poiketa datan jakelusta pisteytyksen aikana.
Etiketin vaihto
Kovariaattisiirtymä keskittyy ominaisuuksien jakauman muutoksiin, etiketin vaihto keskittyy muutoksiin luokkamuuttujan jakaumassa. Tämän tyyppinen siirto on olennaisesti kovariaattisiirtymän käänteinen. Intuitiivinen tapa ajatella sitä voisi olla harkita epätasapainoista tietojoukkoa. Jos koulutussarjamme sähköpostien roskapostin suhde ei-roskapostiin on 50 %, mutta todellisuudessa 10 % sähköposteistamme ei ole roskapostia, kohdetunnistejakauma on muuttunut.
Käsitteen muutos
Käsitteen muutos eroaa kovariaatin ja otsikon siirrosta siinä, että se ei liity datajakaumaan tai luokkajakaumaan, vaan liittyy kahden muuttujan väliseen suhteeseen. Esimerkiksi sähköpostin roskapostittajat käyttävät usein erilaisia käsitteitä roskapostisuodatinmallien läpäisemiseen, ja koulutuksen aikana käytettyjen sähköpostien käsite voi muuttua ajan myötä.
Nyt kun ymmärrämme erityyppiset tiedon ajautumisen, katsotaanpa, kuinka voimme käyttää Model Monitoria havaitsemaan kovariaattisiirtymän tekstitiedoissa.
Ratkaisun yleiskatsaus
Toisin kuin taulukkotieto, joka on jäsennelty ja rajattu, tekstidata on monimutkaista, suuriulotteista ja vapaamuotoista. Työskentelemme NLP:n ajautumisen havaitsemiseksi tehokkaasti upotukset, jotka ovat tekstin pieniulotteisia esityksiä. Voit hankkia upotuksia käyttämällä erilaisia kielimalleja, kuten Word2Vec ja muuntajapohjaisia malleja, kuten BERTI. Nämä mallit projisoivat korkean ulottuvuuden dataa pieniulotteisiin tiloihin säilyttäen samalla tekstin semanttisen tiedon. Tulokset ovat tiiviitä ja kontekstuaalisesti merkityksellisiä vektoreita, joita voidaan käyttää erilaisiin loppupään tehtäviin, mukaan lukien tiedon ajautumisen seurantaan.
Ratkaisussamme käytämme upotuksia havaitaksemme englanninkielisten lauseiden kovariaattisiirtymän. Käytämme Model Monitoria mahdollistamaan jatkuvaa seurantaa tuotantoympäristöön asennettavalle tekstiluokittelijalle. Lähestymistapamme koostuu seuraavista vaiheista:
- Hienosäädä BERT-malli SageMakerilla.
- Ota käyttöön hienosäädetty BERT-luokitin reaaliaikaisena päätepisteenä tiedon keräys käytössä.
- Luo perustietojoukko, joka koostuu näytteestä lauseista, joita käytetään BERT-luokittajan kouluttamiseen.
- Luo mukautettu SageMaker-seurantatyö laskea kosinin samankaltaisuus tuotannossa kerätyn tiedon ja perustietojoukon välillä.
Seuraava kaavio havainnollistaa ratkaisun työnkulkua:
Hienosäädä BERT-mallia
Tässä viestissä käytämme Kielen hyväksyttävyyden korkeakoulu (CoLA), tietojoukko, joka sisältää 10,657 XNUMX englanninkielistä lausetta, jotka on merkitty kieliopillisiksi tai epäkieliopillisiksi julkaistusta kielitieteellisestä kirjallisuudesta. Käytämme SageMaker-koulutusta BERT-mallin hienosäätämiseen CoLa-tietojoukon avulla määrittämällä PyTorch-estimaattoriluokan. Lisätietoja tämän SDK:n käyttämisestä PyTorchin kanssa on kohdassa Käytä PyTorchia SageMaker Python SDK: n kanssa. Soittamalla fit()
estimaattorin menetelmä käynnistää koulutustyön:
Ota käyttöön malli
Mallin harjoittamisen jälkeen isännöimme sitä SageMaker-päätepisteessä. Jotta päätepiste lataa mallin ja palvelee ennusteita, otamme käyttöön muutamia menetelmiä train_deploy.py:
- model_fn () - Lataa tallennetun mallin ja palauttaa malliobjektin, jota voidaan käyttää mallin näyttämiseen. SageMaker PyTorch -mallipalvelin lataa mallimme kutsumalla
model_fn
. - input_fn () - Deserialisoi ja valmistaa ennustesyötön. Tässä esimerkissä pyyntörunko ensin sarjoitetaan JSON: lle ja lähetetään sitten mallille, joka palvelee päätepistettä. Siksi vuonna
input_fn()
, ensin ansaitsemme JSON-muotoisen pyyntöelimen ja palautamme syötteen muodossatorch.tensor
, kuten BERT vaatii. - predict_fn () – Suorittaa ennusteen ja palauttaa tuloksen.
Ota Model Monitor -tietojen kaappaus käyttöön
Me sallimme Malli Monitorin tiedonkeruu tallentaaksesi syöttötiedot Amazonin yksinkertainen tallennuspalvelu (Amazon S3) -ämpäri, jotta voit viitata siihen myöhemmin:
Sitten luomme reaaliaikaisen SageMaker-päätepisteen edellisessä vaiheessa luodulla mallilla:
Päättely
Suoritamme ennusteen käyttämällä ennustusobjektia, jonka loimme edellisessä vaiheessa. Asetamme JSON-serialisaattorin ja deserialisaattorin, joita päätepäätepiste käyttää:
Reaaliaikainen päätepiste on määritetty kaappaamaan tietoja pyynnöstä, ja vastaus ja tiedot tallennetaan Amazon S3:een. Voit tarkastella edellisessä tarkkailuaikataulussa kerättyjä tietoja.
Luo perusviiva
Käytämme hienosäädettyä BERT-mallia lauseen upotusominaisuuksien poimimiseen harjoitustiedoista. Käytämme näitä vektoreita korkealaatuisina ominaisuussyötteinä kosinietäisyyden vertailuun, koska BERT tuottaa dynaamisen sanaesityksen semanttisella kontekstilla. Suorita seuraavat vaiheet saadaksesi lauseen upotuksen:
- Käytä BERT-tokenizeriä saadaksesi tunnukset jokaiselle tunnukselle (
input_id
) syöttölauseessa ja maskissa osoittamaan, mitkä syöttösekvenssin elementit ovat tokeneja vs. täyteelementtejä (attention_mask_id
). Käytämme BERTiätokenizer.encode_plus
funktio saada nämä arvot jokaiselle syötelauseelle:
input_ids
ja attention_mask_ids
välitetään mallille ja noudetaan verkon piilotetut tilat. The hidden_states
siinä on neljä ulottuvuutta seuraavassa järjestyksessä:
- Kerrosnumero (BERT:ssä on 12 kerrosta)
- Eränumero (1 lause)
- Sanamerkkihakemistot
- Piilotetut yksiköt (768 ominaisuutta)
- Käytä kahta viimeistä piilotettua kerrosta saadaksesi yhden vektorin (lauseen upottaminen) laskemalla lauseen kaikkien syöttömerkkien keskiarvon:
- Muunna lauseen upottaminen NumPy-taulukoksi ja tallenna se Amazon S3 -sijaintiin Model Monitorin käyttämänä perusviivana:
Arviointiskripti
Model Monitor tarjoaa valmiiksi rakennetun säilön, jonka avulla voidaan analysoida päätepisteistä kerättyä dataa taulukkotietojoukkoja varten. Jos haluat tuoda oman kontin, Model Monitor tarjoaa laajennuspisteitä, joita voit käyttää. Kun luot a MonitoringSchedule
, Model Monitor aloittaa lopulta käsittelytyöt. Siksi kontin on oltava tietoinen käsittelytyösopimuksesta. Meidän on luotava säilön kanssa yhteensopiva arviointiskripti sopimuspanokset ja lähdöt.
Model Monitor käyttää arviointikoodia kaikissa näytteissä, jotka on otettu seurantaaikataulun aikana. Laskemme jokaiselle päättelydatapisteelle lauseen upotuksen käyttämällä samaa aiemmin kuvattua logiikkaa. Kosinin samankaltaisuutta käytetään etäisyysmittarina mittaamaan perusviivan päättelydatapisteen ja lauseiden upotusten samankaltaisuutta. Matemaattisesti se mittaa kosinikulman kahden lauseen upotusvektorin välillä. Korkea kosinin samankaltaisuuspiste osoittaa samankaltaisia lauseiden upotuksia. Alempi kosinin samankaltaisuuspiste osoittaa tietojen ajautumista. Laskemme kaikkien kosinin samankaltaisuuspisteiden keskiarvon, ja jos se on pienempi kuin kynnys, se kirjataan rikkomusraporttiin. Käyttötapauksesta riippuen voit käyttää muita etäisyysmittareita, kuten manhattan
or euclidean
mittaamaan lauseiden upotusten samankaltaisuutta.
Seuraava kaavio näyttää, kuinka käytämme SageMaker Model Monitoring -toimintoa perusviivan luomiseen ja tietojen ajautumisen havaitsemiseen käyttämällä kosinietäisyyden samankaltaisuutta.
Seuraavassa on koodi rikkomusten laskemiseksi; täydellinen arviointiskripti on saatavilla osoitteessa GitHub:
Mittaa tietojen ajautuminen Model Monitorilla
Tässä osiossa keskitymme tietojen ajautuman mittaamiseen Model Monitorin avulla. Mallinäyttö esirakennetut näytöt saavat virtansa Deequ, joka on Apache Sparkin päälle rakennettu kirjasto tietojen yksikkötestien määrittämiseen, jotka mittaavat tietojen laatua suurissa tietojoukkoissa. Sinun ei tarvitse koodata käyttääksesi näitä valmiita valvontaominaisuuksia. Sinulla on myös mahdollisuus seurata malleja koodaamalla mukautetun analyysin tarjoamiseksi. Voit kerätä ja tarkastella kaikkia Model Monitorin lähettämiä mittareita Amazon SageMaker Studio, joten voit visuaalisesti analysoida mallisi suorituskykyä kirjoittamatta lisäkoodia.
Tietyissä skenaarioissa, esimerkiksi kun tiedot eivät ole taulukkomuotoisia, oletuskäsittelytyö (virtalähteenä Deequ) ei riitä, koska se tukee vain taulukkomuotoisia tietojoukkoja. Valmiiksi rakennetut näytöt eivät välttämättä riitä luomaan kehittyneitä mittareita poikkeamien havaitsemiseksi, ja ne voivat edellyttää omien mittareiden tuomista. Seuraavissa osissa kuvataan asetuksia, joilla voit tuoda mittareitasi rakentamalla mukautetun säilön.
Rakenna mukautettu Model Monitor -säilö
Käytämme arviointiskripti edellisestä osasta Docker-kontin rakentamiseen ja työntämiseen Amazonin elastisten säiliörekisteri (Amazon ECR):
Kun asiakkaan Docker-säilö on Amazon ECR:ssä, voimme ajoittaa Model Monitoring -työn ja luoda rikkomusraportin, kuten seuraavissa osissa esitetään.
Varaa mallinseurantatyö
Ajoitaksemme mallinseurantatyön luomme Model Monitor -esiintymän ja image_uri
, viittaamme Docker-säilöyn, jonka loimme edellisessä osiossa:
Suunnittelemme seurantatyön käyttämällä create_monitoring_schedule
API. Voit ajoittaa valvontatyön tunti- tai päiväkohtaisesti. Määrität työn käyttämällä destination
parametri seuraavan koodin mukaisesti:
Seurantaaikataulun ja sen ajojen kuvaamiseksi ja luetteloimiseksi voit käyttää seuraavia komentoja:
Tietojen siirtymän rikkomusraportti
Kun mallin valvontatyö on valmis, voit navigoida S3-kohteen polkuun päästäksesi rikkomusraportteihin. Tämä raportti sisältää kaikki syötteet, joiden keskimääräinen kosinipiste (avg_cosine_score
) on ympäristömuuttujaksi määritellyn kynnyksen alapuolella THRESHOLD:0.5
vuonna Mallin monitori ilmentymä. Tämä on osoitus siitä, että päättelyn aikana havaitut tiedot ajautuvat vahvistetun perusviivan ulkopuolelle.
Seuraava koodi näyttää luodun rikkomusraportin:
Lopuksi tämän havainnon perusteella voit määrittää mallisi uudelleenkoulutusta varten. Voit myös ottaa käyttöön Amazonin yksinkertainen ilmoituspalvelu (Amazon SNS) -ilmoitukset lähettääkseen hälytyksiä rikkomuksista.
Yhteenveto
Model Monitorin avulla voit ylläpitää malliesi korkeaa laatua tuotannossa. Tässä viestissä korostimme haasteita, jotka liittyvät tietojen ajautumisen seurantaan jäsentämättömällä tiedolla, kuten tekstillä, ja tarjosimme intuitiivisen lähestymistavan tietojen siirtymisen havaitsemiseen mukautetun seurantaohjelman avulla. Löydät viestiin liittyvän koodin alta GitHub-arkisto. Lisäksi voit mukauttaa ratkaisua hyödyntämään muita etäisyysmittareita, kuten suurin keskimääräinen poikkeama (MMD), ei-parametrinen etäisyysmittari, joka laskee rajajakauman lähteen ja kohdejakauman välillä sulautetussa tilassa.
Tietoja Tekijät
Vikram Elango on AI/ML Specialist Solutions -arkkitehti Amazon Web Servicesissä Virginiassa Yhdysvalloissa. Vikram auttaa rahoitus- ja vakuutusalan asiakkaita suunnittelulla ja ajattelujohtajuudella rakentamaan ja ottamaan käyttöön koneoppimissovelluksia mittakaavassa. Hän keskittyy tällä hetkellä luonnollisen kielen käsittelyyn, vastuulliseen tekoälyyn, päätelmien optimointiin ja ML:n skaalaukseen koko yrityksessä. Vapaa-ajallaan hän nauttii matkustamisesta, vaeltamisesta, ruoanlaitosta ja telttailusta perheensä kanssa.
Raghu Ramesha on ML Solutions -arkkitehti Amazon SageMaker Service -tiimin kanssa. Hän keskittyy auttamaan asiakkaita siirtämään ML-tuotannon työmäärät mittakaavassa SageMakeriin. Hän on erikoistunut koneoppimiseen, tekoälyyn ja tietokonenäköalueisiin, ja hänellä on tietojenkäsittelytieteen maisterin tutkinto UT Dallasista. Vapaa-ajallaan hän nauttii matkustamisesta ja valokuvaamisesta.
Tony Chen on Amazon Web Servicesin koneoppimisratkaisuarkkitehti, joka auttaa asiakkaita suunnittelemaan skaalautuvia ja kestäviä koneoppimisominaisuuksia pilvessä. Entisenä datatieteilijänä ja data-insinöörinä hän hyödyntää kokemustaan auttaakseen ratkaisemaan joitain haastavimmista ongelmista, joita organisaatiot kohtaavat koneoppimisen toiminnalle.
- '
- "
- 100
- 11
- 7
- Meistä
- pääsy
- Tili
- poikki
- toimet
- lisä-
- AI
- Kaikki
- jo
- Vaikka
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- analyysi
- Apache
- Apache Spark
- sovelletaan
- sovellukset
- saatavissa
- keskimäärin
- AWS
- Lähtötilanne
- elin
- rakentaa
- Rakentaminen
- retkeily
- tapauksissa
- Aiheuttaa
- haasteet
- muuttaa
- chatbots
- luokittelu
- pilvi
- koodi
- Koodaus
- Kerääminen
- monimutkainen
- Laskea
- Tietojenkäsittelyoppi
- Tietokoneen visio
- Kontti
- sisältää
- jatkuva
- sopimus
- ruoanlaitto
- Luominen
- Asiakkaat
- Dallas
- tiedot
- tiedon laatu
- tietojen tutkija
- Malli
- Detection
- kehittää
- eri
- pohtia
- etäisyys
- Satamatyöläinen
- Telakkakontti
- ei
- verkkotunnuksia
- ajo
- aikana
- dynaaminen
- Varhainen
- kohdata
- päätepiste
- insinööri
- Englanti
- yritys
- ympäristö
- vakiintunut
- esimerkki
- experience
- Kasvot
- perhe
- Ominaisuus
- Ominaisuudet
- taloudellinen
- Etunimi
- Joustavuus
- Keskittää
- keskityttiin
- muoto
- Eteenpäin
- Ilmainen
- toiminto
- tuottaa
- GitHub
- ottaa
- auttaa
- auttaa
- Korkea
- Korostettu
- retkeily
- Koti
- Miten
- Miten
- HTTPS
- kuva
- toteuttaa
- tärkeä
- Mukaan lukien
- teollisuus
- tiedot
- vakuutus
- vakuutusala
- IT
- Job
- Työpaikat
- tarrat
- Kieli
- suuri
- uusin
- käynnistää
- Johto
- oppiminen
- Taso
- vipusuhteita
- Kirjasto
- kielitiede
- Lista
- kirjallisuus
- kuormitus
- sijainti
- koneoppiminen
- konekäännös
- naamio
- mitata
- Metrics
- ML
- malli
- mallit
- seuranta
- lisää
- Luonnollinen kieli
- Luonnollinen kielen käsittely
- verkko
- NLP
- ilmoituksen
- Tarjoukset
- tilata
- organisaatioiden
- Muut
- suorituskyky
- valokuvaus
- Tarkkuus
- ennustus
- Ennusteet
- esittää
- Ongelma
- tuotanto
- projekti
- toimittaa
- tarjoaa
- Python
- pytorch
- laatu
- alue
- reaaliaikainen
- Todellisuus
- ennätys
- raportti
- Raportit
- vastaus
- tulokset
- uudelleenkoulutus
- Tuotto
- käänteinen
- arviot
- ajaa
- juoksu
- sagemaker
- Asteikko
- skaalaus
- tiede
- sdk
- Palvelut
- palvelevat
- setti
- siirtää
- samankaltainen
- Yksinkertainen
- So
- Ratkaisumme
- Tila
- tilat
- spam
- erikoistunut
- Valtiot
- Levytila
- verkkokaupasta
- Tukee
- järjestelmät
- Kohde
- testi
- Testaus
- testit
- maailma
- ajatus
- ajatusjohtajuus
- aika
- symbolinen
- tokens
- ylin
- taskulamppu
- liikenne
- koulutus
- Kääntäminen
- USA
- Näytä
- virginia
- Virtual
- näkyvyys
- visio
- odottaa
- verkko
- verkkopalvelut
- wikipedia
- ilman
- Referenssit
- työnkulku
- maailman-
- kirjoittaminen