AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart

I dag kunngjør vi offentlig tilgjengelighet av Amazons toppmoderne Alexa Teacher Model med 20 milliarder parametere  (AlexaTM 20B) gjennom Amazon SageMaker JumpStart, SageMakers maskinlæringshub. AlexaTM 20B er en flerspråklig storskala sekvens-til-sekvens (seq2seq) språkmodell utviklet av Amazon. Du kan bruke AlexaTM 20B for et bredt spekter av bransjebrukssaker, fra oppsummerende økonomiske rapporter til spørsmålssvar for kundeservice chatbots. Det kan brukes selv når det bare er noen få tilgjengelige treningseksempler, eller til og med ingen i det hele tatt. AlexaTM 20B utkonkurrerer 175 milliarder kroner GPT-3 modell på zero-shot-læringsoppgaver som SuperGLUE og viser toppmoderne ytelse for flerspråklige zero-shot-oppgaver som XNLI.

I dette innlegget gir vi en oversikt over hvordan du distribuerer og kjører inferens med AlexaTM 20B-modellen programmatisk gjennom JumpStart APIer, tilgjengelig i SageMaker Python SDK. Vi eksemplifiserer hvordan du kan bruke denne modellen til å oversette mellom flere språk, oppsummere tekst i lang form, svare på spørsmål basert på en gitt kontekst og generere tekst som virker umulig å skille fra menneskeskreven tekst.

AlexaTM 20B og læring i kontekst

Alexa Teacher Model (AlexaTM)-programmet av Amazon Alexa AI er designet for å bygge storskala, flerspråklige dyplæringsmodeller (primært transformatorbaserte), med sikte på å forbedre generalisering og håndtering av dataknapphet for nedstrømsoppgaver. Med storskala foropplæring kan lærermodeller generalisere godt for å lære nye oppgaver fra sparsomme data og hjelpe utviklere med å forbedre ytelsen på nedstrømsoppgaver. AlexaTM 20B har vist konkurransedyktig ytelse på benchmarks og oppgaver for felles naturlig språkbehandling (NLP), som maskinoversettelse, datagenerering og oppsummering.

Bruk av fundamentmodeller som AlexaTM 20B reduserer behovet for kostbar modellforopplæring og gir et topp moderne utgangspunkt for å utvikle oppgavemodeller med mindre innsats og mindre oppgavespesifikke treningsdata. En av de viktigste egenskapene til grunnmodeller er at vi kan lære en modell å utføre nye oppgaver som spørsmål og svar på forskjellige språk, med svært små mengder input-eksempler og ingen finjustering eller gradientoppdateringer som kreves. Dette er kjent som læring i kontekst. Med bare noen få eksempler på en ny oppgave gitt som kontekst for slutninger, kan AlexaTM 20B-modellen overføre kunnskap fra det som er lært under storskala foropplæring, selv på tvers av språk. Dette kalles få-skudd læring. I noen tilfeller kan modellen prestere bra uten treningsdata i det hele tatt, med kun en forklaring på hva som bør forutses. Dette kalles zero-shot læring. La oss for eksempel si at vi bruker AlexaTM 20B for generering av naturlig språk i ett grep. Inndataene som sendes til modellen er treningseksemplet i form av attributt-verdi-par, sammen med dens tilsvarende utdatatekstfortelling. Testeksemplet legges deretter til for å danne den fullstendige inndataprompten, som vist i følgende figur.

For å lære mer om modellen, sjekk ut 20B-parameter Alexa-modell setter nye karakterer i få-skuddslæring eller originalen papir.

Bruk av AlexaTM 20B er gjort tilgjengelig for ikke-kommersiell bruk og dekkes av Alexa Teacher Model Lisensavtale.

Løsningsoversikt

De følgende delene gir en trinn-for-trinn-demo om hvordan du distribuerer modellen, kjører slutninger og gjør kontekstlæring for å løse få-shot læringsoppgaver.

Merk at den følgende delen inneholder kodebiter; den fullstendige koden med alle trinnene i denne demoen er tilgjengelig i den medfølgende notatboken: Kontekstlæring med AlexaTM 20B i SageMaker JumpStart.

