AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart

Idag meddelar vi att Amazons toppmoderna är tillgänglig för allmänheten Alexa Teacher Model med 20 miljarder parametrar  (AlexaTM 20B) genom Amazon SageMaker JumpStart, SageMakers maskininlärningsnav. AlexaTM 20B är en flerspråkig storskalig sekvens-till-sekvens (seq2seq) språkmodell utvecklad av Amazon. Du kan använda AlexaTM 20B för ett brett utbud av branschanvändningsfall, från sammanfattande finansiella rapporter till frågesvar för kundtjänstchatbotar. Det kan tillämpas även när det bara finns ett fåtal tillgängliga träningsexempel, eller till och med inga alls. AlexaTM 20B utklassar 175 miljarder GPT-3 modell på zero-shot-inlärningsuppgifter som SuperGLUE och visar toppmodern prestanda för flerspråkiga zero-shot-uppgifter som XNLI.

I det här inlägget ger vi en översikt över hur man distribuerar och kör inferens med AlexaTM 20B-modellen programmatiskt genom JumpStart API:er, tillgängliga i SageMaker Python SDK. Vi exemplifierar hur du kan använda den här modellen för att översätta mellan flera språk, sammanfatta långformad text, svara på frågor utifrån ett givet sammanhang och generera text som verkar omöjlig att skilja från mänskligt skriven text.

AlexaTM 20B och inlärning i sammanhang

Alexa Teacher Model (AlexaTM)-programmet från Amazon Alexa AI är designat för att bygga storskaliga, flerspråkiga modeller för djupinlärning (främst transformatorbaserade), som syftar till att förbättra generalisering och hantering av databrist för nedströmsuppgifter. Med storskalig förutbildning kan lärarmodeller generalisera bra för att lära sig nya uppgifter från glesa data och hjälpa utvecklare att förbättra prestanda på nedströmsuppgifter. AlexaTM 20B har visat konkurrenskraftiga prestationer om vanliga riktmärken och uppgifter för bearbetning av naturligt språk (NLP), såsom maskinöversättning, datagenerering och sammanfattning.

Att använda grundmodeller som AlexaTM 20B minskar behovet av dyr modellförutbildning och ger en toppmodern utgångspunkt för att utveckla uppgiftsmodeller med mindre ansträngning och mindre uppgiftsspecifik träningsdata. En av de viktigaste förmågorna med grundmodeller är att vi kan lära en modell att utföra nya uppgifter som frågor och svar på olika språk, med mycket små mängder inmatningsexempel och inga finjusteringar eller gradientuppdateringar som krävs. Detta är känt som inlärning i sammanhang. Med endast ett fåtal exempel på en ny uppgift tillhandahållen som kontext för slutledning, kan AlexaTM 20B-modellen överföra kunskap från det som har lärts under storskalig förträning, även över språk. Det här kallas få-skott lärande. I vissa fall kan modellen prestera bra utan några träningsdata alls, med endast en förklaring av vad som bör förutsägas. Det här kallas zero-shot lärande. Låt oss till exempel säga att vi använder AlexaTM 20B för generering av naturligt språk i ett steg. Indata som skickas till modellen är träningsexemplet i form av attribut-värdepar, tillsammans med dess motsvarande utdatatextberättelse. Testexemplet läggs sedan till för att bilda den fullständiga inmatningsprompten, som visas i följande figur.

För att lära dig mer om modellen, kolla in Alexa-modellen med 20B-parameter sätter nya spår i få-shot-inlärning eller originalet papper.

Användning av AlexaTM 20B görs tillgänglig för icke-kommersiellt bruk och omfattas av Alexa Teacher Model Licensavtal.

Lösningsöversikt

Följande avsnitt ger en steg-för-steg-demo om hur man distribuerar modellen, kör inferens och gör inlärning i sammanhanget för att lösa inlärningsuppgifter med få skott.

Observera att följande avsnitt innehåller kodavsnitt; hela koden med alla steg i denna demo finns i den medföljande anteckningsboken: Inlärning i sammanhang med AlexaTM 20B i SageMaker JumpStart.

