Vandaag kondigen we de publieke beschikbaarheid aan van Amazon's state-of-the-art Alexa Teacher-model met 20 miljard parameters (AlexaTM 20B) door Amazon SageMaker JumpStart, de machine learning-hub van SageMaker. AlexaTM 20B is een meertalig grootschalig sequence-to-sequence (seq2seq) taalmodel ontwikkeld door Amazon. U kunt AlexaTM 20B gebruiken voor een breed scala aan industriële toepassingen, van het samenvatten van financiële rapporten tot het beantwoorden van vragen voor klantenservice-chatbots. Het kan zelfs worden toegepast als er maar een paar trainingsvoorbeelden beschikbaar zijn, of zelfs helemaal geen. AlexaTM 20B beter presteert een 175 miljard GPT-3-model op zero-shot leertaken zoals SuperGLUE en toont state-of-the-art prestaties voor meertalige zero-shot taken zoals XNLI.
In dit bericht geven we een overzicht van hoe inferentie met het AlexaTM 20B-model programmatisch kan worden geïmplementeerd en uitgevoerd via JumpStart API's, beschikbaar in de SageMaker Python-SDK. We laten zien hoe u dit model kunt gebruiken om tussen meerdere talen te vertalen, lange tekst samen te vatten, vragen te beantwoorden op basis van een bepaalde context en tekst te genereren die niet te onderscheiden lijkt van door mensen geschreven tekst.
AlexaTM 20B en in-context leren
Het Alexa Teacher Model (AlexaTM) -programma van Amazon Alexa AI is ontworpen om grootschalige, meertalige deep learning-modellen te bouwen (voornamelijk op Transformer gebaseerd), gericht op het verbeteren van de generalisatie en het omgaan met gegevensschaarste voor downstream-taken. Met grootschalige pre-training kunnen lerarenmodellen goed generaliseren om nieuwe taken te leren uit schaarse gegevens en ontwikkelaars te helpen de prestaties van downstream-taken te verbeteren. AlexaTM 20B heeft getoond competitieve prestaties op gemeenschappelijke benchmarks en taken voor natuurlijke taalverwerking (NLP), zoals machinevertaling, gegevensgeneratie en samenvatting.
Het gebruik van basismodellen zoals AlexaTM 20B vermindert de behoefte aan dure modelvooropleiding en biedt een state-of-the-art startpunt om taakmodellen te ontwikkelen met minder inspanning en minder taakspecifieke trainingsgegevens. Een van de belangrijkste mogelijkheden van basismodellen is dat we een model kunnen leren om nieuwe taken uit te voeren, zoals vraag en antwoord in verschillende talen, met zeer kleine hoeveelheden invoervoorbeelden en zonder dat er fijnafstemming of gradiëntupdates nodig zijn. Dit staat bekend als contextueel leren. Met slechts een paar voorbeelden van een nieuwe taak als context voor inferentie, kan het AlexaTM 20B-model kennis overdragen van wat is geleerd tijdens grootschalige pre-training, zelfs tussen talen. Dit heet weinig schot leren. In sommige gevallen kan het model goed presteren zonder enige trainingsgegevens, met alleen een uitleg van wat er voorspeld moet worden. Dit heet zero-shot leren. Laten we bijvoorbeeld aannemen dat we AlexaTM 20B gebruiken voor eenmalige natuurlijke taalgeneratie. De invoer die aan het model wordt doorgegeven, is het trainingsvoorbeeld in de vorm van attribuut-waardeparen, samen met het bijbehorende uitvoertekstverhaal. Het testvoorbeeld wordt vervolgens toegevoegd om de volledige invoerprompt te vormen, zoals weergegeven in de volgende afbeelding.
Voor meer informatie over het model, ga naar 20B-parameter Alexa-model zet nieuwe markeringen in het leren met weinig schoten of de oorspronkelijke papier.
Het gebruik van de AlexaTM 20B is beschikbaar voor niet-commercieel gebruik en valt onder de Licentieovereenkomst voor Alexa Teacher-model.
Overzicht oplossingen
De volgende secties bieden een stapsgewijze demo over het implementeren van het model, het uitvoeren van gevolgtrekkingen en het doen van in-context-leren om kleine leertaken op te lossen.
Merk op dat de volgende sectie codefragmenten bevat; de volledige code met alle stappen in deze demo is beschikbaar in het bijbehorende notitieboek: In-context-leren met AlexaTM 20B in SageMaker JumpStart.
Implementeer het model
Om een groot taalmodel in SageMaker te gebruiken, hebt u een inferentiescript nodig dat specifiek is voor het model, dat stappen omvat zoals het laden van modellen, parallellisatie en meer. U moet ook end-to-end-tests maken voor scripts, modellen en de gewenste instantietypen om te valideren dat ze alle drie kunnen samenwerken. JumpStart neemt deze inspanning weg door kant-en-klare scripts te bieden die robuust zijn getest.
SageMaker geeft u de mogelijkheid om Docker-containers uitgebreid uit te voeren voor training en inferentie. JumpStart gebruikt deze beschikbare framework-specifieke SageMaker Deep Learning-containers (DLC's). We beginnen met het ophalen van de geoptimaliseerde DLC (deploy_image_uri
) de ... gebruiken model_id
. Dan halen we de model_uri
met de modelparameters, samen met scripts voor het afhandelen van conclusies en eventuele bijbehorende afhankelijkheden. Vervolgens maken we een model instantie in SageMaker en implementeer het op een real-time eindpunt. Zie de volgende code:
Het implementeren van AlexaTM 20B vereist een GPU-ondersteunde instance met minimaal 50 GB CPU-geheugen en minimaal 42 GB GPU-geheugen. SageMaker biedt veel van dergelijke instanties die real-time inferentie ondersteunen. We hebben deze oplossing op drie instanties getest: ml.g4dn.12xlarge, ml.p3.8xlarge, ml.p3.16xlarge. Zie de volgende code:
Vervolgens implementeren we het model op een real-time eindpunt van SageMaker:
AlexaTM 20B vereist 40 GB schijfruimte in de inferentiecontainer. Een instantie ml.g4dn.12xlarge voldoet aan deze vereiste. Voor bijvoorbeeld typen ml.p3.8xlarge en ml.p3.16xlarge voegen we een Amazon elastische blokwinkel (Amazon EBS) volume om de grote modelgrootte aan te kunnen. Daarom zetten we volume_size = None
bij implementatie op ml.g4dn.12xlarge en volume_size=256
bij implementatie op ml.p3.8xlarge of ml.p3.16xlarge.
Het implementeren van het model kan tot 10 minuten duren. Nadat het model is geïmplementeerd, kunnen we er in realtime voorspellingen uit halen!
Voer gevolgtrekking uit
AlexaTM 20B is een model voor het genereren van tekst dat, gegeven een gedeeltelijke reeks (een zin of stuk tekst), de volgende reeks woorden genereert. Het volgende codefragment geeft u een glimp van hoe u het door ons geïmplementeerde eindpunt kunt opvragen en de uitvoer kunt parseren voor een taak voor automatisch aanvullen. Om verzoeken naar een geïmplementeerd model te sturen, gebruiken we een JSON-woordenboek dat is gecodeerd in UTF-8-indeling. Het eindpuntantwoord is een JSON-object dat een lijst met gegenereerde teksten bevat.
Vervolgens vragen we het eindpunt en parseren we het antwoord op een voorbeeldinvoertekst:
AlexaTM 20B ondersteunt momenteel 10 parameters voor het genereren van tekst tijdens inferentie: max_length
, num_return_sequences
, num_beams
, no_repeat_ngram_size
, temperature
, early_stopping
, do_sample
, top_k
, top_p
en seed
. Zie het bijbehorende notitieblok voor gedetailleerde informatie over geldige waarden voor elke parameter en hun impact op de uitvoer: In-context-leren met AlexaTM 20B in SageMaker JumpStart.
In-context leren
In-context leren verwijst naar het volgende: we voorzien het taalmodel van een prompt, die bestaat uit het trainen van input-outputparen die de taak demonstreren. We voegen een testinvoer toe aan de prompt en laten het taalmodel voorspellingen doen door de prompt te conditioneren en de volgende tokens of woorden te voorspellen. Dit is een zeer effectieve techniek om enkele shot-learning-problemen op te lossen, waarbij we een taak leren van een paar trainingsvoorbeelden.
Vervolgens laten we zien hoe u AlexaTM 20B kunt gebruiken voor verschillende 1-shot- en zero-shot-taken via in-context learning. In tegenstelling tot eerdere sequentie-naar-sequentie-modellen, werd de AlexaTM 20B naast denoising ook getraind in causale taalmodellering, waardoor het een goed model is voor in-context leren.
1-shot tekstsamenvatting
Tekstsamenvatting is de taak om de gegevens in te korten en een samenvatting te maken die de belangrijkste informatie in de originele tekst vertegenwoordigt. 1-shot tekstsamenvatting verwijst naar de setting waarin we leren om de tekst samen te vatten op basis van een enkel trainingsvoorbeeld. De volgende code is een voorbeeld van een tekstsamenvatting uit het XSUM-gegevensset:
We gebruiken de volgende prompt voor samenvatting wanneer er slechts één trainingsvoorbeeld wordt verstrekt. De gegenereerde tekst uit het model wordt geïnterpreteerd als de voorspelde samenvatting van het testartikel.
De output is als volgt:
1-shot generatie van natuurlijke taal
Het genereren van natuurlijke taal is de taak om tekstverhalen te produceren op basis van de invoertekst. Het volgende voorbeeld toont een trainingsvoorbeeld van de E2E-gegevensset:
We gebruiken de volgende prompt voor het genereren van natuurlijke taal wanneer er slechts één trainingsvoorbeeld (1-shot) wordt verstrekt. De gegenereerde tekst uit het model wordt geïnterpreteerd als het voorspelde tekstverhaal voor de testinvoer (test_inp
).
De output is als volgt:
1-shot machinevertaling
Machinevertaling is de taak van het vertalen van tekst van de ene taal naar de andere. Het volgende voorbeeld toont een trainingsvoorbeeld van de WMT19-gegevensset waarin we moeten vertalen van het Duits naar het Engels:
We gebruiken de volgende prompt voor machinevertaling wanneer er slechts één trainingsvoorbeeld (1-shot) wordt verstrekt. Gegenereerde tekst uit het model wordt geïnterpreteerd als de vertaling van de testinvoer (test_inp
).
De output is als volgt:
Zero-shot extractieve vraag beantwoorden
Extractieve vraagbeantwoording is de taak om het antwoord op een vraag uit de contextparagraaf te vinden. Het volgende is een voorbeeld van een context en een vraag uit de SQuAD v2-gegevensset:
Merk op dat we geen trainingsvoorbeelden hebben voor onze taak. In plaats daarvan maken we een dummy-vraag over het laatste woord in de prompt , gebaseerd op de test_context
(dummy-shot). Daarom doen we eigenlijk aan zero-shot extractieve vraagbeantwoording.
We gebruiken de volgende prompt voor het extractief beantwoorden van vragen wanneer er geen trainingsvoorbeeld wordt verstrekt. Gegenereerde tekst uit het model wordt geïnterpreteerd als het antwoord op de testvraag.
De output is als volgt:
Snelle techniek
Snelle engineering kan soms een kunst zijn. Zelfs kleine wijzigingen in de aanwijzingssjabloon kunnen leiden tot aanzienlijke wijzigingen in de prestaties van het model voor een specifieke taak. Hieronder volgen enkele adviezen voor het schrijven van goede promptsjablonen. Ten eerste is het belangrijk om te onthouden dat het model is getraind om de structuur van echte zinnen te leren (causale taalmodellering). Daarom is het het beste om ervoor te zorgen dat uw promptsjabloon grammaticaal en structureel correct is in natuurlijke taal. Ten tweede profiteert dit specifieke model van dummy-opnamen om het de structuur te leren die in het antwoord wordt verwacht, zoals hierboven aangetoond. Ten derde is het altijd aan te raden om taakprestaties te onderzoeken op verschillende sjablonen voor kandidaat-prompts. Promptbron en Natuurlijke instructies zijn twee open-source frameworks voor het standaardiseren van promptsjablonen, en ze bieden een verscheidenheid aan voorbeeldprompts die worden gebruikt voor bestaande modelleringstaken. Daarnaast bijlage B van de AlexaTM 20B-papier biedt de promptsjablonen die worden gebruikt om de resultaten te genereren die in het artikel worden gepresenteerd. Er is een groeiend subveld gewijd aan het automatisch creëren en leren van de beste prompts voor een taak, inclusief zowel natuurlijke taal als doorlopende prompts. Dit valt buiten het bestek van deze zelfstudie.
Conclusie
In dit bericht hebben we laten zien hoe het AlexaTM 20B-model op een SageMaker-eindpunt kan worden geïmplementeerd en inferentie kan worden uitgevoerd. U kunt het AlexaTM 20B-model gebruiken voor in-context-leren voor een verscheidenheid aan kleine leertaken. Raadpleeg voor meer informatie over AlexaTM 20B 20B-parameter Alexa-model zet nieuwe markeringen in het leren met weinig schoten of de oorspronkelijke papier.
De auteurs willen graag de technische bijdragen van Maciej Rudnicki, Jakub Debski, Ashish Khetan, Anastasiia Dubinina, Vitaliy Korolev, Karl Albertsen, Saleh Soltan en Mariusz Momotko erkennen om deze lancering mogelijk te maken.
Over Jump Start
JumpStart is de machine learning (ML) hub van Amazon SageMaker die meer dan 350 vooraf getrainde modellen, ingebouwde algoritmen en vooraf gebouwde oplossingssjablonen biedt om u te helpen snel aan de slag te gaan met ML. JumpStart host state-of-the-art modellen van populaire modelhubs zoals TensorFlow, PyTorch, Hugging Face en MXNet, die populaire ML-taken ondersteunen, zoals objectdetectie, tekstclassificatie en tekstgeneratie. De ML-onderzoeksgemeenschap heeft veel moeite gestoken in het openbaar maken van de meeste recent ontwikkelde modellen voor gebruik. JumpStart is bedoeld om u te helpen de juiste ML-modellen en algoritmen te vinden en direct te beginnen met het bouwen van modellen. Concreet biedt JumpStart de volgende voordelen:
- Gemakkelijke toegang met de gebruikersinterface en SDK - U hebt programmatisch toegang tot modellen en algoritmen in JumpStart met behulp van de SageMaker Python SDK of via de JumpStart-gebruikersinterface in Amazon SageMaker Studio. Momenteel is AlexaTM 20B alleen toegankelijk via de SageMaker Python SDK.
- SageMaker ingebouwde algoritmen – JumpStart biedt meer dan 350 ingebouwde algoritmen en vooraf getrainde modellen, samen met bijbehorende trainingsscripts (indien ondersteund), inferentiescripts en voorbeeldnotitieboekjes. Scripts zijn geoptimaliseerd voor elk framework en elke taak en bieden functies zoals GPU-ondersteuning, automatische modelafstemming en incrementele training. Scripts worden ook getest op SageMaker-instanties en -functies, zodat u geen compatibiliteitsproblemen tegenkomt.
- Kant-en-klare oplossingen – JumpStart biedt een set van 23 oplossingen voor veelvoorkomende ML-use-cases, zoals vraagprognoses en industriële en financiële toepassingen, die u met slechts een paar klikken kunt implementeren. Oplossingen zijn end-to-end ML-applicaties die verschillende AWS-services aan elkaar rijgen om een bepaalde zakelijke use case op te lossen. Ze gebruiken AWS CloudFormation-sjablonen en referentiearchitecturen voor snelle implementatie, wat betekent dat ze volledig aanpasbaar zijn.
- Ondersteuning - SageMaker biedt een scala aan ondersteuning, zoals het onderhouden van up-to-date versies wanneer nieuwe SageMaker-functies of Deep Learning Container-versies worden uitgebracht, en het maken van documentatie over het gebruik van JumpStart-inhoud in een SageMaker-omgeving.
Bekijk het volgende voor meer informatie over JumpStart en hoe u voorgetrainde open-sourcemodellen kunt gebruiken voor tal van andere ML-taken AWS re:Invent 2020-video.
Over de auteurs
Dr Vivek Madan is een Applied Scientist bij het Amazon SageMaker JumpStart-team. Hij promoveerde aan de Universiteit van Illinois in Urbana-Champaign en was een postdoctoraal onderzoeker bij Georgia Tech. Hij is een actief onderzoeker op het gebied van machine learning en algoritmeontwerp en heeft artikelen gepubliceerd op EMNLP-, ICLR-, COLT-, FOCS- en SODA-conferenties.
Jack FitzGerald is een senior toegepaste wetenschapper bij Alexa AI, waar hij zich momenteel richt op grote taalmodellering, meertalige tekstmodellering en machine learning-operaties.
Joao Moura is een AI/ML Specialist Solutions Architect bij Amazon Web Services. Hij is vooral gericht op NLP-gebruiksscenario's en helpt klanten bij het optimaliseren van training en implementatie van deep learning-modellen. Hij is ook een actief voorstander van low-code ML-oplossingen en ML-gespecialiseerde hardware.
juni gewonnen is een productmanager met SageMaker JumpStart en ingebouwde algoritmen. Hij richt zich op het gemakkelijk vindbaar en bruikbaar maken van ML-inhoud voor klanten van SageMaker.
Pulkit Kapoer is de productleider voor het Alexa Teacher Model-programma met Alexa AI, gericht op algemene intelligentie en toepassingen van Alexa's multitask multimodale basismodellen.
- AI
- ai kunst
- ai kunst generator
- je hebt een robot
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- kunstmatige intelligentie
- certificering van kunstmatige intelligentie
- kunstmatige intelligentie in het bankwezen
- kunstmatige intelligentie robot
- kunstmatige intelligentie robots
- kunstmatige intelligentiesoftware
- AWS-machine learning
- blockchain
- blockchain conferentie ai
- vindingrijk
- conversatie kunstmatige intelligentie
- crypto conferentie ai
- van dall
- diepgaand leren
- Fundamenteel (100)
- google ai
- machine learning
- Plato
- plato ai
- Plato gegevensintelligentie
- Plato-spel
- PlatoData
- platogamen
- schaal ai
- syntaxis
- zephyrnet