Distribuer modellen

For å bruke en stor språkmodell i SageMaker, trenger du et slutningsskript spesifikt for modellen, som inkluderer trinn som modelllasting, parallellisering og mer. Du må også lage ende-til-ende-tester for skript, modell og ønskede forekomsttyper for å validere at alle tre kan fungere sammen. JumpStart fjerner denne innsatsen ved å tilby klare til bruk skript som har blitt robust testet.

SageMaker gir deg muligheten til å kjøre Docker-containere omfattende for opplæring og slutning. JumpStart bruker disse tilgjengelige rammespesifikke SageMaker Deep Learning-beholdere (DLC-er). Vi starter med å hente den optimaliserte DLC (deploy_image_uri) bruker model_id. Så henter vi model_uri som inneholder modellparametrene, sammen med slutningshåndteringsskript og eventuelle tilknyttede avhengigheter. Deretter lager vi en modellforekomst i SageMaker og distribuer den til et endepunkt i sanntid. 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 av AlexaTM 20B krever en GPU-støttet forekomst med minst 50 GB CPU-minne og minst 42 GB GPU-minne. SageMaker tilbyr mange slike tilfeller som støtter sanntidsslutning. Vi testet denne løsningen i tre tilfeller: 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
)

Deretter distribuerer vi modellen til et SageMaker sanntidsendepunkt:

# 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 krever 40 GB diskplass i inferensbeholderen. En ml.g4dn.12xlarge instans oppfyller dette kravet. For eksempel typene ml.p3.8xlarge og ml.p3.16xlarge, legger vi ved en Amazon Elastic Block Store (Amazon EBS) volum for å håndtere den store modellstørrelsen. Derfor setter vi volume_size = None ved utplassering på ml.g4dn.12xlarge og volume_size=256 ved utplassering på ml.p3.8xlarge eller ml.p3.16xlarge.

Det kan ta opptil 10 minutter å distribuere modellen. Etter at modellen er distribuert, kan vi få spådommer fra den i sanntid!

Kjør slutning

AlexaTM 20B er en tekstgenereringsmodell som, gitt en delsekvens (en setning eller et tekststykke), genererer neste sett med ord. Følgende kodebit gir deg et glimt av hvordan du spør etter endepunktet vi distribuerte og analyserer utdataene for automatisk fullføringsoppgave. For å sende forespørsler til en distribuert modell, bruker vi en JSON-ordbok kodet i UTF-8-format. Endpoint-responsen er et JSON-objekt som inneholder en liste over genererte 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

Deretter spør vi etter endepunktet og analyserer svaret på en eksempelinndatatekst:

# 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 støtter for tiden 10 tekstgenereringsparametere under inferens: max_length, num_return_sequences, num_beams, no_repeat_ngram_size, temperature, early_stopping, do_sample, top_k, top_pog seed. For detaljert informasjon om gyldige verdier for hver parameter og deres innvirkning på utgangen, se den medfølgende notatboken: Kontekstlæring med AlexaTM 20B i SageMaker JumpStart.

Innlæring i kontekst

Innlæring i kontekst refererer til følgende: vi gir språkmodellen en prompt, som består av opplæring av input-output-par som demonstrerer oppgaven. Vi legger til et testinnspill til ledeteksten og lar språkmodellen lage spådommer ved å kondisjonere på ledeteksten og forutsi de neste symbolene eller ordene. Dette er en svært effektiv teknikk for å løse noen få skuddlæringsproblemer, der vi lærer en oppgave fra noen få treningsprøver.

Deretter viser vi hvordan du kan bruke AlexaTM 20B til flere 1-shot- og zero-shot-oppgaver via in-context learning. I motsetning til tidligere sekvens-til-sekvens-modeller, ble AlexaTM 20B trent på kausal språkmodellering i tillegg til denoising, noe som gjør den til en god modell for læring i kontekst.

1-shot tekstoppsummering

