AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart

I dag annoncerer vi offentlig tilgængeligheden af ​​Amazons state-of-the-art Alexa Teacher Model med 20 milliarder parametre  (AlexaTM 20B) igennem Amazon SageMaker JumpStart, SageMakers maskinlæringshub. AlexaTM 20B er en flersproget storskala sekvens-til-sekvens (seq2seq) sprogmodel udviklet af Amazon. Du kan bruge AlexaTM 20B til en lang række branchebrugssager, fra opsummerende økonomiske rapporter til besvarelse af spørgsmål til kundeservice chatbots. Det kan anvendes, selv når der kun er få tilgængelige træningseksempler, eller endda slet ingen. AlexaTM 20B udkonkurrerer en 175 mia GPT-3 model på zero-shot læringsopgaver såsom SuperGLUE og viser state-of-the-art ydeevne til flersprogede zero-shot opgaver såsom XNLI.

I dette indlæg giver vi et overblik over, hvordan man implementerer og kører inferens med AlexaTM 20B-modellen programmatisk gennem JumpStart API'er, der er tilgængelige i SageMaker Python SDK. Vi eksemplificerer, hvordan du kan bruge denne model til at oversætte mellem flere sprog, opsummere tekst i lang form, besvare spørgsmål baseret på en given kontekst og generere tekst, der ser ud til at være umulig at skelne fra menneskeskreven tekst.

AlexaTM 20B og in-context learning

Alexa Teacher Model (AlexaTM)-programmet fra Amazon Alexa AI er designet til at bygge storstilede, flersprogede deep learning-modeller (primært transformer-baserede), med det formål at forbedre generalisering og håndtering af dataknaphed til downstream-opgaver. Med fortræning i stor skala kan lærermodeller generalisere godt for at lære nye opgaver fra sparsomme data og hjælpe udviklere med at forbedre ydeevnen på downstream-opgaver. AlexaTM 20B har vist konkurrencedygtig præstation om fælles benchmarks og opgaver for naturlig sprogbehandling (NLP), såsom maskinoversættelse, datagenerering og opsummering.

Brug af fundamentmodeller som AlexaTM 20B reducerer behovet for dyr modelforuddannelse og giver et avanceret udgangspunkt for at udvikle opgavemodeller med mindre indsats og mindre opgavespecifikke træningsdata. En af de vigtigste egenskaber ved fundamentmodeller er, at vi kan lære en model at udføre nye opgaver såsom spørgsmål og svar på forskellige sprog, med meget små mængder input-eksempler og ingen finjustering eller gradientopdateringer påkrævet. Dette er kendt som læring i kontekst. Med kun nogle få eksempler på en ny opgave som kontekst for slutninger, kan AlexaTM 20B-modellen overføre viden fra det, der er blevet lært under storstilet fortræning, selv på tværs af sprog. Dette kaldes få-skuds læring. I nogle tilfælde kan modellen fungere godt uden træningsdata overhovedet, med kun en forklaring på, hvad der bør forudsiges. Dette kaldes zero-shot læring. Lad os f.eks. sige, at vi bruger AlexaTM 20B til generering af naturligt sprog i ét skud. Det input, der sendes til modellen, er træningseksemplet i form af attribut-værdi-par, sammen med dens tilsvarende output-tekstfortælling. Testeksemplet tilføjes derefter for at danne den fulde inputprompt, som vist i den følgende figur.

For at lære mere om modellen, tjek ud Alexa-model med 20B-parameter sætter nye karakterer i læring med få skud eller den originale papir.

Brug af AlexaTM 20B er gjort tilgængelig til ikke-kommerciel brug og er dækket af Alexa Teacher Model Licensaftale.

Løsningsoversigt

De følgende afsnit giver en trin-for-trin demo om, hvordan du implementerer modellen, kører inferens og laver in-context-learning for at løse få-shot læringsopgaver.

Bemærk, at det følgende afsnit indeholder kodestykker; den fulde kode med alle trinene i denne demo er tilgængelig i den medfølgende notesbog: Indlæring i kontekst med AlexaTM 20B i SageMaker JumpStart.

Implementer modellen

