Opzione 2: utilizzare i log delle invocazioni per la preparazione dei dati
Quando viene creato un processo di distillazione, è possibile fare in modo che Amazon Bedrock utilizzi come dati di addestramento le risposte insegnanti esistenti presenti nei log delle invocazioni di CloudWatch Logs. Per Amazon Bedrock, un log delle invocazioni è un registro dettagliato delle invocazioni del modello.
Per utilizzare i log delle invocazioni per la distillazione di modelli, attivare la registrazione delle invocazioni del modello, utilizzare una delle operazioni di invocazione del modello e assicurarsi di avere impostato un bucket Amazon S3 come destinazione per i log. Prima di avviare il processo di distillazione di modelli, è necessario fornire le autorizzazioni di Amazon Bedrock per accedere ai log. Per ulteriori informazioni sulla configurazione dei log delle invocazioni, consultare Monitorare l’invocazione del modello utilizzando Amazon CloudWatch Logs.
Con questa opzione, è possibile specificare se Amazon Bedrock deve utilizzare solo i prompt oppure le coppie di prompt-risposta presenti nel log delle invocazioni. Se si vuole che Amazon Bedrock utilizzi solo i prompt, Amazon Bedrock potrebbe aggiungere tecniche di sintesi dei dati proprietari per generare risposte diverse e di qualità superiore dal modello insegnante. Se si vuole che Amazon Bedrock utilizzi le coppie di prompt-risposta, Amazon Bedrock non rigenera le risposte del modello insegnante. Amazon Bedrock utilizzerà direttamente le risposte del log delle invocazioni per eseguire il fine-tuning del modello studente.
Importante
È possibile fornire ad Amazon Bedrock al massimo 15.000 prompt o coppie di prompt-risposta per eseguire il fine-tuning del modello studente. Per garantire che il modello studente venga ottimizzato con il fine-tuning per soddisfare requisiti specifici, consigliamo vivamente quanto segue:
-
Se si vuole che Amazon Bedrock utilizzi solo i prompt, assicurarsi che siano presenti almeno 100 coppie di prompt-risposta generate da tutti i modelli.
-
Se si vuole che Amazon Bedrock utilizzi le risposte dei log delle invocazioni, assicurarsi che nei log delle invocazioni siano presenti almeno 100 coppie prompt-risposta generate dal modello e che corrispondano esattamente al modello insegnante scelto.
Facoltativamente, è possibile aggiungere i metadati delle richieste alle coppie di prompt-risposta nel log delle invocazioni utilizzando una delle operazioni di invocazione del modello e utilizzarli in seguito per filtrare i log. Amazon Bedrock può utilizzare i log filtrati per eseguire il fine-tuning del modello studente.
Per filtrare i log utilizzando più metadati delle richieste, utilizzare un solo operatore booleano AND, OR o NOT. Non è possibile combinare le operazioni. Per filtrare i metadati di una singola richiesta, utilizzare l’operatore booleano NOT.
Aggiungere i metadati delle richieste ai prompt e alle risposte nei log delle invocazioni per la distillazione di modelli
La registrazione delle invocazioni dei modelli consente di raccogliere i log delle invocazioni, i dati di input (prompt) dei modelli e i dati di output (risposte) dei modelli per tutte le invocazioni utilizzate in Amazon Bedrock. Se la registrazione è abilitata, è possibile raccogliere i log ogni volta che si interagisce con i modelli di fondazione di Amazon Bedrock tramite qualsiasi operazione delle API Invoke o Converse. Se si vuole che Amazon Bedrock utilizzi i prompt e le risposte associate presenti nel log delle invocazioni per eseguire il fine-tuning il modello studente, è necessario consentire ad Amazon Bedrock l’accesso a questi log. L’utilizzo delle risposte che un modello ha già generato velocizza il fine-tuning del modello studente. L’utilizzo delle risposte dei log delle invocazioni rende anche la distillazione di modelli più conveniente, tuttavia non vengono aggiunte le tecniche di sintesi dei dati proprietari di Amazon Bedrock, che potrebbe portare a un modello distillato più performante.
Con i log delle invocazioni è possibile identificare le coppie di prompt-risposta che Amazon Bedrock deve utilizzare per la distillazione di modelli. Queste coppie di prompt-risposta possono essere destinate a casi d’uso specifici. Per poter identificare le coppie di prompt-risposta da utilizzare per la distillazione, è necessario aggiungere una stringa di metadati delle richieste alle coppie di prompt-risposta quando si invoca un modello o si utilizza l’operazione dell’API Converse. I metadati della richiesta sono forniti nel formato ". priority" :
"High"
Man mano che si interagisce con il modello utilizzando le operazioni delle API Invoke o Converse, le interazioni e i metadati delle richieste vengono registrati nei log delle invocazioni. Di seguito è riportato un esempio di log delle invocazioni generato da una chiamata InvokeModel che mostra i metadati della richiesta:
{ "schemaType": "ModelInvocationLog", "schemaVersion": "1.0", "timestamp": "2024-09-11T17:16:18Z", "accountId": "XXXXX", "identity": { "arn": "arn:aws:sts::XXXXXXX:assumed-role/Admin/XXXXXX" }, "region": "us-east-1", "requestId": "7ee514f3-9eff-467c-af75-8fd564ce58e5", "operation": "InvokeModel", "modelId": "meta.llama3-1-405b-instruct-v1:0", "input": { "inputContentType": "application/json", "inputBodyJson": { "prompt": "story of two dogs", "max_tokens_to_sample": 300 }, "inputTokenCount": 13 }, "output": { "outputContentType": "application/json", "outputBodyJson": { "type": "completion", "completion": " Here is a story about two dogs:\n\nRex and Charlie were best friends who lived next door to each other. Every morning, their owners would let them out into the backyard to play. Rex was a golden retriever with long, shaggy fur. He loved to run and chase sticks. Charlie was a corgi with short legs and a big smile. He was happy just sniffing the grass and rolling around. \n\nThe two dogs spent every day playing together. Rex would grab a stick and bring it over to Charlie, wagging his tail excitedly. Charlie would take the other end of the stick in his mouth and they'd have a friendly game of tug-of-war. After tiring themselves out, they'd flop down in the warm sunshine for a nap. \n\nAt lunchtime, their owners would call them in for food. Rex would gobble up his kibble hungrily while Charlie ate his at a more leisurely pace. After lunch, it was right back outside for more playtime. The afternoon sunbeams would light up their fur as they chased each other around the yard. \n\nWhen it started getting late, their owners called them in for the night. Rex and Charlie would head inside, tired but happy after another fun day of play. After slurping up fresh water from their bowls, they'd curl up on their beds, Rex's fluffy golden tail tucked over his nose and little", "stop_reason": "max_tokens", "stop": null }, "outputTokenCount": 300 }, "requestMetadata": { "project": "CustomerService", "intent": "ComplaintResolution", "priority": "High" } }
È possibile impostare il log delle invocazioni come origine dati di input all’avvio di un processo di distillazione di modelli. È possibile avviare il processo di distillazione di modelli nella console Amazon Bedrock, utilizzando l’API, AWS CLI o l’SDK AWS.
Requisiti per fornire i metadati delle richieste
I metadati delle richieste devono soddisfare i seguenti requisiti:
-
Devono essere nel formato
key:valuedi JSON. -
La coppia chiave-valore deve essere una stringa al massimo di 256 caratteri.
-
Devono fornire al massimo 16 coppie chiave-valore.
Utilizzo di filtri per metadati delle richieste
È possibile applicare filtri ai metadati delle richieste per scegliere in modo selettivo quali coppie di prompt/risposta includere nella distillazione per il fine-tuning del modello studente, ad esempio per includere solo quelle con metadati delle richieste “project”: “CustomerService” e “priority”: “High”.
Per filtrare i log utilizzando più metadati delle richieste, utilizzare un solo operatore booleano AND, OR o NOT. Non è possibile combinare le operazioni. Per filtrare i metadati di una singola richiesta, utilizzare l’operatore booleano NOT.
È possibile impostare il log delle invocazioni come origine dati di input e specificare quali filtri utilizzare per selezionare le coppie di prompt-risposta all’avvio di un processo di distillazione di modelli. È possibile avviare il processo di distillazione di modelli nella console Amazon Bedrock, utilizzando l’API, AWS CLI o l’SDK AWS. Per ulteriori informazioni, consulta Inviare un processo di distillazione di modelli in Amazon Bedrock.
Convalida del set di dati
Prima di eseguire il processo di distillazione, è possibile convalidare il set di dati di input utilizzando uno script di Python.