Îmbunătățiți performanța modelelor de limbaj generativ cu indicații de auto-coerență pe Amazon Bedrock | Amazon Web Services

Îmbunătățiți performanța modelelor de limbaj generativ cu indicații de auto-coerență pe Amazon Bedrock | Amazon Web Services

Modelele de limbaj generativ s-au dovedit remarcabil de abil în rezolvarea sarcinilor logice și analitice de procesare a limbajului natural (NLP). În plus, utilizarea de inginerie promptă le pot îmbunătăți în mod semnificativ performanța. De exemplu, lanțul-gândirii (CoT) este cunoscut că îmbunătățește capacitatea unui model pentru probleme complexe în mai multe etape. Pentru a spori în plus acuratețea sarcinilor care implică raționament, a auto-consecvență s-a sugerat o abordare stimulatoare, care înlocuiește lacomul cu decodarea stocastică în timpul generării limbajului.

Amazon Bedrock este un serviciu complet gestionat care oferă o gamă de modele de fundație de înaltă performanță de la companii de IA și Amazon prin intermediul unui singur API, împreună cu un set larg de capabilități pentru a construi AI generativă aplicații cu securitate, confidențialitate și IA responsabilă. Cu inferență în lot API, puteți utiliza Amazon Bedrock pentru a efectua inferențe cu modele de fundație în loturi și pentru a obține răspunsuri mai eficient. Această postare arată cum să implementați promptarea de auto-consecvență prin inferență în lot pe Amazon Bedrock pentru a îmbunătăți performanța modelului în sarcinile aritmetice și de raționament cu alegeri multiple.

Prezentare generală a soluției

Îndemnul de auto-consecvență a modelelor de limbaj se bazează pe generarea de răspunsuri multiple care sunt agregate într-un răspuns final. Spre deosebire de abordările cu o singură generație, cum ar fi CoT, procedura de eșantionare și marginalizare cu auto-consecvență creează o serie de completări de model care conduc la o soluție mai consistentă. Generarea de răspunsuri diferite pentru un prompt dat este posibilă datorită utilizării unei strategii de decodare stocastice, mai degrabă decât lacome.

Următoarea figură arată modul în care auto-coerența diferă de CoT lacom prin faptul că generează un set divers de căi de raționament și le agregează pentru a produce răspunsul final.

Diferențele dintre auto-consecvență și îndemnul CoT.

Strategii de decodare pentru generarea de text

Textul generat de modelele de limbaj numai cu decodor se desfășoară cuvânt cu cuvânt, simbolul următor fiind prezis pe baza contextului precedent. Pentru un prompt dat, modelul calculează o distribuție de probabilitate care indică probabilitatea ca fiecare jeton să apară în continuare în secvență. Decodificarea implică traducerea acestor distribuții de probabilitate în text real. Generarea textului este mediată de un set de parametrii de inferență care sunt adesea hiperparametri ai metodei de decodare în sine. Un exemplu este temperatură, care modulează distribuția de probabilitate a următorului simbol și influențează caracterul aleatoriu al rezultatului modelului.

Decodare lacomă este o strategie de decodare deterministă care la fiecare pas selectează jetonul cu cea mai mare probabilitate. Deși simplă și eficientă, abordarea riscă să cadă în tipare repetitive, deoarece nu ține cont de spațiul mai larg de probabilitate. Setarea parametrului de temperatură la 0 la momentul deducerii echivalează în esență cu implementarea decodării lacome.

Prelevarea de probe introduce stocasticitatea în procesul de decodificare prin selectarea aleatorie a fiecărui simbol ulterior pe baza distribuției probabilității prezise. Această aleatorie are ca rezultat o variabilitate mai mare a producției. Decodificarea stocastică se dovedește mai abil în captarea diversității potențialelor rezultate și adesea oferă răspunsuri mai imaginative. Valorile mai mari ale temperaturii introduc mai multe fluctuații și cresc creativitatea răspunsului modelului.

Tehnici de stimulare: CoT și auto-consistență