For at bruge en stor sprogmodel i SageMaker skal du bruge et inferencing script specifikt for modellen, som inkluderer trin som modelindlæsning, parallelisering og mere. Du skal også oprette ende-til-ende-tests for scripts, model og de ønskede instanstyper for at validere, at alle tre kan arbejde sammen. JumpStart fjerner denne indsats ved at levere klar-til-brug scripts, der er blevet robust testet.

SageMaker giver dig muligheden for at køre Docker-containere i vid udstrækning til træning og inferencing. JumpStart bruger disse tilgængelige rammespecifikke SageMaker Deep Learning Containere (DLC'er). Vi starter med at hente den optimerede DLC (deploy_image_uri) bruger model_id. Så henter vi model_uri indeholdende modelparametrene sammen med inferenshåndteringsscripts og eventuelle tilknyttede afhængigheder. Dernæst opretter vi en model instans i SageMaker og implementer det til et slutpunkt i realtid. Se følgende kode:

# 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")

Implementering af AlexaTM 20B kræver en GPU-understøttet instans med mindst 50 GB CPU-hukommelse og mindst 42 GB GPU-hukommelse. SageMaker leverer mange sådanne instanser, der understøtter realtidsslutning. Vi testede denne opløsning i tre tilfælde: ml.g4dn.12xlarge, ml.p3.8xlarge, ml.p3.16xlarge. Se følgende kode:

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
)

Dernæst implementerer vi modellen til et SageMaker-endepunkt i realtid:

# 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 kræver 40 GB diskplads i inferensbeholderen. En ml.g4dn.12xlarge instans opfylder dette krav. For eksempel typer ml.p3.8xlarge og ml.p3.16xlarge, vedhæfter vi en Amazon Elastic Block Store (Amazon EBS) volumen til at håndtere den store modelstørrelse. Derfor sætter vi volume_size = None ved implementering på ml.g4dn.12xlarge og volume_size=256 ved implementering på ml.p3.8xlarge eller ml.p3.16xlarge.

Det kan tage op til 10 minutter at implementere modellen. Efter modellen er implementeret, kan vi få forudsigelser fra den i realtid!

Kør inferens

AlexaTM 20B er en tekstgenereringsmodel, som, givet en delsekvens (en sætning eller et stykke tekst), genererer det næste sæt ord. Følgende kodestykke giver dig et glimt af, hvordan du forespørger på det endepunkt, vi implementerede, og analyserer output til autofuldførelsesopgave. For at sende anmodninger til en implementeret model bruger vi en JSON-ordbog kodet i UTF-8-format. Endpoint-svaret er et JSON-objekt, der indeholder en liste over genererede tekster.

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

Dernæst forespørger vi slutpunktet og analyserer svaret på en eksempelinputtekst:

# 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 understøtter i øjeblikket 10 tekstgenereringsparametre under inferens: max_length, num_return_sequences, num_beams, no_repeat_ngram_size, temperature, early_stopping, do_sample, top_k, top_pog seed. For detaljerede oplysninger om gyldige værdier for hver parameter og deres indvirkning på outputtet, se den medfølgende notesbog: Indlæring i kontekst med AlexaTM 20B i SageMaker JumpStart.

Indlæring i kontekst

In-context learning refererer til følgende: vi forsyner sprogmodellen med en prompt, som består af træning af input-output-par, der demonstrerer opgaven. Vi tilføjer et testinput til prompten og tillader sprogmodellen at lave forudsigelser ved at konditionere på prompten og forudsige de næste tokens eller ord. Dette er en yderst effektiv teknik til at løse få skudindlæringsproblemer, hvor vi lærer en opgave fra nogle få træningsprøver.

Dernæst viser vi, hvordan du kan bruge AlexaTM 20B til flere 1-shot og zero-shot opgaver via in-context learning. I modsætning til tidligere sekvens-til-sekvens-modeller, blev AlexaTM 20B trænet i kausal sprogmodellering ud over denoising, hvilket gør den til en god model for in-context learning.

1-shot tekstresumé

Tekstresumé er opgaven med at forkorte dataene og skabe et resumé, der repræsenterer den vigtigste information, der findes i den originale tekst. 1-shot tekstresumé refererer til den indstilling, hvor vi lærer at opsummere teksten baseret på et enkelt træningseksempel. Følgende kode er et tekstopsummeringseksempel fra XSUM-datasæt:

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

