Artificiell intelligens (AI) och maskininlärning (ML) har fått en bred användning inom företag och statliga organisationer. Bearbetning av ostrukturerad data har blivit enklare med framstegen inom naturlig språkbehandling (NLP) och användarvänliga AI/ML-tjänster som amazontext, Amazon Transcribeoch Amazon Comprehend. Organisationer har börjat använda AI/ML-tjänster som Amazon Comprehend för att bygga klassificeringsmodeller med deras ostrukturerade data för att få djupa insikter som de inte hade tidigare. Även om du kan använda förtränade modeller med minimal ansträngning, utan ordentlig datakurering och modellinställning, kan du inte inse de fulla fördelarna med AI/ML-modeller.
I det här inlägget förklarar vi hur man bygger och optimerar en anpassad klassificeringsmodell med Amazon Comprehend. Vi visar detta med hjälp av en anpassad klassificering från Amazon Comprehend för att bygga en anpassad klassificeringsmodell med flera etiketter, och ger riktlinjer för hur man förbereder träningsdatauppsättningen och ställer in modellen för att möta prestandamått som noggrannhet, precision, återkallelse och F1-poäng. Vi använder Amazon Comprehend-modellens träningsutmatningsartefakter som en förvirringsmatris för att justera modellens prestanda och vägleda dig för att förbättra dina träningsdata.
Lösningsöversikt
Denna lösning presenterar ett tillvägagångssätt för att bygga en optimerad anpassad klassificeringsmodell med Amazon Comprehend. Vi går igenom flera steg, inklusive förberedelse av data, skapande av modell, analys av modellprestandamått och optimering av slutledningar baserat på vår analys. Vi använder en Amazon SageMaker anteckningsbok och AWS Management Console för att slutföra några av dessa steg.
Vi går också igenom bästa praxis och optimeringstekniker under dataförberedelse, modellbyggande och modellinställning.
Förutsättningar
Om du inte har en SageMaker-anteckningsbok-instans kan du skapa en. För instruktioner, se Skapa en Amazon SageMaker Notebook-instans.
Förbered data
För denna analys använder vi datasetet Toxic Comment Classification från Kaggle. Denna datauppsättning innehåller 6 etiketter med 158,571 10 datapunkter. Varje etikett har dock bara mindre än 1 % av den totala data som positiva exempel, med två av etiketterna som har mindre än XNUMX %.
Vi konverterar den befintliga Kaggle-datauppsättningen till Amazon Comprehend CSV-format med två kolumner med etiketterna delade med en röravgränsare (|). Amazon Comprehend förväntar sig minst en etikett för varje datapunkt. I denna datauppsättning stöter vi på flera datapunkter som inte faller under någon av de angivna etiketterna. Vi skapar en ny etikett som heter ren och tilldelar någon av de datapunkter som inte är giftiga att vara positiva med denna etikett. Slutligen delar vi upp de kurerade datamängderna i tränings- och testdatauppsättningar med en 80/20-fördelning per etikett.
Vi kommer att använda anteckningsboken för dataförberedelser. Följande steg använder Kaggle-dataset och förbereder data för vår modell.
- Välj på SageMaker-konsolen Notebook-instanser i navigeringsfönstret.
- Välj den anteckningsbok-instans du har konfigurerat och välj Öppna Jupyter.
- På Nya meny, välj terminal.
- Kör följande kommandon i terminalen för att ladda ner de nödvändiga artefakterna för detta inlägg:
- Stäng terminalfönstret.
Du bör se tre anteckningsböcker och train.csv filer.
- Välj anteckningsboken Data-Preparation.ipynb.
- Kör alla steg i anteckningsboken.
Dessa steg förbereder den råa Kaggle-datauppsättningen för att fungera som kurerade utbildnings- och testdatauppsättningar. Utvalda datauppsättningar kommer att lagras i anteckningsboken och Amazon enkel lagringstjänst (Amazon S3).
Tänk på följande riktlinjer för databeredning när du hanterar storskaliga datauppsättningar med flera etiketter:
- Datauppsättningar måste ha minst 10 prover per etikett.
- Amazon Comprehend accepterar maximalt 100 etiketter. Detta är en mjuk gräns som kan höjas.
- Se till att datauppsättningsfilen är korrekt formaterad med rätt avgränsare. Felaktiga avgränsare kan införa tomma etiketter.
- Alla datapunkter måste ha etiketter.
- Utbildnings- och testdatauppsättningar bör ha balanserad datafördelning per etikett. Använd inte slumpmässig distribution eftersom det kan införa fördomar i tränings- och testdatauppsättningarna.
Bygg en anpassad klassificeringsmodell
Vi använder de kurerade utbildnings- och testdatauppsättningarna som vi skapade under dataförberedelsesteget för att bygga vår modell. Följande steg skapar en anpassad klassificeringsmodell för flera etiketter från Amazon Comprehend:
- Välj på Amazon Comprehend-konsolen Anpassad klassificering i navigeringsfönstret.
- Välja Skapa ny modell.
- För Modellnamn, ange toxic-classification-model.
- För Versionsnamn, ange 1.
- För Anteckningar och dataformatväljer Använder Multi-label-läge.
- För Utbildningsdataset, ange platsen för den kurerade träningsdatauppsättningen på Amazon S3.
- Välja Kunden tillhandahållit testdatauppsättning och ange platsen för de kurerade testdata på Amazon S3.
- För Utdata, ange Amazon S3-platsen.
- För IAM-roll, Välj Skapa en IAM-roll, ange namnsuffixet som "förstå-blogg".
- Välja Skapa för att starta den anpassade klassificeringsmodellen utbildning och modellskapande.
Följande skärmdump visar detaljerna för den anpassade klassificeringsmodellen på Amazon Comprehend-konsolen.
Ställ in efter modellprestanda
Följande skärmdump visar modellens prestandamått. Den innehåller nyckeltal som precision, återkallelse, F1-poäng, noggrannhet och mer.
Efter att modellen har tränats och skapats kommer den att generera filen output.tar.gz, som innehåller etiketterna från datauppsättningen såväl som förvirringsmatrisen för var och en av etiketterna. För att ytterligare ställa in modellens prediktionsprestanda måste du förstå din modell med prediktionssannolikheterna för varje klass. För att göra detta måste du skapa ett analysjobb för att identifiera poängen som Amazon Comprehend tilldelat var och en av datapunkterna.
Utför följande steg för att skapa ett analysjobb:
- Välj på Amazon Comprehend-konsolen Analysjobb i navigeringsfönstret.
- Välja Skapa jobb.
- För Namn , stiga på
toxic_train_data_analysis_job
. - För Analystypväljer Anpassad klassificering.
- För Klassificeringsmodeller och svänghjul, specificera
toxic-classification-model
. - För version, specificera 1.
- För Indata S3 plats, ange platsen för den kurerade träningsdatafilen.
- För Inmatningsformatväljer Ett dokument per rad.
- För Utdata S3-plats, ange platsen.
- För Åtkomstbehörigheter, Välj Använd en befintlig IAM-roll och välj den roll som skapats tidigare.
- Välja Skapa jobb för att påbörja analysjobbet.
- Välj Analysjobb för att se jobbdetaljerna. Vänligen notera jobb-id under Jobbdetaljer. Vi kommer att använda jobb-id:t i nästa steg.
Upprepa stegen för att starta analysjobbet för de kurerade testdata. Vi använder prediktionsutdata från våra analysjobb för att lära oss mer om vår modells prediktionssannolikheter. Vänligen notera jobb-ID för utbildnings- och testanalysjobb.
Vi använder Model-Threshold-Analysis.ipynb notebook för att testa utdata på alla möjliga trösklar och poängsätta utdata baserat på förutsägelsesannolikheten med hjälp av scikit-learn's precision_recall_curve
fungera. Dessutom kan vi beräkna F1-poängen vid varje tröskel.
Vi kommer att behöva Amazon Comprehend-analysjobb-id:n som input för Modell-Tröskel-Analys anteckningsbok. Du kan hämta jobb-id:n från Amazon Comprehend-konsolen. Utför alla steg i Modell-Tröskel-Analys anteckningsbok för att följa tröskelvärdena för alla klasser.
Lägg märke till hur precisionen ökar när tröskeln går upp, medan det omvända inträffar med återkallelse. För att hitta balansen mellan de två använder vi F1-poängen där den har synliga toppar i sin kurva. Topparna i F1-poängen motsvarar en viss tröskel som kan förbättra modellens prestanda. Lägg märke till hur de flesta etiketterna faller runt 0.5-märket för tröskeln förutom hotetiketten, som har en tröskel runt 0.04.
Vi kan sedan använda detta tröskelvärde för specifika etiketter som inte presterar med bara standardtröskeln 0.5. Genom att använda de optimerade tröskelvärdena förbättras modellens resultat på testdata för etiketthotet från 0.00 till 0.24. Vi använder max F1-poäng vid tröskeln som ett riktmärke för att bestämma positivt vs. negativt för den etiketten istället för ett gemensamt riktmärke (ett standardvärde som > 0.7) för alla etiketter.
Hantera underrepresenterade klasser
Ett annat tillvägagångssätt som är effektivt för en obalanserad datauppsättning är översampling. Genom att översampla den underrepresenterade klassen ser modellen den underrepresenterade klassen oftare och betonar vikten av dessa urval. Vi använder Översampling-underrepresented.ipynb anteckningsbok för att optimera datamängderna.
För denna datauppsättning testade vi hur modellens prestanda på utvärderingsdatauppsättningen förändras när vi tillhandahåller fler exempel. Vi använder översamplingstekniken för att öka förekomsten av underrepresenterade klasser för att förbättra prestandan.
I det här specifika fallet testade vi på 10, 25, 50, 100, 200 och 500 positiva exempel. Observera att även om vi upprepar datapunkter, förbättrar vi i sig modellens prestanda genom att betona vikten av den underrepresenterade klassen.
Pris
Med Amazon Comprehend betalar du när du går baserat på antalet bearbetade texttecken. Hänvisa till Amazon Comprehend Prissättning för faktiska kostnader.
Städa upp
När du är klar med att experimentera med den här lösningen, rensa upp dina resurser för att ta bort alla resurser som distribueras i det här exemplet. Detta hjälper dig att undvika fortsatta kostnader på ditt konto.
Slutsats
I det här inlägget har vi tillhandahållit bästa praxis och vägledning om dataförberedelse, modelljustering med hjälp av prediktionssannolikheter och tekniker för att hantera underrepresenterade dataklasser. Du kan använda dessa bästa metoder och tekniker för att förbättra prestandamåtten för din anpassade klassificeringsmodell för Amazon Comprehend.
För mer information om Amazon Comprehend, besök Amazon Comprehend utvecklarresurser för att hitta videoresurser och blogginlägg och hänvisa till AWS förstå vanliga frågor.
Om författarna
Sathya Balakrishnan är Sr. Customer Delivery Architect i Professional Services-teamet på AWS, specialiserad på data- och ML-lösningar. Han arbetar med amerikanska federala finansiella kunder. Han brinner för att bygga pragmatiska lösningar för att lösa kunders affärsproblem. På fritiden tycker han om att titta på film och vandra med familjen.
Prins Mallari är en NLP Data Scientist i Professional Services-teamet på AWS, specialiserad på tillämpningar av NLP för offentliga kunder. Han brinner för att använda ML som ett verktyg för att låta kunderna bli mer produktiva. På fritiden tycker han om att spela tv-spel och utveckla ett med sina vänner.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/improve-prediction-quality-in-custom-classification-models-with-amazon-comprehend/
- : har
- :är
- :var
- $UPP
- 1
- 10
- 100
- 200
- 24
- 25
- 50
- 500
- 7
- 9
- a
- Om Oss
- accepterar
- Konto
- noggrannhet
- tvärs
- faktiska
- Dessutom
- Antagande
- framsteg
- AI
- AI / ML
- Alla
- tillåter
- också
- Även
- amason
- Amazon Comprehend
- Amazon SageMaker
- Amazon Web Services
- an
- analys
- och
- vilken som helst
- tillämpningar
- Tillämpningar av NLP
- tillvägagångssätt
- ÄR
- runt
- AS
- Tillgångar
- delad
- At
- undvika
- AWS
- Balansera
- baserat
- BE
- därför att
- blir
- innan
- riktmärke
- Fördelarna
- BÄST
- bästa praxis
- mellan
- förspänning
- Blogg
- Blogginlägg
- SLUTRESULTAT
- Byggnad
- företag
- by
- kallas
- KAN
- Kan få
- Vid
- Förändringar
- tecken
- Välja
- klass
- klasser
- klassificering
- klienter
- kommentar
- Gemensam
- fullborda
- förstå
- Compute
- konfigurerad
- förvirring
- Konsol
- innehåller
- fortsätter
- konvertera
- Kostar
- skapa
- skapas
- skapande
- kurerad
- curation
- kurva
- beställnings
- kund
- Kunder
- datum
- datapunkter
- Förberedelse av data
- datavetare
- datauppsättningar
- som handlar om
- djup
- Standard
- leverans
- demonstrera
- utplacerade
- detaljer
- Bestämma
- Utvecklare
- utveckla
- fördelning
- do
- dokumentera
- inte
- ladda ner
- under
- varje
- lättare
- Effektiv
- ansträngning
- betonar
- betona
- ange
- Företag
- utvärdering
- exempel
- exempel
- Utom
- exekvera
- befintliga
- förväntar
- Förklara
- f1
- Höst
- familj
- Federal
- Fil
- Filer
- Slutligen
- finansiella
- hitta
- efter
- För
- vänner
- från
- full
- fungera
- ytterligare
- Games
- generera
- skaffa sig
- Go
- Går
- Regeringen
- vägleda
- styra
- riktlinjer
- hantera
- Har
- har
- he
- hjälper
- hans
- Hur ser din drömresa ut
- How To
- Men
- html
- http
- HTTPS
- ID
- identifiera
- ids
- vikt
- förbättra
- förbättra
- in
- innefattar
- Inklusive
- Öka
- ökat
- informationen
- inneboende
- ingång
- insikter
- exempel
- istället
- instruktioner
- Intelligens
- in
- införa
- IT
- Jobb
- Lediga jobb
- bara
- Nyckel
- etikett
- Etiketter
- språk
- storskalig
- LÄRA SIG
- inlärning
- t minst
- mindre
- tycka om
- BEGRÄNSA
- läge
- Maskinen
- maskininlärning
- göra
- ledning
- markera
- Matris
- max
- maximal
- Möt
- Meny
- metriska
- Metrics
- kanske
- minimum
- minsta
- ML
- modell
- modeller
- mer
- mest
- Filmer
- måste
- namn
- Natural
- Naturlig språkbehandling
- Navigering
- Behöver
- negativ
- Nya
- Nästa
- nlp
- anteckningsbok
- Lägga märke till..
- antal
- observera
- förekomst
- of
- Ofta
- on
- ONE
- endast
- optimering
- Optimera
- optimerad
- optimera
- organisationer
- vår
- produktion
- panelen
- särskilt
- brinner
- Betala
- för
- prestanda
- plocka
- Röret
- plato
- Platon Data Intelligence
- PlatonData
- i
- snälla du
- Punkt
- poäng
- positiv
- möjlig
- Inlägg
- inlägg
- praxis
- pragmatisk
- Precision
- förutsägelse
- beredning
- Förbered
- presenterar
- tidigare
- problem
- Bearbetad
- bearbetning
- produktiv
- professionell
- rätt
- ge
- förutsatt
- allmän
- kvalitet
- slumpmässig
- ratio
- Raw
- inser
- hänvisa
- Obligatorisk
- Resurser
- Resultat
- Roll
- sagemaker
- Forskare
- göra
- sektor
- se
- sett
- ser
- tjänar
- Tjänster
- flera
- skall
- Visar
- Enkelt
- Mjuk
- lösning
- Lösningar
- LÖSA
- några
- specialiserat
- specifik
- delas
- standard
- starta
- igång
- Steg
- Steg
- förvaring
- lagras
- sådana
- Ta
- grupp
- Tekniken
- tekniker
- terminal
- testa
- testade
- text
- än
- den där
- Smakämnen
- deras
- sedan
- Dessa
- de
- detta
- de
- hot
- tre
- tröskelvärde
- Genom
- tid
- till
- verktyg
- Totalt
- tränad
- Utbildning
- två
- under
- underrepresenterad
- förstå
- us
- US Federal
- användning
- användarvänligt
- med hjälp av
- värde
- Video
- videospel
- utsikt
- synlig
- Besök
- vs
- tittar
- we
- webb
- webbservice
- VÄL
- när
- som
- medan
- utbredd
- kommer
- fönster
- med
- utan
- fungerar
- Om er
- Din
- zephyrnet
- Postnummer