Generare dati da una tassonomia per InstructLab
La generazione dei dati è il processo di generazione automatica di domande e risposte sintetiche basate sulle domande e le risposte incluse nei file QNA. Il processo utilizzato da Red Hat AI InstructLab per generare i dati si concentra sulla qualità e sulla rilevanza dei contenuti.
Ulteriori informazioni sul processo di generazione dei dati da Red Hat.
Prerequisiti
Generazione di dati tramite la console
-
Nella console, aprire il servizioRed Hat AI InstructLab.
-
Fate clic su InstructLab Projects > il vostro progetto > Training data > Generate.
-
Inserire un nome alfanumerico per i dati di addestramento e selezionare la tassonomia da utilizzare.
-
Facoltativo: Prima di iniziare il processo di generazione dei dati, esaminare il costo stimato fornito.
-
Fai clic su Genera. Lo stato è '
queued, poi 'running. -
Aspettare che lo stato sia
completed. Al termine della generazione dei dati, viene creata una directorysynthetic_datache contiene i file di registro Object Storage bucket. È possibile esaminare questi registri per la risoluzione dei problemi o la verifica.
Importare i propri dati di allenamento nella console
È possibile importare i propri dati generati in precedenza per integrare la generazione di dati in InstructLab. Si consiglia di importare i propri dati se è necessario eseguire una o più delle seguenti operazioni.
- Importare uno o più documenti di conoscenze e competenze quando si generano i dati.
- Combinare più serie di dati di addestramento in una sola.
- Generare i dati, scaricarli, quindi manipolare una sottosezione dei dati e rigenerarli.
- Combinare i dati generati in precedenza con i nuovi dati importati.
- Importazione di dati, generazione di dati di addestramento, quindi combinazione di tali dati con un'altra sessione di generazione di dati.
- Combinare il buffer di replay e i dati importati dalla tassonomia. Questa funzione è disponibile solo tramite API o CLI.
- Importazione di dati e generazione di dati di training dalla vostra tassonomia. Questa funzione è disponibile solo tramite API o CLI.
Per importare i propri dati, è possibile fare riferimento a precedenti esecuzioni di generazione di dati, importare file dal proprio bucket Object Storage o caricare file dal proprio computer locale.
Completare i seguenti passaggi per importare i propri dati di allenamento.
-
Nella console, aprire il servizioRed Hat AI InstructLab.
-
Fate clic su InstructLab Progetti > il vostro progetto > Dati di formazione > Importazione.
-
Inserire un nome alfanumerico per i dati.
-
Selezionare una delle seguenti opzioni.
-
Object Storage: Selezionare i file esistenti nel secchio Object Storage.
- Selezionare l'istanza e il bucket in cui sono memorizzati i dati esistenti.
- Fai clic su Next.
- Selezionare i file da importare.
-
Caricare i file: Selezionare i file dal computer locale. Si noti che esiste un limite di 40 Mb per il caricamento dei file.
- Selezionare un'istanza e un bucket di Object Storage o creare una nuova istanza e un nuovo bucket per archiviare i dati.
- Concedere a InstructLab i permessi di scrittura per il bucket.
- Opzionale: Impostazioni di memorizzazione. Specificare i seguenti dettagli aggiuntivi per l'archiviazione dei dati.
- Percorso del file del secchio.
- Directory all'interno del bucket.
- Object Storage nome dell'istanza.
- Gruppo di risorse.
- Object Storage nome del secchio.
- Resilienza del secchio.
- Fai clic su Next.
- Selezionare i file delle conoscenze e delle competenze che si desidera caricare dal computer locale.
-
-
Fai clic su Import.
Unire i dati di formazione nella console
Si possono generare dati in pezzi più piccoli e gestibili, in modo da evitare timeout o limiti di sistema. È quindi possibile unire questi set di dati più piccoli in un unico set di dati per l'addestramento.
Completare i seguenti passaggi per unire i dati nella console.
-
Nella console, aprire il servizioRed Hat AI InstructLab.
-
Fate clic su InstructLab Progetti > il vostro progetto > Dati di formazione.
-
Selezionare fino a 20 voci dei dati di allenamento dall'elenco e fare clic su Unisci.
-
Inserire un nome alfanumerico per i dati.
-
Selezionare l'istanza di Object Storage e il bucket in cui si desidera memorizzare i dati uniti.
-
Fai clic su Crea.
Generazione di dati tramite la CLI
-
Elencare le tassonomie e annotare la tassonomia che si desidera utilizzare.
ibmcloud ilab taxonomy listOutput di esempio.
id name taxonomy_path 669a88c9488ee7b95ce8fe05 test-tax taxonomy.tar.gz -
Generare dati dalla tassonomia. Annotare l'ID dei dati da utilizzare nel passaggio successivo. Utilizzare caratteri alfanumerici nel nome.
ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID]Esempio di comando.
ibmcloud ilab data generate --name testdata --taxonomy-id 669a88c9488ee7b95ce8fe05Output di esempio.
id 66a268c170dcb21150050e8e name test-data state queued status created_at 2024-07-19T15:40:29.000Z taxonomy_id 669a88c9488ee7b95ce8fe05 -
Controllare i dettagli della generazione dei dati. Includere l'ID dei dati. Lo stato è '
queued, poi 'running. Attendere che lo stato sia 'completed. Quando lo stato ècompleted, nel bucket Object Storage viene creata una directorysynthetic_datacon i log per la risoluzione dei problemi.ibmcloud ilab data get --id DATA_IDEsempio di comando "
data get.ibmcloud ilab data get --id 66a268c170dcb21150050e8eOutput di esempio.
id 66a268c170dcb21150050e8e name test-data state running status Generating data for taxonomy path compositional_skills->STEM->math->area: 12% 12/100 (total qna processed 1/147) created_at 2024-07-19T15:40:29.000Z taxonomy_id 669a88c9488ee7b95ce8fe05 -
Opzionale: Quando lo stato è
completed, è possibile esaminare le metriche, come le stime dei token per calcolare il costo stimato.Esempio di comando
data getcon l'opzione--output jsonibmcloud ilab data get --id 66a268c170dcb21150050e8e --output jsonEsempio di output JSON
{ "created_at": "2026-02-18T15:40:29.000Z", "data_metrics": { "samples": { "knowledge": 30, "skills": 70, "total": 100 }, "tokens": { "data_leaf_nodes": { "compositional_<taxonomy_path>": 26196, "knowledge_<taxonomy_path>": 1228930, }, "data_tokens_total": 5993486, "training_estimated": 411435913, "training_phases": { "phase_1_knowledge": 1389992, "phase_2_skills": 410045921 } } }, "id": "66a268c170dcb21150050e8e", "last_signal_at": "2026-02-18T17:20:32.000Z", "name": "test-data", "state": "completed", "status": "completed", "taxonomy_id": "669a88c9488ee7b95ce8fe05" }
Importare i propri dati di addestramento utilizzando la CLI
È possibile che si vogliano importare i propri dati per uno o più dei seguenti motivi.
- Importare uno o più documenti di conoscenze e competenze quando si generano i dati.
- Combinare più serie di dati di addestramento in una sola.
- Generare i dati, scaricarli, quindi manipolare una sottosezione dei dati e rigenerarli.
- Combinare i dati generati in precedenza con i nuovi dati importati.
- Importazione di dati, generazione di dati di addestramento, quindi combinazione di tali dati con un'altra sessione di generazione di dati.
- Combinare il buffer di replay e i dati importati dalla tassonomia. Questa funzione è disponibile solo tramite API o CLI.
- Importazione di dati e generazione di dati di training dalla vostra tassonomia. Questa funzione è disponibile solo tramite API o CLI.
È possibile importare i propri dati di allenamento per integrare la generazione di dati in InstructLab. Per importare i propri dati generati in precedenza, specificare uno o più dei seguenti elementi:
- Gli ID di generazione dei dati delle esecuzioni precedenti.
- Un bucket Object Storage che contiene i file delle conoscenze e delle competenze di
.jsonl.
Per importare i dati, procedere come segue.
- Elencare le tassonomie e annotare la tassonomia che si desidera utilizzare.
Output di esempio.ibmcloud ilab taxonomy listid name taxonomy_path 669a88c9488ee7b95ce8fe05 test-tax taxonomy.tar.gz - Se si dispone di dati generati in precedenza che si desidera utilizzare, elencare i dati e annotare gli UUID che si desidera utilizzare. È possibile includere fino a 20 fonti di dati.
ibmcloud ilab data list - Generare dati dalla tassonomia. Annotare l'ID dei dati da utilizzare nel passaggio successivo. Utilizzare caratteri alfanumerici nel
nome.
Esempio di comando per includere più ID interni (fonti di dati) per la generazione dei dati.ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID] [--internal-ids INTERNAL-IDs]ibmcloud ilab data generate --name testdata --taxonomy-id 65005b67-7de4-4216-b23c-ed4342f99c88 --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40
Per ulteriori esempi, vedere la sezione successiva: Comandi di esempio per importare i propri dati di allenamento.
Esempi di comandi per importare i propri dati di addestramento
Esaminate i seguenti comandi di esempio per importare i vostri dati di formazione o per aggiungere i file delle conoscenze e delle competenze a un lavoro di generazione dei dati.
Esempio di comando per includere più ID interni.
ibmcloud ilab data generate --name testdata --taxonomy-id 65005b67-7de4-4216-b23c-ed4342f99c88 --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40
Comando di esempio per combinare più fonti di dati generate in precedenza (ID interni) e file .jsonl da un bucket Object Storage.
ibmcloud ilab data generate \
--name testdata \
--taxonomy-id 669a88c9488ee7b95ce8fe05 \
--internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40 \
--knowledge-paths PATH \
--skills-paths PATH \
--skills-knowledge-cos-bucket STRING \
--skills-knowledge-cos-bucket-endpoint ENDPOINT
Esempio di comando per combinare i dati generati in precedenza con i file di conoscenze e competenze di .jsonl memorizzati in un bucket di Object Storage. È anche possibile specificare un bucket di output Object Storage per memorizzare
i dati generati (SDG) in uscita.
ibmcloud ilab data generate \
--name testdata \
--taxonomy-id 669a88c9488ee7b95ce8fe05 \
--internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59 \
--knowledge-paths PATH \
--skills-paths PATH \
--skills-knowledge-cos-bucket STRING \
--skills-knowledge-cos-bucket-endpoint ENDPOINT
--output-cos-bucket-string STRING \
--output-cos-bucket-endpoint ENDPOINT
Esempio di comando per unire i dati specificando i loro ID interni.
ibmcloud ilab data generate \
--name testdata \
--internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40 \
--output-cos-bucket-string STRING \
--output-cos-bucket-endpoint ENDPOINT
Esempio di comando per unire i dati generati in precedenza, specificando i loro ID interni e includendo le competenze e le conoscenze da un bucket Object Storage.
ibmcloud ilab data generate \
--name testdata \
--internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59 \
--knowledge-paths PATH \
--skills-paths PATH \
--skills-knowledge-cos-bucket STRING \
--skills-knowledge-cos-bucket-endpoint ENDPOINT
--output-cos-bucket-string STRING \
--output-cos-bucket-endpoint ENDPOINT
Esempio di comando per unire competenze e conoscenze da un bucket Object Storage.
ibmcloud ilab data generate \
--name testdata \
--knowledge-paths PATH \
--skills-paths PATH \
--skills-knowledge-cos-bucket STRING \
--skills-knowledge-cos-bucket-endpoint ENDPOINT
--output-cos-bucket-string STRING \
--output-cos-bucket-endpoint ENDPOINT
Generazione di dati tramite l'API
-
Elencare le tassonomie e annotare la tassonomia che si desidera utilizzare.
Esempio di comando.
curl -X 'GET' \ 'https://us-east.instructlab.ibm.com/v1/taxonomies' \ -H 'accept: application/jsonOutput di esempio.
{ "taxonomies": [ { "id": "202a03c4-dcf1-432a-82b7-abecb2e019f7", "name": "example-taxonomy-name-1", "taxonomy_path_cos": "taxonomies/taxonomy.tar.gz", "created_at": "2024-10-23T02:58:50.000Z" } ] } -
Generare dati dalla tassonomia. Annotare l'ID dei dati da utilizzare nel passaggio successivo. Utilizzare caratteri alfanumerici nel nome.
Esempio di comando.
curl -X 'POST' \ 'https://us-east.instructlab.ibm.com/v1/data' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "name": "example-data-1", "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7" }'Output di esempio.
{ "id": "add785e6-a8c3-4f5f-ab89-c506a3f115da", "name": "example-data-1", "state": "", "status": "queued", "created_at": "2024-10-23T02:58:50.000Z", "last_signal_at": "2026-02-18T17:20:32.000Z", "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7", "data_metrics": { "samples": { "additionalProp1": 1, "additionalProp2": 2, "additionalProp3": 3 } } } -
Controllare i dettagli della generazione dei dati. Includere l'ID dei dati. Lo stato è '
queued, poi 'running. Attendere che lo stato sia 'completed.Esempio di comando.
curl -X 'GET' \ 'https://us-east.instructlab.ibm.com/v1/data/add785e6-a8c3-4f5f-ab89-c506a3f115da' \ -H 'accept: application/json'Output di esempio.
{ "id": "add785e6-a8c3-4f5f-ab89-c506a3f115da", "name": "example-data-1", "state": "", "status": "queued", "created_at": "2024-10-23T02:58:50.000Z", "last_signal_at": "2026-02-18T17:20:32.000Z", "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7", "data_metrics": { "samples": { "additionalProp1": 1, "additionalProp2": 2, "additionalProp3": 3 } } }
Quando lo stato è completed, nel bucket Object Storage viene creata una directory synthetic_data con i log per la risoluzione dei problemi.
Cosa c'è nel secchio Object Storage dopo aver generato i dati?
Dopo aver generato i dati, il bucket Object Storage contiene una directory synthetic_data con i seguenti file.
Artifacts- Questi file contengono i campioni di ogni nodo foglia. Questi dati non sono utilizzati per l'addestramento del modello, ma sono forniti per la leggibilità e possono essere utilizzati per vedere se un QNA sta generando il numero di campioni previsto.
Logs- Questi file contengono i log di esecuzione di Red Hat AI InstructLab e i dettagli del sistema.
knowledge_train_msgs.jsonleskills_train_msgs.jsonl- Si tratta dei file di addestramento della Fase 1 e della Fase 2 e contengono i campioni utilizzati per l'addestramento del modello.
Per capire perché e come vengono generati i dati, consultare il documento della community SDG FAQs.
Esempio di formato .jsonl
Esaminate il seguente esempio di struttura .jsonl per le competenze e le conoscenze.
{
"messages": [
{
"content": "string", // The text of the message
"role": "string" // The role of the sender (e.g., "system", "user", "assistant")
}
],
"metadata": "string", // A JSON-encoded string containing additional info (e.g., num_turns, group, dataset)
"id": "string" // A unique identifier for the conversation
}
Passi successivi
Dopo aver generato i dati della tassonomia, si può iniziare ad addestrare il modello.