Paranna generatiivisten kielimallien suorituskykyä itsejohdonmukaisuuskehotteilla Amazon Bedrockissa | Amazon Web Services

Paranna generatiivisten kielimallien suorituskykyä itsejohdonmukaisuuskehotteilla Amazon Bedrockissa | Amazon Web Services

Generatiiviset kielimallit ovat osoittautuneet huomattavan taitaviksi ratkaisemaan loogisia ja analyyttisiä luonnollisen kielen käsittelyn (NLP) tehtäviä. Lisäksi käyttö nopea suunnittelu voivat parantaa suorituskykyään huomattavasti. Esimerkiksi, ajatusketju (CoT) tiedetään parantavan mallin kykyä monimutkaisiin monivaiheisiin ongelmiin. Lisätäksesi tarkkuutta tehtävissä, joihin liittyy päättelyä, a itsejohdonmukaisuus on ehdotettu kannustavaa lähestymistapaa, joka korvaa ahneuden stokastisella dekoodauksella kielen luomisen aikana.

Amazonin kallioperä on täysin hallittu palvelu, joka tarjoaa valikoiman tehokkaita perusmalleja johtavilta tekoälyyrityksiltä ja Amazonilta yhden API:n kautta sekä laajan valikoiman ominaisuuksia generatiivinen tekoäly sovelluksia, joissa on turvallisuus, yksityisyys ja vastuullinen tekoäly. Kanssa eräpäätelmä API, voit käyttää Amazon Bedrockia tehdäksesi johtopäätöksiä perusmalleista erissä ja saada vastauksia tehokkaammin. Tämä viesti näyttää, kuinka itsejohdonmukaisuuskehote voidaan ottaa käyttöön eräpäätelmän avulla Amazon Bedrockissa mallin suorituskyvyn parantamiseksi aritmeettisissa ja monivalintatehtävissä.

Katsaus ratkaisuun

Kielimallien itsejohdonmukaisuuskehotus perustuu useiden vastausten luomiseen, jotka yhdistetään lopulliseksi vastaukseksi. Toisin kuin yhden sukupolven lähestymistavat, kuten CoT, itsekonsistenssin näyte-ja marginalisoi -menettely luo joukon mallin täydennyksiä, jotka johtavat johdonmukaisempaan ratkaisuun. Erilaisten vastausten generointi annetulle kehotteelle on mahdollista johtuen stokastisen, ei ahneen, dekoodausstrategian käytöstä.

Seuraavassa kuvassa näkyy, kuinka itsejohdonmukaisuus eroaa ahneesta CoT:sta siinä, että se tuottaa erilaisia ​​päättelypolkuja ja aggregoi ne lopullisen vastauksen tuottamiseksi.

Erot itsejohdonmukaisuuden ja CoT-kehotuksen välillä.

Dekoodausstrategiat tekstin luomiseen

Vain dekooderin kielimalleilla luotu teksti avautuu sana sanalta, ja seuraava merkki ennustetaan edellisen kontekstin perusteella. Tietylle kehotteelle malli laskee todennäköisyysjakauman, joka ilmaisee todennäköisyyden, että jokainen merkki ilmestyy seuraavana sekvenssissä. Dekoodaukseen kuuluu näiden todennäköisyysjakaumien kääntäminen todelliseksi tekstiksi. Tekstin luomista välittää joukko päättelyparametreja jotka ovat usein itse dekoodausmenetelmän hyperparametreja. Yksi esimerkki on lämpötila, joka moduloi seuraavan tokenin todennäköisyysjakaumaa ja vaikuttaa mallin tulosteen satunnaisuuteen.

Ahne dekoodaus on deterministinen dekoodausstrategia, joka jokaisessa vaiheessa valitsee tokenin suurimmalla todennäköisyydellä. Vaikka lähestymistapa on suoraviivainen ja tehokas, se saattaa joutua toistuviin malleihin, koska se jättää huomiotta laajemman todennäköisyysavaruuden. Lämpötilaparametrin asettaminen arvoon 0 johtopäätöshetkellä vastaa olennaisesti ahneen dekoodauksen toteuttamista.