Capacitatea de raționament a modelelor de limbaj poate fi sporită prin inginerie promptă. În special, s-a demonstrat că CoT a provoca raționament în sarcini complexe NLP. O modalitate de a implementa a zero-shot CoT se face printr-o creștere rapidă cu instrucțiunea de a „gândi pas cu pas”. Un altul este de a expune modelul la exemple de pași intermediari de raționament în îndemnul de câteva lovituri Modă. Ambele scenarii folosesc de obicei decodare lacomă. CoT duce la câștiguri semnificative de performanță în comparație cu instrucțiunile simple privind sarcinile aritmetice, de bun simț și de raționament simbolic.

Îndemnul de auto-consecvență se bazează pe presupunerea că introducerea diversității în procesul de raționament poate fi benefică pentru a ajuta modelele să convergă către răspunsul corect. Tehnica folosește decodarea stocastică pentru a atinge acest obiectiv în trei pași:

  1. Îndemnați modelul de limbaj cu exemple CoT pentru a provoca raționament.
  2. Înlocuiți decodarea lacomă cu o strategie de eșantionare pentru a genera un set divers de căi de raționament.
  3. Agregați rezultatele pentru a găsi cel mai consistent răspuns din setul de răspunsuri.

S-a dovedit că auto-consecvența depășește solicitarea CoT pe criteriile de referință populare de aritmetică și raționament de bun simț. O limitare a abordării este costul său de calcul mai mare.

Această postare arată cum îndemnul de auto-consecvență îmbunătățește performanța modelelor de limbaj generativ în două sarcini de raționament NLP: rezolvarea problemelor aritmetice și răspunsul la întrebări specifice domeniului cu alegeri multiple. Demonstrăm abordarea folosind inferența în lot pe Amazon Bedrock:

  • Accesăm Amazon Bedrock Python SDK în JupyterLab pe un Amazon SageMaker instanță de notebook.
  • Pentru raționamentul aritmetic, solicităm Cohere Command pe setul de date GSM8K al problemelor de matematică din școala generală.
  • Pentru raționament cu variante multiple, solicităm AI21 Labs Jurassic-2 Mid pe un mic eșantion de întrebări de la examenul AWS Certified Solutions Architect – Associate.

Cerințe preliminare

Această explicație presupune următoarele cerințe preliminare:

Gestionați accesul la model pe Amazon Bedrock

Costul estimat pentru a rula codul afișat în această postare este de 100 USD, presupunând că rulați o solicitare de auto-consecvență cu 30 de căi de raționament folosind o singură valoare pentru eșantionarea bazată pe temperatură.

Set de date pentru a examina capabilitățile de raționament aritmetic

GSM8K este un set de date de probleme de matematică a școlii generale asamblate de oameni, care prezintă o mare diversitate lingvistică. Fiecare problemă necesită 2-8 pași pentru a fi rezolvată și necesită efectuarea unei secvențe de calcule elementare cu operații aritmetice de bază. Aceste date sunt utilizate în mod obișnuit pentru a evalua capabilitățile de raționament aritmetic în mai mulți pași ale modelelor de limbaj generativ. The Set tren GSM8K cuprinde 7,473 de înregistrări. Următorul este un exemplu:

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

Configurați pentru a rula inferențe în loturi cu Amazon Bedrock

Inferența în lot vă permite să rulați mai multe apeluri de inferență către Amazon Bedrock în mod asincron și să îmbunătățiți performanța inferenței modelului pe seturi de date mari. Serviciul este în previzualizare la momentul scrierii acestui articol și este disponibil numai prin API. A se referi la Executați inferența în lot pentru a accesa API-urile de inferență în loturi prin SDK-uri personalizate.

După ce ați descărcat și dezarhivat fișierul Python SDK într-o instanță de blocnotes SageMaker, o puteți instala rulând următorul cod într-o celulă de blocnotes 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)

Formatați și încărcați datele de intrare în Amazon S3