Vi bruger følgende prompt til opsummering, når der kun leveres ét træningseksempel. Den genererede tekst fra modellen tolkes som det forudsagte resumé af testartiklen.

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Udgangen er som følger:

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

Generering af naturligt sprog i 1 skud

Naturlig sproggenerering er opgaven med at producere tekstfortællinger givet inputteksten. Følgende eksempel viser et træningseksempel fra E2E datasæt:

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"

Vi bruger følgende prompt til generering af naturligt sprog, når kun én træningsprøve (1-shot) leveres. Den genererede tekst fra modellen fortolkes som den forudsagte tekstfortælling for testinputtet (test_inp).

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Udgangen er som følger:

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

1-shot maskinoversættelse

Maskinoversættelse er opgaven med at oversætte tekst fra et sprog til et andet. Følgende eksempel viser et træningseksempel fra WMT19 datasæt hvor vi skal oversætte fra tysk til engelsk:

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

Vi bruger følgende prompt til maskinoversættelse, når der kun leveres én træningsprøve (1-shot). Genereret tekst fra modellen tolkes som oversættelsen af ​​testinputtet (test_inp).

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Udgangen er som følger:

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

Zero-shot ekstraktiv spørgsmål besvarelse

Ekstraktiv spørgsmålsbesvarelse er opgaven med at finde svaret på et spørgsmål fra kontekstafsnittet. Det følgende er et eksempel på en kontekst og et spørgsmål fra SQuAD v2 datasæt:

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?"

Bemærk, at vi ikke har nogen træningsprøver til vores opgave. I stedet opretter vi et dummy-spørgsmål om det sidste ord i prompten , baseret på test_context (dummy-shot). Derfor udfører vi faktisk nul-skuds-ekstraktive spørgsmålssvar.

Vi bruger følgende prompt til at besvare ekstraktive spørgsmål, når der ikke er givet nogen træningsprøve. Genereret tekst fra modellen tolkes som svar på testspørgsmålet.

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Udgangen er som følger:

AlexaTM 20B output: 'France'

Hurtig teknik

Hurtig ingeniørarbejde kan nogle gange være en kunst. Selv små ændringer i promptskabelonen kan resultere i væsentlige ændringer i modellens ydeevne på en specifik opgave. Følgende er et par gode råd til at skrive gode promptskabeloner. For det første er det vigtigt at huske, at modellen blev trænet til at lære strukturen af ​​rigtige sætninger (kausal sprogmodellering). Som sådan er det bedst at sikre, at din promptskabelon er grammatisk og strukturelt korrekt i naturligt sprog. For det andet drager denne særlige model fordel af dummy-optagelser for at hjælpe med at lære den den struktur, der forventes i svaret, som vist ovenfor. For det tredje tilrådes det altid at undersøge opgavens udførelse over en række forskellige kandidatpromptskabeloner. Spørg kilde , Naturlige instruktioner er to open source-rammer til standardisering af promptskabeloner, og de giver en række eksempler på prompter, der bruges til eksisterende modelleringsopgaver. Derudover er bilag B til AlexaTM 20B papir giver de hurtige skabeloner, der bruges til at generere de resultater, der præsenteres i papiret. Der er et voksende underområde dedikeret til automatisk oprettelse og indlæring af de bedste prompter til en opgave, herunder både naturligt sprog og kontinuerlige prompter. Dette er uden for denne tutorials omfang.

Konklusion

I dette indlæg viste vi, hvordan man implementerer AlexaTM 20B-modellen på et SageMaker-slutpunkt og kører inferens. Du kan bruge AlexaTM 20B-modellen til in-context-læring til en række få-shot læringsopgaver. For at lære mere om AlexaTM 20B, se Alexa-model med 20B-parameter sætter nye karakterer i læring med få skud eller den originale papir.

Forfatterne vil gerne anerkende de tekniske bidrag fra Maciej Rudnicki, Jakub Debski, Ashish Khetan, Anastasiia Dubinina, Vitaliy Korolev, Karl Albertsen, Saleh Soltan og Mariusz Momotko til at gøre denne lancering mulig.