Tekstoppsummering er oppgaven med å forkorte dataene og lage et sammendrag som representerer den viktigste informasjonen som finnes i originalteksten. 1-shot tekstoppsummering refererer til innstillingen der vi lærer å oppsummere teksten basert på et enkelt treningseksempel. Følgende kode er et tekstoppsummeringseksempel fra XSUM datasett:

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 bruker følgende forespørsel for oppsummering når bare ett treningseksempel er gitt. Den genererte teksten fra modellen tolkes som den predikerte oppsummeringen av testartikkelen.

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Resultatet er som følger:

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

1-shot naturlig språkgenerering

Naturlig språkgenerering er oppgaven med å produsere tekstfortellinger gitt inputteksten. Følgende eksempel viser et treningseksempel fra E2E datasett:

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 bruker følgende spørsmål for generering av naturlig språk når bare ett treningseksempel (1-shot) er gitt. Den genererte teksten fra modellen tolkes som den predikerte tekstfortellingen for testinndata (test_inp).

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Resultatet er som følger:

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

1-shot maskinoversettelse

Maskinoversettelse er oppgaven med å oversette tekst fra ett språk til et annet. Følgende eksempel viser et treningseksempel fra WMT19 datasett der vi må oversette 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 bruker følgende melding for maskinoversettelse når bare ett treningseksempel (1-shot) er gitt. Generert tekst fra modellen tolkes som oversettelsen av testinndataene (test_inp).

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Resultatet er som følger:

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

Zero-shot ekstraherende spørsmål besvare

Ekstraktivt spørsmålssvar er oppgaven med å finne svaret på et spørsmål fra kontekstavsnittet. Følgende er et eksempel på en kontekst og et spørsmål fra SQuAD v2 datasett:

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

Merk at vi ikke har noen treningsprøver for oppgaven vår. I stedet lager vi et dummy-spørsmål om det siste ordet i ledeteksten , basert på test_context (dummy-shot). Derfor besvarer vi faktisk zero-shot ekstraktive spørsmål.

Vi bruker følgende ledetekst for å besvare ekstraktive spørsmål når det ikke er gitt noen treningsprøve. Generert tekst fra modellen tolkes som svaret på testspørsmålet.

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Resultatet er som følger:

AlexaTM 20B output: 'France'

Rask Engineering

Rask prosjektering kan noen ganger være en kunst. Selv små endringer i ledetekstmalen kan resultere i betydelige endringer i modellens ytelse på en spesifikk oppgave. Følgende er noen råd for å skrive gode spørremaler. For det første er det viktig å huske at modellen ble opplært til å lære strukturen til virkelige setninger (årsaksspråkmodellering). Som sådan er det best å sikre at forespørselsmalen er grammatisk og strukturelt korrekt i naturlig språk. For det andre drar denne modellen nytte av dummy-bilder for å lære den strukturen som forventes i svaret, som vist ovenfor. For det tredje anbefales det alltid å undersøke oppgaveytelsen i forhold til en rekke kandidat-promptmaler. ledetekst og Naturlige instruksjoner er to åpen kildekode-rammeverk for standardisering av ledetekstmaler, og de gir en rekke eksempler på spørsmål som brukes for eksisterende modelleringsoppgaver. I tillegg er vedlegg B til AlexaTM 20B papir gir ledetekstmalene som brukes til å generere resultatene som presenteres i artikkelen. Det er et voksende underfelt dedikert til automatisk opprettelse og læring av de beste spørsmålene for en oppgave, inkludert både naturlig språk og kontinuerlige spørsmål. Dette er utenfor omfanget av denne opplæringen.

konklusjonen

I dette innlegget viste vi hvordan du distribuerer AlexaTM 20B-modellen på et SageMaker-endepunkt og kjører inferens. Du kan bruke AlexaTM 20B-modellen for læring i kontekst for en rekke læringsoppgaver med få skudd. For å lære mer om AlexaTM 20B, se 20B-parameter Alexa-modell setter nye karakterer i få-skuddslæring eller originalen papir.

Forfatterne vil gjerne anerkjenne de tekniske bidragene til Maciej Rudnicki, Jakub Debski, Ashish Khetan, Anastasiia Dubinina, Vitaliy Korolev, Karl Albertsen, Saleh Soltan og Mariusz Momotko for å gjøre denne lanseringen mulig.


Om JumpStart

