Migliora le prestazioni dei modelli linguistici generativi con suggerimenti di autocoerenza su Amazon Bedrock | Servizi Web di Amazon

Migliora le prestazioni dei modelli linguistici generativi con suggerimenti di autocoerenza su Amazon Bedrock | Servizi Web di Amazon

I modelli del linguaggio generativo si sono dimostrati straordinariamente abili nel risolvere compiti logici e analitici di elaborazione del linguaggio naturale (PNL). Inoltre, l'uso di ingegneria tempestiva possono migliorare notevolmente le loro prestazioni. Per esempio, catena di pensiero (CoT) è noto per migliorare la capacità di un modello per problemi complessi a più fasi. Per aumentare ulteriormente la precisione nelle attività che implicano il ragionamento, a autoconsistenza è stato suggerito un approccio prompting, che sostituisce la decodifica greedy con quella stocastica durante la generazione del linguaggio.

Roccia Amazzonica è un servizio completamente gestito che offre una scelta di modelli di base ad alte prestazioni di aziende leader nel settore dell'intelligenza artificiale e di Amazon tramite un'unica API, insieme a un'ampia gamma di funzionalità per creare IA generativa applicazioni con sicurezza, privacy e intelligenza artificiale responsabile. Con il inferenza batch API, puoi utilizzare Amazon Bedrock per eseguire l'inferenza con i modelli di base in batch e ottenere risposte in modo più efficiente. Questo post mostra come implementare la richiesta di coerenza automatica tramite inferenza batch su Amazon Bedrock per migliorare le prestazioni del modello nelle attività di ragionamento aritmetico e a scelta multipla.

Panoramica della soluzione

La richiesta di autocoerenza dei modelli linguistici si basa sulla generazione di risposte multiple che vengono aggregate in una risposta finale. In contrasto con gli approcci a generazione singola come CoT, la procedura di campionamento ed emarginazione di autoconsistenza crea una serie di completamenti del modello che portano a una soluzione più coerente. La generazione di risposte diverse per un dato prompt è possibile grazie all'uso di una strategia di decodifica stocastica, piuttosto che avida.

La figura seguente mostra come l'autocoerenza differisce dall'avida CoT in quanto genera una serie diversificata di percorsi di ragionamento e li aggrega per produrre la risposta finale.

Differenze tra autocoerenza e prompt CoT.

Strategie di decodifica per la generazione del testo

Il testo generato dai modelli linguistici basati solo sul decodificatore si svolge parola per parola, e il token successivo viene previsto sulla base del contesto precedente. Per un dato prompt, il modello calcola una distribuzione di probabilità che indica la probabilità che ciascun token appaia successivo nella sequenza. La decodifica implica la traduzione di queste distribuzioni di probabilità in testo reale. La generazione del testo è mediata da un insieme di parametri di inferenza che sono spesso iperparametri del metodo di decodifica stesso. Un esempio è il temperatura, che modula la distribuzione di probabilità del token successivo e influenza la casualità dell'output del modello.

Decodifica avida è una strategia di decodifica deterministica che ad ogni passaggio seleziona il token con la più alta probabilità. Sebbene semplice ed efficiente, l’approccio rischia di cadere in schemi ripetitivi, perché ignora lo spazio di probabilità più ampio. Impostare il parametro della temperatura su 0 al momento dell'inferenza equivale essenzialmente a implementare una decodifica golosa.

Campionamento introduce la stocasticità nel processo di decodifica selezionando casualmente ciascun token successivo in base alla distribuzione di probabilità prevista. Questa casualità si traduce in una maggiore variabilità dell’output. La decodifica stocastica si dimostra più abile nel catturare la diversità dei potenziali output e spesso produce risposte più fantasiose. Valori di temperatura più elevati introducono più fluttuazioni e aumentano la creatività della risposta del modello.

Tecniche di suggerimento: CoT e autoconsistenza

