Suorita tekstin luominen GPT- ja Bloom-malleilla Amazon SageMaker JumpStartissa

Joulukuussa 2020, AWS ilmoitti - yleinen saatavuus Amazon SageMaker JumpStart, kyky Amazon Sage Maker jonka avulla pääset nopeasti ja helposti alkuun koneoppimisen (ML) kanssa. JumpStart tarjoaa yhdellä napsautuksella hienosäätöä ja laajan valikoiman valmiiksi koulutettuja malleja yleisiin ML-tehtäviin sekä valikoiman päästä päähän -ratkaisuja, jotka ratkaisevat yleisiä liiketoimintaongelmia. Nämä ominaisuudet poistavat raskasta nostoa ML-prosessin jokaisesta vaiheesta, mikä helpottaa korkealaatuisten mallien kehittämistä ja lyhentää käyttöönottoon kuluvaa aikaa.

Tämä viesti on neljäs sarjassa JumpStartin käyttämisestä tiettyihin ML-tehtäviin. Vuonna ensimmäinen viesti, näytimme, kuinka kuvien luokittelun käyttötapauksia suoritetaan JumpStartissa. Vuonna toinen viesti, osoitimme, kuinka tekstin luokittelun käyttötapauksia suoritetaan. Vuonna kolmas viesti, suoritimme kuvasegmentoinnin käyttötapauksia.

Tässä viestissä tarjoamme vaiheittaisen esittelyn esikoulutettujen tekstin luontimallien käyttöönotosta. Tutkimme kahta tapaa saada sama tulos: JumpStartin graafisen käyttöliittymän kautta Amazon SageMaker Studio, ja ohjelmallisesti läpi JumpStart API:t.

Jos haluat hypätä suoraan tässä viestissä käymämme JumpStart API -koodiin, voit viitata seuraavaan Jupyter-muistikirjaan: Johdatus JumpStartiin – Tekstin luominen.

JumpStart yleiskatsaus

JumpStart auttaa sinua pääsemään alkuun ML-mallien kanssa useisiin eri tehtäviin kirjoittamatta yhtä koodiriviä. Tällä hetkellä JumpStartin avulla voit tehdä seuraavat:

  • Ota käyttöön esikoulutettuja malleja yleisiin ML-tehtäviin – JumpStartin avulla voit käsitellä yleisiä ML-tehtäviä ilman kehitysponnisteluja tarjoamalla helposti käyttöönotettuja malleja, jotka on esikoulutettu suurille, julkisesti saatavilla oleville tietojoukoille. ML-tutkijayhteisö on tehnyt paljon vaivaa saattaakseen suurimman osan äskettäin kehitetyistä malleista julkisesti saataville. JumpStart isännöi yli 300 mallin kokoelmaa, jotka kattavat 15 suosituinta ML-tehtävää, kuten objektien havaitseminen, tekstin luokittelu ja tekstin luominen, mikä tekee niiden käyttämisestä helppoa aloittelijalle. Nämä mallit ovat peräisin suosituista mallikeskittymistä, kuten TensorFlow, PyTorch, Hugging Face ja MXNet.
  • Hienosäädä esikoulutettuja malleja – JumpStartin avulla voit hienosäätää esikoulutettuja malleja ilman, että sinun tarvitsee kirjoittaa omaa harjoitusalgoritmiasi. ML:ssä kutsutaan kykyä siirtää yhdeltä alueelta opittua tietoa toiselle alueelle siirrä oppimista. Voit käyttää siirtooppimista tuottaaksesi tarkkoja malleja pienemmille tietojoukoillesi paljon alhaisemmilla koulutuskustannuksilla kuin alkuperäisen mallin koulutuksessa. JumpStart sisältää myös suosittuja LightGBM-, CatBoost-, XGBoost- ja Scikit-learni-pohjaisia ​​harjoitusalgoritmeja, joita voit harjoitella alusta alkaen taulukkoregressiota ja luokittelua varten.
  • Käytä valmiita ratkaisuja – JumpStart tarjoaa 17 ratkaisua yleisiin ML-käyttötapauksiin, kuten kysynnän ennustamiseen sekä teollisuus- ja taloussovelluksiin, jotka voit ottaa käyttöön vain muutamalla napsautuksella. Ratkaisut ovat päästä päähän ML-sovelluksia, jotka yhdistävät erilaisia ​​AWS-palveluita tietyn yrityskäyttötilanteen ratkaisemiseksi. He käyttävät AWS-pilven muodostuminen mallit ja viitearkkitehtuurit nopeaa käyttöönottoa varten, mikä tarkoittaa, että ne ovat täysin muokattavissa.
  • Katso muistikirjan esimerkkejä SageMaker-algoritmeista – SageMaker tarjoaa joukon sisäänrakennettuja algoritmeja, jotka auttavat datatieteilijöitä ja ML-harjoittajia pääsemään nopeasti alkuun ML-mallien koulutuksessa ja käyttöönotossa. JumpStart tarjoaa mallimuistikirjoja, joiden avulla voit käyttää näitä algoritmeja nopeasti.
  • Katso koulutusvideot ja blogit – JumpStart tarjoaa myös lukuisia blogikirjoituksia ja videoita, jotka opettavat käyttämään SageMakerin eri toimintoja.

