Conversațiile online sunt omniprezente în viața modernă, cuprinzând industrii de la jocuri video la telecomunicații. Acest lucru a condus la o creștere exponențială a cantității de date de conversație online, ceea ce a ajutat la dezvoltarea sistemelor de procesare a limbajului natural (NLP) de ultimă generație, cum ar fi chatbot-urile și modelele de generare a limbajului natural (NLG). De-a lungul timpului, au evoluat și diverse tehnici NLP pentru analiza textului. Acest lucru necesită cerința unui serviciu complet gestionat care poate fi integrat în aplicații folosind apeluri API fără a fi nevoie de o experiență extinsă de învățare automată (ML). AWS oferă servicii AWS AI pre-instruite, cum ar fi Amazon Comprehend, care poate gestiona eficient cazurile de utilizare a NLP care implică clasificare, rezumare a textului, recunoaștere a entităților și multe altele pentru a aduna informații din text.
În plus, conversațiile online au dus la un fenomen larg răspândit de utilizare netradițională a limbii. Tehnicile NLP tradiționale au adesea rezultate slabe pe aceste date text din cauza vocabularelor în continuă evoluție și specifice domeniului care există în diferite platforme, precum și abaterilor lexicale semnificative ale cuvintelor din limba engleză corectă, fie accidental, fie intenționat, ca formă de atac adversar. .
În această postare, descriem mai multe abordări ML pentru clasificarea text a conversațiilor online cu instrumente și servicii disponibile pe AWS.
Cerințe preliminare
Înainte de a vă aprofunda în acest caz de utilizare, vă rugăm să completați următoarele cerințe preliminare:
- Configurați un Cont AWS și creați un utilizator IAM.
- Configurați AWS CLI și SDK-uri AWS.
- (Opțional) Configurați Mediul Cloud9 IDE.
Setul de date
Pentru această postare, folosim Jigsaw Bias neintenționat în setul de date de clasificare a toxicității, un etalon pentru problema specifică a clasificării toxicității în conversațiile online. Setul de date oferă etichete de toxicitate, precum și câteva atribute ale subgrupurilor, cum ar fi obscen, atac de identitate, insultă, amenințare și explicit sexual. Etichetele sunt furnizate ca valori fracționale, care reprezintă proporția de adnotatori umani care au crezut că atributul este aplicat unei anumite porțiuni de text, care sunt rareori unanimi. Pentru a genera etichete binare (de exemplu, toxice sau netoxice), se aplică un prag de 0.5 valorilor fracționale, iar comentariile cu valori mai mari decât pragul sunt tratate ca o clasă pozitivă pentru acea etichetă.
Încorporarea subcuvinților și RNN-uri
Pentru prima noastră abordare de modelare, folosim o combinație de încorporare a subcuvinților și rețele neuronale recurente (RNN) pentru a antrena modele de clasificare a textului. Înglobările de subcuvinte au fost introduse de Bojanowski și colab. în 2017 ca o îmbunătățire față de metodele anterioare de încorporare la nivel de cuvânt. Modelele tradiționale de skip-gram Word2Vec sunt antrenate pentru a învăța o reprezentare vectorială statică a unui cuvânt țintă care prezice în mod optim contextul cuvântului respectiv. Modelele de subcuvinte, pe de altă parte, reprezintă fiecare cuvânt țintă ca o pungă de caractere n-grame care alcătuiesc cuvântul, unde un n-gramă este compus dintr-un set de n caractere consecutive. Această metodă permite modelului de încorporare să reprezinte mai bine morfologia de bază a cuvintelor înrudite în corpus, precum și calculul înglobărilor pentru cuvinte noi, în afara vocabularului (OOV). Acest lucru este deosebit de important în contextul conversațiilor online, un spațiu cu probleme în care utilizatorii scriu adesea greșit cuvintele (uneori intenționat pentru a evita detectarea) și folosesc, de asemenea, un vocabular unic, în continuă evoluție, care s-ar putea să nu fie captat de un corpus general de instruire.
Amazon SageMaker facilitează antrenarea și optimizarea unui model de încorporare a subcuvintelor nesupravegheat în propriul corpus de date text specifice domeniului, cu ajutorul încorporat Algoritmul BlazingText. De asemenea, putem descărca modele existente de uz general instruite pe seturi mari de date de text online, cum ar fi următoarele Modele în limba engleză disponibile direct din fastText. Din instanța de blocnotes SageMaker, pur și simplu rulați următoarele pentru a descărca un model fastText preantrenat:
Indiferent dacă v-ați antrenat propriile înglobări cu BlazingText sau ați descărcat un model preantrenat, rezultatul este un model binar zip pe care îl puteți utiliza cu biblioteca gensim pentru a încorpora un anumit cuvânt țintă ca vector pe baza subcuvintelor sale constitutive:
După ce preprocesăm un anumit segment de text, putem folosi această abordare pentru a genera o reprezentare vectorială pentru fiecare dintre cuvintele constitutive (separate prin spații). Apoi folosim SageMaker și un cadru de învățare profundă, cum ar fi PyTorch, pentru a antrena un RNN personalizat cu un obiectiv de clasificare binar sau cu mai multe etichete pentru a prezice dacă textul este toxic sau nu și subtipul specific de toxicitate pe baza exemplelor de antrenament etichetate.
Pentru a încărca textul preprocesat în Serviciul Amazon de stocare simplă (Amazon S3), utilizați următorul cod:
Pentru a iniția instruirea modelelor scalabile, multi-GPU cu SageMaker, introduceți următorul cod:
În , definim un set de date PyTorch care este utilizat de train.py
pentru a pregăti datele text pentru instruirea și evaluarea modelului:
Rețineți că acest cod anticipează că vectors.zip
fișierul care conține înglobările dvs. fastText sau BlazingText va fi stocat .
În plus, puteți implementa cu ușurință modele fastText preantrenate pe cont propriu pentru punctele finale SageMaker pentru a calcula din mers vectori de încorporare pentru a fi utilizate în sarcini relevante la nivel de cuvânt. Vezi următoarele Exemplu GitHub pentru mai multe detalii.
Transformers cu față îmbrățișată
Pentru a doua noastră abordare de modelare, trecem la utilizarea Transformers, introdus în lucrare Atenția este tot ce aveți nevoie. Transformatoarele sunt modele de învățare profundă concepute pentru a evita în mod deliberat capcanele RNN-urilor, bazându-se pe un mecanism de auto-atenție pentru a atrage dependențe globale între intrare și ieșire. Arhitectura modelului Transformer permite o paralelizare semnificativ mai bună și poate obține performanțe ridicate într-un timp de antrenament relativ scurt.
Construit pe succesul Transformers, BERT, introdus în lucrare OART: Pre-instruire a transformatoarelor bidirecționale profunde pentru înțelegerea limbajului, a adăugat pre-instruire bidirecțională pentru reprezentarea limbii. Inspirat de sarcina Cloze, BERT este pre-antrenat cu modelarea limbajului mascat (MLM), în care modelul învață să recupereze cuvintele originale pentru jetoane mascate aleatoriu. Modelul BERT este, de asemenea, preantrenat pentru sarcina de predicție a următoarei propoziții (NSP) pentru a prezice dacă două propoziții sunt în ordinea corectă de citire. De la apariția sa în 2018, BERT și variațiile sale au fost utilizate pe scară largă în sarcinile de clasificare a textului.
Soluția noastră folosește o variantă a BERT cunoscută sub numele de RoBERTa, care a fost introdusă în lucrare ROBERTa: O abordare de preformare BERT optimizată robust. RoBERTa îmbunătățește și mai mult performanța BERT pentru o varietate de sarcini în limbaj natural prin antrenamentul optimizat al modelului, inclusiv modele de antrenament mai lungi pe un corp de 10 ori mai mare, folosind hiperparametri optimizați, mascarea dinamică aleatorie, eliminarea sarcinii NSP și multe altele.
Modelele noastre bazate pe Roberta folosesc Hugging Face Transformers bibliotecă, care este un cadru popular Python open-source care oferă implementări de înaltă calitate pentru tot felul de modele Transformer de ultimă generație pentru o varietate de sarcini NLP. Hugging Face a încheiat un parteneriat cu AWS pentru a vă permite să antrenați și să implementați cu ușurință modele Transformer pe SageMaker. Această funcționalitate este disponibilă prin Imaginile containerului AWS Deep Learning Hugging Face, care includ bibliotecile Transformers, Tokenizers și Datasets și integrare optimizată cu SageMaker pentru formarea modelului și inferență.
În implementarea noastră, moștenim coloana vertebrală a arhitecturii RoBERTa din cadrul Hugging Face Transformers și folosim SageMaker pentru a antrena și a implementa propriul nostru model de clasificare a textului, pe care îl numim RoBERTox. RoBERTox utilizează codificarea perechilor de octeți (BPE), introdusă în Traducere automată neuronală a cuvintelor rare cu unități de subcuvânt, pentru a tokeniza textul introdus în reprezentări subcuvinte. Ne putem antrena apoi modelele și tokenizatoarele cu privire la datele Jigsaw sau orice corpus mare specific unui domeniu (cum ar fi jurnalele de chat dintr-un anumit joc) și le putem folosi pentru clasificarea textului personalizată. Definim clasa noastră de model personalizat de clasificare în următorul cod:
Înainte de antrenament, ne pregătim datele text și etichetele folosind biblioteca de seturi de date Hugging Face și încărcăm rezultatul pe Amazon S3:
Initiem antrenamentul modelului intr-un mod similar cu RNN:
În cele din urmă, următorul fragment de cod Python ilustrează procesul de servire a RoBERTox prin intermediul unui punct final SageMaker live pentru clasificarea textului în timp real pentru o solicitare JSON:
Evaluarea performanței modelului: set de date de părtinire neintenționată Jigsaw
Următorul tabel conține valori de performanță pentru modelele antrenate și evaluate pe baza datelor din competiția Jigsaw Unintended Bias in Toxicity Detection Kaggle. Am antrenat modele pentru trei sarcini diferite, dar interdependente:
- Caz binar – Modelul a fost antrenat pe setul de date de antrenament complet pentru a prezice
toxicity
numai eticheta - Carcasă cu granulație fină – Subsetul de date de antrenament pentru care
toxicity>=0.5
a fost folosit pentru a prezice alte etichete de subtip de toxicitate (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - Caz multitask – Setul complet de date de antrenament a fost folosit pentru a prezice toate cele șase etichete simultan
Am antrenat modele RNN și RoBERTa pentru fiecare dintre aceste trei sarcini folosind etichetele fracționale furnizate de Jigsaw, care corespund proporției de adnotatori care au considerat că eticheta este potrivită pentru text, precum și cu etichete binare combinate cu greutățile clasei din rețea. funcția de pierdere. În schema de etichetare binară, proporțiile au fost pragizate la 0.5 pentru fiecare etichetă disponibilă (1 dacă etichetă>=0.5, 0 în caz contrar), iar funcțiile de pierdere a modelului au fost ponderate pe baza proporțiilor relative ale fiecărei etichete binare din setul de date de antrenament. În toate cazurile, am constatat că utilizarea etichetelor fracționale a rezultat direct la cea mai bună performanță, indicând valoarea adăugată a informațiilor inerentă gradului de acord între adnotatori.
Afișăm două valori ale modelului: precizia medie (AP), care oferă un rezumat al curbei de precizie-rechemare prin calculul mediei ponderate a valorilor de precizie atinse la fiecare prag de clasificare și aria de sub curba caracteristică de funcționare a receptorului (AUC) , care cumulează performanța modelului în cadrul pragurilor de clasificare în raport cu rata pozitivă adevărată și rata pozitivă fals. Rețineți că clasa adevărată pentru o anumită instanță de text din setul de testare corespunde dacă proporția reală este mai mare sau egală cu 0.5 (1 dacă etichetă>=0.5, 0 în caz contrar).
. | Încorporare subcuvânt + RNN | ROBERTa | ||
. | Etichete fracționate | Etichete binare + ponderare de clasă | Etichete fracționate | Etichete binare + ponderare de clasă |
Binar | AP=0.746, AUC=0.966 | AP=0.730, AUC=0.963 | AP=0.758, AUC=0.966 | AP=0.747, AUC=0.963 |
Granulație fină | AP=0.906, AUC=0.909 | AP=0.850, AUC=0.851 | AP=0.913, AUC=0.913 | AP=0.911, AUC=0.912 |
Multitask | AP=0.721, AUC=0.972 | AP=0.535, AUC=0.907 | AP=0.740, AUC=0.972 | AP=0.711, AUC=0.961 |
Concluzie
În această postare, am prezentat două abordări de clasificare a textului pentru conversațiile online folosind serviciile AWS ML. Puteți generaliza aceste soluții pe platformele de comunicare online, industriile precum jocurile de noroc deosebit de probabil să beneficieze de capacitatea îmbunătățită de a detecta conținut dăunător. În postările viitoare, intenționăm să discutăm în continuare despre o arhitectură end-to-end pentru implementarea fără probleme a modelelor în contul dvs. AWS.
Dacă doriți ajutor pentru accelerarea utilizării ML în produsele și procesele dvs., vă rugăm să contactați Laboratorul Amazon ML Solutions.
Despre Autori
Ryan Brand este Data Scientist în cadrul Amazon Machine Learning Solutions Lab. Are o experiență specifică în aplicarea învățării automate la problemele din domeniul sănătății și științele vieții, iar în timpul liber îi place să citească istorie și science fiction.
Sourav Bhabesh este Data Scientist la Amazon ML Solutions Lab. El dezvoltă soluții AI/ML pentru clienții AWS din diverse industrii. Specialitatea sa este Procesarea limbajului natural (NLP) și este pasionat de deep learning. În afara serviciului, îi place să citească cărți și să călătorească.
Liutong Zhou este un om de știință aplicat la Amazon ML Solutions Lab. El creează soluții AI/ML personalizate pentru clienții AWS din diverse industrii. El este specializat în procesarea limbajului natural (NLP) și este pasionat de învățarea profundă multimodală. Este tenor liric și îi place să cânte opere în afara serviciului.
Sia Gholami este Senior Data Scientist la Amazon ML Solutions Lab, unde creează soluții AI/ML pentru clienți din diverse industrii. Este pasionat de procesarea limbajului natural (NLP) și de învățare profundă. În afara serviciului, Siei îi place să petreacă timpul în natură și să joace tenis.
Daniel Horowitz este un manager de știință aplicată AI. El conduce o echipă de oameni de știință din Amazon ML Solutions Lab care lucrează pentru a rezolva problemele clienților și pentru a stimula adoptarea cloud cu ML.
- Coinsmart. Cel mai bun schimb de Bitcoin și Crypto din Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. ACCES LIBER.
- CryptoHawk. Radar Altcoin. Încercare gratuită.
- Sursa: https://aws.amazon.com/blogs/machine-learning/text-classification-for-online-conversations-with-machine-learning-on-aws/
- '
- "
- 10
- 100
- 7
- a
- capacitate
- Despre Noi
- accelerarea
- Cont
- Obține
- realizat
- peste
- adăugat
- Adoptare
- Acord
- AI
- Servicii AI
- TOATE
- permite
- Amazon
- sumă
- analiză
- api
- aplicatii
- aplicat
- Aplică
- Aplicarea
- abordare
- abordari
- adecvat
- arhitectură
- ZONĂ
- atribute
- disponibil
- in medie
- AWS
- sac
- Benchmark
- beneficia
- CEL MAI BUN
- Mai bine
- între
- mai mare
- Manuale
- construiește
- construit-in
- apel
- caz
- cazuri
- caractere
- clasă
- clasificare
- Cloud
- cod
- combinaţie
- combinate
- comentarii
- Comunicare
- concurs
- Completă
- compuse
- calcul
- Calcula
- tehnica de calcul
- consecutiv
- mereu
- contactați-ne
- Recipient
- conține
- conţinut
- Conversație
- conversații
- crea
- curba
- personalizat
- client
- clienţii care
- de date
- om de știință de date
- adânc
- implementa
- desfășurarea
- descrie
- proiectat
- detalii
- Detectare
- Determina
- Dezvoltare
- diferit
- Dimensiune
- direct
- discuta
- Afişa
- Descarca
- conduce
- în timpul
- dinamic
- fiecare
- cu ușurință
- în mod eficient
- permite
- un capăt la altul
- Punct final
- Engleză
- Intrați
- entitate
- evaluare
- evoluție
- exemplu
- exemple
- existent
- experienţă
- expertiză
- extensiv
- Față
- Modă
- Ficţiune
- First
- următor
- formă
- Înainte
- găsit
- fracționar
- Cadru
- Gratuit
- din
- Complet
- funcţie
- funcționalitate
- funcții
- mai mult
- viitor
- joc
- Jocuri
- jocuri
- General
- scop general
- genera
- generaţie
- Caritate
- mai mare
- Creștere
- manipula
- cap
- de asistență medicală
- ajutor
- a ajutat
- Înalt
- de înaltă calitate
- istorie
- HTTPS
- uman
- Identitate
- implementarea
- important
- îmbunătățit
- îmbunătățire
- include
- Inclusiv
- industrii
- informații
- inerent
- intrare
- perspective
- inspirat
- instanță
- Insultă
- integrate
- integrare
- IT
- Jigsaw
- Loc de munca
- chei
- cunoscut
- de laborator
- Etichetă
- etichetarea
- etichete
- limbă
- mare
- mai mare
- strat
- Conduce
- AFLAȚI
- învăţare
- Led
- Bibliotecă
- Life Sciences
- Probabil
- trăi
- încărca
- maşină
- masina de învățare
- face
- FACE
- gestionate
- manager
- masca
- Măști
- Meci
- Matrice
- mecanism
- Memorie
- Metode
- Metrici
- ar putea
- ML
- model
- Modele
- mai mult
- multiplu
- Natural
- Natură
- reţea
- rețele
- următor
- caiet
- număr
- promoții
- on-line
- de operare
- Optimizați
- optimizate
- comandă
- original
- Altele
- in caz contrar
- propriu
- Hârtie
- în special
- parteneriat
- pasionat
- performanță
- bucată
- Platforme
- joc
- "vă rog"
- Popular
- pozitiv
- postări
- prezice
- prezicere
- Pregăti
- precedent
- Problemă
- probleme
- proces
- procese
- prelucrare
- Produse
- Proiectare
- prevăzut
- furnizează
- Citind
- în timp real
- Recupera
- eliminarea
- reprezenta
- reprezentare
- reprezentând
- solicita
- reveni
- Returnează
- Rol
- Alerga
- scalabil
- schemă
- Ştiinţă
- ȘTIINȚE
- Om de stiinta
- oamenii de stiinta
- fără sudură
- segment
- serviciu
- Servicii
- servire
- set
- câteva
- Pantaloni scurți
- semnificativ
- asemănător
- simplu
- întrucât
- SIX
- Mărimea
- soluţie
- soluţii
- REZOLVAREA
- Spaţiu
- spații
- specializată
- Specialitate
- specific
- Cheltuire
- de ultimă oră
- Statele
- depozitare
- succes
- sisteme
- Ţintă
- sarcini
- echipă
- tehnici de
- de telecomunicaţii
- test
- trei
- prag
- Prin
- timp
- ori
- indicativele
- Unelte
- lanternă
- tradiţional
- Tren
- Pregătire
- tranziţie
- Traducere
- Traveling
- în
- unic
- utilizare
- utilizatorii
- validare
- valoare
- varietate
- diverse
- Video
- jocuri video
- dacă
- OMS
- în
- fără
- cuvinte
- Apartamente
- de lucru
- Ta