La capacità di ragionamento dei modelli linguistici può essere aumentata tramite il prompt engineering. In particolare, è stato dimostrato che CoT lo fa sollecitare il ragionamento in compiti complessi di PNL. Un modo per implementare a colpo zero CoT avviene tramite un rapido aumento con l'istruzione di "pensare passo dopo passo". Un altro è esporre il modello a esempi di fasi intermedie del ragionamento suggerimento di pochi colpi moda. Entrambi gli scenari utilizzano in genere la decodifica greedy. Il CoT porta a significativi miglioramenti delle prestazioni rispetto a semplici istruzioni su compiti di aritmetica, buon senso e ragionamento simbolico.

Suggerimento di autoconsistenza si basa sul presupposto che introdurre la diversità nel processo di ragionamento può essere utile per aiutare i modelli a convergere sulla risposta corretta. La tecnica utilizza la decodifica stocastica per raggiungere questo obiettivo in tre passaggi:

  1. Promuovere il modello linguistico con esempi CoT per suscitare il ragionamento.
  2. Sostituisci la decodificazione avida con una strategia di campionamento per generare una serie diversificata di percorsi di ragionamento.
  3. Aggregare i risultati per trovare la risposta più coerente nell'insieme di risposte.

È stato dimostrato che l'autocoerenza supera i suggerimenti CoT sui parametri di riferimento aritmetici e di ragionamento comuni. Una limitazione dell’approccio è il suo maggiore costo computazionale.

Questo post mostra come i suggerimenti di autocoerenza migliorano le prestazioni dei modelli linguistici generativi su due attività di ragionamento della PNL: risoluzione di problemi aritmetici e risposta a domande specifiche del dominio a scelta multipla. Dimostriamo l'approccio utilizzando l'inferenza batch su Amazon Bedrock:

  • Accediamo all'SDK Amazon Bedrock Python in JupyterLab su un file Amazon Sage Maker istanza del taccuino.
  • Per il ragionamento aritmetico, chiediamo Comando coerente sul set di dati GSM8K dei problemi di matematica delle scuole elementari.
  • Per il ragionamento a scelta multipla, chiediamo AI21 Labs Jurassic-2 Mid su un piccolo campione di domande dell'esame AWS Certified Solutions Architect – Associate.

Prerequisiti

Questa procedura dettagliata presuppone i seguenti prerequisiti:

Gestisci l'accesso al modello su Amazon Bedrock

Il costo stimato per eseguire il codice mostrato in questo post è di $ 100, presupponendo di eseguire una volta il prompt di autocoerenza con 30 percorsi di ragionamento utilizzando un valore per il campionamento basato sulla temperatura.

Set di dati per sondare le capacità di ragionamento aritmetico

GSM8K è un set di dati di problemi di matematica delle scuole elementari assemblati da esseri umani caratterizzati da un'elevata diversità linguistica. Ogni problema richiede da 2 a 8 passaggi per essere risolto e richiede l'esecuzione di una sequenza di calcoli elementari con operazioni aritmetiche di base. Questi dati vengono comunemente utilizzati per valutare le capacità di ragionamento aritmetico in più fasi dei modelli linguistici generativi. IL Set di treni GSM8K comprende 7,473 record. Quanto segue è un esempio:

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

Configurato per eseguire l'inferenza batch con Amazon Bedrock

L'inferenza batch consente di eseguire più chiamate di inferenza ad Amazon Bedrock in modo asincrono e migliorare le prestazioni dell'inferenza del modello su set di dati di grandi dimensioni. Il servizio è in anteprima al momento della stesura di questo documento ed è disponibile solo tramite l'API. Fare riferimento a Esegui l'inferenza batch per accedere alle API di inferenza batch tramite SDK personalizzati.

Dopo aver scaricato e decompresso il file SDK Python in un'istanza notebook SageMaker, puoi installarlo eseguendo il codice seguente in una cella notebook 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)

Formatta e carica i dati di input su Amazon S3

I dati di input per l'inferenza batch devono essere preparati in formato JSONL con recordId ed modelInput chiavi. Quest'ultimo dovrebbe corrispondere al campo body del modello da richiamare su Amazon Bedrock. In particolare, alcuni parametri di inferenza supportati per Cohere Command sono temperature per casualità, max_tokens per la lunghezza dell'output e num_generations per generare più risposte, che vengono tutte passate insieme al file prompt as modelInput:

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