Näytteenotto tuo stokastisuuden dekoodausprosessiin valitsemalla satunnaisesti jokaisen seuraavan merkin ennustetun todennäköisyysjakauman perusteella. Tämä satunnaisuus johtaa suurempaan ulostulon vaihteluun. Stokastinen dekoodaus osoittautuu taitavammaksi sieppaamaan potentiaalisten tulosten monimuotoisuutta ja tuottaa usein mielikuvituksellisia vastauksia. Korkeammat lämpötila-arvot aiheuttavat enemmän vaihteluita ja lisäävät mallin vasteen luovuutta.

Kehotustekniikat: CoT ja itsejohdonmukaisuus

Kielimallien päättelykykyä voidaan lisätä nopealla suunnittelulla. Erityisesti CoT:n on osoitettu herättää päättelyä monimutkaisissa NLP-tehtävissä. Yksi tapa toteuttaa a nolla-laukaus CoT on nopean lisäyksen kautta ohjeella "ajattele askel askeleelta". Toinen on paljastaa malli esimerkeille välivaiheen päättelyvaiheista muutaman laukauksen kehotus muoti. Molemmat skenaariot käyttävät tyypillisesti ahneita dekoodauksia. CoT johtaa merkittäviin suorituskyvyn parannuksiin verrattuna yksinkertaisiin ohjekehotuksiin aritmeettisissa, järkeissä ja symbolisissa päättelytehtävissä.

Itsejohdonmukaisuuden kehotus perustuu oletukseen, että monimuotoisuuden tuominen päättelyprosessiin voi olla hyödyllistä auttaa malleja lähentymään oikeaan vastaukseen. Tekniikka käyttää stokastista dekoodausta tämän tavoitteen saavuttamiseksi kolmessa vaiheessa:

  1. Kehota kielimallia CoT-esimerkeillä herättääksesi päättelyä.
  2. Korvaa ahne dekoodaus näytteenottostrategialla luodaksesi erilaisia ​​päättelypolkuja.
  3. Yhdistele tulokset löytääksesi johdonmukaisimman vastauksen vastausjoukosta.

Itsejohdonmukaisuuden on osoitettu päihittävän CoT-kehotteen suosituilla aritmeettisilla ja järkeillä olevilla vertailuarvoilla. Lähestymistavan rajoituksena on sen korkeammat laskentakustannukset.

Tämä viesti osoittaa, kuinka itsejohdonmukaisuuskehotus parantaa generatiivisten kielimallien suorituskykyä kahdessa NLP-päättelytehtävässä: aritmeettinen ongelmanratkaisu ja monivalintatoimialuekohtaisten kysymysten vastaaminen. Esittelemme lähestymistapaa käyttämällä eräpäätelmää Amazon Bedrockissa:

  • Käytämme Amazon Bedrock Python SDK:ta JupyterLabissa Amazon Sage Maker muistikirjan esimerkki.
  • Aritmeettista päättelyä varten pyydämme Cohere Command luokkakoulun matemaattisten ongelmien GSM8K-tietojoukossa.
  • Monivalintaperusteluissa kysymme AI21 Labs Jurassic-2 Mid pienessä otoksessa AWS Certified Solutions Architect – Associate -kokeen kysymyksiä.

Edellytykset

Tämä esittely edellyttää seuraavat edellytykset:

Hallinnoi mallin käyttöä Amazon Bedrockissa

Tässä viestissä näytetyn koodin suorittamisen arvioitu hinta on 100 dollaria, olettaen, että suoritat itsejohdonmukaisen kehotteen kerran 30 päättelypolulla käyttämällä yhtä arvoa lämpötilapohjaisessa näytteenotossa.

Tietojoukko aritmeettisen päättelyn kykyjen tutkimiseen

