Générer des données à partir d'une taxonomie pour InstructLab

La génération de données est le processus qui consiste à générer automatiquement des questions et des réponses synthétiques sur la base des questions et des réponses que vous avez incluses dans les fichiers QNA. Le processus utilisé par Red Hat AI InstructLab pour générer des données est axé sur la qualité et la pertinence du contenu.

Pour en savoir plus sur le processus de génération de données, consultez le site Red Hat.

Prérequis

  1. Installez le ilab plug-in CLI.
  2. Préparez votre taxonomie.
  3. Ajoutez la taxonomie tar.gz à votre panier Object Storage.

Générer des données à l'aide de la console

  1. Dans la console, ouvrez le serviceRed Hat AI InstructLab

  2. Cliquez sur InstructLab Projects > your project > Training data > Generate.

  3. Saisissez un nom alphanumérique pour les données d'apprentissage et sélectionnez la taxonomie à utiliser.

  4. Facultatif : Examinez le coût estimé qui vous est fourni avant de commencer le processus de génération de données.

  5. Cliquez sur Générer. L'état est " queued, puis " running.

  6. Attendez que l'état soit completed. Lorsque la génération des données est terminée, un répertoire synthetic_data contenant les fichiers journaux est créé Object Storage bucket. Vous pouvez consulter ces journaux à des fins de dépannage ou de vérification.

Importer ses propres données d'entraînement dans la console

Vous pouvez importer vos propres données générées précédemment pour compléter la génération de données dans InstructLab. Vous pouvez importer vos propres données si vous devez effectuer une ou plusieurs des opérations suivantes.

  • Importer un ou plusieurs documents de connaissances et de compétences lors de la génération de données.
  • Combinez plusieurs séries de données de formation en une seule.
  • Générez des données, téléchargez-les, puis manipulez une sous-section de vos données et régénérez-les.
  • Combinez vos données précédemment générées avec des données nouvellement importées.
  • Importer des données, générer des données de formation, puis combiner ces données avec un autre cycle de génération de données.
  • Combinez le tampon de relecture et les données importées de votre taxonomie. Cette fonction est disponible uniquement via l'API ou la CLI.
  • Importez des données et générez des données de formation à partir de votre taxonomie. Cette fonction est disponible uniquement via l'API ou la CLI.

Pour importer vos propres données, vous pouvez faire référence à des cycles de génération de données antérieurs, importer des fichiers à partir de votre panier Object Storage ou télécharger des fichiers à partir de votre machine locale.

Suivez les étapes suivantes pour importer vos propres données de formation.

  1. Dans la console, ouvrez le serviceRed Hat AI InstructLab

  2. Cliquez sur InstructLab Projects > votre projet > Données de formation > Importer.

  3. Saisissez un nom alphanumérique pour vos données.

  4. Sélectionnez l'une des options suivantes.

    • Object Storage: Sélectionnez les fichiers existants dans votre panier Object Storage.

      1. Sélectionnez l'instance et le godet dans lesquels vos données existantes sont stockées.
      2. Cliquez sur Suivant.
      3. Sélectionnez les fichiers que vous souhaitez importer.
    • Télécharger des fichiers: Sélectionnez des fichiers à partir de votre machine locale. Notez qu'il y a une limite de 40 Mb pour le téléchargement de fichiers.

      1. Sélectionnez une instance et un godet Object Storage ou créez une nouvelle instance et un nouveau godet pour stocker vos données.
      2. Accorder à InstructLab l'autorisation d'écrire dans le seau.
      3. Optionnel: Paramètres de stockage. Indiquez les détails supplémentaires suivants pour le stockage de vos données.
        • Chemin d'accès au fichier de la réserve.
        • Répertoire dans le seau.
        • Object Storage nom de l'instance.
        • Groupe de ressources.
        • Object Storage nom du seau.
        • Résilience du seau.
      4. Cliquez sur Suivant.
      5. Sélectionnez les fichiers de connaissances et de compétences que vous souhaitez télécharger depuis votre machine locale.
  5. Cliquez sur Import.

Fusionner les données d'entraînement dans la console

Vous pouvez générer des données en morceaux plus petits et plus faciles à gérer, afin d'éviter les dépassements de délai ou les limites du système. Vous pouvez ensuite fusionner ces petits ensembles de données en un seul ensemble de données pour la formation.

Effectuez les étapes suivantes pour fusionner les données dans la console.

  1. Dans la console, ouvrez le serviceRed Hat AI InstructLab

  2. Cliquez sur InstructLab Projects > your project > Training data.

  3. Sélectionnez jusqu'à 20 entrées de données d'entraînement dans la liste et cliquez sur Fusionner.

  4. Saisissez un nom alphanumérique pour vos données.

  5. Sélectionnez l'instance Object Storage et le godet dans lequel vous souhaitez stocker les données fusionnées.

  6. Cliquez sur Créer.

Générer des données à l'aide de l'interface de programmation

  1. Dressez la liste de vos taxonomies et notez la taxonomie que vous souhaitez utiliser.

    ibmcloud ilab taxonomy list
    

    Exemple de sortie.

    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. Générer des données à partir de votre taxonomie. Notez l'ID des données à utiliser dans l'étape suivante. Utilisez des caractères alphanumériques dans le nom.

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

    Exemple de commande.

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

    Exemple de sortie.

    id            66a268c170dcb21150050e8e
    name          test-data
    state         queued
    status
    created_at    2024-07-19T15:40:29.000Z
    taxonomy_id   669a88c9488ee7b95ce8fe05
    
  3. Vérifiez les détails de votre production de données. Inclure l'identifiant des données. L'état est " queued, puis " running. Attendre que l'état soit " completed. Lorsque l'état est completed, dans le seau Object Storage, un répertoire synthetic_data est créé avec les journaux pour le dépannage.

    ibmcloud ilab data get --id DATA_ID
    

    Exemple de commandedata get.

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e
    

    Exemple de sortie.

    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. Facultatif : Lorsque l'état est completed, vous pouvez consulter les mesures, telles que les estimations de jetons pour calculer le coût estimé.

    Exemple de commande data get avec l'option --output json

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

    Exemple de sortie 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"
    }
    

