Generierung von Daten aus einer Taxonomie für InstructLab

Bei der Datengenerierung werden automatisch synthetische Fragen und Antworten generiert, die auf den Fragen und Antworten basieren, die Sie in die QNA-Dateien aufgenommen haben. Das Verfahren, mit dem Red Hat AI InstructLab Daten generiert, konzentriert sich auf die Qualität und Relevanz der Inhalte.

Erfahren Sie mehr über den Prozess der Datenerstellung unter Red Hat.

Voraussetzungen

  1. Installieren Sie das ilab CLI-Plugin.
  2. Bereiten Sie Ihre Taxonomie vor.
  3. Fügen Sie die Taxonomie tar.gz zu Ihrem Object Storage Bucket hinzu.

Generierung von Daten mit Hilfe der Konsole

  1. Öffnen Sie in der Konsole den DienstRed Hat AI InstructLab.

  2. Klicken Sie auf InstructLab Projekte > Ihr Projekt > Trainingsdaten > Generieren.

  3. Geben Sie einen alphanumerischen Namen für die Trainingsdaten ein und wählen Sie die zu verwendende Taxonomie aus.

  4. Optional: Überprüfen Sie die geschätzten Kosten, bevor Sie mit der Datenerstellung beginnen.

  5. Klicken Sie auf Generieren. Der Zustand ist " queued, dann " running.

  6. Warten Sie darauf, dass der Staat completed aufruft. Wenn die Datengenerierung abgeschlossen ist, wird ein Verzeichnis synthetic_data erstellt, das Protokolldateien enthält Object Storage bucket. Sie können diese Protokolle zur Fehlersuche oder zur Überprüfung einsehen.

Importieren Ihrer eigenen Trainingsdaten in die Konsole

Sie können Ihre eigenen, zuvor generierten Daten importieren, um die Datengenerierung in InstructLab zu ergänzen. Sie sollten Ihre eigenen Daten importieren, wenn Sie einen oder mehrere der folgenden Punkte erfüllen müssen.

  • Importieren Sie bei der Datenerstellung ein oder mehrere Wissens- und Kompetenzdokumente.
  • Kombinieren Sie mehrere Trainingsdatenläufe zu einem einzigen.
  • Generieren Sie Daten, laden Sie sie herunter, bearbeiten Sie dann einen Teil Ihrer Daten und generieren Sie sie erneut.
  • Kombinieren Sie Ihre zuvor generierten Daten mit neu importierten Daten.
  • Importieren Sie Daten, erzeugen Sie Trainingsdaten und kombinieren Sie diese Daten dann mit einem weiteren Datenerzeugungslauf.
  • Kombinieren Sie Wiedergabepuffer und importierte Daten aus Ihrer Taxonomie. Diese Funktion ist nur über die API oder CLI verfügbar.
  • Importieren Sie Daten und erzeugen Sie Trainingsdaten aus Ihrer Taxonomie. Diese Funktion ist nur über die API oder CLI verfügbar.

Um Ihre eigenen Daten zu importieren, können Sie auf frühere Datenerstellungsläufe verweisen, Dateien aus Ihrem Object Storage Bucket importieren oder Dateien von Ihrem lokalen Rechner hochladen.

Führen Sie die folgenden Schritte aus, um Ihre eigenen Trainingsdaten zu importieren.

  1. Öffnen Sie in der Konsole den DienstRed Hat AI InstructLab.

  2. Klicken Sie auf InstructLab Projekte > Ihr Projekt > Trainingsdaten > Importieren.

  3. Geben Sie einen alphanumerischen Namen für Ihre Daten ein.

  4. Wählen Sie eine der folgenden Optionen.

    • Object Storage: Wählen Sie vorhandene Dateien in Ihrem Object Storage Bucket aus.

      1. Wählen Sie die Instanz und den Bucket, in dem Ihre vorhandenen Daten gespeichert sind.
      2. Klicken Sie auf Weiter.
      3. Wählen Sie die Dateien aus, die Sie importieren möchten.
    • Dateien hochladen: Wählen Sie Dateien von Ihrem lokalen Rechner aus. Beachten Sie, dass das Hochladen von Dateien auf 40 MB beschränkt ist.

      1. Wählen Sie eine Object Storage Instanz und einen Bucket oder erstellen Sie eine neue Instanz und einen neuen Bucket, um Ihre Daten zu speichern.
      2. Erteilen Sie InstructLab Writer-Berechtigungen für den Eimer.
      3. Optional: Speichereinstellungen. Geben Sie die folgenden zusätzlichen Details an, wie Ihre Daten gespeichert werden sollen.
        • Pfad der Eimerdatei.
        • Verzeichnis innerhalb des Eimers.
        • Object Storage instanzname.
        • Ressourcengruppe.
        • Object Storage name des Eimers.
        • Widerstandsfähigkeit der Eimer.
      4. Klicken Sie auf Weiter.
      5. Wählen Sie die Wissens- und Kompetenzdateien aus, die Sie von Ihrem lokalen Rechner hochladen möchten.
  5. Klicken Sie auf Importieren.