GSM8K on tietojoukko ihmisten kokoamista peruskoulun matemaattisista ongelmista, joissa on suuri kielellinen monimuotoisuus. Jokaisen tehtävän ratkaiseminen vaatii 2–8 vaihetta ja vaatii sarjan peruslaskutoimituksia aritmeettisten perusoperaatioiden kanssa. Näitä tietoja käytetään yleisesti generatiivisten kielimallien monivaiheisen aritmeettisen päättelyn kykyjen vertailuun. The GSM8K junasarja sisältää 7,473 XNUMX tietuetta. Seuraava on esimerkki:

{"question": "Natalia sold clips to 48 of her friends in April, and then she sold half as many clips in May. How many clips did Natalia sell altogether in April and May?", "answer": "Natalia sold 48/2 = <<48/2=24>>24 clips in May.nNatalia sold 48+24 = <<48+24=72>>72 clips altogether in April and May.n#### 72"}

Määritä suorittamaan eräpäättely Amazon Bedrockilla

Eräpäätelmän avulla voit suorittaa useita johtopäätöskutsuja Amazon Bedrockille asynkronisesti ja parantaa mallin päättelyn suorituskykyä suurilla tietojoukoilla. Palvelu on esikatselussa tätä kirjoitettaessa ja saatavilla vain API:n kautta. Viitata Suorita eräpäätelmä päästäksesi eräpäätelmien sovellusliittymiin mukautettujen SDK:iden kautta.

Kun olet ladannut ja purkanut Python SDK SageMaker-muistikirjan ilmentymässä voit asentaa sen suorittamalla seuraavan koodin Jupyter-muistikirjan solussa:

# Install preview SDK packages
!pip install -q $(ls ./bedrock-python-sdk-reinvent/botocore-*.whl | head -1)
!pip install -q $(ls ./bedrock-python-sdk-reinvent/boto3-*.whl | head -1)

Muotoile ja lataa syöttötiedot Amazon S3:een

Eräpäätelmän syöttötiedot on valmisteltava JSONL-muodossa recordId ja modelInput avaimet. Jälkimmäisen tulee vastata Amazon Bedrockissa käytettävän mallin runkokenttää. Erityisesti jotkut tuetut päättelyparametrit Cohere Commandille olemme temperature satunnaisuuden vuoksi, max_tokens lähtöpituudelle ja num_generations luodaksesi useita vastauksia, jotka kaikki välitetään yhdessä prompt as modelInput:

data = [
    {
        "recordId": "1",
        "modelInput": {
            "prompt": prompt,
            "temperature": temperature,
            "max_tokens": max_tokens,
            "num_generations": n,
        },
    },
    ...,
]

nähdä Perustusmallien päättelyparametrit lisätietoja, mukaan lukien muut mallintoimittajat.

Aritmeettisen päättelyn kokeilumme suoritetaan muutaman otoksen asetuksella ilman mukauttamista tai hienosäätöä Cohere-komentoa. Käytämme samaa sarjaa kahdeksaa muutaman otoksen esimerkkiä ajatusketjusta (Taulukko 20) ja itsejohdonmukaisuus (Taulukko 17) paperit. Kehotteet luodaan ketjuttamalla esimerkit jokaisen kysymyksen kanssa GSM8K-junajoukosta.

Asetamme max_tokens 512 ja num_generations 5:een, Cohere Commandin sallimaan enimmäismäärään. Ahneelle dekoodaukselle asetimme temperature 0:ksi ja itseyhdenmukaisuuden vuoksi suoritamme kolme koetta lämpötiloissa 0.5, 0.7 ja 1. Jokainen asetus tuottaa eri syöttödataa vastaavien lämpötila-arvojen mukaan. Tiedot muotoillaan JSONL-muodossa ja tallennetaan Amazon S3:een.

# Set up S3 client
session = boto3.Session()
s3 = session.client("s3")

# Create S3 bucket with unique name to store input/output data
suffix = str(uuid.uuid4())[:8]
bucket = f"bedrock-self-consistency-{suffix}"
s3.create_bucket(
    Bucket=bucket, CreateBucketConfiguration={"LocationConstraint": session.region_name}
)