Importer ses propres données de formation à l'aide de l'interface de programmation (CLI)

Vous pouvez vouloir importer vos propres données pour une ou plusieurs des raisons suivantes.

  • Importer un ou plusieurs documents de connaissances et de compétences lors de la génération de données.
  • Combinez plusieurs séries de données de formation en une seule.
  • Générez des données, téléchargez-les, puis manipulez une sous-section de vos données et régénérez-les.
  • Combinez vos données précédemment générées avec des données nouvellement importées.
  • Importer des données, générer des données de formation, puis combiner ces données avec un autre cycle de génération de données.
  • Combinez le tampon de relecture et les données importées de votre taxonomie. Cette fonction est disponible uniquement via l'API ou la CLI.
  • Importez des données et générez des données de formation à partir de votre taxonomie. Cette fonction est disponible uniquement via l'API ou la CLI.

Vous pouvez importer vos propres données d'entraînement pour compléter la génération de données dans InstructLab. Pour importer vos propres données générées précédemment, spécifiez un ou plusieurs des éléments suivants :

  • Les ID de génération de données des exécutions précédentes.
  • Un panier Object Storage qui contient des fichiers de connaissances et de compétences .jsonl.

Suivez les étapes suivantes pour importer vos données.

  1. Dressez la liste de vos taxonomies et notez la taxonomie que vous souhaitez utiliser.
    ibmcloud ilab taxonomy list
    
    Exemple de sortie.
    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. Si vous avez déjà généré des données que vous souhaitez utiliser, dressez la liste de vos données et notez les UUID que vous souhaitez utiliser. Vous pouvez inclure jusqu'à 20 sources de données.
    ibmcloud ilab data list
    
  3. Générer des données à partir de votre taxonomie. Notez l'ID des données à utiliser dans l'étape suivante. Utilisez des caractères alphanumériques dans le nom.
    ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID] [--internal-ids INTERNAL-IDs]
    
    Exemple de commande pour inclure plusieurs ID internes (sources de données) pour la génération de données.
    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
    

Pour plus d'exemples, voir la section suivante : Exemples de commandes pour importer vos propres données de formation.

Exemples de commandes pour importer vos propres données d'entraînement

Consultez les exemples de commandes suivants pour importer vos propres données de formation ou ajouter des fichiers de connaissances et de compétences à un travail de génération de données.

Exemple de commande pour inclure plusieurs ID internes.

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

Exemple de commande pour combiner plusieurs sources de données générées précédemment (ID internes) ainsi que des fichiers .jsonl à partir d'une base de données 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

Exemple de commande pour combiner des données générées précédemment avec les fichiers de connaissances et de compétences de .jsonl stockés dans une base de données Object Storage. Vous pouvez également spécifier un panier de sortie Object Storage pour stocker les données générées (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

Exemple de commande pour fusionner des données en spécifiant leurs identifiants internes.

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

Exemple de commande pour fusionner des données générées précédemment en spécifiant leurs identifiants internes ainsi que pour inclure des compétences et des connaissances provenant d'une base de données 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

Exemple de commande pour fusionner les compétences et les connaissances d'un panier 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

Générer des données en utilisant l'API

  1. Dressez la liste de vos taxonomies et notez la taxonomie que vous souhaitez utiliser.

    Exemple de commande.

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

    Exemple de sortie.

    {
      "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. Générer des données à partir de votre taxonomie. Notez l'ID des données à utiliser dans l'étape suivante. Utilisez des caractères alphanumériques dans le nom.

    Exemple de commande.

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

    Exemple de sortie.

    {
      "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. Vérifiez les détails de votre production de données. Inclure l'identifiant des données. L'état est " queued, puis " running. Attendre que l'état soit " completed.

    Exemple de commande.

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

    Exemple de sortie.

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

Lorsque l'état est completed, dans le seau Object Storage, un répertoire synthetic_data est créé avec les journaux pour le dépannage.

Que contient mon panier Object Storage après avoir généré des données?

Après avoir généré des données, votre panier Object Storage contient un répertoire synthetic_data avec les fichiers suivants.

Artifacts
Ces fichiers contiennent les échantillons de chaque nœud feuille. Ils ne sont pas utilisés pour l'entraînement du modèle, mais sont fournis pour faciliter la lecture et peuvent être utilisés pour voir si un QNA génère le nombre d'échantillons attendu.
Logs
Ces fichiers contiennent les journaux d'exécution de Red Hat AI InstructLab et les détails du système.
knowledge_train_msgs.jsonl et skills_train_msgs.jsonl
Il s'agit des fichiers d'entraînement de la phase 1 et de la phase 2, qui contiennent les échantillons utilisés pour l'entraînement du modèle.

Pour comprendre pourquoi et comment vos données sont générées, consultez le document communautaire FAQ sur le SDG.

Exemple de format .jsonl

Examinez l'exemple suivant de structure .jsonl pour les compétences et les connaissances.

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

Etapes suivantes

Après avoir généré des données à partir de votre taxonomie, vous pouvez commencer à former votre modèle.