În această postare, m-aș concentra pe toate cunoștințele teoretice de care aveți nevoie pentru cele mai noi tendințe în PNL. Am făcut această listă de lectură în timp ce învățam concepte noi. În următoarea postare, aș împărtăși lucrurile pe care le folosesc pentru a exersa aceste concepte, inclusiv modelele de potrivire și clasamentul 1 pe clasamentele competiției. Utilizați acest link pentru a ajunge la partea 2 (Încă de făcut).

Pentru resurse, includ articole, bloguri, videoclipuri.

Nu este nevoie să citiți cele mai multe lucruri. Scopul tău principal ar trebui să fie să înțelegi că această problemă a fost introdusă în acest document și înțeleg cum funcționează, cum se compară cu stadiul tehnicii.

deveniți

Tendință: utilizați modele mai mari bazate pe transformatoare și rezolvați învățarea multi-tasking.

Atenție: este o tendință în creștere în NLP că, dacă aveți o idee nouă în NLP în timp ce citiți oricare dintre documente, va trebui să utilizați o putere de calcul masivă pentru a obține rezultate rezonabile. Deci, este limitat de modelele open source.

  1. fastai: - Văzusem deja videoclipurile, așa că m-am gândit că ar trebui să le adaug în partea de sus a listei.
  • Lecția 4 Învățare profundă practică pentru programatori. Vă va ajuta să implementați un model de limbă în fastai.
  • Există o lecție 12 în partea 2 a cursului, dar încă nu a fost lansată oficial, așa că aș actualiza linkul când se încarcă.

2. LSTM: - Deși transformatoarele sunt utilizate în principal astăzi, în unele cazuri puteți utiliza în continuare LSTM și a fost primul model de succes care a obținut rezultate bune. Dacă doriți, trebuie să utilizați AWD_LSTM acum.

  • MEMORIE PE TERMEN LUNG. O privire rapidă la hârtie este suficientă.
  • Înțelegeți blogul LSTM Networks. Explicați grafic toate detaliile rețelei LSTM.

3. AWD_LSTM: - S-a propus depășirea deficienței LSTM prin introducerea abandonului între straturile ascunse, renunțarea la încorporare, legarea greutății. Trebuie să utilizați AWS_LSTM în loc de LSTM.

  • Rolul de regularizare și optimizare a modelelor de limbaj LSTM. Hârtie AWD_LSTM
  • Cod oficial Salesforce
  • implementarea fastai

4. Modele de pointer: - Deși nu este necesar, este o lectură bună. Vă puteți gândi la aceasta ca la o teorie anterioară atenției.

  • Rolul modelelor de amestecare a indicatorului Sentinel
  • Videoclip oficial al articolului anterior.
  • Îmbunătățirea modelelor de limbaj neuronal cu rol continuu în cache

Extra: Care este diferența dintre pierderea în greutate și regularizare? În pierderea în greutate, adaugă în mod direct ceva la regula actualizării, în timp ce în regularizare se adaugă funcției de pierdere. De ce să menționăm acest lucru? Cel mai probabil bibliotecile DL folosesc weight_decay în loc de regularizare sub capotă.

În unele articole, ați vedea că autorii au preferat SGD în locul lui Adam, citând că Adam nu are performanțe bune. Motivul pentru aceasta este (poate) PyTorch/Tensorflow fac eroarea de mai sus. Acest lucru este explicat în detaliu în această postare.

5. Atenție: nu uitați că atenția nu este tot ce aveți nevoie.

Există o mulțime de cercetări pentru a face transformatoare mai bune, poate voi citi mai multe articole despre acest lucru în viitor. Unele alte transformatoare includ Transformatorul universal și Transformatorul evoluat care au folosit AutoML pentru a crea arhitectura transformatorului.

Motivul pentru care noile arhitecturi de transformatoare nu rezolvă problema. Pentru că aveți nevoie de modele de limbă pentru sarcinile dvs. NLP care utilizează aceste blocuri transformative. În majoritatea cazurilor, nu veți avea resursele de calcul pentru a antrena aceste modele, deoarece s-a constatat că cu cât utilizați mai multe blocuri de transformatoare, cu atât mai bine. De asemenea, aveți nevoie de dimensiuni mai mari pentru a pregăti aceste modele lingvistice, ceea ce înseamnă că trebuie să utilizați TPU-uri Nvidia DGX sau Google Cloud (asistența PyTorch va veni într-o zi).

6. Resurse aleatorii: - Puteți sări peste această secțiune. Dar, pentru completitudine, asigur toate resursele pe care le-am folosit.

  • Blog Vizualizarea unui model de traducere automată neuronală (Mecanica modelului Seq2seq cu atenție)
  • Modelare a limbajului la nivel de caracter cu hârtie de îngrijire mai profundă.
  • Folosirea tastelor de ieșire pentru a îmbunătăți rolul modelelor Langauge.
  • Document de rețele neuronale aproape recurente. O versiune foarte rapidă a LSTM. Folosiți straturi de convoluție pentru a face paralele calculele LSTM. Codul poate fi găsit în fastai_library sau official_code.
  • Blogul Învățarea profundă a lui Sebastian Ruder pentru cele mai bune practici PNL. O colecție de cele mai bune practici care trebuie utilizate atunci când instruiți modelele LSTM.
  • Note cu privire la stadiul tehnicilor de artă pentru blogul de modelare a limbajului. Un rezumat rapid în care Jeremy Howard rezumă câteva dintre trucurile sale pe care le folosește în biblioteca fastai.
  • Blog de moduri de limbă și încorporări de cuvinte contextualizate. Oferă o prezentare rapidă a ELMo, BERT și a altor modele.
  • BERT, ELMo și compania ilustrate. (Cum NLP Cracked Transfer Learning) blog.