# Process data and output to new lines as JSONL
input_key = f"gsm8k/T{temperature}/input.jsonl"
s3_data = ""
for row in data:
    s3_data += json.dumps(row) + "n"
s3.put_object(Body=s3_data, Bucket=bucket, Key=input_key)

Luo ja suorita eräpäättelytöitä Amazon Bedrockissa

Eräpäättelytyön luominen vaatii Amazon Bedrock -asiakkaan. Määritämme S3-tulo- ja lähtöpolut ja annamme jokaiselle kutsutyölle yksilöllisen nimen:

# Create Bedrock client							    
bedrock = boto3.client("bedrock")

# Input and output config						     
input_config = {"s3InputDataConfig": {"s3Uri": f"s3://{bucket}/{input_key}"}}
output_config = {"s3OutputDataConfig": {"s3Uri": f"s3://{bucket}/{output_key}"}}

# Create a unique job name
suffix = str(uuid.uuid4())[:8] 
job_name = f"command-batch-T{temperature}-{suffix}"

Työpaikat ovat luotu välittämällä IAM-roolin, mallin tunnuksen, työn nimen ja syöttö-/tulostusmääritykset parametreina Amazon Bedrock API:lle:

response = bedrock.create_model_invocation_job(
    roleArn=f"arn:aws:iam::{account_id}:role/BedrockBatchInferenceRole",
    modelId="cohere.command-text-v14",
    jobName=job_name,
    inputDataConfig=input_config,
    outputDataConfig=output_config,
)
job_arn = response["jobArn"]

listaus, seurantaja pysäyttäminen eräpäätelmätöitä tukevat niiden vastaavat API-kutsut. Luomisen yhteydessä työpaikat näkyvät ensin nimellä Submitted, niin kuin InProgress, ja lopuksi as Stopped, Failedtai Completed.

# Get job details
job_details = bedrock.get_model_invocation_job(jobIdentifier=job_arn)

Jos työt on suoritettu onnistuneesti, luotu sisältö voidaan hakea Amazon S3:sta käyttämällä sen ainutlaatuista tulostuspaikkaa.

# Get the output file key
s3_prefix = f"s3://{bucket}/"
output_path = job_details["outputDataConfig"]["s3OutputDataConfig"]["s3Uri"].replace(
    s3_prefix, ""
)
output_folder = job_details["jobArn"].split("/")[1]
output_file = (
    f'{job_details["inputDataConfig"]["s3InputDataConfig"]["s3Uri"].split("/")[-1]}.out'
)
result_key = f"{output_path}{output_folder}/{output_file}"

# Get output data
obj = s3.get_object(Bucket=bucket, Key=result_key)
content = obj["Body"].read().decode("utf-8").strip().split("n")

# Show answer to the first question
print(json.loads(content[0])["modelOutput"]["generations"][0]["text"])

[Out]: 'Natalia sold 48 * 1/2 = 24 clips less in May. This means she sold 48 + 24 = 72 clips in April and May. The answer is 72.'

Itsejohdonmukaisuus parantaa mallin tarkkuutta aritmeettisissa tehtävissä

Cohere Commandin itsejohdonmukaisuuskehote ylittää GSM8K-tietojoukon tarkkuuden suhteen ahneesta CoT-perusviivasta. Itsejohdonmukaisuuden vuoksi otamme näytteitä 30 itsenäisestä päättelypolusta kolmessa eri lämpötilassa, kanssa topP ja topK asettaa heidän oletusarvot. Lopulliset ratkaisut yhdistetään valitsemalla enemmistöäänestyksellä johdonmukaisin tapaus. Tasatilanteessa valitsemme satunnaisesti yhden enemmistön vastauksista. Laskemme tarkkuuden ja keskihajonnan arvot 100 ajon aikana.

