Kunstig intelligens (AI) og maskinlæring (ML) har været udbredt på tværs af virksomheder og offentlige organisationer. Behandling af ustrukturerede data er blevet nemmere med fremskridt inden for naturlig sprogbehandling (NLP) og brugervenlige AI/ML-tjenester som f.eks. amazontekst, Amazon Transcribog Amazon Comprehend. Organisationer er begyndt at bruge AI/ML-tjenester som Amazon Comprehend til at bygge klassifikationsmodeller med deres ustrukturerede data for at få dyb indsigt, som de ikke havde før. Selvom du kan bruge fortrænede modeller med minimal indsats, uden ordentlig datakurering og modeljustering, kan du ikke realisere de fulde fordele ved AI/ML-modeller.
I dette indlæg forklarer vi, hvordan man opbygger og optimerer en tilpasset klassifikationsmodel ved hjælp af Amazon Comprehend. Vi demonstrerer dette ved hjælp af en tilpasset Amazon Comprehend-klassificering til at bygge en brugerdefineret multi-label-klassifikationsmodel og giver retningslinjer for, hvordan man forbereder træningsdatasættet og tuner modellen til at opfylde præstationsmålinger såsom nøjagtighed, præcision, genkaldelse og F1-score. Vi bruger Amazon Comprehend-modellens træningsoutputartefakter som en forvirringsmatrix til at justere modellens ydeevne og guide dig til at forbedre dine træningsdata.
Løsningsoversigt
Denne løsning præsenterer en tilgang til at bygge en optimeret brugerdefineret klassifikationsmodel ved hjælp af Amazon Comprehend. Vi gennemgår flere trin, herunder dataforberedelse, modeloprettelse, modelpræstationsmetrik analyse og optimering af konklusioner baseret på vores analyse. Vi bruger en Amazon SageMaker notesbog og AWS Management Console for at fuldføre nogle af disse trin.
Vi gennemgår også bedste praksis og optimeringsteknikker under dataforberedelse, modelbygning og modeljustering.
Forudsætninger
Hvis du ikke har en SageMaker notebook-instans, kan du oprette en. For instruktioner, se Opret en Amazon SageMaker Notebook Instance.
Forbered dataene
Til denne analyse bruger vi datasættet Toxic Comment Classification fra Kaggle. Dette datasæt indeholder 6 etiketter med 158,571 datapunkter. Hver etiket har dog kun mindre end 10 % af de samlede data som positive eksempler, hvor to af etiketterne har mindre end 1 %.
Vi konverterer det eksisterende Kaggle-datasæt til Amazon Comprehend to-kolonne CSV-format med etiketterne delt ved hjælp af en rørafgrænsning (|). Amazon Comprehend forventer mindst én etiket for hvert datapunkt. I dette datasæt støder vi på flere datapunkter, der ikke falder ind under nogen af de angivne etiketter. Vi opretter en ny etiket kaldet ren og tildeler nogen af de datapunkter, der ikke er giftige, til at være positive med denne etiket. Til sidst opdelte vi de kurerede datasæt i trænings- og testdatasæt ved hjælp af en 80/20-forholdsopdeling pr. etiket.
Vi vil bruge data-forberedelse-notesbogen. De følgende trin bruger Kaggle-datasættet og forbereder dataene til vores model.
- Vælg på SageMaker-konsollen Notebook-forekomster i navigationsruden.
- Vælg den notesbogsforekomst, du har konfigureret, og vælg Åbn Jupyter.
- På Ny menu, vælg terminal.
- Kør følgende kommandoer i terminalen for at downloade de nødvendige artefakter til dette indlæg:
- Luk terminalvinduet.
Du skal se tre notesbøger og train.csv filer.
- Vælg notesbogen Data-Preparation.ipynb.
- Kør alle trinene i notesbogen.
Disse trin forbereder det rå Kaggle-datasæt til at fungere som kuraterede trænings- og testdatasæt. Kurerede datasæt vil blive gemt i notesbogen og Amazon Simple Storage Service (Amazon S3).
Overvej følgende retningslinjer for dataforberedelse, når du har at gøre med store multi-label-datasæt:
- Datasæt skal have minimum 10 prøver pr. etiket.
- Amazon Comprehend accepterer maksimalt 100 etiketter. Dette er en blød grænse, der kan øges.
- Sørg for, at datasætfilen er korrekt formateret med den rette afgrænsning. Forkerte afgrænsninger kan introducere tomme etiketter.
- Alle datapunkter skal have etiketter.
- Trænings- og testdatasæt bør have afbalanceret datafordeling pr. etiket. Brug ikke tilfældig fordeling, da det kan introducere skævhed i trænings- og testdatasættene.
Byg en tilpasset klassifikationsmodel
Vi bruger de kurerede trænings- og testdatasæt, vi oprettede under dataforberedelsestrinnet, til at bygge vores model. Følgende trin opretter en Amazon Comprehend multi-label brugerdefineret klassificeringsmodel:
- På Amazon Comprehend-konsollen skal du vælge Brugerdefineret klassificering i navigationsruden.
- Vælg Opret ny model.
- Til Modelnavn, indtast toxic-classification-model.
- Til Versionsnavn, indtast 1.
- Til Annotering og dataformat, vælg Brug af multi-label-tilstand.
- Til Træningsdatasæt, indtast placeringen af det kurerede træningsdatasæt på Amazon S3.
- Vælg Kunden leverede testdatasæt og indtast placeringen af de kurerede testdata på Amazon S3.
- Til Outputdata, indtast Amazon S3-placeringen.
- Til IAM rolle, Vælg Opret en IAM-rolle, angiv navnets suffiks som "forstå-blog".
- Vælg Opret for at starte den tilpassede klassifikationsmodeltræning og modeloprettelse.
Følgende skærmbillede viser detaljerne om den tilpassede klassificeringsmodel på Amazon Comprehend-konsollen.
Indstil modellens ydeevne
Følgende skærmbillede viser modellens ydeevnemålinger. Det inkluderer nøglemålinger som præcision, genkaldelse, F1-score, nøjagtighed og mere.
Efter at modellen er trænet og oprettet, vil den generere filen output.tar.gz, som indeholder etiketterne fra datasættet samt forvirringsmatricen for hver af etiketterne. For yderligere at tune modellens forudsigelsesydelse skal du forstå din model med forudsigelsessandsynligheder for hver klasse. For at gøre dette skal du oprette et analysejob for at identificere de scores, Amazon Comprehend har tildelt hvert af datapunkterne.
Udfør følgende trin for at oprette et analysejob:
- På Amazon Comprehend-konsollen skal du vælge Analyse job i navigationsruden.
- Vælg Skab job.
- Til Navn, gå ind
toxic_train_data_analysis_job
. - Til Analyse type, vælg Brugerdefineret klassificering.
- Til Klassifikationsmodeller og svinghjul, angiv
toxic-classification-model
. - Til Udgave, angiv 1.
- Til Input data S3 placering, skal du indtaste placeringen af den kurerede træningsdatafil.
- Til Input format, vælg Et dokument pr. linje.
- Til Outputdata S3 placering, indtast placeringen.
- Til Adgangstilladelser, Vælg Brug en eksisterende IAM-rolle og vælg den tidligere oprettede rolle.
- Vælg Skab job at starte analyseopgaven.
- Vælg Analyse job for at se jobdetaljerne. Noter venligst job-id'et under Jobdetaljer. Vi vil bruge job-id'et i vores næste trin.
Gentag trinene til startanalysejobbet for de kurerede testdata. Vi bruger forudsigelsesoutput fra vores analysejob til at lære om vores models forudsigelsessandsynligheder. Notér venligst job-id'er for trænings- og testanalysejobs.
Vi bruger Model-Threshold-Analysis.ipynb notesbog til at teste output på alle mulige tærskler og score output baseret på forudsigelsessandsynlighed ved hjælp af scikit-learn's precision_recall_curve
fungere. Derudover kan vi beregne F1-score ved hver tærskel.
Vi skal bruge Amazon Comprehend-analysejob-id'erne som input til Model-Tærskel-Analyse notesbog. Du kan få job-id'erne fra Amazon Comprehend-konsollen. Udfør alle trin i Model-Tærskel-Analyse notesbog for at overholde tærsklerne for alle klasserne.
Læg mærke til, hvordan præcisionen stiger, når tærsklen stiger, mens det omvendte sker med genkald. For at finde balancen mellem de to bruger vi F1 scoren, hvor den har synlige toppe i deres kurve. Toppene i F1-scoren svarer til en bestemt tærskel, der kan forbedre modellens ydeevne. Bemærk, hvordan de fleste af etiketterne falder omkring 0.5-mærket for tærsklen, bortset fra trusselsmærket, som har en tærskel på omkring 0.04.
Vi kan derefter bruge denne tærskel til specifikke etiketter, der ikke klarer sig med kun standardtærsklen på 0.5. Ved at bruge de optimerede tærskler forbedres modellens resultater på testdataene for etikettruslen fra 0.00 til 0.24. Vi bruger den maksimale F1-score ved tærsklen som et benchmark til at bestemme positiv vs. negativ for den pågældende etiket i stedet for en fælles benchmark (en standardværdi som > 0.7) for alle etiketterne.
Håndtering af underrepræsenterede klasser
En anden tilgang, der er effektiv til et ubalanceret datasæt, er oversampling. Ved at oversample den underrepræsenterede klasse ser modellen den underrepræsenterede klasse oftere og understreger vigtigheden af disse stikprøver. Vi bruger Oversampling-underrepresented.ipynb notesbog for at optimere datasættene.
For dette datasæt testede vi, hvordan modellens ydeevne på evalueringsdatasættet ændrer sig, efterhånden som vi giver flere prøver. Vi bruger oversampling-teknikken til at øge forekomsten af underrepræsenterede klasser for at forbedre ydeevnen.
I dette særlige tilfælde testede vi på 10, 25, 50, 100, 200 og 500 positive eksempler. Bemærk, at selvom vi gentager datapunkter, forbedrer vi i sagens natur modellens ydeevne ved at understrege vigtigheden af den underrepræsenterede klasse.
Koste
Med Amazon Comprehend betaler du mens du går baseret på antallet af behandlede teksttegn. Henvise til Amazon forstå priser til faktiske omkostninger.
Ryd op
Når du er færdig med at eksperimentere med denne løsning, skal du rydde op i dine ressourcer for at slette alle de ressourcer, der er implementeret i dette eksempel. Dette hjælper dig med at undgå fortsatte omkostninger på din konto.
Konklusion
I dette indlæg har vi givet bedste praksis og vejledning om dataforberedelse, modeljustering ved hjælp af forudsigelsessandsynligheder og teknikker til at håndtere underrepræsenterede dataklasser. Du kan bruge disse bedste praksisser og teknikker til at forbedre ydeevnemålingerne for din Amazon Comprehend-tilpassede klassificeringsmodel.
For mere information om Amazon Comprehend, besøg Amazon Forstå udviklerressourcer at finde videoressourcer og blogindlæg og henvise til AWS Forstå ofte stillede spørgsmål.
Om forfatterne
Sathya Balakrishnan er Sr. Customer Delivery Architect i Professional Services-teamet hos AWS, med speciale i data- og ML-løsninger. Han arbejder med amerikanske føderale finansielle kunder. Han brænder for at bygge pragmatiske løsninger til at løse kundernes forretningsproblemer. I sin fritid nyder han at se film og vandre med sin familie.
Prins Mallari er en NLP Data Scientist i Professional Services-teamet hos AWS, med speciale i anvendelser af NLP til offentlige kunder. Han brænder for at bruge ML som et værktøj til at give kunderne mulighed for at være mere produktive. I sin fritid nyder han at spille videospil og udvikle et sammen med sine venner.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/improve-prediction-quality-in-custom-classification-models-with-amazon-comprehend/
- :har
- :er
- :hvor
- $OP
- 1
- 10
- 100
- 200
- 24
- 25
- 50
- 500
- 7
- 9
- a
- Om
- accepterer
- Konto
- nøjagtighed
- tværs
- faktiske
- Derudover
- Vedtagelse
- fremskridt
- AI
- AI / ML
- Alle
- tillade
- også
- Skønt
- Amazon
- Amazon Comprehend
- Amazon SageMaker
- Amazon Web Services
- an
- analyse
- ,
- enhver
- applikationer
- Anvendelser af NLP
- tilgang
- ER
- omkring
- AS
- Aktiver
- tildelt
- At
- undgå
- AWS
- Balance
- baseret
- BE
- fordi
- bliver
- før
- benchmark
- fordele
- BEDSTE
- bedste praksis
- mellem
- skævhed
- Blog
- Blogindlæg
- bygge
- Bygning
- virksomhed
- by
- kaldet
- CAN
- Kan få
- tilfælde
- Ændringer
- tegn
- Vælg
- klasse
- klasser
- klassificering
- kunder
- KOMMENTAR
- Fælles
- fuldføre
- forstå
- Compute
- konfigureret
- forvirring
- Konsol
- indeholder
- fortsættende
- konvertere
- Omkostninger
- skabe
- oprettet
- skabelse
- kurateret
- datasikring
- skøger
- skik
- kunde
- Kunder
- data
- datapunkter
- Dataforberedelse
- dataforsker
- datasæt
- beskæftiger
- dyb
- Standard
- levering
- demonstrere
- indsat
- detaljer
- Bestem
- Udvikler
- udvikling
- fordeling
- do
- dokumentet
- Dont
- downloade
- i løbet af
- hver
- lettere
- Effektiv
- indsats
- understreger
- at understrege
- Indtast
- Enterprise
- evaluering
- eksempel
- eksempler
- Undtagen
- udføre
- eksisterende
- forventer
- Forklar
- f1
- Fall
- familie
- Federal
- File (Felt)
- Filer
- Endelig
- finansielle
- Finde
- efter
- Til
- venner
- fra
- fuld
- funktion
- yderligere
- Spil
- generere
- få
- Go
- Goes
- Regering
- vejledning
- vejlede
- retningslinjer
- håndtere
- Have
- have
- he
- hjælper
- hans
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- ID
- identificere
- id'er
- betydning
- Forbedre
- forbedring
- in
- omfatter
- Herunder
- Forøg
- øget
- oplysninger
- sagens natur
- indgang
- indsigt
- instans
- i stedet
- anvisninger
- Intelligens
- ind
- indføre
- IT
- Job
- Karriere
- lige
- Nøgle
- etiket
- Etiketter
- Sprog
- storstilet
- LÆR
- læring
- mindst
- mindre
- ligesom
- GRÆNSE
- placering
- maskine
- machine learning
- lave
- ledelse
- markere
- Matrix
- max
- maksimal
- Mød
- Menu
- metrisk
- Metrics
- måske
- mindste
- minimum
- ML
- model
- modeller
- mere
- mest
- Film
- skal
- navn
- Natural
- Natural Language Processing
- Navigation
- Behov
- negativ
- Ny
- næste
- NLP
- notesbog
- Varsel..
- nummer
- observere
- Hændelse
- of
- tit
- on
- ONE
- kun
- optimering
- Optimer
- optimeret
- optimering
- organisationer
- vores
- output
- brød
- særlig
- lidenskabelige
- Betal
- per
- ydeevne
- pick
- rør
- plato
- Platon Data Intelligence
- PlatoData
- spiller
- Vær venlig
- Punkt
- punkter
- positiv
- mulig
- Indlæg
- Indlæg
- praksis
- pragmatisk
- Precision
- forudsigelse
- forberedelse
- Forbered
- gaver
- tidligere
- problemer
- Behandlet
- forarbejdning
- produktiv
- professionel
- passende
- give
- forudsat
- offentlige
- kvalitet
- tilfældig
- forholdet
- Raw
- indse
- henvise
- påkrævet
- Ressourcer
- Resultater
- roller
- sagemaker
- Videnskabsmand
- score
- sektor
- se
- set
- Sees
- tjener
- Tjenester
- flere
- bør
- Shows
- Simpelt
- Soft
- løsninger
- Løsninger
- SOLVE
- nogle
- speciale
- specifikke
- delt
- standard
- starte
- påbegyndt
- Trin
- Steps
- opbevaring
- opbevaret
- sådan
- Tag
- hold
- teknik
- teknikker
- terminal
- prøve
- afprøvet
- tekst
- end
- at
- deres
- derefter
- Disse
- de
- denne
- dem
- trussel
- tre
- tærskel
- Gennem
- tid
- til
- værktøj
- I alt
- uddannet
- Kurser
- to
- under
- underrepræsenteret
- forstå
- us
- US Federal
- brug
- brugervenlig
- ved brug af
- værdi
- video
- videospil
- Specifikation
- synlig
- Besøg
- vs
- ser
- we
- web
- webservices
- GODT
- hvornår
- som
- mens
- udbredt
- vilje
- vindue
- med
- uden
- virker
- Du
- Din
- zephyrnet
- Zip