Generación de datos a partir de una taxonomía para InstructLab

La generación de datos es el proceso de generación automática de preguntas y respuestas sintéticas basadas en las preguntas y respuestas que usted incluyó en los archivos QNA. El proceso que Red Hat AI InstructLab utiliza para generar datos se centra en la calidad y relevancia de los contenidos.

Más información sobre el proceso de generación de datos en Red Hat.

Requisitos previos

  1. Instala el complemento ilab CLI.
  2. Prepare su taxonomía.
  3. Añada la taxonomía tar.gz a su cubo Object Storage.

Generación de datos mediante la consola

  1. En la consola, abre el servicioRed Hat AI InstructLab.

  2. Haga clic en InstructLab Proyectos > su proyecto > Datos de entrenamiento > Generar.

  3. Introduzca un nombre alfanumérico para los datos de entrenamiento y seleccione la taxonomía a utilizar.

  4. Opcional: Revise el coste estimado que se proporciona antes de iniciar el proceso de generación de datos.

  5. Pulse Generar. El estado es ' queued, luego ' running.

  6. Esperar a que el estado sea completed. Cuando finaliza la generación de datos, se crea un directorio synthetic_data que contiene los archivos de registro Object Storage bucket. Puede revisar estos registros para solucionar problemas o verificarlos.

Importar sus propios datos de entrenamiento en la consola

Puede importar sus propios datos generados previamente para complementar la generación de datos en InstructLab. Es posible que desee importar sus propios datos si necesita realizar una o varias de las siguientes operaciones.

  • Importe uno o varios documentos de conocimientos y competencias al generar los datos.
  • Combine varias series de datos de entrenamiento en una sola.
  • Genere datos, descárguelos, manipule una subsección de sus datos y vuelva a generarlos.
  • Combine los datos generados previamente con los nuevos datos importados.
  • Importe datos, genere datos de entrenamiento y, a continuación, combine esos datos con otra ejecución de generación de datos.
  • Combine el búfer de repetición y los datos importados de su taxonomía. Esta función sólo está disponible a través de la API o la CLI.
  • Importe datos y genere datos de formación a partir de su taxonomía. Esta función sólo está disponible a través de la API o la CLI.

Para importar sus propios datos, puede hacer referencia a ejecuciones anteriores de generación de datos, importar archivos de su cubo Object Storage o cargar archivos desde su máquina local.

Complete los siguientes pasos para importar sus propios datos de entrenamiento.

  1. En la consola, abre el servicioRed Hat AI InstructLab.

  2. Haga clic en InstructLab Proyectos > su proyecto > Datos de formación > Importar.

  3. Introduzca un nombre alfanumérico para sus datos.

  4. Seleccione una de las opciones siguientes.

    • Object Storage: Seleccione los archivos existentes en su cubo Object Storage.

      1. Seleccione la instancia y el bucket donde se almacenan los datos existentes.
      2. Pulse Siguiente.
      3. Seleccione los archivos que desea importar.
    • Cargar archivos: Seleccione archivos de su máquina local. Tenga en cuenta que hay un límite de 40 Mb para subir archivos.

      1. Seleccione una instancia y un bucket de Object Storage o cree una instancia y un bucket nuevos para almacenar sus datos.
      2. Conceda a InstructLab permisos de escritor para el cubo.
      3. Opcional: Configuración de almacenamiento. Especifique los siguientes detalles adicionales sobre cómo almacenar sus datos.
        • Ruta del archivo del cubo.
        • Directorio dentro del cubo.
        • Object Storage nombre de instancia.
        • Grupo de recursos.
        • Object Storage nombre del cubo.
        • Resistencia del cubo.
      4. Pulse Siguiente.
      5. Seleccione los archivos de conocimientos y habilidades que desea cargar desde su equipo local.
  5. Haga clic en Importar.

Fusión de datos de entrenamiento en la consola

Puede generar datos en trozos más pequeños y manejables, para evitar tiempos de espera o límites del sistema. A continuación, puede fusionar estos conjuntos de datos más pequeños en un único conjunto de datos para el entrenamiento.

Complete los siguientes pasos para fusionar datos en la consola.

  1. En la consola, abre el servicioRed Hat AI InstructLab.

  2. Haga clic en InstructLab Proyectos > su proyecto > Datos de formación.

  3. Seleccione hasta 20 entradas de datos de entrenamiento de la lista y haga clic en Fusionar.

  4. Introduzca un nombre alfanumérico para sus datos.

  5. Seleccione la instancia de Object Storage y el bucket donde desea almacenar los datos fusionados.

  6. Pulse Crear.

Generación de datos mediante la CLI

  1. Enumere sus taxonomías y anote la que desea utilizar.

    ibmcloud ilab taxonomy list
    

    Ejemplo de salida.

    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. Genere datos a partir de su taxonomía. Anote el ID de los datos que utilizará en el siguiente paso. Utilice caracteres alfanuméricos en el nombre.

    ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID]
    

    Ejemplo de comando.

    ibmcloud ilab data generate --name testdata --taxonomy-id 669a88c9488ee7b95ce8fe05
    

    Ejemplo de salida.

    id            66a268c170dcb21150050e8e
    name          test-data
    state         queued
    status
    created_at    2024-07-19T15:40:29.000Z
    taxonomy_id   669a88c9488ee7b95ce8fe05
    
  3. Comprueba los detalles de tu generación de datos. Incluya el ID de los datos. El estado es ' queued, luego ' running. Espera a que el estado sea ' completed. Cuando el estado es completed, en el cubo Object Storage, se crea un directorio synthetic_data con registros para la resolución de problemas.

    ibmcloud ilab data get --id DATA_ID
    

    Mandato data get de ejemplo.

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e
    

    Ejemplo de salida.

    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. Opcional: Cuando el estado es completed, puede revisar las métricas, como las estimaciones de fichas para calcular el coste estimado.

    Ejemplo de comando data get con la opción --output json

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

    Ejemplo de salida 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"
    }
    