Distribuera modellen

För att använda en stor språkmodell i SageMaker behöver du ett slutledningsskript specifikt för modellen, som inkluderar steg som modellladdning, parallellisering och mer. Du måste också skapa end-to-end-tester för skript, modell och önskade instanstyper för att validera att alla tre kan fungera tillsammans. JumpStart tar bort denna ansträngning genom att tillhandahålla färdiga skript som har testats ordentligt.

SageMaker ger dig möjligheten att köra Docker-containrar i stor utsträckning för utbildning och slutledning. JumpStart använder dessa tillgängliga ramspecifika SageMaker Deep Learning Containers (DLC). Vi börjar med att hämta den optimerade DLC (deploy_image_uri) använda model_id. Sedan hämtar vi model_uri som innehåller modellparametrarna, tillsammans med inferenshanteringsskript och eventuella associerade beroenden. Därefter skapar vi en modellinstans i SageMaker och distribuera den till en slutpunkt i realtid. Se följande kod:

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

Att implementera AlexaTM 20B kräver en GPU-stödd instans med minst 50 GB CPU-minne och minst 42 GB GPU-minne. SageMaker tillhandahåller många sådana instanser som stöder slutledning i realtid. Vi testade denna lösning i tre fall: ml.g4dn.12xlarge, ml.p3.8xlarge, ml.p3.16xlarge. Se följande kod:

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
)

Därefter distribuerar vi modellen till en SageMaker-slutpunkt 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 diskutrymme i slutledningsbehållaren. En ml.g4dn.12xlarge instans uppfyller detta krav. Till exempel typerna ml.p3.8xlarge och ml.p3.16xlarge, vi bifogar en Amazon Elastic Block Store (Amazon EBS) volym för att klara den stora modellstorleken. Därför ställer vi in volume_size = None vid utplacering på ml.g4dn.12xlarge och volume_size=256 vid utplacering på ml.p3.8xlarge eller ml.p3.16xlarge.

Att implementera modellen kan ta upp till 10 minuter. Efter att modellen har distribuerats kan vi få förutsägelser från den i realtid!

Kör slutledning

AlexaTM 20B är en textgenereringsmodell som, givet en delsekvens (en mening eller ett stycke text), genererar nästa uppsättning ord. Följande kodavsnitt ger dig en glimt av hur du frågar efter slutpunkten vi distribuerade och analyserar utdata för automatisk kompletteringsuppgift. För att skicka förfrågningar till en distribuerad modell använder vi en JSON-ordbok kodad i UTF-8-format. Endpoint-svaret är ett JSON-objekt som innehåller en lista med genererade texter.

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

Därefter frågar vi slutpunkten och analyserar svaret på en exempelinmatningstext:

# 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öder för närvarande 10 textgenereringsparametrar under slutledning: max_length, num_return_sequences, num_beams, no_repeat_ngram_size, temperature, early_stopping, do_sample, top_k, top_poch seed. För detaljerad information om giltiga värden för varje parameter och deras inverkan på utdata, se den medföljande anteckningsboken: Inlärning i sammanhang med AlexaTM 20B i SageMaker JumpStart.

Inlärning i sammanhang

Inlärning i sammanhang avser följande: vi förser språkmodellen med en uppmaning, som består av träning av input-output-par som demonstrerar uppgiften. Vi lägger till en testinmatning till prompten och låter språkmodellen göra förutsägelser genom att villkora på prompten och förutsäga nästa tokens eller ord. Detta är en mycket effektiv teknik för att lösa få skottinlärningsproblem, där vi lär oss en uppgift från några träningsprover.

Därefter visar vi hur du kan använda AlexaTM 20B för flera 1-shot- och zero-shot-uppgifter via inlärning i sammanhanget. Till skillnad från tidigare sekvens-till-sekvens-modeller tränades AlexaTM 20B på kausal språkmodellering utöver denoising, vilket gör den till en bra modell för inlärning i sammanhang.

1-shot textsammanfattning