Zusammenführung von Trainingsdaten in der Konsole

Sie können Daten in kleineren, überschaubaren Paketen generieren, so dass Sie Zeitüberschreitungen oder Systemgrenzen vermeiden können. Sie können diese kleineren Datensätze dann zu einem einzigen Datensatz für das Training zusammenführen.

Führen Sie die folgenden Schritte aus, um Daten in der Konsole zusammenzuführen.

  1. Öffnen Sie in der Konsole den DienstRed Hat AI InstructLab.

  2. Klicken Sie auf InstructLab Projekte > Ihr Projekt > Trainingsdaten.

  3. Wählen Sie bis zu 20 Ihrer Trainingsdaten aus der Liste aus und klicken Sie auf Zusammenführen.

  4. Geben Sie einen alphanumerischen Namen für Ihre Daten ein.

  5. Wählen Sie die Object Storage Instanz und den Bucket, in dem Sie die zusammengeführten Daten speichern möchten.

  6. Klicken Sie auf Erstellen.

Generierung von Daten mit Hilfe der CLI

  1. Listen Sie Ihre Taxonomien auf und notieren Sie sich die Taxonomie, die Sie verwenden möchten.

    ibmcloud ilab taxonomy list
    

    Beispielhafte Ausgabe.

    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. Generieren Sie Daten aus Ihrer Taxonomie. Notieren Sie die ID der Daten, die im nächsten Schritt verwendet werden sollen. Verwenden Sie alphanumerische Zeichen für den Namen.

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

    Beispielbefehl.

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

    Beispielhafte Ausgabe.

    id            66a268c170dcb21150050e8e
    name          test-data
    state         queued
    status
    created_at    2024-07-19T15:40:29.000Z
    taxonomy_id   669a88c9488ee7b95ce8fe05
    
  3. Überprüfen Sie die Details Ihrer Datengenerierung. Geben Sie die ID für die Daten an. Der Zustand ist " queued, dann " running. Warten Sie, bis der Status " completed ist. Wenn der Status completed ist, wird im Bucket Object Storage ein Verzeichnis synthetic_data mit Protokollen zur Fehlerbehebung erstellt.

    ibmcloud ilab data get --id DATA_ID
    

    Beispiel für einen data get-Befehl

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e
    

    Beispielhafte Ausgabe.

    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. Optional: Wenn der Status completed können Sie Kennzahlen wie Token-Schätzungen überprüfen, um die geschätzten Kosten zu berechnen.

    Beispiel für den Befehl data get mit der Option --output json

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

    Beispiel JSON-Ausgabe

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

Importieren Ihrer eigenen Trainingsdaten mit Hilfe der CLI

Vielleicht möchten Sie Ihre eigenen Daten aus einem oder mehreren der folgenden Gründe importieren.

  • Importieren Sie bei der Datenerstellung ein oder mehrere Wissens- und Kompetenzdokumente.
  • Kombinieren Sie mehrere Trainingsdatenläufe zu einem einzigen.
  • Generieren Sie Daten, laden Sie sie herunter, bearbeiten Sie dann einen Teil Ihrer Daten und generieren Sie sie erneut.
  • Kombinieren Sie Ihre zuvor generierten Daten mit neu importierten Daten.
  • Importieren Sie Daten, erzeugen Sie Trainingsdaten und kombinieren Sie diese Daten dann mit einem weiteren Datenerzeugungslauf.
  • Kombinieren Sie Wiedergabepuffer und importierte Daten aus Ihrer Taxonomie. Diese Funktion ist nur über die API oder CLI verfügbar.
  • Importieren Sie Daten und erzeugen Sie Trainingsdaten aus Ihrer Taxonomie. Diese Funktion ist nur über die API oder CLI verfügbar.

Sie können Ihre eigenen Trainingsdaten importieren, um die Datengenerierung in InstructLab zu ergänzen. Um Ihre eigenen, zuvor generierten Daten zu importieren, geben Sie einen oder mehrere der folgenden Punkte an:

  • Die Datengenerierungs-IDs der vorherigen Läufe.
  • Ein Object Storage Bucket, der .jsonl Wissens- und Kompetenzdateien enthält.