Importación de sus propios datos de entrenamiento mediante la CLI

Es posible que desee importar sus propios datos por una o varias de las siguientes razones.

  • Importe uno o varios documentos de conocimientos y competencias al generar los datos.
  • Combine varias series de datos de entrenamiento en una sola.
  • Genere datos, descárguelos, manipule una subsección de sus datos y vuelva a generarlos.
  • Combine los datos generados previamente con los nuevos datos importados.
  • Importe datos, genere datos de entrenamiento y, a continuación, combine esos datos con otra ejecución de generación de datos.
  • Combine el búfer de repetición y los datos importados de su taxonomía. Esta función sólo está disponible a través de la API o la CLI.
  • Importe datos y genere datos de formación a partir de su taxonomía. Esta función sólo está disponible a través de la API o la CLI.

Puede importar sus propios datos de entrenamiento para complementar la generación de datos en InstructLab. Para importar sus propios datos generados previamente, especifique una o varias de las siguientes opciones:

  • Los ID de generación de datos de ejecuciones anteriores.
  • Un cubo Object Storage que contiene archivos de conocimientos y habilidades .jsonl.

Complete los siguientes pasos para importar sus datos.

  1. Enumere sus taxonomías y anote la que desea utilizar.
    ibmcloud ilab taxonomy list
    
    Ejemplo de salida.
    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. Si ha generado previamente datos que desea utilizar, haga una lista de sus datos y anote los UUID que desea utilizar. Puede incluir hasta 20 fuentes de datos.
    ibmcloud ilab data list
    
  3. Genere datos a partir de su taxonomía. Anote el ID de los datos que utilizará en el siguiente paso. Utilice caracteres alfanuméricos en el nombre.
    ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID] [--internal-ids INTERNAL-IDs]
    
    Ejemplo de comando para incluir varios ID internos (fuentes de datos) para la generación de datos.
    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
    

Para más ejemplos, consulte la siguiente sección: Ejemplos de comandos para importar tus propios datos de entrenamiento.

Ejemplos de comandos para importar tus propios datos de entrenamiento

Revise los siguientes comandos ejemplo para importar sus propios datos de formación o añadir archivos de conocimientos y habilidades a un trabajo de generación de datos.

Ejemplo de comando para incluir varios ID internos.

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 ejemplo para combinar varias fuentes de datos generadas previamente (ID internos), así como archivos .jsonl de un cubo 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

Ejemplo de comando para combinar datos generados previamente con archivos de conocimientos y habilidades de .jsonl almacenados en un bucket de Object Storage. También puede especificar opcionalmente un cubo de salida Object Storage para almacenar la salida de datos generados (SDG).

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

Ejemplo de comando para fusionar datos especificando sus ID internos.

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

Comando ejemplo para fusionar datos generados previamente especificando sus ID internos, así como incluir habilidades y conocimientos de un cubo de 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

Ejemplo de comando para fusionar habilidades y conocimientos de un cubo 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

Generación de datos mediante la API

  1. Enumere sus taxonomías y anote la que desea utilizar.

    Ejemplo de comando.

    curl -X 'GET' \
    'https://us-east.instructlab.ibm.com/v1/taxonomies' \
    -H 'accept: application/json
    

    Ejemplo de salida.

    {
      "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. Genere datos a partir de su taxonomía. Anote el ID de los datos que utilizará en el siguiente paso. Utilice caracteres alfanuméricos en el nombre.

    Ejemplo de 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"
    }'
    

    Ejemplo de salida.

    {
      "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. Comprueba los detalles de tu generación de datos. Incluya el ID de los datos. El estado es ' queued, luego ' running. Espera a que el estado sea ' completed.

    Ejemplo de comando.

    curl -X 'GET' \
      'https://us-east.instructlab.ibm.com/v1/data/add785e6-a8c3-4f5f-ab89-c506a3f115da' \
      -H 'accept: application/json'
    

    Ejemplo de salida.

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

Cuando el estado es completed, en el cubo Object Storage, se crea un directorio synthetic_data con registros para la resolución de problemas.

¿Qué hay en mi cubo Object Storage después de generar los datos?

Después de generar los datos, su cubo Object Storage contiene un directorio synthetic_data con los siguientes archivos.

Artifacts
Estos archivos contienen las muestras de cada nodo hoja. No se utilizan para entrenar el modelo, pero se proporcionan para facilitar la lectura y se pueden utilizar para ver si un QNA está generando el número esperado de muestras.
Logs
Estos archivos contienen los registros de ejecución Red Hat AI InstructLab y detalles del sistema.
knowledge_train_msgs.jsonl y skills_train_msgs.jsonl
Son los archivos de entrenamiento de las fases 1 y 2 y contienen las muestras utilizadas para entrenar el modelo.

Para comprender por qué y cómo se generan sus datos, consulte el documento de la comunidad de preguntas frecuentes sobre SDG.

Ejemplo de formato .jsonl

Revise el siguiente ejemplo de estructura .jsonl para habilidades y conocimientos.

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

Próximos pasos

Una vez generados los datos de su taxonomía, puede empezar a entrenar su modelo.