Textsammanfattning är uppgiften att förkorta data och skapa en sammanfattning som representerar den viktigaste informationen som finns i originaltexten. 1-shot textsammanfattning hänvisar till den inställning där vi lär oss att sammanfatta texten baserat på ett enda träningsexempel. Följande kod är ett textsammanfattningsexempel från XSUM-datauppsättning:

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 använder följande uppmaning för att sammanfatta när endast ett träningsexempel tillhandahålls. Den genererade texten från modellen tolkas som den förutsagda sammanfattningen av testartikeln.

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Utgången är som följer:

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

1-shot naturligt språkgenerering

Naturligt språkgenerering är uppgiften att producera textberättelser givet den ingående texten. Följande exempel visar ett träningsexempel från E2E dataset:

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 använder följande prompt för att skapa naturligt språk när endast ett träningsprov (1-shot) tillhandahålls. Den genererade texten från modellen tolkas som den förutsagda textberättelsen för testinmatningen (test_inp).

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Utgången är som följer:

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

1-shot maskinöversättning

Maskinöversättning är uppgiften att översätta text från ett språk till ett annat. Följande exempel visar ett träningsexempel från WMT19 dataset där vi måste översätta från tyska till engelska:

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 använder följande uppmaning för maskinöversättning när endast ett träningsprov (1-shot) tillhandahålls. Genererad text från modellen tolkas som översättningen av testinmatningen (test_inp).

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Utgången är som följer:

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

Zero-shot extraktiv fråga svarar

Extraktiv frågesvar är uppgiften att hitta svaret på en fråga från sammanhangsstycket. Följande är ett exempel på ett sammanhang och en fråga från SQuAD v2 dataset:

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

Observera att vi inte har några utbildningsprover för vår uppgift. Istället skapar vi en dummyfråga om det sista ordet i prompten , baserat på test_context (attrappskott). Därför svarar vi faktiskt på zero-shot-extraktiva frågor.

Vi använder följande uppmaning för att besvara extraktiva frågor när inget träningsprov tillhandahålls. Genererad text från modellen tolkas som svaret på testfrågan.

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Utgången är som följer:

AlexaTM 20B output: 'France'

Snabb ingenjörskonst

Snabb ingenjörskonst kan ibland vara en konst. Även små ändringar i promptmallen kan resultera i betydande förändringar av modellens prestanda för en specifik uppgift. Följande är några råd för att skriva bra snabbmallar. För det första är det viktigt att komma ihåg att modellen tränades för att lära sig strukturen hos verkliga meningar (kausal språkmodellering). Som sådan är det bäst att se till att din promptmall är grammatiskt och strukturellt korrekt i naturligt språk. För det andra drar just denna modell nytta av dummy shots för att lära den strukturen som förväntas i svaret, som visas ovan. För det tredje är det alltid rekommenderat att undersöka uppgiftens prestanda över en mängd olika kandidatpromptmallar. Fråga och Naturliga instruktioner är två ramverk med öppen källkod för standardisering av promptmallar, och de tillhandahåller en mängd exempel på prompter som används för befintliga modelleringsuppgifter. Dessutom, bilaga B till AlexaTM 20B papper tillhandahåller de snabbmallar som används för att generera resultaten som presenteras i uppsatsen. Det finns ett växande underområde dedikerat till att automatiskt skapa och lära sig de bästa uppmaningarna för en uppgift, inklusive både naturligt språk och kontinuerliga uppmaningar. Detta ligger utanför omfattningen av denna handledning.

Slutsats

I det här inlägget visade vi hur man distribuerar AlexaTM 20B-modellen på en SageMaker-slutpunkt och kör inferens. Du kan använda AlexaTM 20B-modellen för inlärning i sammanhanget för en mängd olika inlärningsuppgifter. För att lära dig mer om AlexaTM 20B, se Alexa-modellen med 20B-parameter sätter nya spår i få-shot-inlärning eller originalet papper.

Författarna vill erkänna de tekniska bidragen från Maciej Rudnicki, Jakub Debski, Ashish Khetan, Anastasiia Dubinina, Vitaliy Korolev, Karl Albertsen, Saleh Soltan och Mariusz Momotko för att göra denna lansering möjlig.


