AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart

Danes objavljamo javno dostopnost Amazonovega najsodobnejšega Alexa Teacher Model z 20 milijardami parametrov  (AlexaTM 20B) skozi Amazon SageMaker JumpStart, SageMakerjevo središče za strojno učenje. AlexaTM 20B je večjezični jezikovni model velikega obsega od zaporedja do zaporedja (seq2seq), ki ga je razvil Amazon. AlexaTM 20B lahko uporabite za širok nabor industrijskih primerov uporabe, od povzemanja finančnih poročil do odgovorov na vprašanja za klepetalne robote za pomoč uporabnikom. Uporablja se lahko tudi, ko je na voljo le nekaj primerov usposabljanja ali celo nobenega. AlexaTM 20B prekaša 175 milijard Model GPT-3 pri nalogah zero shot učenja, kot je SuperGLUE, in prikazuje najsodobnejšo zmogljivost za večjezične naloge zero shot, kot je XNLI.

V tej objavi ponujamo pregled, kako programsko uvesti in zagnati sklepanje z modelom AlexaTM 20B prek API-jev JumpStart, ki so na voljo v SDK SageMaker Python. Ponazarjamo, kako lahko uporabite ta model za prevajanje med več jeziki, povzemanje besedila v dolgi obliki, odgovarjanje na vprašanja glede na dani kontekst in ustvarjanje besedila, ki se zdi neločljivo od besedila, ki ga je napisal človek.

AlexaTM 20B in učenje v kontekstu

Program Alexa Teacher Model (AlexaTM) podjetja Amazon Alexa AI je zasnovan za izdelavo obsežnih, večjezičnih modelov globokega učenja (predvsem na osnovi Transformerja), katerih namen je izboljšati posploševanje in ravnanje s pomanjkanjem podatkov za naloge na nižji stopnji. Z obsežnim predhodnim usposabljanjem je mogoče modele učiteljev dobro posplošiti, da se naučijo novih nalog iz redkih podatkov in pomagajo razvijalcem izboljšati učinkovitost nadaljnjih nalog. AlexaTM 20B je pokazala tekmovalni nastop o običajnih merilih in nalogah obdelave naravnega jezika (NLP), kot so strojno prevajanje, ustvarjanje podatkov in povzemanje.

Uporaba temeljnih modelov, kot je AlexaTM 20B, zmanjša potrebo po dragem predhodnem usposabljanju za model in zagotavlja najsodobnejšo izhodiščno točko za razvoj modelov opravil z manj truda in manj podatkov o usposabljanju, specifičnih za naloge. Ena od ključnih zmožnosti temeljnih modelov je, da lahko model naučimo izvajati nove naloge, kot sta vprašanja in odgovori v različnih jezikih, z zelo majhnimi količinami vnosnih primerov in brez potrebnih natančnega prilagajanja ali gradientnih posodobitev. To je znano kot učenje v kontekstu. Z le nekaj primeri nove naloge, ki so podani kot kontekst za sklepanje, lahko model AlexaTM 20B prenese znanje iz tistega, kar se je naučilo med obsežnim predhodnim usposabljanjem, tudi med jeziki. To se imenuje nekajkratno učenje. V nekaterih primerih lahko model dobro deluje brez kakršnih koli podatkov o usposabljanju, le z razlago, kaj je treba predvideti. To se imenuje zero-shot učenje. Na primer, recimo, da uporabljamo AlexaTM 20B za enkratno generiranje naravnega jezika. Vhod, posredovan modelu, je primer usposabljanja v obliki parov atribut-vrednost, skupaj z ustrezno izhodno besedilno pripovedjo. Preizkusni primer je nato pripet v celoten vnosni poziv, kot je prikazano na naslednji sliki.

Če želite izvedeti več o modelu, si oglejte Model Alexa s parametrom 20B postavlja nove meje pri učenju z nekaj posnetki ali original papirja.

Uporaba AlexaTM 20B je na voljo za nekomercialno uporabo in je zajeta v Licenčna pogodba za model Alexa Teacher.

Pregled rešitev

Naslednji razdelki nudijo predstavitev po korakih o tem, kako razmestiti model, zagnati sklepanje in izvajati učenje v kontekstu za reševanje kratkotrajnih učnih nalog.

Upoštevajte, da naslednji razdelek vsebuje izrezke kode; celotna koda z vsemi koraki v tej predstavitvi je na voljo v priloženem zvezku: Učenje v kontekstu z AlexaTM 20B v SageMaker JumpStart.

Namestite model