Datele de intrare pentru inferența lotului trebuie pregătite în format JSONL cu recordId și modelInput chei. Acesta din urmă ar trebui să se potrivească cu câmpul corpului modelului care urmează să fie invocat pe Amazon Bedrock. În special, unii parametrii de inferență acceptați pentru Cohere Command sunt temperature pentru aleatoriu, max_tokens pentru lungimea de ieșire și num_generations pentru a genera răspunsuri multiple, toate acestea fiind transmise împreună cu prompt as modelInput:

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

Vedea Parametri de inferență pentru modelele de fundație pentru mai multe detalii, inclusiv alți furnizori de modele.

Experimentele noastre privind raționamentul aritmetic sunt efectuate în setarea cu câteva lovituri, fără a personaliza sau ajusta Cohere Command. Folosim același set de opt exemplare cu câteva fotografii din lanțul de gândire (Tabelul 20) și autoconsecvența (Tabelul 17) hârtii. Solicitările sunt create prin concatenarea exemplarelor cu fiecare întrebare din setul de tren GSM8K.

Noi am stabilit max_tokens la 512 și num_generations la 5, maximul permis de Cohere Command. Pentru decodare lacomă, am stabilit temperature la 0 și pentru auto-coerență, derulăm trei experimente la temperaturi de 0.5, 0.7 și 1. Fiecare setare produce date de intrare diferite în funcție de valorile respective de temperatură. Datele sunt formatate ca JSONL și stocate în 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)

Creați și rulați joburi de inferență în lot în Amazon Bedrock

Crearea sarcinilor de inferență în loturi necesită un client Amazon Bedrock. Specificăm căile de intrare și ieșire S3 și dăm fiecărui job de invocare un nume unic:

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

Locuri de munca sunt a creat prin transmiterea rolului IAM, ID-ului modelului, numele jobului și configurația de intrare/ieșire ca parametri către API-ul 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"]

listarea, Monitorizarea, și oprire joburile de inferență în loturi sunt acceptate de apelurile API respective ale acestora. La creare, locurile de muncă apar mai întâi ca Submitted, apoi ca InProgress, și în cele din urmă ca Stopped, Failed, Sau Completed.

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

Dacă lucrările sunt finalizate cu succes, conținutul generat poate fi preluat de pe Amazon S3 folosind locația sa unică de ieșire.

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

Auto-consecvența îmbunătățește acuratețea modelului în sarcinile aritmetice

Indemnul de auto-consecvență a Cohere Command depășește o linie de bază CoT lacomă în ceea ce privește acuratețea setului de date GSM8K. Pentru auto-consecvență, eșantionăm 30 de căi de raționament independente la trei temperaturi diferite, cu topP și topK setat la lor valori implicite. Soluțiile finale sunt agregate prin alegerea celei mai consistente apariții prin votul majoritar. În caz de egalitate, alegem aleatoriu unul dintre răspunsurile majoritare. Calculăm precizia și valorile abaterii standard în medie peste 100 de rulări.

Următoarea figură arată acuratețea setului de date GSM8K de la Cohere Command solicitat cu CoT lacom (albastru) și auto-consecvență la valorile temperaturii 0.5 (galben), 0.7 (verde) și 1.0 (portocaliu) în funcție de numărul de eșantionate. căi de raționament.

Precizia Cohere Command folosind auto-consecvența vs CoT prompting.

Figura precedentă arată că auto-coerența îmbunătățește acuratețea aritmetică față de CoT lacom atunci când numărul de căi eșantionate este de până la trei. Performanța crește în mod consecvent cu alte căi de raționament, confirmând importanța introducerii diversității în generarea gândirii. Cohere Command rezolvă setul de întrebări GSM8K cu o precizie de 51.7% atunci când este solicitat cu CoT vs. 68% cu 30 de căi de raționament auto-consecvente la T=1.0. Toate cele trei valori de temperatură analizate dau rezultate similare, temperaturile mai scăzute fiind comparativ mai performante pe căi mai puțin eșantionate.

Considerații practice privind eficiența și costul