Seuraavassa kuvassa näkyy Cohere Commandin GSM8K-tietojoukon tarkkuus, jota kehotetaan ahneella CoT:lla (sininen) ja itseyhdenmukaisuudella lämpötila-arvoilla 0.5 (keltainen), 0.7 (vihreä) ja 1.0 (oranssi) näytteiden lukumäärän funktiona. päättelypolkuja.

Cohere-komennon tarkkuus käyttämällä itsejohdonmukaisuutta vs. CoT-kehotteita.

Edellinen kuva osoittaa, että itseyhdenmukaisuus parantaa aritmeettista tarkkuutta ahneeseen CoT:hen verrattuna, kun näytteitettyjä polkuja on vain kolme. Suorituskyky kasvaa johdonmukaisesti uusien päättelypolkujen myötä, mikä vahvistaa monimuotoisuuden tuomisen tärkeyden ajattelun sukupolveen. Cohere Command ratkaisee GSM8K-kysymysjoukon 51.7 %:n tarkkuudella, kun sitä pyydetään CoT:llä, verrattuna 68 %:iin 30 itsejohdonmukaisella päättelypolulla arvolla T=1.0. Kaikki kolme tutkittua lämpötila-arvoa antavat samanlaisia ​​tuloksia, ja alhaisemmat lämpötilat ovat verrattain tehokkaampia vähemmän näytteitä otetuilla reiteillä.

Käytännön huomioita tehokkuudesta ja kustannuksista

Itsejohdonmukaisuutta rajoittaa lisääntynyt vasteaika ja kustannukset, jotka aiheutuvat generoitaessa useita lähtöjä kehotetta kohti. Käytännön esimerkkinä, eräpäättely ahneelle sukupolvelle Cohere Commandilla 7,473 8 GSM20K-tietueelle valmistui alle 5.5 minuutissa. Työ vei 630,000 miljoonaa tokenia syötteenä ja tuotti XNUMX XNUMX tulostetta. Tällä hetkellä Amazon Bedrockin päättelyhinnat, aiheutuneet kokonaiskustannukset olivat noin 9.50 dollaria.

Käytämme päättelyparametria, jotta se olisi johdonmukainen Cohere Commandin kanssa num_generations luodaksesi useita täydennyksiä kehotteeseen. Tätä kirjoittaessa Amazon Bedrock sallii enintään viisi sukupolvea ja kolme samanaikaista Submitted eräpäättelytyöt. Työt etenevät InProgress tila peräkkäin, joten useamman kuin viiden polun näytteistys vaatii useita kutsuja.

Seuraava kuva näyttää Cohere Commandin suoritusajat GSM8K-tietojoukossa. Kokonaisajoaika näytetään x-akselilla ja ajonaika näytettyä päättelypolkua kohti y-akselilla. Ahne sukupolvi toimii lyhyimmässä ajassa, mutta siitä aiheutuu korkeammat aikakustannukset näytteistettyä polkua kohden.

Suoritusajat Cohere Commandille

Ahne sukupolvi valmistuu alle 20 minuutissa koko GSM8K-sarjalle ja ottaa näytteitä ainutlaatuisesta päättelypolusta. Viiden näytteen itsejohdonmukaisuus vaatii noin 50 % pidempään valmistumiseen ja maksaa noin 14.50 dollaria, mutta tuottaa viisi polkua (yli 500 %) tässä ajassa. Kokonaisajoaika ja -kustannukset kasvavat asteittain jokaisella viidellä ylimääräisellä näytepolulla. Kustannus-hyötyanalyysi viittaa siihen, että 1–2 eräpäättelytyötä, joissa on 5–10 näytepolkua, on suositeltava asetus itsejohdonmukaisuuden käytännön toteuttamiseen. Tämä parantaa mallin suorituskykyä pitäen samalla kustannukset ja viiveet loitolla.

Itsejohdonmukaisuus parantaa mallin suorituskykyä aritmeettisen päättelyn lisäksi