See Parametri di inferenza per modelli di fondazione per maggiori dettagli, inclusi altri fornitori di modelli.

I nostri esperimenti sul ragionamento aritmetico vengono eseguiti con l'impostazione di pochi scatti senza personalizzare o mettere a punto Cohere Command. Usiamo lo stesso insieme di otto esempi a pochi scatti dalla catena di pensiero (Tabella 20) e autoconsistenza (Tabella 17) documenti. I prompt vengono creati concatenando gli esempi con ciascuna domanda del set di treni GSM8K.

Prepariamo max_tokens a 512 e num_generations a 5, il massimo consentito dal Cohere Command. Per la decodifica avida, impostiamo temperature a 0 e per coerenza, eseguiamo tre esperimenti alle temperature 0.5, 0.7 e 1. Ciascuna impostazione produce dati di input diversi in base ai rispettivi valori di temperatura. I dati vengono formattati come JSONL e archiviati in 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 ed esegui processi di inferenza batch in Amazon Bedrock

La creazione di processi di inferenza batch richiede un client Amazon Bedrock. Specifichiamo i percorsi di input e output di S3 e assegniamo a ciascun processo di invocazione un nome univoco:

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

I lavori sono creato passando il ruolo IAM, l'ID modello, il nome del lavoro e la configurazione di input/output come parametri all'API 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"]

Annuncio, monitoraggioe sosta i lavori di inferenza batch sono supportati dalle rispettive chiamate API. Al momento della creazione, i lavori vengono visualizzati per primi come Submitted, quindi come InProgress, e infine come Stopped, Failed, o Completed.

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

Se i processi vengono completati correttamente, il contenuto generato può essere recuperato da Amazon S3 utilizzando la sua posizione di output univoca.

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

L'autocoerenza migliora l'accuratezza del modello nelle attività aritmetiche

La richiesta di autocoerenza di Cohere Command supera un'avida linea di base CoT in termini di accuratezza sul set di dati GSM8K. Per coerenza, campioniamo 30 percorsi di ragionamento indipendenti a tre diverse temperature, con topP ed topK impostato su loro valori predefiniti. Le soluzioni finali vengono aggregate scegliendo l'evento più coerente tramite votazione a maggioranza. In caso di parità scegliamo casualmente una delle risposte della maggioranza. Calcoliamo i valori di precisione e deviazione standard in media su 100 esecuzioni.

La figura seguente mostra la precisione sul set di dati GSM8K dal comando Cohere richiesto con Greedy CoT (blu) e autoconsistenza a valori di temperatura 0.5 (giallo), 0.7 (verde) e 1.0 (arancione) in funzione del numero di campioni campionati percorsi di ragionamento.

Precisione del comando Cohere utilizzando l'autocoerenza rispetto al suggerimento CoT.

La figura precedente mostra che l'autocoerenza migliora l'accuratezza aritmetica rispetto all'avido CoT quando il numero di percorsi campionati è pari a tre. Le prestazioni aumentano in modo coerente con ulteriori percorsi di ragionamento, confermando l’importanza di introdurre la diversità nella generazione del pensiero. Cohere Command risolve la serie di domande GSM8K con una precisione del 51.7% quando richiesto con CoT rispetto al 68% con 30 percorsi di ragionamento autoconsistenti a T=1.0. Tutti e tre i valori di temperatura rilevati producono risultati simili, con temperature più basse che sono comparativamente più performanti su percorsi meno campionati.

Considerazioni pratiche su efficienza e costi

L'autocoerenza è limitata dall'aumento dei tempi di risposta e dai costi sostenuti quando si generano più output per prompt. A titolo di esempio pratico, l'inferenza batch per la generazione greedy con Cohere Command su 7,473 record GSM8K è stata completata in meno di 20 minuti. Il lavoro ha richiesto 5.5 milioni di token in input e ha generato 630,000 token in output. Al momento Prezzi di inferenza di Amazon Bedrock, il costo totale sostenuto è stato di circa $ 9.50.

