Izboljšajte delovanje generativnih jezikovnih modelov s samokonsistentnimi pozivi na Amazon Bedrock | Spletne storitve Amazon

Izboljšajte delovanje generativnih jezikovnih modelov s samokonsistentnimi pozivi na Amazon Bedrock | Spletne storitve Amazon

Generativni jezikovni modeli so se izkazali za izjemno spretne pri reševanju nalog logične in analitične obdelave naravnega jezika (NLP). Poleg tega je uporaba hiter inženiring lahko opazno izboljša njihovo delovanje. na primer veriga misli (CoT) je znano, da izboljša zmogljivost modela za kompleksne večstopenjske probleme. Za dodatno povečanje natančnosti pri nalogah, ki vključujejo sklepanje, a samoskladnost predlagan je bil pristop nagovarjanja, ki med generiranjem jezika nadomesti pohlepno s stohastičnim dekodiranjem.

Amazon Bedrock je v celoti upravljana storitev, ki ponuja izbiro visoko zmogljivih temeljnih modelov vodilnih podjetij z umetno inteligenco in Amazona prek enega samega API-ja, skupaj s širokim naborom zmogljivosti za gradnjo generativni AI aplikacije z varnostjo, zasebnostjo in odgovorno umetno inteligenco. z paketno sklepanje API, lahko uporabite Amazon Bedrock za izvajanje sklepanja s temeljnimi modeli v serijah in učinkovitejše pridobivanje odgovorov. Ta objava prikazuje, kako implementirati pozivanje k samokonsistentnosti prek paketnega sklepanja na Amazon Bedrock za izboljšanje zmogljivosti modela pri nalogah aritmetike in razmišljanja z več izbirami.

Pregled rešitve

Samokonsistentno spodbujanje jezikovnih modelov temelji na ustvarjanju več odgovorov, ki se združijo v končni odgovor. V nasprotju s pristopi ene generacije, kot je CoT, postopek samokonsistentnega vzorčenja in marginaliziranja ustvari vrsto dokončanj modela, ki vodijo do bolj dosledne rešitve. Generiranje različnih odzivov za dani poziv je možno zaradi uporabe stohastične, namesto pohlepne strategije dekodiranja.

Naslednja slika prikazuje, kako se samokonsistentnost razlikuje od pohlepnega CoT v tem, da ustvari raznolik nabor poti razmišljanja in jih združi, da proizvede končni odgovor.

Razlike med samokonsistentnostjo in spodbujanjem CoT.

Strategije dekodiranja za generiranje besedila

Besedilo, ustvarjeno z jezikovnimi modeli samo za dekodirnike, se odvija besedo za besedo, pri čemer je naslednji žeton predviden na podlagi predhodnega konteksta. Za dani poziv model izračuna porazdelitev verjetnosti, ki kaže verjetnost, da se bo vsak žeton pojavil naslednji v zaporedju. Dekodiranje vključuje prevajanje teh porazdelitev verjetnosti v dejansko besedilo. Generiranje besedila posreduje niz parametri sklepanja ki so pogosto hiperparametri same metode dekodiranja. En primer je temperatura, ki modulira porazdelitev verjetnosti naslednjega žetona in vpliva na naključnost izhoda modela.

Pohlepno dekodiranje je deterministična strategija dekodiranja, ki na vsakem koraku izbere žeton z največjo verjetnostjo. Čeprav je pristop enostaven in učinkovit, tvega, da bo zapadel v ponavljajoče se vzorce, ker ne upošteva širšega verjetnostnega prostora. Nastavitev temperaturnega parametra na 0 v času sklepanja je v bistvu enaka izvajanju pohlepnega dekodiranja.

Vzorčenje uvaja stohastičnost v proces dekodiranja tako, da naključno izbere vsak naslednji žeton na podlagi predvidene porazdelitve verjetnosti. Posledica te naključnosti je večja variabilnost izhoda. Stohastično dekodiranje se izkaže za bolj spretno pri zajemanju raznolikosti potencialnih rezultatov in pogosto daje bolj domiselne odzive. Višje vrednosti temperature povzročijo več nihanj in povečajo ustvarjalnost odziva modela.

Tehnike spodbujanja: CoT in samokonsistentnost