Olennainen kysymys itsekonsistenssin sopivuuden osoittamiseksi on onnistuuko menetelmä muissa NLP-tehtävissä ja kielimalleissa. Amazoniin liittyvän käyttötapauksen laajennuksena suoritamme pienikokoisen analyysin mallikysymyksistä AWS Solutions Architect Associate -sertifikaatti. Tämä on monivalintakoe AWS-tekniikasta ja -palveluista, joka vaatii verkkotunnuksen tuntemusta ja kykyä perustella ja päättää useista vaihtoehdoista.

Valmistelemme tietojoukon SAA-C01 ja SAA-C03 esimerkki koekysymyksistä. 20 käytettävissä olevasta kysymyksestä käytämme neljää ensimmäistä muutaman otoksen esimerkkinä ja kehotamme mallia vastaamaan jäljellä oleviin 4:een. Tällä kertaa teemme päättelyn AI16 Labs Jurassic-21 Mid -mallilla ja luomme enintään 2 päättelypolkua osoitteessa lämpötila 10. Tulokset osoittavat, että itsejohdonmukaisuus parantaa suorituskykyä: vaikka ahne CoT tuottaa 0.7 oikeaa vastausta, itsejohdonmukaisuus onnistuu kahdella muulla.

Seuraavassa taulukossa esitetään tarkkuustulokset 5 ja 10 näytteitetylle polulle keskiarvotettuna 100 ajon aikana.

. Ahne dekoodaus T = 0.7
# näytepolkua: 5 68.6 74.1 0.7 ±
# näytepolkua: 10 68.6 78.9 ± 0.3

Seuraavassa taulukossa esittelemme kaksi koekysymystä, joihin ahne CoT vastaa väärin, kun taas itsejohdonmukaisuus onnistuu, korostaen kussakin tapauksessa oikeat (vihreät) tai väärät (punainen) päättelyjäljet, jotka saivat mallin tuottamaan oikeita tai vääriä vastauksia. Vaikka jokainen itseyhdenmukaisuuden luoma näytepolku ei ole oikea, suurin osa konvergoi oikeaan vastaukseen näytteistettyjen polkujen määrän kasvaessa. Havaitsemme, että 5–10 polkua riittää tyypillisesti parantamaan ahneita tuloksia, ja tehokkuuden tuotto laskee näiden arvojen yli.

Kysymys

Verkkosovelluksen avulla asiakkaat voivat ladata tilauksia S3-ämpäriin. Tuloksena olevat Amazon S3 -tapahtumat laukaisevat Lambda-toiminnon, joka lisää viestin SQS-jonoon. Yksittäinen EC2-ilmentymä lukee viestit jonosta, käsittelee ne ja tallentaa ne DynamoDB-taulukkoon, joka on osioitu ainutlaatuisella tilaustunnuksella. Ensi kuussa liikenteen odotetaan lisääntyvän 10-kertaiseksi, ja Solutions Architect tarkastelee arkkitehtuuria mahdollisten skaalausongelmien varalta.

Mikä komponentti tarvitsee todennäköisimmin uudelleenarkkitehtuuria voidakseen skaalata uuden liikenteen mukaiseksi?

A. Lambdatoiminto
B. SQS-jono
C. EC2-esiintymä
D. DynamoDB-taulukko

AWS:llä toimiva sovellus käyttää Amazon Aurora Multi-AZ DB -klusterin käyttöönottoa tietokannassaan. Suorituskykymittauksia arvioidessaan ratkaisuarkkitehti havaitsi, että tietokannan lukemat aiheuttavat korkean I/O:n ja lisäävät viivettä tietokantaan kohdistuviin kirjoituspyyntöihin.

Mitä ratkaisuarkkitehdin tulisi tehdä erottaakseen lukupyynnöt kirjoituspyynnöistä?

A. Ota käyttöön välimuisti Aurora-tietokannassa.
B. Päivitä sovellus lukemaan Multi-AZ-valmiustilan ilmentymää.
C. Luo Aurora-replika ja muokkaa sovellusta käyttämään asianmukaisia ​​päätepisteitä.
D. Luo toinen Aurora-tietokanta ja linkitä se ensisijaiseen tietokantaan lukukopiona.