Per coerenza con Cohere Command, utilizziamo il parametro di inferenza num_generations per creare più completamenti per prompt. Al momento della stesura di questo articolo, Amazon Bedrock consente un massimo di cinque generazioni e tre simultanee Submitted lavori di inferenza batch. I lavori procedono al InProgress stato in sequenza, quindi campionare più di cinque percorsi richiede più invocazioni.

La figura seguente mostra i tempi di esecuzione per Cohere Command sul set di dati GSM8K. Il tempo di esecuzione totale è mostrato sull'asse x e il tempo di esecuzione per percorso di ragionamento campionato sull'asse y. La generazione greedy viene eseguita nel minor tempo possibile ma comporta un costo in termini di tempo più elevato per percorso campionato.

Runtime per Cohere Command

La generazione Greedy viene completata in meno di 20 minuti per l'intero set GSM8K e campiona un percorso di ragionamento unico. L'autocoerenza con cinque campioni richiede circa il 50% in più per essere completata e costa circa $ 14.50, ma produce cinque percorsi (oltre il 500%) in quel lasso di tempo. Il tempo di esecuzione totale e i costi aumentano gradualmente ogni cinque percorsi campionati aggiuntivi. Un'analisi costi-benefici suggerisce che 1–2 lavori di inferenza batch con 5–10 percorsi campionati rappresentano l'impostazione consigliata per l'implementazione pratica dell'autocoerenza. Ciò consente di ottenere prestazioni migliorate del modello mantenendo sotto controllo i costi e la latenza.

L’autocoerenza migliora le prestazioni del modello oltre il ragionamento aritmetico

Una questione cruciale per dimostrare l’idoneità del suggerimento di autocoerenza è se il metodo ha successo in ulteriori compiti di PNL e modelli linguistici. Come estensione di un caso d'uso relativo ad Amazon, eseguiamo un'analisi di piccole dimensioni su domande campione del Certificazione AWS Solutions Architect Associate. Si tratta di un esame a scelta multipla sulla tecnologia e sui servizi AWS che richiede la conoscenza del dominio e la capacità di ragionare e decidere tra diverse opzioni.

Prepariamo un set di dati da SAA-CO01 ed SAA-CO03 esempi di domande d'esame. Delle 20 domande disponibili, utilizziamo le prime 4 come esempi a pochi scatti e chiediamo al modello di rispondere alle restanti 16. Questa volta, eseguiamo l'inferenza con il modello Jurassic-21 Mid di AI2 Labs e generiamo un massimo di 10 percorsi di ragionamento a temperatura 0.7. I risultati mostrano che l’autocoerenza migliora le prestazioni: sebbene il CoT avido produca 11 risposte corrette, l’autocoerenza riesce con altre 2.

La tabella seguente mostra i risultati di precisione per 5 e 10 percorsi campionati calcolati in media su 100 corse.

. Decodifica avida T = 0.7
# percorsi campionati: 5 68.6 74.1 ± 0.7
# percorsi campionati: 10 68.6 78.9 ± 0.3

Nella tabella seguente, presentiamo due domande d’esame a cui viene data una risposta errata dal CoT avido mentre riesce l’autoconsistenza, evidenziando in ciascun caso le tracce di ragionamento corrette (verdi) o errate (rosse) che hanno portato il modello a produrre risposte corrette o errate. Sebbene non tutti i percorsi campionati generati dall’autoconsistenza siano corretti, la maggioranza converge sulla risposta vera all’aumentare del numero di percorsi campionati. Osserviamo che 5-10 percorsi sono in genere sufficienti per migliorare rispetto ai risultati avidi, con rendimenti decrescenti in termini di efficienza oltre tali valori.

Question