Auto-consecvența este limitată de timpul de răspuns crescut și de costurile suportate atunci când se generează mai multe ieșiri per prompt. Ca o ilustrare practică, inferența în loturi pentru generarea lacomă cu Cohere Command pe 7,473 de înregistrări GSM8K s-a terminat în mai puțin de 20 de minute. Lucrarea a luat 5.5 milioane de jetoane ca intrare și a generat 630,000 de jetoane de ieșire. La curent Prețurile de inferență Amazon Bedrock, costul total suportat a fost de aproximativ 9.50 USD.

Pentru auto-consecvență cu Cohere Command, folosim parametrul de inferență num_generations pentru a crea mai multe completări pentru fiecare prompt. În momentul scrierii acestui articol, Amazon Bedrock permite maximum cinci generații și trei concurente Submitted locuri de muncă de inferență în loturi. Locurile de muncă continuă la InProgress starea secvenţială, prin urmare eşantionarea a mai mult de cinci căi necesită invocări multiple.

Următoarea figură arată timpii de execuție pentru Cohere Command pe setul de date GSM8K. Timpul total de rulare este afișat pe axa x și timpul de rulare pe calea de raționament eșantionată pe axa y. Generarea greedy rulează în cel mai scurt timp, dar implică un cost de timp mai mare pe cale eșantionată.

Durate de execuție pentru Cohere Command

Generarea greedy se finalizează în mai puțin de 20 de minute pentru setul complet GSM8K și eșantionează o cale de raționament unică. Auto-consecvența cu cinci mostre necesită aproximativ 50% mai mult pentru finalizare și costă aproximativ 14.50 USD, dar produce cinci căi (peste 500%) în acel timp. Durata totală de rulare și costurile cresc treptat cu fiecare cinci căi eșantionate suplimentare. O analiză cost-beneficiu sugerează că 1-2 joburi de inferență în loturi cu 5-10 căi eșantionate este setarea recomandată pentru implementarea practică a auto-coerenței. Acest lucru realizează o performanță îmbunătățită a modelului, ținând în același timp costurile și latența la distanță.

Auto-consecvența îmbunătățește performanța modelului dincolo de raționamentul aritmetic

O întrebare crucială pentru a dovedi adecvarea solicitării de auto-consecvență este dacă metoda reușește în alte sarcini NLP și modele de limbaj. Ca o extensie a unui caz de utilizare legat de Amazon, efectuăm o analiză de dimensiuni mici pe exemple de întrebări din AWS Solutions Architect Associate Certification. Acesta este un examen cu variante multiple despre tehnologia și serviciile AWS, care necesită cunoștințe de domeniu și capacitatea de a raționa și de a decide între mai multe opțiuni.

Pregătim un set de date din SAA-C01 și SAA-C03 exemple de întrebări de examen. Din cele 20 de întrebări disponibile, le folosim pe primele 4 ca exemplare cu câteva fotografii și solicităm modelului să răspundă la celelalte 16. De data aceasta, rulăm inferența cu modelul AI21 Labs Jurassic-2 Mid și generăm maximum 10 căi de raționament la temperatura 0.7. Rezultatele arată că auto-consecvența îmbunătățește performanța: deși CoT lacom produce 11 răspunsuri corecte, auto-consecvența reușește cu încă 2.

Următorul tabel arată rezultatele de precizie pentru 5 și 10 căi eșantionate, în medie pe 100 de rulări.

. Decodare lacomă T = 0.7
# căi eșantionate: 5 68.6 74.1 0.7 ±
# căi eșantionate: 10 68.6 78.9 ± 0.3

În tabelul următor, prezentăm două întrebări de examen la care CoT lacom răspunde incorect în timp ce autoconsistența reușește, evidențiind în fiecare caz urmele de raționament corecte (verzi) sau incorecte (roșii) care au determinat modelul să producă răspunsuri corecte sau incorecte. Deși nu toate căile eșantionate generate de auto-consistență sunt corecte, majoritatea converge către răspunsul adevărat pe măsură ce numărul de căi eșantionate crește. Observăm că 5-10 căi sunt de obicei suficiente pentru a îmbunătăți rezultatele lacome, cu randamente descrescătoare în ceea ce privește eficiența peste aceste valori.

Întrebare