Oikea vastaus C – Yksittäinen EC2-ilmentymä ei skaalaudu, ja se on yksittäinen vikapiste arkkitehtuurissa. Paljon parempi ratkaisu olisi, että EC2-esiintymät automaattisessa skaalausryhmässä kahdessa käytettävyysvyöhykkeessä lukisivat viestejä jonosta. Muut vastaukset ovat kaikki hallittuja palveluita, jotka voidaan määrittää skaalautumaan tai skaalautuvat automaattisesti. C - Aurora-kopiot tarjoavat tavan purkaa lukuliikennettä. Aurora-kopiot jakavat saman taustalla olevan tallennustilan kuin päätietokanta, joten viiveaika on yleensä hyvin pieni. Aurora-kopioilla on omat päätepisteensä, joten sovellus on määritettävä ohjaamaan lukuliikenne uusiin päätepisteisiin.
Ahne dekoodaus EC2-ilmentymän skaalaaminen suoraan ei ehkä ole mahdollista, koska ilmentymän koon muuttaminen ei ehkä ole mahdollista. Lambda-toiminnon skaalaus ei ehkä riitä, koska Lambda-toiminnoilla on 6 Gt:n muistin varausraja. SQS-jonon skaalaaminen ei ehkä riitä, koska SQS:llä on 10,000 XNUMX viestin raja. DynamoDB-taulukoita voidaan skaalata lisäämällä kapasiteettiyksiköitä. Oikea vastaus on D. Sovelluksen muokkaaminen lukemaan Multi-AZ-valmiustilan ilmentymää (vaihtoehto B) on paras tapa. Valmiustilan ilmentymä replikoidaan asynkronisesti ensisijaisesta ilmentymästä, joten lukutoiminnot eivät häiritse kirjoitustoimintoja. Read-through-välimuistin ottaminen käyttöön (vaihtoehto A) tai Aurora-replikan luominen (vaihtoehto C) ei ratkaise I/O-kilpa-ongelmaa. Toisen Aurora-tietokannan luominen ja linkittäminen lukukopioksi (vaihtoehto D) ei myöskään ratkaise I/O-kilpa-ongelmaa. Oikea vastaus on B.
Näytepolku #1 EC2-esiintymän skaalaaminen 10-kertaiseksi sen nykyiseen kokoon ei ehkä ole mahdollista kustannusten tai suorituskyvyn näkökulmasta. Se vaatisi suuremman instanssin, mikä voi olla kallista. Kustannustehokkaampi lähestymistapa voisi olla käyttää parvia pienempiä esiintymiä (esim. Auto Scaling Group) kuorman jakamiseen. Tässä tapauksessa EC2-ilmentymä joudutaan todennäköisesti suunnittelemaan uudelleen. Oikea vastaus on C. Sovelluksen muokkaaminen sopiviin päätepisteisiin ei ole käytännöllinen ratkaisu, koska se vaatisi muutoksia sovelluskoodiin. Oikea vastaus on C: Luo Aurora-kopio ja muokkaa sovellusta käyttämään sopivia päätepisteitä.
Näytepolku #2 Yhden EC2-esiintymän skaalaaminen on vaikeampaa ja ongelmallisempaa kuin muiden palvelukomponenttien skaalaaminen. Amazon SQS, Lambda ja DynamoDB voivat kaikki skaalata automaattisesti selviytymään lisääntyneestä kuormituksesta. Oikea vastaus on C.

(C) Luo Aurora-replika ja muokkaa sovellusta käyttämään sopivia päätepisteitä.

Määrittämällä Aurora Replica voit erottaa lukuliikenteen kirjoitusliikenteestä. Aurora-kopiot käyttävät erilaisia ​​päätepisteiden URL-osoitteita, jonka avulla voit ohjata lukuliikennettä replikaan ensisijaisen tietokannan sijaan. Replika voi käsitellä lukupyyntöjä rinnakkain kirjoituspyyntöjen kanssa ensisijaiseen tietokantaan, mikä vähentää I/O:ta ja latenssia.