Führen Sie die folgenden Schritte aus, um Ihre Daten zu importieren.

  1. Listen Sie Ihre Taxonomien auf und notieren Sie sich die Taxonomie, die Sie verwenden möchten.
    ibmcloud ilab taxonomy list
    
    Beispielhafte Ausgabe.
    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. Wenn Sie bereits Daten generiert haben, die Sie verwenden möchten, listen Sie Ihre Daten auf und notieren Sie sich die UUIDs, die Sie verwenden möchten. Sie können bis zu 20 Datenquellen einbeziehen.
    ibmcloud ilab data list
    
  3. Generieren Sie Daten aus Ihrer Taxonomie. Notieren Sie die ID der Daten, die im nächsten Schritt verwendet werden sollen. Verwenden Sie alphanumerische Zeichen für den Namen.
    ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID] [--internal-ids INTERNAL-IDs]
    
    Beispielbefehl zur Einbeziehung mehrerer interner IDs (Datenquellen) für die Datengenerierung.
    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
    

Weitere Beispiele finden Sie im nächsten Abschnitt: Beispielbefehle für den Import Ihrer eigenen Trainingsdaten.

Beispielbefehle zum Importieren eigener Trainingsdaten

Sehen Sie sich die folgenden Beispielbefehle an, um Ihre eigenen Trainingsdaten zu importieren oder Wissens- und Kompetenzdateien zu einem Datenerstellungsauftrag hinzuzufügen.

Beispielbefehl zur Aufnahme mehrerer interner 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

Beispielbefehl zum Kombinieren mehrerer zuvor generierter Datenquellen (interne IDs) sowie .jsonl Dateien aus einem Object Storage Bucket.

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

Beispielbefehl zur Kombination von zuvor generierten Daten mit .jsonl Wissens- und Kompetenzdateien, die in einem Object Storage Bucket gespeichert sind. Optional können Sie auch einen Ausgabebereich Object Storage angeben, in dem die generierten Daten (SDG) gespeichert werden.

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

Beispielbefehl zum Zusammenführen von Daten durch Angabe ihrer internen IDs.

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

Beispielbefehl zum Zusammenführen zuvor generierter Daten durch Angabe ihrer internen IDs sowie zur Einbeziehung von Fähigkeiten und Kenntnissen aus einem Object Storage Bucket.

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

Beispielbefehl zum Zusammenführen von Fähigkeiten und Wissen aus einem Object Storage Bucket.

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

Datenerzeugung mithilfe der API

  1. Listen Sie Ihre Taxonomien auf und notieren Sie sich die Taxonomie, die Sie verwenden möchten.

    Beispielbefehl.

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

    Beispielhafte Ausgabe.

    {
      "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. Generieren Sie Daten aus Ihrer Taxonomie. Notieren Sie die ID der Daten, die im nächsten Schritt verwendet werden sollen. Verwenden Sie alphanumerische Zeichen für den Namen.

    Beispielbefehl.

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

    Beispielhafte Ausgabe.

    {
      "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. Überprüfen Sie die Details Ihrer Datengenerierung. Geben Sie die ID für die Daten an. Der Zustand ist " queued, dann " running. Warten Sie, bis der Status " completed ist.

    Beispielbefehl.

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

    Beispielhafte Ausgabe.

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

Wenn der Status completed ist, wird im Bucket Object Storage ein Verzeichnis synthetic_data mit Protokollen zur Fehlerbehebung erstellt.

Was befindet sich nach der Datenerstellung in meinem Object Storage Eimer?

Nachdem Sie Daten generiert haben, enthält Ihr Object Storage Bucket ein Verzeichnis synthetic_data mit den folgenden Dateien.

Artifacts
Diese Dateien enthalten die Proben für jeden Blattknoten. Diese werden nicht für das Training des Modells verwendet, sondern dienen der Lesbarkeit und können verwendet werden, um zu sehen, ob eine QNA die erwartete Anzahl von Proben erzeugt.
Logs
Diese Dateien enthalten die Red Hat AI InstructLab Ausführungsprotokolle und Systemdetails.
knowledge_train_msgs.jsonl und skills_train_msgs.jsonl
Dies sind die Trainingsdateien für Phase 1 und Phase 2, die die für das Training des Modells verwendeten Stichproben enthalten.

Um zu verstehen, warum und wie Ihre Daten generiert werden, lesen Sie das Community-Dokument "SDG FAQs ".

Beispiel für das Format .jsonl

Sehen Sie sich das folgende Beispiel .jsonl für die Struktur der Fähigkeiten und Kenntnisse an.

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

Nächste Schritte

Nachdem Sie Daten aus Ihrer Taxonomie generiert haben, können Sie mit dem Training Ihres Modells beginnen.