Sposobnost sklepanja jezikovnih modelov je mogoče povečati s hitrim inženiringom. Izkazalo se je zlasti, da CoT izvabiti sklepanje pri kompleksnih NLP nalogah. Eden od načinov izvajanja a ničelni strel CoT je prek takojšnjega povečanja z navodili za »razmišljanje korak za korakom«. Drugi je izpostaviti model zgledom vmesnih korakov razmišljanja nagovarjanje z nekaj streli moda. Oba scenarija običajno uporabljata požrešno dekodiranje. CoT vodi do znatnih izboljšav zmogljivosti v primerjavi s preprostimi navodili za aritmetične, zdravorazumske in simbolične sklepne naloge.

Spodbujanje samoskladnosti temelji na predpostavki, da je lahko uvedba raznolikosti v proces razmišljanja koristna za pomoč modelom, da se zbližajo pri pravilnem odgovoru. Tehnika uporablja stohastično dekodiranje za dosego tega cilja v treh korakih:

  1. Pozovite jezikovni model z zgledi CoT, da izvabite sklepanje.
  2. Zamenjajte pohlepno dekodiranje s strategijo vzorčenja, da ustvarite raznolik nabor poti sklepanja.
  3. Združite rezultate, da najdete najbolj dosleden odgovor v nizu odgovorov.

Dokazano je, da samokonsistentnost prekaša pozive CoT na priljubljenih aritmetičnih in zdravorazumskih merilih. Omejitev pristopa so njegovi višji računski stroški.

Ta objava prikazuje, kako spodbujanje samokonsistentnosti izboljša učinkovitost generativnih jezikovnih modelov pri dveh nalogah razmišljanja NLP: reševanje aritmetičnega problema in odgovarjanje na vprašanja, specifična za domeno z več možnimi izbirami. Pristop prikazujemo z uporabo paketnega sklepanja na Amazon Bedrock:

  • Do Amazon Bedrock Python SDK dostopamo v JupyterLab na Amazon SageMaker primerek prenosnika.
  • Za aritmetično sklepanje pozovemo Ukaz Cohere na naboru podatkov GSM8K o nalogah iz matematike v osnovni šoli.
  • Za razmišljanje z več možnimi možnostmi vas pozovemo AI21 Labs Jurassic-2 Mid na majhnem vzorcu vprašanj iz izpita AWS Certified Solutions Architect – Associate.

Predpogoji

Ta potek predpostavlja naslednje predpogoje:

Upravljajte dostop do modela na Amazon Bedrock

Ocenjeni strošek za zagon kode, prikazane v tej objavi, je 100 USD ob predpostavki, da enkrat zaženete samokonsistentni poziv s 30 potmi sklepanja z uporabo ene vrednosti za vzorčenje na podlagi temperature.

Nabor podatkov za preverjanje zmožnosti aritmetičnega sklepanja

GSM8K je nabor podatkov o osnovnošolskih matematičnih nalogah, ki jih je sestavil človek in se ponaša z visoko jezikovno raznolikostjo. Vsaka težava se reši v 2–8 korakih in zahteva izvedbo zaporedja elementarnih izračunov z osnovnimi aritmetičnimi operacijami. Ti podatki se običajno uporabljajo za primerjavo zmožnosti večstopenjskega aritmetičnega sklepanja generativnih jezikovnih modelov. The Garnitura vlaka GSM8K obsega 7,473 zapisov. Sledi primer:

{"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"}

Nastavite za izvajanje paketnega sklepanja z Amazon Bedrock

Paketno sklepanje vam omogoča asinhrono izvajanje več klicev sklepanja v Amazon Bedrock in izboljšanje učinkovitosti sklepanja modela na velikih nizih podatkov. Storitev je od tega pisanja v predogledu in je na voljo samo prek API-ja. Nanašati se na Zaženi paketno sklepanje za dostop do API-jev za paketno sklepanje prek SDK-jev po meri.

Ko ste prenesli in razpakirali datoteko SDK za Python v primerku prenosnega računalnika SageMaker ga lahko namestite tako, da zaženete naslednjo kodo v celici prenosnega računalnika Jupyter:

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

Formatirajte in naložite vhodne podatke v Amazon S3

Vhodne podatke za paketno sklepanje je treba pripraviti v formatu JSONL z recordId in modelInput ključi. Slednje se mora ujemati s telesnim poljem modela, ki ga želite priklicati na Amazon Bedrock. Zlasti nekateri podprti parametri sklepanja za ukaz Cohere so temperature za naključje, max_tokens za izhodno dolžino in num_generations za ustvarjanje več odgovorov, ki se vsi posredujejo skupaj z prompt as modelInput:

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