Za uporabo velikega jezikovnega modela v SageMakerju potrebujete skript za sklepanje, specifičen za model, ki vključuje korake, kot so nalaganje modela, paralelizacija in drugo. Ustvariti morate tudi celovite teste za skripte, model in želene vrste primerkov, da preverite, ali lahko vsi trije delujejo skupaj. JumpStart odpravi ta napor z zagotavljanjem skriptov, pripravljenih za uporabo, ki so bili robustno testirani.

SageMaker vam omogoča obsežno izvajanje vsebnikov Docker za usposabljanje in sklepanje. JumpStart uporablja te razpoložljive specifične za ogrodje Vsebniki za globoko učenje SageMaker (DLC-ji). Začnemo s pridobivanjem optimiziranega DLC (deploy_image_uri) uporabljati model_id. Potem prinesemo model_uri ki vsebuje parametre modela, skupaj s skripti za obravnavo sklepanja in morebitnimi povezanimi odvisnostmi. Nato ustvarimo a modelni primerek v SageMaker in ga namestite na končno točko v realnem času. Oglejte si naslednjo kodo:

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

Za uvajanje AlexaTM 20B je potreben primerek, podprt z GPU, z vsaj 50 GB pomnilnika CPE in vsaj 42 GB pomnilnika GPE. SageMaker ponuja veliko takih primerkov, ki podpirajo sklepanje v realnem času. To rešitev smo preizkusili na treh primerih: ml.g4dn.12xlarge, ml.p3.8xlarge, ml.p3.16xlarge. Oglejte si naslednjo kodo:

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
)

Nato uvedemo model v realnočasovno končno točko SageMaker:

# 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 zahteva 40 GB prostora na disku v vsebniku sklepanja. Primerek ml.g4dn.12xlarge izpolnjuje to zahtevo. Na primer vrsti ml.p3.8xlarge in ml.p3.16xlarge, priložimo Trgovina z elastičnimi bloki Amazon (Amazon EBS) obseg za obvladovanje velike velikosti modela. Zato smo postavili volume_size = None pri uvajanju na ml.g4dn.12xlarge in volume_size=256 pri uvajanju na ml.p3.8xlarge ali ml.p3.16xlarge.

Uvajanje modela lahko traja do 10 minut. Ko je model uveden, lahko iz njega v realnem času pridobimo napovedi!

Zaženi sklepanje

AlexaTM 20B je model generiranja besedila, ki glede na delno zaporedje (stavek ali del besedila) generira naslednji niz besed. Naslednji delček kode vam daje vpogled v to, kako poizvedovati po končni točki, ki smo jo uvedli, in razčleniti rezultate za opravilo samodokončanja. Za pošiljanje zahtev razporejenemu modelu uporabljamo slovar JSON, kodiran v formatu UTF-8. Odziv končne točke je objekt JSON, ki vsebuje seznam ustvarjenih besedil.

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

Nato izvedemo poizvedbo po končni točki in razčlenimo odgovor na vzorčnem vhodnem besedilu:

# 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 trenutno podpira 10 parametrov generiranja besedila med sklepanjem: max_length, num_return_sequences, num_beams, no_repeat_ngram_size, temperature, early_stopping, do_sample, top_k, top_pin seed. Za podrobne informacije o veljavnih vrednostih za vsak parameter in njihovem vplivu na izhod si oglejte priloženi zvezek: Učenje v kontekstu z AlexaTM 20B v SageMaker JumpStart.

Učenje v kontekstu

Učenje v kontekstu se nanaša na naslednje: jezikovnemu modelu zagotovimo poziv, ki je sestavljen iz učnih vhodno-izhodnih parov, ki prikazujejo nalogo. Pozivu dodamo testni vnos in omogočimo jezikovnemu modelu, da naredi napovedi s pogojevanjem poziva in predvidevanjem naslednjih žetonov ali besed. To je zelo učinkovita tehnika za reševanje nekaj problemov učenja udarca, pri kateri se naloge naučimo iz nekaj učnih vzorcev.

Nato pokažemo, kako lahko uporabite AlexaTM 20B za več nalog z enim in ničelnim strelom prek učenja v kontekstu. Za razliko od prejšnjih modelov od zaporedja do zaporedja je bil AlexaTM 1B poleg odpravljanja šumov usposobljen za modeliranje vzročnega jezika, zaradi česar je dober model za učenje v kontekstu.

1-shot povzetek besedila

