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:
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:
Därefter distribuerar vi modellen till en SageMaker-slutpunkt i realtid:
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.
Därefter frågar vi slutpunkten och analyserar svaret på en exempelinmatningstext:
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_p
och 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:
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.
Utgången är som följer:
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:
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
).
Utgången är som följer:
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:
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
).
Utgången är som följer:
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:
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.
Utgången är som följer:
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
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.
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.
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.
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.
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.
- AI
- ai konst
- ai art generator
- har robot
- Amazon SageMaker
- Amazon SageMaker JumpStart
- artificiell intelligens
- artificiell intelligenscertifiering
- artificiell intelligens inom bankväsendet
- artificiell intelligens robot
- robotar med artificiell intelligens
- programvara för artificiell intelligens
- AWS maskininlärning
- blockchain
- blockchain konferens ai
- coingenius
- konversationskonstnärlig intelligens
- kryptokonferens ai
- dalls
- djupt lärande
- Grundläggande (100)
- du har google
- maskininlärning
- plato
- plato ai
- Platon Data Intelligence
- Platon spel
- PlatonData
- platogaming
- skala ai
- syntax
- zephyrnet