Poglej Parametri sklepanja za modele temeljev za več podrobnosti, vključno z drugimi ponudniki modelov.

Naši poskusi z aritmetičnim sklepanjem se izvajajo v nastavitvi nekaj posnetkov brez prilagajanja ali natančnega prilagajanja ukaza Cohere. Uporabljamo isti niz osmih primerov z nekaj posnetki iz verige misli (Tabela 20) in samoskladnost (Tabela 17) papirji. Pozivi so ustvarjeni z združevanjem primerkov z vsakim vprašanjem iz nabora vlakov GSM8K.

Postavili smo max_tokens do 512 in num_generations do 5, kar je največ, ki ga dovoljuje ukaz Cohere. Za požrešno dekodiranje smo nastavili temperature na 0 in za samokonsistentnost izvedemo tri poskuse pri temperaturah 0.5, 0.7 in 1. Vsaka nastavitev daje različne vhodne podatke glede na ustrezne vrednosti temperature. Podatki so oblikovani kot JSONL in shranjeni v Amazon S3.

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

Ustvarite in zaženite opravila paketnega sklepanja v Amazon Bedrock

Ustvarjanje delovnih mest za paketno sklepanje zahteva odjemalca Amazon Bedrock. Določimo vhodne in izhodne poti S3 in vsakemu priklicnemu opravilu damo edinstveno ime:

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

Delovna mesta so ustvaril s posredovanjem vloge IAM, ID-ja modela, imena opravila in vhodno/izhodne konfiguracije kot parametrov API-ju Amazon Bedrock:

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

seznam, spremljanjein ustavljanje opravila paketnega sklepanja podpirajo njihovi ustrezni klici API. Pri ustvarjanju se delovna mesta najprej pojavijo kot Submitted, potem kot InProgress, in končno kot Stopped, Failedali Completed.

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

Če so opravila uspešno zaključena, je ustvarjeno vsebino mogoče pridobiti iz Amazon S3 z uporabo njegove edinstvene izhodne lokacije.

# 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.'

Samokonsistentnost poveča natančnost modela pri aritmetičnih nalogah

Pozivi za samokonsistentnost ukaza Cohere prekašajo požrešno osnovno linijo CoT v smislu natančnosti nabora podatkov GSM8K. Za samokonsistentnost vzorčimo 30 neodvisnih poti razmišljanja pri treh različnih temperaturah, s topP in topK nastavljena na njihovo privzete vrednosti. Končne rešitve se združijo z izbiro najbolj doslednega pojava z večinskim glasovanjem. V primeru neodločenega rezultata naključno izberemo enega od večinskih odgovorov. Izračunamo povprečne vrednosti natančnosti in standardnega odklona v 100 vožnjah.

Naslednja slika prikazuje natančnost nabora podatkov GSM8K iz ukaza Cohere, ki je pozvana s požrešnim CoT (modra) in samokonsistentnostjo pri temperaturnih vrednostih 0.5 (rumena), 0.7 (zelena) in 1.0 (oranžna) kot funkcijo števila vzorčenih poti razmišljanja.

Natančnost ukaza Cohere z uporabo samokonsistentnosti v primerjavi s pozivi CoT.

Prejšnja slika kaže, da samokonsistentnost izboljša aritmetično natančnost v primerjavi s pohlepnim CoT, ko je število vzorčenih poti le tri. Uspešnost se dosledno povečuje z nadaljnjimi potmi sklepanja, kar potrjuje pomen uvajanja raznolikosti v generacijo mišljenja. Cohere Command reši nabor vprašanj GSM8K s 51.7-odstotno natančnostjo ob pozivu s CoT v primerjavi z 68-odstotnim s 30 samokonsistentnimi potmi razmišljanja pri T=1.0. Vse tri raziskane temperaturne vrednosti dajejo podobne rezultate, pri čemer so nižje temperature sorazmerno učinkovitejše pri manj vzorčenih poteh.

Praktični vidiki učinkovitosti in stroškov