Un'applicazione web consente ai clienti di caricare gli ordini su un bucket S3. Gli eventi Amazon S3 risultanti attivano una funzione Lambda che inserisce un messaggio in una coda SQS. Una singola istanza EC2 legge i messaggi dalla coda, li elabora e li archivia in una tabella DynamoDB partizionata in base a un ID ordine univoco. Si prevede che il traffico del mese prossimo aumenterà di un fattore 10 e un Solutions Architect sta rivedendo l'architettura per possibili problemi di ridimensionamento.

Quale componente ha PIÙ probabilità di dover essere riprogettato per essere in grado di adattarsi al nuovo traffico?

A. Funzione Lambda
B. Coda SQS
C. Istanza EC2
D. Tabella DynamoDB

Un'applicazione in esecuzione su AWS utilizza una distribuzione cluster DB Amazon Aurora Multi-AZ per il proprio database. Durante la valutazione dei parametri delle prestazioni, un architetto di soluzioni ha scoperto che le letture del database causano I/O elevati e aggiungono latenza alle richieste di scrittura sul database.

Cosa dovrebbe fare l'architetto delle soluzioni per separare le richieste di lettura da quelle di scrittura?

A. Abilita la memorizzazione nella cache read-through sul database Aurora.
B. Aggiorna l'applicazione per leggere dall'istanza in standby Multi-AZ.
C. Creare una replica Aurora e modificare l'applicazione per utilizzare gli endpoint appropriati.
D. Creare un secondo database Aurora e collegarlo al database primario come replica di lettura.

Risposta corretta C – Una singola istanza EC2 non sarà scalabile e costituisce un singolo punto di errore nell’architettura. Una soluzione molto migliore sarebbe quella di fare in modo che le istanze EC2 in un gruppo Auto Scaling su 2 zone di disponibilità leggano i messaggi dalla coda. Le altre risposte sono tutti servizi gestiti che possono essere configurati per essere scalati o scalati automaticamente. C – Le repliche Aurora forniscono un modo per scaricare il traffico di lettura. Le repliche Aurora condividono lo stesso spazio di archiviazione sottostante del database principale, quindi il tempo di ritardo è generalmente molto basso. Le repliche Aurora hanno i propri endpoint, quindi l'applicazione dovrà essere configurata per indirizzare il traffico di lettura ai nuovi endpoint.
Decodifica avida Potrebbe non essere possibile ridimensionare direttamente l'istanza EC2, così come potrebbe non essere possibile ridimensionare l'istanza. Il ridimensionamento della funzione Lambda potrebbe non essere sufficiente, poiché le funzioni Lambda hanno un limite di allocazione di memoria di 6 GB. Il ridimensionamento della coda SQS potrebbe non essere sufficiente, poiché SQS ha un limite di 10,000 messaggi. Le tabelle DynamoDB possono essere ridimensionate effettuando il provisioning di più unità di capacità. La risposta corretta è d. Modifica dell'applicazione per leggere dall'istanza in standby Multi-AZ (opzione B) è l'approccio migliore. L'istanza di standby viene replicata in modo asincrono dall'istanza primaria, quindi le operazioni di lettura non interferiranno con le operazioni di scrittura. Abilitazione della memorizzazione nella cache di lettura (opzione A) o la creazione di una replica Aurora (opzione C) non risolverà il problema del conflitto I/O. Anche la creazione di un secondo database Aurora e il collegamento come replica di lettura (opzione D) non risolveranno il problema del conflitto di I/O. La risposta corretta è b.
Percorso campionato n. 1 Scalare l'istanza EC2 fino a 10 volte la sua dimensione attuale potrebbe non essere fattibile, né dal punto di vista dei costi né delle prestazioni. Richiederebbe un'istanza più grande, che può essere costosa. Un approccio più conveniente potrebbe essere quello di utilizzare uno sciame di istanze più piccole (ad esempio, Auto Scaling Group) per condividere il carico. In questo caso, è probabile che l’istanza EC2 debba essere riprogettata. La risposta corretta è "c. La modifica dell'applicazione per utilizzare gli endpoint appropriati non è una soluzione pratica poiché richiederebbe modifiche al codice dell'applicazione. La risposta corretta è C: crea una replica Aurora e modifica l'applicazione per utilizzare gli endpoint appropriati.
Percorso campionato n. 2 Scalare una singola istanza EC2 è più difficile e problematico che scalare gli altri componenti del servizio. Amazon SQS, Lambda e DynamoDB possono tutti scalare automaticamente per far fronte al carico maggiore. La risposta corretta è "c.