Puhdistaa

Eräpäätelmän suorittamisesta Amazon Bedrockissa veloitetaan Amazon Bedrockin hinnoittelun mukaan. Kun suoritat läpikäynnin, poista SageMaker-muistikirjan ilmentymä ja kaikki tiedot S3-säilöistäsi välttääksesi tulevia maksuja.

Huomioita

Vaikka esitelty ratkaisu näyttää parantuneen kielimallien suorituskyvyn, kun sitä kehotetaan itsejohdonmukaisuuteen, on tärkeää huomata, että läpikulku ei ole tuotantovalmis. Ennen kuin otat käyttöön tuotantoon, sinun tulee mukauttaa tämä konseptitodistus omaan toteutuksesi mukaan pitäen mielessä seuraavat vaatimukset:

  • Pääsyrajoitus API:ihin ja tietokantoihin luvattoman käytön estämiseksi.
  • AWS-suojauksen parhaiden käytäntöjen noudattaminen IAM-roolien pääsyn ja suojausryhmien osalta.
  • Käyttäjän syötteiden validointi ja puhdistaminen nopean injektiohyökkäyksen estämiseksi.
  • Käynnistettyjen prosessien seuranta ja kirjaaminen testauksen ja auditoinnin mahdollistamiseksi.

Yhteenveto

Tämä viesti osoittaa, että itsejohdonmukaisuuskehotus parantaa generatiivisten kielimallien suorituskykyä monimutkaisissa NLP-tehtävissä, jotka vaativat aritmeettisia ja monivalintaloogisia taitoja. Itsekonsistenssi käyttää lämpötilapohjaista stokastista dekoodausta erilaisten päättelypolkujen luomiseen. Tämä lisää mallin kykyä herättää monipuolisia ja hyödyllisiä ajatuksia oikeiden vastausten saamiseksi.

Amazon Bedrockin eräpäätelmän avulla kielimalli Cohere Command kehotetaan luomaan itsejohdonmukaisia ​​vastauksia joukkoon aritmeettisia ongelmia. Tarkkuus paranee 51.7 %:sta ahneella dekoodauksella 68 %:iin itseyhtenäisen näytteenoton 30 päättelypolulla arvolla T = 1.0. Viiden polun näytteenotto parantaa tarkkuutta jo 7.5 prosenttiyksikköä. Lähestymistapa on siirrettävissä muihin kielimalleihin ja päättelytehtäviin, kuten AI21 Labs Jurassic-2 Mid -mallin tulokset osoittavat AWS-sertifiointikokeessa. Pienenkokoisessa kysymyssarjassa itsejohdonmukaisuus viiden näytepolun kanssa lisää tarkkuutta 5 prosenttiyksikköä ahneeseen CoT:hen verrattuna.

Suosittelemme ottamaan käyttöön itsejohdonmukaisuuskehotteen suorituskyvyn parantamiseksi omissa sovelluksissasi generatiivisten kielimallien avulla. Lisätietoja: Cohere Command ja AI21 Labs Jurassic malleja saatavilla Amazon Bedrockista. Lisätietoja eräpäätelmästä on kohdassa Suorita eräpäätelmä.

Kiitokset

Kirjoittaja kiittää teknisiä arvioijia Amin Tajgardoonia ja Patrick McSweeneyä hyödyllisestä palautteesta.


kirjailijasta

Paranna generatiivisten kielimallien suorituskykyä itsejohdonmukaisuuskehotteilla Amazon Bedrockissa | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Lucía Santamaría on vanhempi sovellettu tutkija Amazonin ML-yliopistossa, jossa hän on keskittynyt nostamaan ML-kompetenssin tasoa koko yrityksessä käytännön koulutuksen avulla. Lucíalla on tohtorintutkinto astrofysiikassa, ja hän on intohimoinen teknisten tietojen ja työkalujen saatavuuden demokratisoimisesta.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen