Geração de dados de uma taxonomia para InstructLab

A geração de dados é o processo de geração automática de perguntas e respostas sintéticas com base nas perguntas e respostas que você incluiu nos arquivos QNA. O processo que o Red Hat AI InstructLab usa para gerar dados se concentra na qualidade e na relevância do conteúdo.

Saiba mais sobre o processo de geração de dados em Red Hat.

Pré-requisitos

  1. [Instale o ilab plug-in CLI](/docs/laboratório de instrução?topic=laboratório de instrução-cli-install).
  2. [Prepare sua taxonomia](/docs/laboratório de instrução?topic=laboratório de instrução-getting-started#taxonomy).
  3. [Adicione a taxonomia tar.gz ao seu bucket Object Storage](/docs/laboratório de instrução?topic=laboratório de instrução-getting-started#taxonomy-add-ui).

Geração de dados usando o console

  1. No console, abra o serviçoRed Hat AI InstructLab.

  2. Clique em InstructLab Projects > seu projeto > Training data > Generate.

  3. Digite um nome alfanumérico para os dados de treinamento e selecione a taxonomia a ser usada.

  4. Opcional: Revise o custo estimado que é fornecido antes de iniciar o processo de geração de dados.

  5. Clique em Gerar. O estado é ' queued, depois ' running.

  6. Aguarde até que o estado seja completed. Quando a geração de dados é concluída, um diretório synthetic_data que contém arquivos de registro é criado no bucket Object Storage. É possível analisar esses registros para solução de problemas ou verificação.

Importação de seus próprios dados de treinamento no console

Você pode importar seus próprios dados gerados anteriormente para complementar a geração de dados em InstructLab. Talvez você queira importar seus próprios dados se precisar fazer um ou mais dos seguintes procedimentos.

  • Importe um ou vários documentos de conhecimento e habilidades ao gerar dados.
  • Combine várias execuções de dados de treinamento em uma só.
  • Gere dados, faça o download e, em seguida, manipule uma subseção de seus dados e gere-os novamente.
  • Combine seus dados gerados anteriormente com dados recém-importados.
  • Importar dados, gerar dados de treinamento e, em seguida, combinar esses dados com outra execução de geração de dados.
  • Combine o buffer de reprodução e os dados importados de sua taxonomia. Esse recurso está disponível somente por meio da API ou da CLI.
  • Importe dados e gere dados de treinamento a partir de sua taxonomia. Esse recurso está disponível somente por meio da API ou da CLI.

Para importar seus próprios dados, você pode fazer referência a execuções anteriores de geração de dados, importar arquivos do seu bucket Object Storage ou fazer upload de arquivos do seu computador local.

Conclua as etapas a seguir para importar seus próprios dados de treinamento.

  1. No console, abra o serviçoRed Hat AI InstructLab.

  2. Clique em InstructLab Projects > seu projeto > Training data > Import.

  3. Digite um nome alfanumérico para seus dados.

  4. Selecione uma das opções a seguir.

    • Object Storage: Selecione os arquivos existentes em seu bucket Object Storage.

      1. Selecione a instância e o bucket onde seus dados existentes estão armazenados.
      2. Clique em Avançar.
      3. Selecione os arquivos que você deseja importar.
    • Carregar arquivos: Selecione os arquivos de sua máquina local. Observe que há um limite de 40 Mb para o upload de arquivos.

      1. Selecione uma instância e um bucket do Object Storage ou crie uma nova instância e um bucket para armazenar seus dados.
      2. Conceda permissões ao InstructLab Writer para o bucket.
      3. Opcional: Configurações de armazenamento. Especifique os seguintes detalhes adicionais sobre como armazenar seus dados.
        • Caminho do arquivo do compartimento.
        • Diretório dentro do bucket.
        • Object Storage nome da instância.
        • Grupo de recursos.
        • Object Storage nome da caçamba.
        • Resiliência da caçamba.
      4. Clique em Avançar.
      5. Selecione os arquivos de conhecimento e habilidades que deseja carregar de seu computador local.
  5. Clique em Importar.

Mesclando dados de treinamento no console

Você pode gerar dados em partes menores e gerenciáveis, para evitar tempos limite ou limites do sistema. Em seguida, é possível mesclar esses conjuntos de dados menores em um único conjunto de dados para treinamento.

Conclua as etapas a seguir para mesclar dados no console.

  1. No console, abra o serviçoRed Hat AI InstructLab.

  2. Clique em InstructLab Projects > seu projeto > Training data.

  3. Selecione até 20 de suas entradas de dados de treinamento na lista e clique em Merge (Mesclar ).

  4. Digite um nome alfanumérico para seus dados.

  5. Selecione a instância Object Storage e o bucket onde você deseja armazenar os dados mesclados.

  6. Clique em Criar.

Geração de dados usando a CLI

  1. Liste suas taxonomias e anote a taxonomia que deseja usar.

    ibmcloud ilab taxonomy list
    

    Exemplo de saída.

    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. Gere dados a partir de sua taxonomia. Anote o ID dos dados a serem usados na próxima etapa. Use caracteres alfanuméricos no nome.

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

    Exemplo de comando.

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

    Exemplo de saída.

    id            66a268c170dcb21150050e8e
    name          test-data
    state         queued
    status
    created_at    2024-07-19T15:40:29.000Z
    taxonomy_id   669a88c9488ee7b95ce8fe05
    
  3. Verifique os detalhes de sua geração de dados. Inclua a ID dos dados. O estado é ' queued, depois ' running. Aguarde até que o estado seja " completed. Quando o estado é completed, no bucket Object Storage, é criado um diretório synthetic_data com registros para solução de problemas.

    ibmcloud ilab data get --id DATA_ID
    

    Exemplo de comando data get.

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e
    

    Exemplo de saída.

    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: Quando o estado é completed, você pode revisar as métricas, como estimativas de token para calcular o custo estimado.

    Exemplo de comando data get com a opção --output json

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

    Exemplo de saída 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"
    }
    

Importação de seus próprios dados de treinamento usando a CLI

Talvez você queira importar seus próprios dados por um ou mais dos seguintes motivos.

  • Importe um ou vários documentos de conhecimento e habilidades ao gerar dados.
  • Combine várias execuções de dados de treinamento em uma só.
  • Gere dados, faça o download e, em seguida, manipule uma subseção de seus dados e gere-os novamente.
  • Combine seus dados gerados anteriormente com dados recém-importados.
  • Importar dados, gerar dados de treinamento e, em seguida, combinar esses dados com outra execução de geração de dados.
  • Combine o buffer de reprodução e os dados importados de sua taxonomia. Esse recurso está disponível somente por meio da API ou da CLI.
  • Importe dados e gere dados de treinamento a partir de sua taxonomia. Esse recurso está disponível somente por meio da API ou da CLI.

Você pode importar seus próprios dados de treinamento para complementar a geração de dados em InstructLab. Para importar seus próprios dados gerados anteriormente, especifique um ou mais dos seguintes itens:

  • As IDs de geração de dados de execuções anteriores.
  • Um bucket Object Storage que contém arquivos de conhecimento e habilidades .jsonl.

Conclua as etapas a seguir para importar seus dados.

  1. Liste suas taxonomias e anote a taxonomia que deseja usar.
    ibmcloud ilab taxonomy list
    
    Exemplo de saída.
    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. Se você tiver gerado dados anteriormente que deseja usar, liste-os e anote os UUIDs que deseja usar. Você pode incluir até 20 fontes de dados.
    ibmcloud ilab data list
    
  3. Gere dados a partir de sua taxonomia. Anote o ID dos dados a serem usados na próxima etapa. Use caracteres alfanuméricos no nome.
    ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID] [--internal-ids INTERNAL-IDs]
    
    Exemplo de comando para incluir várias IDs internas (fontes de dados) para geração de dados.
    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 obter mais exemplos, consulte a próxima seção: Comandos de exemplo para importar seus próprios dados de treinamento.

Exemplo de comandos para importar seus próprios dados de treinamento

Analise os seguintes comandos de exemplo para importar seus próprios dados de treinamento ou adicionar arquivos de conhecimento e habilidades a um trabalho de geração de dados.

Exemplo de comando para incluir várias IDs internas.

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

Exemplo de comando para combinar várias fontes de dados geradas anteriormente (IDs internos), bem como arquivos .jsonl de um 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

Exemplo de comando para combinar dados gerados anteriormente com arquivos de conhecimento e habilidades do .jsonl armazenados em um bucket do Object Storage. Opcionalmente, você também pode especificar um bucket de saída Object Storage para armazenar a saída de dados gerados (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

Exemplo de comando para mesclar dados especificando suas IDs internas.

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

Exemplo de comando para mesclar dados gerados anteriormente, especificando suas IDs internas, bem como incluir habilidades e conhecimentos de um 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

Exemplo de comando para mesclar habilidades e conhecimentos de um 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

Geração de dados usando a API

  1. Liste suas taxonomias e anote a taxonomia que deseja usar.

    Exemplo de comando.

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

    Exemplo de saída.

    {
      "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. Gere dados a partir de sua taxonomia. Anote o ID dos dados a serem usados na próxima etapa. Use caracteres alfanuméricos no nome.

    Exemplo 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"
    }'
    

    Exemplo de saída.

    {
      "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. Verifique os detalhes de sua geração de dados. Inclua a ID dos dados. O estado é ' queued, depois ' running. Aguarde até que o estado seja " completed.

    Exemplo de comando.

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

    Exemplo de saída.

    {
      "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 o estado é completed, no bucket Object Storage, é criado um diretório synthetic_data com registros para solução de problemas.

O que há no meu bucket Object Storage depois de gerar dados?

Depois de gerar os dados, o bucket Object Storage contém um diretório synthetic_data com os seguintes arquivos.

Artifacts
Esses arquivos contêm as amostras em cada nó folha. Elas não são usadas para treinar o modelo, mas são fornecidas para facilitar a leitura e podem ser usadas para verificar se um QNA está gerando o número esperado de amostras.
Logs
Esses arquivos contêm os registros de execução Red Hat AI InstructLab e os detalhes do sistema.
knowledge_train_msgs.jsonl e skills_train_msgs.jsonl
Esses são os arquivos de treinamento da Fase 1 e da Fase 2 e contêm amostras usadas para treinar o modelo.

Para entender por que e como seus dados são gerados, consulte o documento da comunidade SDG FAQs.

Exemplo de formato .jsonl

Analise o seguinte exemplo de estrutura .jsonl para habilidades e conhecimentos.

{
  "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óximas etapas

Depois de gerar dados de sua taxonomia, você pode começar a [treinar seu modelo](/docs/laboratório de instrução?topic=laboratório de instrução-model-train).