(C) Crea una replica Aurora e modifica l'applicazione per utilizzare gli endpoint appropriati.

Configurando una replica Aurora, puoi separare il traffico di lettura da quello di scrittura. Le repliche Aurora utilizzano URL endpoint diversi, consentendo di indirizzare il traffico di lettura alla replica anziché al database primario. La replica può elaborare le richieste di lettura in parallelo con le richieste di scrittura nel database primario, riducendo l'I/O e la latenza.

ripulire

L'esecuzione dell'inferenza batch in Amazon Bedrock è soggetta a costi in base ai prezzi di Amazon Bedrock. Una volta completata la procedura dettagliata, elimina l'istanza notebook SageMaker e rimuovi tutti i dati dai bucket S3 per evitare di incorrere in addebiti futuri.

Considerazioni

Sebbene la soluzione dimostrata mostri prestazioni migliorate dei modelli linguistici quando richiesto con coerenza, è importante notare che la procedura dettagliata non è pronta per la produzione. Prima di eseguire la distribuzione in produzione, è necessario adattare questa prova di concetto alla propria implementazione, tenendo presente i seguenti requisiti:

  • Limitazione dell'accesso ad API e database per impedire l'utilizzo non autorizzato.
  • Aderenza alle best practice di sicurezza AWS relative all'accesso ai ruoli IAM e ai gruppi di sicurezza.
  • Convalida e sanificazione dell'input dell'utente per prevenire attacchi di injection tempestivi.
  • Monitoraggio e registrazione dei processi attivati ​​per consentire test e audit.

Conclusione

Questo post mostra che i suggerimenti di autocoerenza migliorano le prestazioni dei modelli linguistici generativi in ​​compiti complessi di PNL che richiedono competenze aritmetiche e logiche a scelta multipla. L'autoconsistenza utilizza la decodifica stocastica basata sulla temperatura per generare vari percorsi di ragionamento. Ciò aumenta la capacità del modello di suscitare pensieri diversi e utili per arrivare a risposte corrette.

Con l'inferenza batch di Amazon Bedrock, il modello linguistico Cohere Command viene invitato a generare risposte autoconsistenti a una serie di problemi aritmetici. L'accuratezza migliora dal 51.7% con la decodifica greedy al 68% con il campionamento autoconsistente di 30 percorsi di ragionamento a T=1.0. Il campionamento di cinque percorsi migliora già la precisione del 7.5%. L'approccio è trasferibile ad altri modelli linguistici e attività di ragionamento, come dimostrato dai risultati del modello Jurassic-21 Mid di AI2 Labs in un esame di certificazione AWS. In un set di domande di piccole dimensioni, l'autocoerenza con cinque percorsi campionati aumenta la precisione del 5% rispetto all'avido CoT.

Ti invitiamo a implementare suggerimenti di autocoerenza per prestazioni migliorate nelle tue applicazioni con modelli di linguaggio generativi. Impara di più riguardo Comando coerente ed AI21 Labs Giurassico modelli disponibili su Amazon Bedrock. Per ulteriori informazioni sull'inferenza batch, fare riferimento a Esegui l'inferenza batch.

Ringraziamenti

L'autore ringrazia i revisori tecnici Amin Tajgardoon e Patrick McSweeney per l'utile feedback.


L'autore

Migliora le prestazioni dei modelli linguistici generativi con suggerimenti di autocoerenza su Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Lucia Santamaria è una scienziata applicata presso la ML University di Amazon, dove si concentra sull'innalzamento del livello di competenza ML in tutta l'azienda attraverso la formazione pratica. Lucía ha un dottorato di ricerca in astrofisica ed è appassionata di democratizzare l'accesso alle conoscenze e agli strumenti tecnologici.

Timestamp:

Di più da Apprendimento automatico di AWS