Ziua 101 a # NLP365 Studiu în profunzime al arhitecturii DIAS RASA de Ryan Ong Către știința datelor
Arhitectură de ultimă generație pentru intenția și clasificarea entităților
Ryan Ong
10 aprilie · 6 min citire
Bună tuturor, mă numesc Ryan. Lucrez ca Data Scientist la Londra. Sunt foarte pasionat de procesarea limbajului natural (NLP) și lucrez în prezent la proiectul # NLP365 (+1), unde îmi documentez călătoria de învățare NLP în fiecare zi în 2020. Simțiți-vă liber să verificați ce am învățat de-a lungul ultimele 100 de zile aici.

Postarea de astăzi acoperă arhitectura DIET a RASA. Îmi place foarte mult arhitectura DIAS a RASA și, deși am găsit că videoclipurile cu explicații ale RASA sunt foarte informative, nu vreau să trebuiască să revăd întregul videoclip atunci când revizuiesc arhitectura DIET în viitor, așa că mai jos sunt toate notele mele despre DIETA RASA:)
DIET înseamnă Transformator de intenție și entitate duală. DIET este o arhitectură transformatoare cu mai multe sarcini care poate realiza atât clasificarea intenției, cât și recunoașterea entităților împreună. Este compus din mai multe componente care ne permite să avem flexibilitatea de a schimba diferite componente. De exemplu, am putea experimenta folosind diferite încorporări de cuvinte, cum ar fi BERT și GloVe.
Multe dintre modelele de limbă pre-instruite sunt foarte grele, în sensul că necesită o putere mare de calcul și timpul de deducere este lung și, în ciuda performanțelor lor puternice, nu sunt concepute pentru aplicații de conversație AI. DIETA este diferită ca:
- Este o arhitectură modulară care permite dezvoltatorilor de software să aibă mai multă flexibilitate în experimentare
- Se potrivește cu modelele de limbă pre-instruite din punct de vedere al acurateței
- Depășește SOTA actuală și este de 6 ori mai rapid de antrenat
În primul rând, de ce date de instruire avem nevoie pentru a instrui modelul DIET? Arhitectura necesită ca setul de date să conțină textul introdus, eticheta (etichetele) de intenție (e) și eticheta (entitățile) entităților.
Arhitectura are multe componente și are o pierdere totală de optimizat (minimizat) care este alcătuită din trei pierderi:
- Pierderea entității
- Pierderea intenției
- Pierderea măștii
Cum se leagă propozițiile de intrare de pierderea entității în timpul antrenamentului? Mai jos sunt straturile care leagă propozițiile de intrare de pierderea entității:
- Calea individuală de jetoane
- Stratul transformatorului
- Câmp aleatoriu condiționat (CRF)
Calea individuală a jetonului este împărțită în două sub-căi
- Încorporări căutate. Acesta poate fi BERT sau GloVe. Aici puteți experimenta diferite încorporări. Ieșirea este reprezentarea numerică a simbolului
- Caracteristici rare + Feed Forward Neural Network (FFNN). Constă din codificatoare cu un singur nivel de caracter N-grame ca caracteristici și trecute la un strat de transmisie înainte
Ieșirea celor două căi secundare se îmbină împreună și se alimentează într-un alt FFNN. Ieșirea FFNN este un vector cu 256 de dimensiuni.
Ieșirile căii individuale de jetoane sunt introduse într-un strat de transformator cu 2 straturi. Faceți clic aici pentru un articol bun despre transformatoare. Ulterior, ieșirile stratului de transformator sunt introduse în stratul de câmp aleator condiționat (CRF). În interiorul CRF, avem un FFNN care ia ieșirea stratului transformatorului și clasifică ce entitate este ieșirea. De exemplu, cuvântul „ping” are entitatea nume_joc. Între aceste FFNN, avem o matrice de tranziție. Ideea din spatele matricei de tranziție este de a surprinde situația în care, dacă există un jeton care este o entitate, jetoanele sale vecine au o mare probabilitate de a fi și o entitate. Pentru fiecare simbol, avem eticheta entității adevăr-sol și aceasta poate fi utilizată în timpul antrenamentului pentru a instrui atât FFNN-ul nostru, cât și matricea de tranziție (ponderile lor).