Samokonsistentnost je omejena s podaljšanim odzivnim časom in stroški, ki nastanejo pri ustvarjanju več rezultatov na poziv. Kot praktična ilustracija se je paketno sklepanje za požrešno generiranje z ukazom Cohere na 7,473 zapisih GSM8K končalo v manj kot 20 minutah. Posel je kot vhod vzel 5.5 milijona žetonov in ustvaril 630,000 izhodnih žetonov. Pri toku Amazon Bedrock sklepanje cen, je skupni nastali strošek znašal približno 9.50 USD.

Za samoskladnost z ukazom Cohere uporabljamo parameter sklepanja num_generations za ustvarjanje več dokončanj na poziv. Od tega pisanja Amazon Bedrock dovoljuje največ pet generacij in tri sočasne Submitted opravila paketnega sklepanja. Delovna mesta nadaljujejo na InProgress status zaporedno, zato vzorčenje več kot petih poti zahteva večkratne klice.

Naslednja slika prikazuje čas izvajanja za Cohere Command na naboru podatkov GSM8K. Skupni čas izvajanja je prikazan na osi x in čas izvajanja na vzorčeno pot razmišljanja na osi y. Pohlepna generacija se izvaja v najkrajšem času, vendar povzroči višje časovne stroške na vzorčeno pot.

Časi izvajanja za ukaz Cohere

Pohlepna generacija se zaključi v manj kot 20 minutah za celoten nabor GSM8K in vzorči edinstveno pot razmišljanja. Samokonsistentnost s petimi vzorci zahteva približno 50 % dlje za dokončanje in stane okoli 14.50 USD, vendar v tem času ustvari pet poti (več kot 500 %). Skupni čas delovanja in stroški se postopoma povečujejo z vsakimi dodatnimi petimi vzorčenimi potmi. Analiza stroškov in koristi kaže, da sta 1–2 opravili serijskega sklepanja s 5–10 vzorčenimi potmi priporočena nastavitev za praktično izvajanje samokonsistentnosti. To doseže izboljšano zmogljivost modela, hkrati pa zmanjša stroške in zakasnitev.

Samokonsistentnost izboljša zmogljivost modela, ki presega aritmetično sklepanje

Ključno vprašanje za dokazovanje primernosti spodbujanja samokonsistentnosti je, ali je metoda uspešna pri nadaljnjih NLP nalogah in jezikovnih modelih. Kot razširitev primera uporabe, povezanega z Amazonom, izvajamo majhno analizo vzorčnih vprašanj iz Certifikat AWS Solutions Architect Associate. To je izpit z več možnimi odgovori o tehnologiji in storitvah AWS, ki zahteva poznavanje področja in sposobnost razmišljanja in odločanja med več možnostmi.

Pripravimo nabor podatkov iz SAA-C01 in SAA-C03 vzorčna izpitna vprašanja. Od 20 razpoložljivih vprašanj uporabimo prva 4 kot nekajkratne primere in pozovemo model, da odgovori na preostalih 16. Tokrat izvedemo sklepanje z modelom AI21 Labs Jurassic-2 Mid in ustvarimo največ 10 poti sklepanja pri temperatura 0.7. Rezultati kažejo, da samokonsistentnost izboljša uspešnost: čeprav pohlepni CoT ustvari 11 pravilnih odgovorov, samokonsistentnost uspe še pri 2.

Naslednja tabela prikazuje rezultate natančnosti za 5 in 10 vzorčenih poti v povprečju 100 zagonov.

. Pohlepno dekodiranje T = 0.7
# vzorčene poti: 5 68.6 74.1 0.7 ±
# vzorčene poti: 10 68.6 78.9 ± 0.3

V naslednji tabeli predstavljamo dve izpitni vprašanji, na kateri je pohlepni CoT nepravilno odgovoril, medtem ko je samokonsistentnost uspešna, pri čemer v vsakem primeru poudarjamo pravilne (zelene) ali nepravilne (rdeče) sledi sklepanja, ki so vodile model do pravilnih ali nepravilnih odgovorov. Čeprav ni vsaka vzorčena pot, ustvarjena s samokonsistentnostjo, pravilna, se večina približa pravemu odgovoru, ko se število vzorčenih poti poveča. Opažamo, da je 5–10 poti običajno dovolj za izboljšanje pohlepnih rezultatov, z vse manjšimi donosi v smislu učinkovitosti nad temi vrednostmi.

Vprašanje