Povzemanje besedila je naloga skrajšanja podatkov in ustvarjanja povzetka, ki predstavlja najpomembnejše informacije, prisotne v izvirnem besedilu. 1-shot text summarization se nanaša na nastavitev, kjer se naučimo povzemati besedilo na podlagi enega samega učnega vzorca. Naslednja koda je vzorec povzemanja besedila iz nabor podatkov XSUM:

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

Naslednji poziv uporabimo za povzemanje, ko je na voljo samo en vzorec usposabljanja. Ustvarjeno besedilo iz modela se interpretira kot predvideni povzetek testnega članka.

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Izhod je naslednji:

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

Enkratna generacija naravnega jezika

Generiranje naravnega jezika je naloga ustvarjanja besedilnih pripovedi glede na vhodno besedilo. Naslednji vzorec prikazuje vzorec usposabljanja iz Nabor podatkov E2E:

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"

Naslednji poziv uporabimo za generiranje naravnega jezika, ko je na voljo samo en učni vzorec (1-shot). Besedilo, ustvarjeno iz modela, se interpretira kot predvidena pripoved besedila za testni vnos (test_inp).

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Izhod je naslednji:

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

1-shot strojno prevajanje

Strojno prevajanje je naloga prevajanja besedila iz enega jezika v drugega. Naslednji primer prikazuje vzorec usposabljanja iz Nabor podatkov WMT19 v katerem moramo prevesti iz nemščine v angleščino:

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

Naslednji poziv uporabimo za strojno prevajanje, ko je na voljo samo en vzorec za usposabljanje (1 posnetek). Ustvarjeno besedilo iz modela se interpretira kot prevod testnega vnosa (test_inp).

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Izhod je naslednji:

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

Brezhibno odgovarjanje na vprašanja

Ekstraktivno odgovarjanje na vprašanja je naloga iskanja odgovora na vprašanje iz kontekstnega odstavka. Sledi primer konteksta in vprašanja iz Nabor podatkov SQuAD v2:

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

Upoštevajte, da za našo nalogo nimamo vzorcev usposabljanja. Namesto tega ustvarimo navidezno vprašanje o zadnji besedi v pozivu na podlagi test_context (navidezni strel). Zato dejansko odgovarjamo na vprašanja z ničelnim izvlekom.

Naslednji poziv uporabljamo za izvlečne odgovore na vprašanja, ko ni na voljo nobenega vzorca usposabljanja. Ustvarjeno besedilo iz modela se interpretira kot odgovor na testno vprašanje.

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Izhod je naslednji:

AlexaTM 20B output: 'France'

Hiter inženiring

Hiter inženiring je lahko včasih umetnost. Tudi majhne spremembe predloge poziva lahko povzročijo pomembne spremembe v zmogljivosti modela pri določeni nalogi. Sledi nekaj nasvetov za pisanje dobrih predlog pozivov. Najprej si je pomembno zapomniti, da je bil model usposobljen za učenje strukture pravih stavkov (modeliranje vzročnega jezika). Zato je najbolje zagotoviti, da je vaša predloga poziva slovnično in strukturno pravilna v naravnem jeziku. Drugič, ta poseben model ima koristi od navideznih posnetkov, ki ga pomagajo naučiti strukture, ki se pričakuje v odgovoru, kot je prikazano zgoraj. Tretjič, vedno je priporočljivo, da preučite uspešnost naloge z različnimi predlogami pozivov kandidatov. Promptsource in Naravna navodila sta dva odprtokodna ogrodja za standardizacijo predlog pozivov in zagotavljata vrsto primerov pozivov, ki se uporabljajo za obstoječe naloge modeliranja. Poleg tega je Dodatek B k Papir AlexaTM 20B zagotavlja hitre predloge, ki se uporabljajo za ustvarjanje rezultatov, predstavljenih v članku. Obstaja vedno več podpolj, namenjenih samodejnemu ustvarjanju in učenju najboljših pozivov za opravilo, vključno z naravnim jezikom in neprekinjenimi pozivi. To presega obseg te vadnice.

zaključek

V tej objavi smo pokazali, kako razmestiti model AlexaTM 20B na končni točki SageMaker in izvesti sklepanje. Model AlexaTM 20B lahko uporabite za učenje v kontekstu za različne učne naloge v nekaj trenutkih. Če želite izvedeti več o AlexaTM 20B, glejte Model Alexa s parametrom 20B postavlja nove meje pri učenju z nekaj posnetki ali original papirja.

Avtorji se želijo zahvaliti za tehnične prispevke Macieju Rudnickemu, Jakubu Debskemu, Ashishu Khetanu, Anastasiji Dubinini, Vitaliju Koroljovu, Karlu Albertsenu, Salehu Soltanu in Mariuszu Momotku, ki so omogočili to lansiranje.