JumpStart hyväksyy mukautetut VPC-asetukset ja AWS-avainhallintapalvelu (AWS KMS) -salausavaimia, jotta voit käyttää saatavilla olevia malleja ja ratkaisuja turvallisesti yritysympäristössäsi. Voit siirtää suojausasetukset JumpStartiin Studiossa tai SageMaker Python SDK:n kautta.

Tekstin luominen, GPT-2 ja Bloom

Tekstin luominen on tehtävä tekstin tuottamiseksi, joka on sujuvaa ja näyttää erottumattomalta ihmisen kirjoittamasta tekstistä. Se tunnetaan myös nimellä luonnollinen kielen sukupolvi.

GPT-2 on suosittu muuntajapohjainen tekstin luontimalli. Se on valmiiksi koulutettu suurelle raaka-englanninkieliselle tekstille ilman ihmisen merkintöjä. Se on koulutettu tehtävään, jossa osittaisen sekvenssin (lauseen tai tekstin) perusteella mallin on ennakoitava sekvenssin seuraava sana tai merkki.

Bloom on myös muuntajapohjainen tekstin generointimalli ja se on koulutettu samalla tavalla kuin GPT-2. Bloomilla on kuitenkin esikoulutus 46 eri kielellä ja 13 ohjelmointikielellä. Seuraavassa on esimerkki tekstin luomisesta Bloom-mallilla:

Input: "Some people like dogs, some people like cats"
Output: "Some people like dogs, some people like cats some people like birds, some people like fish,"

Ratkaisun yleiskatsaus

Seuraavat osiot tarjoavat vaiheittaisen esittelyn päätelmien tekemiseen sekä Studion käyttöliittymän että JumpStart-sovellusliittymien kautta. Käymme läpi seuraavat vaiheet:

  1. Käytä JumpStartia Studio-käyttöliittymän kautta ottaaksesi käyttöön ja suorittaaksesi päätelmiä esikoulutetusta mallista.
  2. Käytä JumpStartia ohjelmallisesti SageMaker Python SDK:n kanssa esiopetetun mallin käyttöönottamiseksi ja päättelyn suorittamiseksi.

Käytä JumpStartia Studio-käyttöliittymän kautta ja suorita päättely esikoulutetulla mallilla

Tässä osiossa esittelemme, kuinka JumpStart-malleja koulutetaan ja otetaan käyttöön Studio-käyttöliittymän kautta.

Seuraava video näyttää, kuinka löydät valmiiksi koulutetun tekstin luontimallin JumpStartista ja otat sen käyttöön. Mallisivulla on arvokasta tietoa mallista ja sen käytöstä. Voit ottaa käyttöön mitä tahansa JumpStartissa saatavilla olevista esikoulutetuista malleista. Päätelmiä varten valitsemme ml.p3.2xlarge ilmentymän tyypin, koska se tarjoaa GPU-kiihdytyksen, joka tarvitaan alhaiseen päättelyviiveeseen alhaisella hinnalla. Kun olet määrittänyt SageMaker-isännöintiesiintymän, valitse Sijoittaa. Voi kestää 20–25 minuuttia, ennen kuin pysyvä päätepisteesi on käytössä.

Kun päätepisteesi on toiminnassa, se on valmis vastaamaan päättelypyyntöihin!

Päätelmien tekemiseen kuluvan ajan nopeuttamiseksi JumpStart tarjoaa mallimuistikirjan, joka näyttää, kuinka voit suorittaa päätelmiä juuri käyttöön otetulle päätepisteelle. Valita Avaa Muistikirja varten Käytä Endpointia Studiosta.

Käytä JumpStartia ohjelmallisesti SageMaker SDK:n kanssa

Edellisessä osiossa näytimme, kuinka voit käyttää JumpStart-käyttöliittymää esiopetetun mallin vuorovaikutteiseen käyttöön muutamalla napsautuksella. Voit kuitenkin käyttää JumpStartin malleja myös ohjelmallisesti käyttämällä SageMaker SDK:hen integroituja API:ita.

Tässä osiossa käymme läpi nopean esimerkin siitä, kuinka voit toistaa edellisen prosessin SageMaker SDK:lla. Valitsemme JumpStartissa sopivan esiopetetun mallin, otamme tämän mallin käyttöön SageMaker-päätepisteeseen ja suoritamme päätelmän käyttöönotetusta päätepisteestä. Kaikki tämän esittelyn vaiheet ovat saatavilla mukana tulevassa muistikirjassa Johdatus JumpStartiin – Tekstin luominen.

Ota esikoulutettu malli käyttöön

