AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart

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:

# model_version="*" fetches the latest version of the model
model_id, model_version = "pytorch-textgeneration1-alexa20b", "*"

instance_type = "ml.g4dn.12xlarge"

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve(
    region=None,
    framework=None,  # automatically inferred from model_id
    image_scope="inference",
    model_id=model_id,
    model_version=model_version,
    instance_type=inference_instance_type,
)

# Retrieve the model uri. This includes the model parameters, all dependencies and scripts for model loading, inference handling etc.
 model_uri = model_uris.retrieve(
 model_id=model_id, 
 model_version=model_version, 
 model_scope="inference")

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:

env = {
        "SAGEMAKER_MODEL_SERVER_TIMEOUT": str(3600),
        "MODEL_CACHE_ROOT": "/opt/ml/model",
        "SAGEMAKER_ENV": "1",
        "SAGEMAKER_SUBMIT_DIRECTORY":"/opt/ml/model/code/",
        "SAGEMAKER_PROGRAM": "inference.py",
        "SAGEMAKER_MODEL_SERVER_WORKERS": "1", # One worker for the endpoint rather than one worker per GPU by default
        "TS_DEFAULT_WORKERS_PER_MODEL":"1" # 1 TS worker which allocates all memory to the single master worker.
    }
    
#Create the SageMaker model instance. Note that we need to pass Predictor class when we deploy model through Model class,
#for being able to run inference through the sagemaker API.
model = Model(
    image_uri=deploy_image_uri,
    model_data=model_uri,
    role=aws_role,
    predictor_cls=Predictor,
    name=endpoint_name,
    env=env
)

Apoi, implementăm modelul într-un punct final în timp real SageMaker:

# deploy the Model.
model_predictor = model.deploy(
    initial_instance_count=1,
    instance_type=instance_type,
    endpoint_name=endpoint_name,
    volume_size= volume_size, # Specify the size of the Amazon EBS volume in GBs.
    model_data_download_timeout = 3600, # Specify the model download timeout in seconds.
    container_startup_health_check_timeout = 3600, # Specify the health checkup timeout in seconds
)

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.

def query(model_predictor, text, kwargs = None):
    """Query the model predictor."""

    payload = {"text_inputs": text}
    if kwargs is not None:
        payload.update(kwargs)
        
    encoded_inp = json.dumps(payload).encode("utf-8")

    query_response = model_predictor.predict(
        encoded_inp,
        {
            "ContentType": "application/json",
            "Accept": "application/json",
        },
    )
    return query_response
 
def parse_response(query_response):
    """Parse response and return the generated texts."""

    model_predictions = json.loads(query_response)
    generated_texts = model_predictions["generated_texts"]
    return generated_texts

Apoi, interogăm punctul final și analizăm răspunsul pe un text de intrare exemplu:

# text can be a single string or a list of strings
text = “[CLM]My name is Lewis and I like to"
kwargs = {"num_beams": 5, "no_repeat_ngram_size": 2, “max_length”: 50}
query_response = query_endpoint(model_predictor, text, kwargs)
generated_texts = parse_response(query_response)

Generated_texts: “travel and meet new people. I have been to many countries and I like to meet people from all over the world. If you are interested in meeting me, please feel free to send me a message and we can arrange a meeting.”

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:

train_article = "The announcement ends months of uncertainty for Cornish Language Partnership staff whose contracts had been due to end. Local government minister Andrew Stunnell said the three-year funding package for the service would help make sure the language survived. But he warned that long term funding should come from Cornwall. He said it was "important to make sure the Cornish were given the opportunity to put down sound foundations." "In the longer term support for the Cornish language is going to be something which is going to have to be based in Cornwall and will not come from London," he added. The Cornish Language Partnership's, Jennifer Lowe, said: "We can now plan for the future thanks to the funding." The United Nations recently upgraded the status of the Cornish language from "extinct" to "critically endangered". It is thought fewer than 500 people worldwide are fluent in the language.""
                
train_summary = "The government is spending nearly £400,000 to help save the Cornish language."

test_article = "Torrents of water brought down a suspended ceiling and damaged stock "
                "in the Victoria Centre store at about 22:40 BST on Tuesday. Managers "
                "had hoped for a weekend reopening but it is now closed "until "
                "further notice". Staff have been helping with the clean-up "
                "operation. Water poured through from a rooftop room, leaving the "
                "top floor under three inches of water and stock "significantly" "
                "damaged. A spokeswoman said: "Our teams are working around the "
                "clock to get the shop open as quickly as possible and we're sorry "
                "for the inconvenience this has caused to our customers.""

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.

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Ieșirea este după cum urmează:

AlexaTM 20B output: 'The top floor of a London department store has been flooded.'

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:

train_inp = "name[The Punter], food[Indian], priceRange[cheap]"
train_out = "The Punter provides Indian food in the cheap price range."

test_inp = "name[Blue Spice], eatType[coffee shop], area"

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).

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Ieșirea este după cum urmează:

AlexaTM 20B output: 'Blue Spice is a coffee shop in the city centre. '

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ă:

train_inp = "Das Parlament erhebt sich zu einer Schweigeminute."
train_out = "The House rose and observed a minute' s silence"

test_inp = "Kleingärtner bewirtschaften den einstigen Grund von Bauern."

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).

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Ieșirea este după cum urmează:

AlexaTM 20B translation: 'Gardeners cultivate the former land of farmers.'

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:

test_context = "The Normans (Norman: Nourmands; French: Normands; Latin: Normanni) were the people who in the 10th and 11th centuries gave their name to Normandy, a region in France. They were descended from Norse ("Norman" comes from "Norseman") raiders and pirates from Denmark, Iceland and Norway who, under their leader Rollo, agreed to swear fealty to King Charles III of West Francia. Through generations of assimilation and mixing with the native Frankish and Roman-Gaulish populations, their descendants would gradually merge with the Carolingian-based cultures of West Francia. The distinct cultural and ethnic identity of the Normans emerged initially in the first half of the 10th century, and it continued to evolve over the succeeding centuries."
test_question = "In what country is Normandy located?"

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.

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Ieșirea este după cum urmează:

AlexaTM 20B output: 'France'

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

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.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.

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.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ă.

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.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.

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai. 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.

AlexaTM 20B este acum disponibil în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.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.

Timestamp-ul:

Mai mult de la Învățare automată AWS