Spletna aplikacija strankam omogoča nalaganje naročil v vedro S3. Nastali dogodki Amazon S3 sprožijo funkcijo Lambda, ki vstavi sporočilo v čakalno vrsto SQS. Posamezen primerek EC2 prebere sporočila iz čakalne vrste, jih obdela in shrani v tabelo DynamoDB, razdeljeno z edinstvenim ID-jem naročila. Pričakuje se, da se bo prihodnji mesec promet povečal za faktor 10, arhitekt rešitev pa pregleduje arhitekturo zaradi morebitnih težav s skaliranjem.

Katero komponento bo NAJVERJETNEJE treba preurediti, da se bo lahko prilagodila novemu prometu?

A. Lambda funkcija
B. Čakalna vrsta SQS
C. Primerek EC2
D. Tabela DynamoDB

Aplikacija, ki se izvaja na AWS, za svojo zbirko podatkov uporablja razmestitev gruče Amazon Aurora Multi-AZ DB. Pri ocenjevanju metrike zmogljivosti je arhitekt rešitve odkril, da branje baze podatkov povzroča veliko V/I in dodaja zakasnitev zahtevam za pisanje v bazo podatkov.

Kaj mora narediti arhitekt rešitve, da loči zahteve za branje od zahtev za pisanje?

A. Omogoči branje skozi predpomnjenje v bazi podatkov Aurora.
B. Posodobite aplikacijo za branje iz primerka pripravljenosti Multi-AZ.
C. Ustvarite repliko Aurore in spremenite aplikacijo za uporabo ustreznih končnih točk.
D. Ustvarite drugo bazo podatkov Aurora in jo povežite s primarno bazo podatkov kot repliko za branje.

Pravilen odgovor C – Posamezen primerek EC2 se ne bo prilagajal in je ena sama točka napake v arhitekturi. Veliko boljša rešitev bi bila, da primerki EC2 v skupini za samodejno skaliranje v dveh območjih razpoložljivosti berejo sporočila iz čakalne vrste. Vsi drugi odzivi so upravljane storitve, ki jih je mogoče konfigurirati za prilagajanje ali pa se bodo samodejno spreminjale. C – Replike Aurora omogočajo način za razbremenitev bralnega prometa. Replike Aurora si delijo isto osnovno shrambo kot glavna zbirka podatkov, zato je čas zamika na splošno zelo nizek. Replike Aurora imajo lastne končne točke, zato bo treba aplikacijo konfigurirati za usmerjanje prometa branja na nove končne točke.
Pohlepno dekodiranje Neposredno spreminjanje velikosti primerka EC2 morda ne bo mogoče, saj morda ne bo mogoče spremeniti velikosti primerka. Skaliranje funkcije Lambda morda ne bo zadostovalo, saj imajo funkcije Lambda omejitev dodelitve pomnilnika na 6 GB. Skaliranje čakalne vrste SQS morda ne bo zadostovalo, saj ima SQS omejitev 10,000 sporočil. Tabele DynamoDB je mogoče prilagoditi tako, da zagotovite več enot zmogljivosti. Pravilen odgovor je D. Spreminjanje aplikacije za branje iz primerka pripravljenosti Multi-AZ (možnost B) je najboljši pristop. Primerek v pripravljenosti je asinhrono podvojen iz primarnega primerka, zato operacije branja ne bodo motile operacij pisanja. Omogočanje bralnega predpomnjenja (možnost A) oz ustvarjanje replike Aurora (možnost C) ne bo rešilo težave z V/I sporom. Ustvarjanje druge baze podatkov Aurora in njeno povezovanje kot replike za branje (možnost D) prav tako ne bo rešilo težave z V/I sporom. Pravilen odgovor je B.
Vzorčena pot št. 1 Povečanje instance EC2 na 10-kratno trenutno velikost morda ne bo izvedljivo, bodisi z vidika stroškov ali zmogljivosti. Potreboval bi večji primerek, kar je lahko drago. Stroškovno učinkovitejši pristop bi lahko bila uporaba roja manjših primerkov (npr. skupine za samodejno skaliranje) za delitev obremenitve. V tem primeru bi bilo treba instanco EC2 verjetno na novo oblikovati. Pravilen odgovor je C. Spreminjanje aplikacije za uporabo ustreznih končnih točk ni praktična rešitev, saj bi zahtevalo spremembe kode aplikacije. Pravilen odgovor je C: ustvarite repliko Aurore in spremenite aplikacijo, da bo uporabljala ustrezne končne točke.
Vzorčena pot št. 2 Skaliranje posameznega primerka EC2 je težje in problematično kot skaliranje drugih komponent storitve. Amazon SQS, Lambda in DynamoDB se lahko samodejno prilagajajo za obvladovanje povečane obremenitve. Pravilen odgovor je C.