7. Multitask Learning - Sunt foarte încântat de acest lucru. În acest caz, instruiți un singur model pentru mai multe sarcini (mai mult de 10 dacă doriți). Deci, datele dvs. arată ca „traduceți în engleză some_text_in_german”. Modelul dvs. învață de fapt să folosească informațiile inițiale pentru a alege sarcina de realizat.

  • O prezentare generală a învățării multitasking în rețelele neuronale profunde.
  • The Natural Language Decathlon: Multitask Learning as a Questionnaire.
  • Rolul rețelelor neuronale profunde multitasking pentru înțelegerea limbajului natural.
  • OpenAI GPT este un exemplu în acest sens.

8. PyTorch: - Pytorch oferă tutoriale bune care vă oferă referințe bune despre cum să codați cele mai multe lucruri în NLP. Deși transformatoarele nu se află în tutoriale, ar trebui să le vedeți o dată.

Acum ajungem la ultima investigație în NLP care a dus la momentul Imagenet NLP. Tot ce trebuie să înțelegeți este cum funcționează Atenție și ați terminat.

9. ELMo: - Prima cercetare remarcabilă efectuată în cadrul căreia am trecut de la încorporări de cuvinte pre-antrenate la utilizarea modelelor pre-antrenate pentru a obține cuvintele încorporate. Deci, utilizați propoziția de intrare pentru a obține încorporările pentru jetoanele prezente în propoziție.

  • Rolul reprezentărilor profunde contextualizate ale cuvintelor (rol ELMo)
  • Dacă sunteți interesat de videoclip, vă rugăm să verificați acest link.

10. ULMFit: - Este mai bine decât BERT poate nu, dar totuși în competițiile Kaggle și competiții externe ULMFiT primește primul loc.

  • Stabilirea modelului de limbaj universal pentru lucrarea de clasificare a textului.
  • Postarea de blog a lui Jeremy Howard anunțând ULMFiT.
  • Explicat în lecția 10 a cursului de învățare profundă de ultimă oră.

11. OpenAI GPT: - Nu am comparat BERT cu GPT2, dar puteți lucra la un fel de set dacă doriți. Nu utilizați GPT1 deoarece BERT a fost creat pentru a depăși limitele GPT1.

  • Hârtie GPT1, blog, cod
  • Hârtie GPT2, blog, cod
  • Urmăriți videoclipul openai pe GPT2

12. BERT: - Cel mai de succes model lingvistic în acest moment (începând din mai 2019).

  • BERT: Transformare bidirecțională profundă Pregătire pentru documentul de înțelegere a limbii.
  • Blogul Google la BERT
  • Disecția BERT Partea 1: Blogul Coderului
  • Înțelegerea BERT Partea 2: Blog specific BERT
  • Disecția anexei BERT: Blogul decodificatorului

Pentru a utiliza toate aceste modele în PyTorch trebuie să utilizați repo hugginface/pytorch_pretrained_BERT, care vă oferă implementări complete împreună cu modele pre-antrenate pentru BERT, GPT1, GPT2, TransformerXL.

13. Următorul blog: - S-ar putea să întârziez să scriu următorul blog, așa că am vrut să împărtășesc acest ultim.

  • Reducerea antrenamentului anterior BERT de la 3 zile la 76 de minute. Introducerea unui nou optimizator pentru modelele lingvistice care poate reduce semnificativ timpul de antrenament.

Felicitări pentru că ai ajuns la final. Acum aveți cele mai multe cunoștințe teoretice necesare pentru a practica NLP folosind cele mai noi modele și tehnici.

Ce e de făcut acum?

Ai învățat doar teoria, acum practică cât poți. Creați ținute nebunești dacă doriți, încercați să ajungeți în topul clasamentelor. Mă lupt în acest moment să-mi exersez sarcinile NLP deoarece sunt ocupat să fac câteva proiecte de viziune pe computer pe care le verificați mai jos sau pe github-ul meu.

Cel mai probabil voi face o postare de urmărire la mijlocul până la sfârșitul lunii iunie, cu o listă de genul acesta, cu câteva tehnici noi pe care le am în minte să le citesc și lucruri pe care le voi face pentru a le practica.

Dacă vi se pare utilă această postare, vă rugăm să o împărtășiți cu alte persoane care ar putea beneficia de aceasta și să dea o postare acestei postări (ajută foarte mult, poate da maximum 50 de palme).

Urmăriți-mă pe Medium pentru a primi cele mai recente postări de blog pe feedul dvs. Medium. Rețelele mele sociale linkedin, github, twitter.

Postările mele anterioare pe blog

  1. Instruire AlexNet cu sfaturi și verificări despre cum să antrenezi CNN: CNN practic pe PyTorch (1)
  2. Tot ce aveți nevoie pentru transferul stilului fotorealist în PyTorch
  3. SPADE: stadiul tehnicii în traducerea imagine-la-imagine de Nvidia
  4. Standardizarea greutății: o nouă normalizare în oraș