O aplicație web permite clienților să încarce comenzi într-un bucket S3. Evenimentele Amazon S3 rezultate declanșează o funcție Lambda care inserează un mesaj într-o coadă SQS. O singură instanță EC2 citește mesajele din coadă, le procesează și le stochează într-un tabel DynamoDB partiționat de un ID de comandă unic. Luna viitoare, traficul este de așteptat să crească cu un factor de 10, iar un arhitect de soluții revizuiește arhitectura pentru posibile probleme de scalare.

Care componentă este cel mai probabil să aibă nevoie de re-arhitectură pentru a putea scala pentru a se adapta noului trafic?

A. Funcția Lambda
B. coada SQS
C. instanță EC2
D. Tabel DynamoDB

O aplicație care rulează pe AWS utilizează o implementare Amazon Aurora Multi-AZ DB pentru baza de date. Când a evaluat valorile de performanță, un arhitect de soluții a descoperit că citirile bazei de date cauzează I/O mari și adaugă latență la cererile de scriere în baza de date.

Ce ar trebui să facă arhitectul de soluții pentru a separa cererile de citire de cererile de scriere?

A. Activați memorarea în cache read-through în baza de date Aurora.
B. Actualizați aplicația pentru a citi din instanța de așteptare Multi-AZ.
C. Creați o replică Aurora și modificați aplicația pentru a utiliza punctele finale adecvate.
D. Creați o a doua bază de date Aurora și conectați-o la baza de date primară ca o replică citită.

Răspuns corect C – O singură instanță EC2 nu se va scala și este un singur punct de eșec în arhitectură. O soluție mult mai bună ar fi ca instanțe EC2 dintr-un grup Auto Scaling din 2 zone de disponibilitate să citească mesajele din coadă. Celelalte răspunsuri sunt toate servicii gestionate care pot fi configurate la scalare sau se vor scala automat. C – Replicile Aurora oferă o modalitate de a descărca traficul de citire. Replicale Aurora partajează aceeași stocare de bază ca baza de date principală, astfel încât timpul de întârziere este în general foarte mic. Replicale Aurora au propriile puncte finale, așa că aplicația va trebui configurată pentru a direcționa traficul de citire către noile puncte finale.
Decodare lacomă Scalarea directă a instanței EC2 poate să nu fie posibilă, deoarece este posibil să nu fie posibilă redimensionarea instanței. Scalarea funcției Lambda poate să nu fie suficientă, deoarece funcțiile Lambda au o limită de alocare de memorie de 6 GB. Scalarea cozii SQS poate să nu fie suficientă, deoarece SQS are o limită de 10,000 de mesaje. Tabelele DynamoDB pot fi scalate prin furnizarea de mai multe unități de capacitate. Raspunsul corect este D. Modificarea aplicației pentru a citi din instanța de așteptare Multi-AZ (opțiunea B) este cea mai bună abordare. Instanța de așteptare este replicată asincron de la instanța principală, astfel încât operațiunile de citire nu vor interfera cu operațiunile de scriere. Activarea memorării în cache read-through (opțiunea A) sau crearea unei replici Aurora (opțiunea C) nu va rezolva problema conflictului I/O. Crearea unei a doua baze de date Aurora și conectarea acesteia ca o replică citită (opțiunea D) nu va rezolva nici problema conflictului I/O. Raspunsul corect este B.
Calea eșantionată #1 Scalarea instanței EC2 la de 10 ori dimensiunea sa actuală poate să nu fie fezabilă, fie din punct de vedere al costurilor, fie din punct de vedere al performanței. Ar necesita o instanță mai mare, care poate fi costisitoare. O abordare mai rentabilă ar putea fi folosirea unui roi de instanțe mai mici (de exemplu, Auto Scaling Group) pentru a împărți sarcina. În acest caz, instanța EC2 ar trebui probabil să fie rearhitectată. Raspunsul corect este C. Modificarea aplicației pentru a utiliza punctele finale adecvate nu este o soluție practică, deoarece ar necesita modificări ale codului aplicației. Răspunsul corect este C: Creați o replică Aurora și modificați aplicația pentru a utiliza punctele finale adecvate.
Calea eșantionată #2 Scalarea unei singure instanțe EC2 este mai dificilă și mai problematică decât scalarea celorlalte componente ale serviciului. Amazon SQS, Lambda și DynamoDB se pot scala automat pentru a face față sarcinii crescute. Raspunsul corect este C.

