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

  1. Installa il ilab plug-in CLI.
  2. Prepara la tua tassonomia.
  3. Aggiungere la tassonomia tar.gz al secchio Object Storage.

Generazione di dati tramite la console

  1. Nella console, aprire il servizioRed Hat AI InstructLab.

  2. Fate clic su InstructLab Projects > il vostro progetto > Training data > Generate.

  3. Inserire un nome alfanumerico per i dati di addestramento e selezionare la tassonomia da utilizzare.

  4. Facoltativo: Prima di iniziare il processo di generazione dei dati, esaminare il costo stimato fornito.

  5. Fai clic su Genera. Lo stato è 'queued, poi 'running.

  6. Aspettare che lo stato sia completed. Al termine della generazione dei dati, viene creata una directory synthetic_data che 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.

  1. Nella console, aprire il servizioRed Hat AI InstructLab.

  2. Fate clic su InstructLab Progetti > il vostro progetto > Dati di formazione > Importazione.

  3. Inserire un nome alfanumerico per i dati.

  4. Selezionare una delle seguenti opzioni.

    • Object Storage: Selezionare i file esistenti nel secchio Object Storage.

      1. Selezionare l'istanza e il bucket in cui sono memorizzati i dati esistenti.
      2. Fai clic su Next.
      3. 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.

      1. Selezionare un'istanza e un bucket di Object Storage o creare una nuova istanza e un nuovo bucket per archiviare i dati.
      2. Concedere a InstructLab i permessi di scrittura per il bucket.
      3. 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.
      4. Fai clic su Next.
      5. Selezionare i file delle conoscenze e delle competenze che si desidera caricare dal computer locale.
  5. 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.

  1. Nella console, aprire il servizioRed Hat AI InstructLab.

  2. Fate clic su InstructLab Progetti > il vostro progetto > Dati di formazione.

  3. Selezionare fino a 20 voci dei dati di allenamento dall'elenco e fare clic su Unisci.

  4. Inserire un nome alfanumerico per i dati.

  5. Selezionare l'istanza di Object Storage e il bucket in cui si desidera memorizzare i dati uniti.

  6. Fai clic su Crea.

Generazione di dati tramite la CLI

  1. Elencare le tassonomie e annotare la tassonomia che si desidera utilizzare.

    ibmcloud ilab taxonomy list
    

    Output di esempio.

    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. 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 669a88c9488ee7b95ce8fe05
    

    Output di esempio.

    id            66a268c170dcb21150050e8e
    name          test-data
    state         queued
    status
    created_at    2024-07-19T15:40:29.000Z
    taxonomy_id   669a88c9488ee7b95ce8fe05
    
  3. 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 directory synthetic_data con i log per la risoluzione dei problemi.

    ibmcloud ilab data get --id DATA_ID
    

    Esempio di comando " data get.

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e
    

    Output 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
    
  4. Opzionale: Quando lo stato è completed, è possibile esaminare le metriche, come le stime dei token per calcolare il costo stimato.

    Esempio di comando data get con l'opzione --output json

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e --output json
    

    Esempio 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.

  1. Elencare le tassonomie e annotare la tassonomia che si desidera utilizzare.
    ibmcloud ilab taxonomy list
    
    Output di esempio.
    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. 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
    
  3. 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] [--internal-ids INTERNAL-IDs]
    
    Esempio di comando per includere più ID interni (fonti di dati) per la generazione dei dati.
    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

  1. 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/json
    

    Output 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"
        }
      ]
    }
    
  2. 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
        }
      }
    }
    
  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.jsonl e skills_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.