O JumpStartu

JumpStart je središče strojnega učenja (ML) Amazon SageMaker, ki ponuja več kot 350 vnaprej usposobljenih modelov, vgrajenih algoritmov in vnaprej izdelanih predlog rešitev, ki vam pomagajo hitro začeti z ML. JumpStart gosti najsodobnejše modele iz priljubljenih središč modelov, kot so TensorFlow, PyTorch, Hugging Face in MXNet, ki podpirajo priljubljena opravila ML, kot so zaznavanje predmetov, klasifikacija besedila in generiranje besedila. Raziskovalna skupnost ML je vložila veliko truda v to, da je večina nedavno razvitih modelov postala javno dostopna za uporabo. JumpStart vam pomaga najti prave modele in algoritme ML ter takoj začeti graditi modele. Natančneje, JumpStart ponuja naslednje prednosti:

  • Enostaven dostop z uporabniškim vmesnikom in SDK – Do modelov in algoritmov v JumpStart lahko dostopate programsko z uporabo SDK SageMaker Python ali prek uporabniškega vmesnika JumpStart v Amazon SageMaker Studio. Trenutno je AlexaTM 20B dostopen samo prek SDK-ja SageMaker Python.
  • Vgrajeni algoritmi SageMaker – JumpStart ponuja več kot 350 vgrajenih algoritmov in vnaprej usposobljenih modelov, skupaj z ustreznimi skripti za usposabljanje (če so podprti), skripti za sklepanje in primeri zvezkov. Skripti so optimizirani za vsako ogrodje in nalogo ter zagotavljajo funkcije, kot so podpora GPU, samodejno prilagajanje modela in postopno usposabljanje. Skripti so testirani tudi glede na primerke in funkcije SageMaker, tako da ne naletite na težave z združljivostjo.
  • Vnaprej pripravljene rešitve – JumpStart ponuja nabor 23 rešitev za običajne primere uporabe ML, kot so napovedovanje povpraševanja ter industrijske in finančne aplikacije, ki jih lahko uvedete z le nekaj kliki. Rešitve so aplikacije ML od konca do konca, ki združujejo različne storitve AWS za rešitev določenega primera poslovne uporabe. Uporabljajo predloge AWS CloudFormation in referenčne arhitekture za hitro uvajanje, kar pomeni, da so popolnoma prilagodljivi.
  • Podpora – SageMaker ponuja vrsto podpore, kot je vzdrževanje posodobljenih različic, ko so izdane nove funkcije SageMaker ali različice vsebnika za poglobljeno učenje, in ustvarjanje dokumentacije o uporabi vsebine JumpStart v okolju SageMaker.

Če želite izvedeti več o JumpStart in o tem, kako lahko uporabite odprtokodne vnaprej usposobljene modele za vrsto drugih nalog ML, si oglejte naslednje Video AWS re:Invent 2020.


O avtorjih

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.dr. Vivek Madan je uporabni znanstvenik pri ekipi Amazon SageMaker JumpStart. Doktoriral je na Univerzi Illinois v Urbana-Champaign in bil podoktorski raziskovalec na Georgia Tech. Je aktiven raziskovalec strojnega učenja in oblikovanja algoritmov ter je objavil članke na konferencah EMNLP, ICLR, COLT, FOCS in SODA.

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Jack FitzGerald je višji uporabni znanstvenik pri Alexa AI, kjer se trenutno osredotoča na modeliranje velikih jezikov, modeliranje večjezičnega besedila in operacije strojnega učenja.

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.João Moura je specialist za rešitve AI/ML pri Amazon Web Services. Večinoma se osredotoča na primere uporabe NLP in pomaga strankam optimizirati usposabljanje in uvajanje modela globokega učenja. Je tudi aktiven zagovornik rešitev ML z nizko kodo in strojne opreme, specializirane za ML.

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai. junij zmagal je produktni vodja s SageMaker JumpStart in vgrajenimi algoritmi. Osredotoča se na to, da uporabnikom SageMaker omogoča preprosto odkrivanje in uporabo vsebine ML.

AlexaTM 20B je zdaj na voljo v Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Pulkit Kapur je vodja izdelka za program Alexa Teacher Model z Alexa AI, ki se osredotoča na splošno inteligenco in aplikacije večopravilnih multimodalnih temeljnih modelov Alexa.

Časovni žig:

Več od Strojno učenje AWS