Om JumpStart

JumpStart är navet för maskininlärning (ML) i Amazon SageMaker som erbjuder över 350 förutbildade modeller, inbyggda algoritmer och förbyggda lösningsmallar som hjälper dig att snabbt komma igång med ML. JumpStart är värd för toppmoderna modeller från populära modellhubbar som TensorFlow, PyTorch, Hugging Face och MXNet, som stöder populära ML-uppgifter som objektdetektering, textklassificering och textgenerering. ML forskarsamhället har lagt ner mycket arbete på att göra en majoritet av de nyligen utvecklade modellerna allmänt tillgängliga för användning. JumpStart syftar till att hjälpa dig att hitta rätt ML-modeller och algoritmer och omedelbart börja bygga modeller. Specifikt ger JumpStart följande fördelar:

  • Enkel åtkomst med UI och SDK – Du kan komma åt modeller och algoritmer i JumpStart programmatiskt med SageMaker Python SDK eller genom JumpStart UI i Amazon SageMaker Studio. För närvarande är AlexaTM 20B endast tillgänglig via SageMaker Python SDK.
  • SageMaker inbyggda algoritmer – JumpStart tillhandahåller över 350 inbyggda algoritmer och förtränade modeller, tillsammans med motsvarande träningsskript (om stöds), slutledningsskript och exempel på anteckningsböcker. Skripten är optimerade för varje ramverk och uppgift och ger funktioner som GPU-stöd, automatisk modellinställning och inkrementell träning. Skript testas också mot SageMaker-instanser och funktioner så att du inte stöter på kompatibilitetsproblem.
  • Förbyggda lösningar – JumpStart tillhandahåller en uppsättning av 23 lösningar för vanliga ML-användningsfall, såsom efterfrågeprognoser och industriella och finansiella applikationer, som du kan implementera med bara några klick. Lösningar är end-to-end ML-applikationer som sammanfogar olika AWS-tjänster för att lösa ett visst affärsanvändningsfall. De använder AWS CloudFormation-mallar och referensarkitekturer för snabb implementering, vilket innebär att de är helt anpassningsbara.
  • Support – SageMaker tillhandahåller en rad olika stöd, som att upprätthålla uppdaterade versioner när nya SageMaker-funktioner eller Deep Learning Container-versioner släpps, och skapa dokumentation om hur man använder JumpStart-innehåll i en SageMaker-miljö.

För att lära dig mer om JumpStart och hur du kan använda förtränade modeller med öppen källkod för en mängd andra ML-uppgifter, kolla in följande AWS re:Invent 2020-video.


Om författarna

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Dr. Vivek Madan är en tillämpad forskare med Amazon SageMaker JumpStart-teamet. Han tog sin doktorsexamen från University of Illinois i Urbana-Champaign och var postdoktor vid Georgia Tech. Han är en aktiv forskare inom maskininlärning och algoritmdesign och har publicerat artiklar på EMNLP-, ICLR-, COLT-, FOCS- och SODA-konferenser.

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Jack FitzGerald är en senior tillämpad forskare med Alexa AI, där han för närvarande fokuserar på stora språkmodellering, flerspråkig textmodellering och maskininlärning.

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.João Moura är en AI/ML Specialist Solutions Architect på Amazon Web Services. Han är mestadels fokuserad på NLP-användningsfall och att hjälpa kunder att optimera utbildning och implementering av djupinlärningsmodeller. Han är också en aktiv förespråkare för ML-lösningar med låg kod och ML-specialiserad hårdvara.

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Juni vann är produktchef med SageMaker JumpStart och inbyggda algoritmer. Han fokuserar på att göra ML-innehåll lätt upptäckbart och användbart för SageMakers kunder.

AlexaTM 20B är nu tillgänglig i Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Pulkit Kapur är produktledare för Alexa Teacher Model-programmet med Alexa AI, med fokus på generaliserad intelligens och tillämpningar av Alexas multitask multimodala grundmodeller.

Tidsstämpel:

Mer från AWS maskininlärning