JumpStart er maskinlæringssenteret (ML) til Amazon SageMaker som tilbyr over 350 forhåndsopplærte modeller, innebygde algoritmer og forhåndsbygde løsningsmaler for å hjelpe deg med å komme raskt i gang med ML. JumpStart er vert for toppmoderne modeller fra populære modellhuber som TensorFlow, PyTorch, Hugging Face og MXNet, som støtter populære ML-oppgaver som objektgjenkjenning, tekstklassifisering og tekstgenerering. ML-forskningsmiljøet har lagt ned en stor innsats for å gjøre et flertall av nylig utviklede modeller offentlig tilgjengelig for bruk. JumpStart har som mål å hjelpe deg med å finne riktige ML-modeller og algoritmer, og umiddelbart begynne å bygge modeller. Spesifikt gir JumpStart følgende fordeler:

  • Enkel tilgang med UI og SDK – Du kan få tilgang til modeller og algoritmer i JumpStart programmatisk ved å bruke SageMaker Python SDK eller gjennom JumpStart UI i Amazon SageMaker Studio. Foreløpig er AlexaTM 20B kun tilgjengelig gjennom SageMaker Python SDK.
  • SageMaker innebygde algoritmer – JumpStart gir over 350 innebygde algoritmer og forhåndstrente modeller, sammen med tilsvarende treningsskript (hvis støttet), konklusjonsskript og eksempelnotatbøker. Skriptene er optimalisert for hvert rammeverk og hver oppgave, og gir funksjoner som GPU-støtte, automatisk modellinnstilling og inkrementell opplæring. Skript er også testet mot SageMaker-forekomster og funksjoner, slik at du ikke støter på kompatibilitetsproblemer.
  • Forhåndsbygde løsninger – JumpStart tilbyr et sett med 23 løsninger for vanlige ML-brukstilfeller, for eksempel behovsprognoser og industrielle og finansielle applikasjoner, som du kan implementere med bare noen få klikk. Løsninger er ende-til-ende ML-applikasjoner som setter sammen ulike AWS-tjenester for å løse et bestemt forretningsbruk. De bruker AWS CloudFormation-maler og referansearkitekturer for rask distribusjon, noe som betyr at de er fullt tilpassbare.
  • Støtte – SageMaker gir en rekke støtte, for eksempel å opprettholde oppdaterte versjoner når nye SageMaker-funksjoner eller Deep Learning Container-versjoner slippes, og lage dokumentasjon om hvordan du bruker JumpStart-innhold i et SageMaker-miljø.

For å lære mer om JumpStart og hvordan du kan bruke åpen kildekode ferdigtrente modeller for en rekke andre ML-oppgaver, sjekk ut følgende AWS re:Invent 2020-video.


Om forfatterne

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Dr. Vivek Madan er en Applied Scientist med Amazon SageMaker JumpStart-teamet. Han fikk sin doktorgrad fra University of Illinois i Urbana-Champaign og var postdoktor ved Georgia Tech. Han er en aktiv forsker innen maskinlæring og algoritmedesign og har publisert artikler på EMNLP-, ICLR-, COLT-, FOCS- og SODA-konferanser.

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Jack FitzGerald er en senior anvendt vitenskapsmann med Alexa AI, hvor han for tiden fokuserer på store språkmodellering, flerspråklig tekstmodellering og maskinlæringsoperasjoner.

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.João Moura er en AI/ML-spesialistløsningsarkitekt hos Amazon Web Services. Han er mest fokusert på NLP-brukstilfeller og å hjelpe kunder med å optimalisere opplæring og implementering av dyplæringsmodeller. Han er også en aktiv talsmann for lavkode ML-løsninger og ML-spesialisert maskinvare.

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. juni vant er produktsjef med SageMaker JumpStart og innebygde algoritmer. Han fokuserer på å gjøre ML-innhold lett synlig og brukbart for SageMaker-kunder.

AlexaTM 20B er nå tilgjengelig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Pulkit Kapur er produktleder for Alexa Teacher Model-programmet med Alexa AI, med fokus på generalisert intelligens og anvendelser av Alexas multitask multimodale fundamentmodeller.

Tidstempel:

Mer fra AWS maskinlæring