(C) Creați o replică Aurora și modificați aplicația pentru a utiliza punctele finale adecvate.

Prin configurarea unei replici Aurora, puteți separa traficul de citire de cel de scriere. Replicile Aurora folosesc adrese URL de puncte finale diferite, permițându-vă să direcționați traficul de citire către replică în loc de baza de date primară. Replica poate procesa solicitările de citire în paralel cu cererile de scriere către baza de date primară, reducând I/O și latența.

A curăța

Executarea inferenței pe lot în Amazon Bedrock este supusă unor taxe conform prețurilor Amazon Bedrock. Când finalizați procedura, ștergeți instanța de blocnotes SageMaker și eliminați toate datele din compartimentele S3 pentru a evita costurile viitoare.

Considerații

Deși soluția demonstrată arată o performanță îmbunătățită a modelelor lingvistice atunci când este solicitată cu auto-consecvență, este important de reținut că procedura nu este pregătită pentru producție. Înainte de a vă implementa în producție, ar trebui să adaptați această dovadă a conceptului la propria implementare, ținând cont de următoarele cerințe:

  • Restricție de acces la API-uri și baze de date pentru a preveni utilizarea neautorizată.
  • Respectarea celor mai bune practici de securitate AWS privind accesul la rol IAM și grupurile de securitate.
  • Validarea și igienizarea intrărilor utilizatorului pentru a preveni atacurile prompte de injecție.
  • Monitorizarea și înregistrarea proceselor declanșate pentru a permite testarea și auditarea.

Concluzie

Această postare arată că îndemnul de auto-consecvență îmbunătățește performanța modelelor de limbaj generativ în sarcini complexe NLP care necesită abilități aritmetice și logice cu alegeri multiple. Auto-consecvența folosește decodarea stocastică bazată pe temperatură pentru a genera diverse căi de raționament. Acest lucru crește capacitatea modelului de a genera gânduri diverse și utile pentru a ajunge la răspunsuri corecte.

Cu inferența pe lot Amazon Bedrock, modelul de limbaj Cohere Command este solicitat să genereze răspunsuri auto-consistente la un set de probleme aritmetice. Precizia se îmbunătățește de la 51.7% cu decodare lacomă la 68% cu eșantionare auto-consecvență a 30 de căi de raționament la T=1.0. Eșantionarea a cinci căi îmbunătățește deja acuratețea cu 7.5 puncte procentuale. Abordarea este transferabilă către alte modele lingvistice și sarcini de raționament, așa cum demonstrează rezultatele modelului AI21 Labs Jurassic-2 Mid la un examen de certificare AWS. Într-un set de întrebări de dimensiuni mici, auto-consecvența cu cinci căi eșantionate crește precizia cu 5 puncte procentuale față de CoT lacom.

Vă încurajăm să implementați solicitări de auto-consecvență pentru performanță îmbunătățită în propriile aplicații cu modele de limbaj generativ. Află mai multe despre Cohere Command și AI21 Labs Jurassic modele disponibile pe Amazon Bedrock. Pentru mai multe informații despre inferența în lot, consultați Executați inferența în lot.

Mulţumiri

Autorul mulțumește recenzenților tehnici Amin Tajgardoon și Patrick McSweeney pentru feedback util.


Despre autor

Îmbunătățiți performanța modelelor de limbaj generativ cu indicații de auto-coerență pe Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Lucía Santamaría este om de știință senior aplicat la Universitatea ML din Amazon, unde se concentrează pe creșterea nivelului de competență ML în cadrul companiei prin educație practică. Lucía are un doctorat în astrofizică și este pasionată de democratizarea accesului la cunoștințele și instrumentele tehnologice.

Timestamp-ul:

Mai mult de la Învățare automată AWS