Om JumpStart

JumpStart er maskinlæringscentret (ML) i Amazon SageMaker, der tilbyder over 350 forudtrænede modeller, indbyggede algoritmer og forudbyggede løsningsskabeloner, der hjælper dig med at komme hurtigt i gang med ML. JumpStart er vært for avancerede modeller fra populære modelhubs såsom TensorFlow, PyTorch, Hugging Face og MXNet, som understøtter populære ML-opgaver såsom objektgenkendelse, tekstklassificering og tekstgenerering. ML-forskningsmiljøet har lagt en stor indsats i at gøre et flertal af nyligt udviklede modeller offentligt tilgængelige til brug. JumpStart sigter mod at hjælpe dig med at finde de rigtige ML-modeller og algoritmer og straks begynde at bygge modeller. Specifikt giver JumpStart følgende fordele:

  • Nem adgang med UI og SDK – Du kan få adgang til modeller og algoritmer i JumpStart programmatisk ved hjælp af SageMaker Python SDK eller gennem JumpStart UI i Amazon SageMaker Studio. I øjeblikket er AlexaTM 20B kun tilgængelig via SageMaker Python SDK.
  • SageMaker indbyggede algoritmer – JumpStart giver over 350 indbyggede algoritmer og forudtrænede modeller sammen med tilsvarende træningsscripts (hvis understøttet), konklusionsscripts og eksempelnotesbøger. Scripts er optimeret til hver ramme og opgave og giver funktioner såsom GPU-understøttelse, automatisk modeljustering og trinvis træning. Scripts testes også mod SageMaker-forekomster og funktioner, så du ikke løber ind i kompatibilitetsproblemer.
  • Forudbyggede løsninger – JumpStart leverer et sæt af 23 løsninger til almindelige ML-brugssager, såsom behovsprognose og industrielle og finansielle applikationer, som du kan implementere med blot et par klik. Løsninger er end-to-end ML-applikationer, der samler forskellige AWS-tjenester for at løse en bestemt forretningsbrugssag. De bruger AWS CloudFormation-skabeloner og referencearkitekturer til hurtig implementering, hvilket betyder, at de kan tilpasses fuldt ud.
  • Support – SageMaker giver en række support, såsom at vedligeholde opdaterede versioner, når nye SageMaker-funktioner eller Deep Learning Container-versioner frigives, og skabe dokumentation for, hvordan man bruger JumpStart-indhold i et SageMaker-miljø.

For at lære mere om JumpStart og hvordan du kan bruge open source-foruddannede modeller til en række andre ML-opgaver, tjek følgende AWS re: Invent 2020-video.


Om forfatterne

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Dr. Vivek Madan er en anvendt videnskabsmand hos Amazon SageMaker JumpStart-teamet. Han fik sin ph.d. fra University of Illinois i Urbana-Champaign og var postdoktor ved Georgia Tech. Han er en aktiv forsker i maskinlæring og algoritmedesign og har publiceret artikler i EMNLP, ICLR, COLT, FOCS og SODA konferencer.

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Jack FitzGerald er en senior anvendt videnskabsmand hos Alexa AI, hvor han i øjeblikket fokuserer på store sprogmodellering, flersproget tekstmodellering og maskinlæringsoperationer.

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai.João Moura er AI/ML Specialist Solutions Architect hos Amazon Web Services. Han er for det meste fokuseret på NLP-brugscases og hjælper kunder med at optimere træning og implementering af deep learning-modeller. Han er også en aktiv fortaler for lavkode ML-løsninger og ML-specialiseret hardware.

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai. juni vandt er produktchef med SageMaker JumpStart og indbyggede algoritmer. Han fokuserer på at gøre ML-indhold let tilgængeligt og brugbart for SageMaker-kunder.

AlexaTM 20B er nu tilgængelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Pulkit Kapur er produktleder for Alexa Teacher Model-programmet med Alexa AI, med fokus på generaliseret intelligens og anvendelser af Alexas multitask multimodale fundamentmodeller.

Tidsstempel:

Mere fra AWS maskinindlæring