Astăzi, anunțăm disponibilitatea publică a tehnologiei Amazon de ultimă generație Model Alexa Teacher cu 20 de miliarde de parametri (AlexaTM 20B) prin Amazon SageMaker JumpStart, centrul de învățare automată al SageMaker. AlexaTM 20B este un model de limbaj multilingv la scară largă secvență-la-secvență (seq2seq) dezvoltat de Amazon. Puteți utiliza AlexaTM 20B pentru o gamă largă de cazuri de utilizare din industrie, de la rezumarea rapoartelor financiare până la răspunsurile la întrebări pentru chatbot-urile de servicii pentru clienți. Poate fi aplicat chiar și atunci când există doar câteva exemple de antrenament disponibile sau chiar deloc. AlexaTM 20B surclasează 175 miliarde Model GPT-3 pe sarcini de învățare zero-shot, cum ar fi SuperGLUE și arată performanțe de ultimă generație pentru sarcini multilingve zero-shot, cum ar fi XNLI.
În această postare, oferim o privire de ansamblu asupra modului de implementare și rulare a inferenței cu modelul AlexaTM 20B în mod programatic prin intermediul API-urilor JumpStart, disponibile în SageMaker Python SDK. Exemplificăm modul în care puteți utiliza acest model pentru a traduce între mai multe limbi, a rezuma textul în formă lungă, a răspunde la întrebări pe baza unui context dat și a genera text care nu pare să se distingă de textul scris de om.
AlexaTM 20B și învățarea în context
Programul Alexa Teacher Model (AlexaTM) de la Amazon Alexa AI este conceput pentru a construi modele de deep learning la scară largă, multilingve (în principal bazate pe Transformer), cu scopul de a îmbunătăți generalizarea și gestionarea deficitului de date pentru sarcinile din aval. Cu pregătirea preliminară la scară largă, modelele de profesori se pot generaliza bine pentru a învăța sarcini noi din date rare și pentru a ajuta dezvoltatorii să îmbunătățească performanța la sarcinile din aval. AlexaTM 20B a arătat performanță competitivă privind standardele și sarcinile comune de procesare a limbajului natural (NLP), cum ar fi traducerea automată, generarea și rezumarea datelor.
Utilizarea modelelor de bază precum AlexaTM 20B reduce nevoia de pregătire prealabilă a modelelor costisitoare și oferă un punct de plecare de ultimă generație pentru a dezvolta modele de sarcini cu mai puțin efort și mai puține date de antrenament specifice sarcinii. Una dintre abilitățile cheie ale modelelor de bază este că putem învăța un model să îndeplinească sarcini noi, cum ar fi întrebări și răspunsuri în diferite limbi, cu cantități foarte mici de exemple de intrare și fără ajustare fină sau actualizări de gradient. Aceasta este cunoscută ca învăţare în context. Cu doar câteva exemple de o nouă sarcină furnizate ca context pentru inferență, modelul AlexaTM 20B poate transfera cunoștințele din ceea ce a fost învățat în timpul pregătirii preliminare la scară largă, chiar și în diferite limbi. Aceasta se numește învăţare cu câteva lovituri. În unele cazuri, modelul poate funcționa bine fără niciun fel de date de antrenament, cu doar o explicație a ceea ce ar trebui prezis. Aceasta se numește învățare zero-shot. De exemplu, să presupunem că folosim AlexaTM 20B pentru generarea unică a limbajului natural. Intrarea transmisă modelului este exemplul de antrenament sub formă de perechi atribut-valoare, împreună cu narațiunea textului de ieșire corespunzătoare. Exemplul de testare este apoi atașat pentru a forma promptul complet de introducere, așa cum se arată în figura următoare.
Pentru a afla mai multe despre model, consultați Modelul Alexa cu parametrii 20B stabilește noi note în învățarea cu câteva lovituri sau original hârtie.
Utilizarea AlexaTM 20B este disponibilă pentru uz necomercial și este acoperită de Acord de licență Alexa Teacher Model.
Prezentare generală a soluțiilor
Următoarele secțiuni oferă o demonstrație pas cu pas despre cum să implementați modelul, să rulați inferența și să faceți învățare în context pentru a rezolva sarcini de învățare de câteva ori.
Rețineți că următoarea secțiune conține fragmente de cod; codul complet cu toți pașii din această demonstrație este disponibil în caietul însoțitor: Învățare în context cu AlexaTM 20B în SageMaker JumpStart.
Implementați modelul
Pentru a utiliza un model de limbaj mare în SageMaker, aveți nevoie de un script de inferență specific pentru model, care include pași precum încărcarea modelului, paralelizarea și altele. De asemenea, trebuie să creați teste end-to-end pentru scripturi, model și tipurile de instanțe dorite pentru a valida că toate trei pot funcționa împreună. JumpStart înlătură acest efort prin furnizarea de script-uri gata de utilizare care au fost testate robust.
SageMaker vă oferă posibilitatea de a rula containere Docker pe scară largă pentru instruire și deducere. JumpStart folosește aceste disponibile specifice cadrului Containere de învățare profundă SageMaker (DLC-uri). Începem prin a prelua DLC-ul optimizat (deploy_image_uri
) folosind model_id
. Apoi luăm model_uri
care conțin parametrii modelului, împreună cu scripturi de manipulare a inferenței și orice dependențe asociate. În continuare, creăm un exemplu model în SageMaker și implementați-l într-un punct final în timp real. Vezi următorul cod:
Implementarea AlexaTM 20B necesită o instanță susținută de GPU cu cel puțin 50 GB de memorie CPU și cel puțin 42 GB de memorie GPU. SageMaker oferă multe astfel de instanțe care acceptă inferența în timp real. Am testat această soluție în trei cazuri: ml.g4dn.12xlarge, ml.p3.8xlarge, ml.p3.16xlarge. Vezi următorul cod:
Apoi, implementăm modelul într-un punct final în timp real SageMaker:
AlexaTM 20B necesită 40 GB de spațiu pe disc în containerul de inferență. O instanță ml.g4dn.12xlarge îndeplinește această cerință. De exemplu, tipurile ml.p3.8xlarge și ml.p3.16xlarge, atașăm un Magazin Amazon Elastic Block (Amazon EBS) pentru a gestiona dimensiunea mare a modelului. Prin urmare, stabilim volume_size = None
la implementarea pe ml.g4dn.12xlarge și volume_size=256
la implementarea pe ml.p3.8xlarge sau ml.p3.16xlarge.
Implementarea modelului poate dura până la 10 minute. După ce modelul este implementat, putem obține predicții din acesta în timp real!
Executați inferența
AlexaTM 20B este un model de generare de text care, având în vedere o secvență parțială (o propoziție sau o bucată de text), generează următorul set de cuvinte. Următorul fragment de cod vă oferă o privire despre cum să interogați punctul final pe care l-am implementat și să analizați ieșirile pentru sarcina de completare automată. Pentru a trimite cereri către un model implementat, folosim un dicționar JSON codificat în format UTF-8. Răspunsul punctului final este un obiect JSON care conține o listă de texte generate.
Apoi, interogăm punctul final și analizăm răspunsul pe un text de intrare exemplu:
AlexaTM 20B acceptă în prezent 10 parametri de generare de text în timpul inferenței: max_length
, num_return_sequences
, num_beams
, no_repeat_ngram_size
, temperature
, early_stopping
, do_sample
, top_k
, top_p
, și seed
. Pentru informații detaliate despre valorile valide pentru fiecare parametru și impactul acestora asupra rezultatului, consultați caietul de însoțire: Învățare în context cu AlexaTM 20B în SageMaker JumpStart.
Învățare în context
Învățarea în context se referă la următoarele: oferim modelului de limbă un prompt, care constă în antrenarea perechilor de intrare-ieșire care demonstrează sarcina. Adăugăm o intrare de test la prompt și permitem modelului de limbă să facă predicții, condiționând promptul și prezicând următoarele simboluri sau cuvinte. Aceasta este o tehnică extrem de eficientă pentru a rezolva câteva probleme de învățare a loviturilor, în care învățăm o sarcină din câteva mostre de antrenament.
În continuare, vă arătăm cum puteți utiliza AlexaTM 20B pentru mai multe sarcini 1-shot și zero-shot prin învățarea în context. Spre deosebire de modelele anterioare secvență-la-secvență, AlexaTM 20B a fost instruit pe modelarea limbajului cauzal în plus față de dezgomot, ceea ce îl face un model bun pentru învățarea în context.
Rezumat text 1-shot
Rezumarea textului este sarcina de a scurta datele și de a crea un rezumat care să reprezinte cele mai importante informații prezente în textul original. Rezumarea textului 1-shot se referă la setarea în care învățăm să rezumăm textul pe baza unui singur eșantion de antrenament. Următorul cod este un exemplu de rezumat text din Setul de date XSUM:
Folosim următorul prompt pentru rezumat atunci când este furnizat un singur eșantion de instruire. Textul generat din model este interpretat ca rezumatul prezis al articolului de testare.
Ieșirea este după cum urmează:
1-shot generare de limbaj natural
Generarea limbajului natural este sarcina de a produce narațiuni text având în vedere textul introdus. Următorul exemplu arată un eșantion de antrenament de la Setul de date E2E:
Folosim următorul prompt pentru generarea limbajului natural atunci când este furnizat un singur eșantion de antrenament (1-shot). Textul generat din model este interpretat ca narațiune a textului prezis pentru intrarea de test (test_inp
).
Ieșirea este după cum urmează:
Traducere automată 1-shot
Traducerea automată este sarcina de a traduce text dintr-o limbă în alta. Următorul exemplu arată un eșantion de antrenament de la Setul de date WMT19 în care trebuie să traducem din germană în engleză:
Folosim următorul prompt pentru traducerea automată atunci când este furnizat un singur eșantion de instruire (1-shot). Textul generat din model este interpretat ca traducere a intrării de test (test_inp
).
Ieșirea este după cum urmează:
Răspunsuri la întrebare extractivă zero-shot
Răspunsul la întrebări extractive este sarcina de a găsi răspunsul la o întrebare din paragraful de context. Următorul este un exemplu de context și o întrebare din Setul de date SQuAD v2:
Rețineți că nu avem mostre de antrenament pentru sarcina noastră. În schimb, creăm o întrebare inactivă despre ultimul cuvânt din prompt , pe baza test_context
(împușcătură falsă). Prin urmare, de fapt facem răspunsuri la întrebări extractive zero-shot.
Folosim următorul prompt pentru răspunsul la întrebări extractive atunci când nu este furnizat niciun eșantion de instruire. Textul generat din model este interpretat ca răspuns la întrebarea test.
Ieșirea este după cum urmează:
Inginerie promptă
Ingineria promptă poate fi uneori o artă. Chiar și modificările mici ale șablonului prompt pot duce la modificări semnificative ale performanței modelului la o anumită sarcină. Următoarele sunt câteva sfaturi pentru a scrie șabloane bune de prompt. În primul rând, este important să ne amintim că modelul a fost antrenat pentru a învăța structura propozițiilor reale (modelarea limbajului cauzal). Ca atare, cel mai bine este să vă asigurați că șablonul de prompt este corect din punct de vedere gramatical și structural în limbajul natural. În al doilea rând, acest model particular beneficiază de fotografii false pentru a-l ajuta să-i învețe structura așteptată în răspuns, așa cum s-a demonstrat mai sus. În al treilea rând, este întotdeauna recomandat să examinați performanța sarcinii pe o varietate de șabloane de prompte candidat. Promptsource și Instrucțiuni naturale sunt două cadre open-source pentru standardizarea șabloanelor de prompt și oferă o varietate de exemple de solicitări utilizate pentru sarcinile de modelare existente. În plus, apendicele B la Hârtie AlexaTM 20B furnizează șabloanele prompt utilizate pentru a genera rezultatele prezentate în lucrare. Există un subdomeniu în creștere dedicat creării și învățării automate a celor mai bune solicitări pentru o sarcină, incluzând atât limbajul natural, cât și prompturile continue. Acest lucru depășește scopul acestui tutorial.
Concluzie
În această postare, am arătat cum să implementăm modelul AlexaTM 20B pe un punct final SageMaker și să rulăm inferențe. Puteți utiliza modelul AlexaTM 20B pentru învățarea în context pentru o varietate de sarcini de învățare cu câteva încercări. Pentru a afla mai multe despre AlexaTM 20B, consultați Modelul Alexa cu parametrii 20B stabilește noi note în învățarea cu câteva lovituri sau original hârtie.
Autorii ar dori să recunoască contribuțiile tehnice ale lui Maciej Rudnicki, Jakub Debski, Ashish Khetan, Anastasiia Dubinina, Vitaliy Korolev, Karl Albertsen, Saleh Soltan și Mariusz Momotko pentru a face posibilă această lansare.
Despre JumpStart
JumpStart este hub-ul de învățare automată (ML) al Amazon SageMaker, care oferă peste 350 de modele pre-antrenate, algoritmi încorporați și șabloane de soluții pre-construite pentru a vă ajuta să începeți rapid cu ML. JumpStart găzduiește modele de ultimă generație de la hub-uri de modele populare, cum ar fi TensorFlow, PyTorch, Hugging Face și MXNet, care acceptă sarcini populare ML, cum ar fi detectarea obiectelor, clasificarea textului și generarea de text. Comunitatea de cercetare ML a depus un efort mare pentru ca majoritatea modelelor dezvoltate recent să fie disponibile public pentru utilizare. JumpStart își propune să vă ajute să găsiți corect modelele și algoritmii ML și să începeți imediat să construiți modele. Mai exact, JumpStart oferă următoarele beneficii:
- Acces facil cu interfața de utilizare și SDK – Puteți accesa modele și algoritmi în JumpStart în mod programatic utilizând SDK-ul SageMaker Python sau prin interfața de utilizare JumpStart din Amazon SageMaker Studio. În prezent, AlexaTM 20B este accesibil numai prin intermediul SDK-ului SageMaker Python.
- Algoritmi încorporați SageMaker – JumpStart oferă peste 350 de algoritmi încorporați și modele pre-antrenate, împreună cu scripturi de antrenament corespunzătoare (dacă sunt acceptate), scripturi de inferență și caiete de exemplu. Scripturile sunt optimizate pentru fiecare cadru și sarcină și oferă caracteristici precum suportul GPU, reglarea automată a modelului și antrenamentul incremental. Scripturile sunt, de asemenea, testate împotriva instanțelor și caracteristicilor SageMaker, astfel încât să nu întâmpinați probleme de compatibilitate.
- Soluții pre-construite – JumpStart oferă un set de 23 de soluții pentru cazuri de utilizare obișnuite ML, cum ar fi prognoza cererii și aplicații industriale și financiare, pe care le puteți implementa cu doar câteva clicuri. Soluțiile sunt aplicații ML end-to-end care leagă împreună diverse servicii AWS pentru a rezolva un anumit caz de utilizare în afaceri. Folosesc șabloane AWS CloudFormation și arhitecturi de referință pentru o implementare rapidă, ceea ce înseamnă că sunt complet personalizabile.
- Asistență – SageMaker oferă o gamă largă de asistență, cum ar fi menținerea versiunilor actualizate atunci când sunt lansate noi caracteristici SageMaker sau versiuni Deep Learning Container și crearea de documentație despre cum să utilizați conținutul JumpStart într-un mediu SageMaker.
Pentru a afla mai multe despre JumpStart și despre cum puteți utiliza modele open-source pre-antrenate pentru o varietate de alte sarcini ML, consultați următoarele Videoclipul AWS re:Invent 2020.
Despre Autori
Dr. Vivek Madan este un om de știință aplicat în echipa Amazon SageMaker JumpStart. Și-a luat doctoratul la Universitatea din Illinois la Urbana-Champaign și a fost cercetător post-doctoral la Georgia Tech. Este un cercetător activ în învățarea automată și proiectarea algoritmilor și a publicat lucrări în cadrul conferințelor EMNLP, ICLR, COLT, FOCS și SODA.
Jack FitzGerald este un om de știință aplicat senior cu Alexa AI, unde se concentrează în prezent pe modelarea limbii mari, modelarea textului multilingv și operațiunile de învățare automată.
João Moura este arhitect specializat în soluții AI/ML la Amazon Web Services. El se concentrează în principal pe cazuri de utilizare a NLP și ajută clienții să optimizeze instruirea și implementarea modelului de deep learning. El este, de asemenea, un susținător activ al soluțiilor ML low-code și al hardware-ului specializat în ML.
June a câștigat este manager de produs cu SageMaker JumpStart și Algoritmi încorporați. El se concentrează pe a face conținutul ML ușor de descoperit și utilizabil pentru clienții SageMaker.
Pulkit Kapur este liderul de produs pentru programul Alexa Teacher Model cu Alexa AI, concentrându-se pe inteligența generalizată și aplicațiile modelelor de fundație multimodale multitask ale Alexa.
- AI
- ai art
- ai art generator
- ai robot
- Amazon SageMaker
- Amazon SageMaker JumpStart
- inteligență artificială
- certificare de inteligență artificială
- inteligența artificială în domeniul bancar
- robot cu inteligență artificială
- roboți cu inteligență artificială
- software de inteligență artificială
- Învățare automată AWS
- blockchain
- conferință blockchain ai
- coingenius
- inteligența artificială conversațională
- criptoconferință ai
- dall-e
- învățare profundă
- Fundamental (100)
- google ai
- masina de învățare
- Plato
- platoul ai
- Informații despre date Platon
- Jocul lui Platon
- PlatoData
- platogaming
- scara ai
- sintaxă
- zephyrnet