(C) Ustvarite repliko Aurore in spremenite aplikacijo, da bo uporabljala ustrezne končne točke.

S konfiguracijo replike Aurora lahko ločite promet za branje od prometa za pisanje. Replike Aurora uporabljajo različne URL-je končnih točk, kar vam omogoča, da bralni promet usmerite na repliko namesto na primarno bazo podatkov. Replika lahko obdeluje zahteve za branje vzporedno z zahtevami za pisanje v primarno bazo podatkov, zmanjšanje V/I in zakasnitve.

Čiščenje

Izvajanje paketnega sklepanja v Amazon Bedrock je predmet stroškov v skladu s cenami Amazon Bedrock. Ko zaključite s postopkom, izbrišite svoj primerek prenosnika SageMaker in odstranite vse podatke iz veder S3, da se izognete prihodnjim stroškom.

Premisleki

Čeprav prikazana rešitev kaže izboljšano delovanje jezikovnih modelov, ko je pozvana s samokonsistentnostjo, je pomembno upoštevati, da sprehod ni pripravljen za produkcijo. Pred uvedbo v produkcijo prilagodite ta dokaz koncepta svoji implementaciji, pri čemer upoštevajte naslednje zahteve:

  • Omejitev dostopa do API-jev in baz podatkov za preprečevanje nepooblaščene uporabe.
  • Spoštovanje najboljših varnostnih praks AWS glede dostopa do vloge IAM in varnostnih skupin.
  • Validacija in sanacija uporabniškega vnosa za preprečevanje napadov s takojšnjim vbrizgavanjem.
  • Spremljanje in beleženje sproženih procesov za omogočanje testiranja in revizije.

zaključek

Ta objava prikazuje, da spodbujanje samokonsistentnosti izboljša učinkovitost generativnih jezikovnih modelov pri zapletenih nalogah NLP, ki zahtevajo aritmetične in logične spretnosti z več izbirami. Samokonsistentnost uporablja stohastično dekodiranje na podlagi temperature za ustvarjanje različnih poti razmišljanja. To poveča sposobnost modela, da izzove raznolike in uporabne misli, da pride do pravilnih odgovorov.

S paketnim sklepanjem Amazon Bedrock je jezikovni model Cohere Command pozvan, da ustvari samokonsistentne odgovore na nabor aritmetičnih problemov. Natančnost se izboljša z 51.7 % pri pohlepnem dekodiranju na 68 % pri samokonsistentnem vzorčenju 30 sklepnih poti pri T=1.0. Vzorčenje petih poti že poveča natančnost za 7.5 odstotne točke. Pristop je prenosljiv na druge jezikovne modele in naloge razmišljanja, kot so pokazali rezultati modela AI21 Labs Jurassic-2 Mid na izpitu za pridobitev certifikata AWS. V nizu vprašanj majhne velikosti samokonsistentnost s petimi vzorčenimi potmi poveča natančnost za 5 odstotnih točk v primerjavi s pohlepnim CoT.

Spodbujamo vas, da z generativnimi jezikovnimi modeli implementirate samokonsistentno pozivanje za izboljšano zmogljivost v svojih aplikacijah. Izvedite več o Ukaz Cohere in AI21 Labs Jurassic modeli, ki so na voljo na Amazon Bedrock. Za več informacij o paketnem sklepanju glejte Zaženi paketno sklepanje.

Priznanja

Avtor se zahvaljuje tehničnima pregledovalcema Aminu Tajgardoonu in Patricku McSweeneyju za koristne povratne informacije.


O Author

Izboljšajte delovanje generativnih jezikovnih modelov s samokonsistentnimi pozivi na Amazon Bedrock | Spletne storitve Amazon PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Lucía Santamaría je višja uporabna znanstvenica na Amazonovi univerzi ML, kjer se s praktičnim izobraževanjem osredotoča na dvig ravni usposobljenosti ML v celotnem podjetju. Lucía ima doktorat iz astrofizike in je navdušena nad demokratizacijo dostopa do tehnološkega znanja in orodij.

Časovni žig:

Več od Strojno učenje AWS