SageMaker on alusta, joka käyttää laajasti Docker-säilöjä rakentamiseen ja ajonaikaisiin tehtäviin. JumpStart käyttää saatavilla olevaa kehyskohtaista SageMaker Deep Learning -säiliöt (DLC:t). Haemme ensin mahdolliset lisäpaketit sekä komentosarjat valitun tehtävän koulutusta ja päätelmiä varten. Lopuksi esiopetetut malliesineet haetaan erikseen model_uris, joka tarjoaa alustalle joustavuutta. Voit käyttää mitä tahansa mallia, jotka on esikoulutettu samaan tehtävään yhdellä päättelykomentosarjalla. Katso seuraava koodi:

model_id, model_version = "huggingface-textgeneration-bloom-560m", "*"

# 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 inference script uri
deploy_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="inference")

base_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="inference")

Bloom on erittäin suuri malli, ja sen käyttöönotto voi kestää 20–25 minuuttia. Voit myös käyttää pienempää mallia, kuten GPT-2. Jos haluat ottaa käyttöön esikoulutetun GPT-2-mallin, voit määrittää model_id = huggingface-textgeneration-gpt2. Luettelo muista JumpStartissa saatavilla olevista malleista on kohdassa JumpStart Saatavilla oleva mallitaulukko.

Seuraavaksi syötämme resurssit a SageMaker malli esiintyy ja ota käyttöön päätepiste:

# Create the SageMaker model instance
model = Model(
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    model_data=base_model_uri,
    entry_point="inference.py",  # entry point file in source_dir and present in deploy_source_uri
    role=aws_role,
    predictor_cls=Predictor,
    name=endpoint_name,
)

# deploy the Model. 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.
base_model_predictor = model.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    predictor_cls=Predictor,
    endpoint_name=endpoint_name,
)

Kun mallimme on otettu käyttöön, voimme saada siitä ennusteita reaaliajassa!

Suorita johtopäätös

Seuraava koodinpätkä antaa sinulle välähdyksen siitä, miltä lähdöt näyttävät. Pyyntöjen lähettäminen käyttöönotetulle mallille on syötettävä kohtaan a utf-8 koodatussa muodossa.

def query(model_predictor, text):
    """Query the model predictor."""

    encoded_text = json.dumps(text).encode("utf-8")

    query_response = model_predictor.predict(
        encoded_text,
        {
            "ContentType": "application/x-text",
            "Accept": "application/json",
        },
    )
    return query_response

Päätepisteen vastaus on JSON-objekti, joka sisältää syöttötekstin ja sen jälkeen luodun tekstin:

def parse_response(query_response):
    """Parse response and return the generated text."""

    model_predictions = json.loads(query_response)
    generated_text = model_predictions["generated_text"]
    return generated_text
    
text = "Some people like dogs, some people like cats"
query_response = query(model_predictor, text)
parse_response(query_response)

Tuotosemme on seuraava:

"Some people like dogs, some people like cats some people like birds, some people like fish,"

Yhteenveto

Tässä viestissä osoitimme, kuinka esiopetettu tekstin luontimalli otetaan käyttöön JumpStartin avulla. Voit suorittaa tämän ilman koodin kirjoittamista. Kokeile ratkaisua itse ja lähetä meille kommenttisi. Saat lisätietoja JumpStartista ja siitä, kuinka voit käyttää avoimen lähdekoodin esikoulutettuja malleja moniin muihin ML-tehtäviin, tutustu seuraavaan AWS re:Invent 2020 -video.


Tietoja Tekijät

Suorita tekstin luominen GPT- ja Bloom-malleilla Amazon SageMaker JumpStart PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Tohtori Vivek Madan on soveltuva tutkija Amazon SageMaker JumpStart -tiimin kanssa. Hän sai tohtorin tutkinnon Illinoisin yliopistosta Urbana-Champaignissa ja oli tutkijatohtorina Georgia Techissä. Hän on aktiivinen koneoppimisen ja algoritmisuunnittelun tutkija ja julkaissut julkaisuja EMNLP-, ICLR-, COLT-, FOCS- ja SODA-konferensseissa.

Suorita tekstin luominen GPT- ja Bloom-malleilla Amazon SageMaker JumpStart PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Santosh Kulkarni on Enterprise Solutions -arkkitehti Amazon Web Servicesissä, joka työskentelee urheiluasiakkaiden kanssa Australiassa. Hän on intohimoinen rakentaa laajamittaisia ​​hajautettuja sovelluksia liiketoiminnan ongelmien ratkaisemiseksi käyttämällä tietämystään AI/ML:stä, big datasta ja ohjelmistokehityksestä.

Suorita tekstin luominen GPT- ja Bloom-malleilla Amazon SageMaker JumpStart PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Tohtori Ashish Khetan on vanhempi soveltuva tutkija, jolla on sisäänrakennetut Amazon SageMaker -algoritmit ja auttaa kehittämään koneoppimisalgoritmeja. Hän sai tohtorin tutkinnon Illinois Urbana Champaignin yliopistosta. Hän on aktiivinen koneoppimisen ja tilastollisen päättelyn tutkija ja on julkaissut useita artikkeleita NeurIPS-, ICML-, ICLR-, JMLR-, ACL- ja EMNLP-konferensseissa.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen