タクソノミーからデータを生成する InstructLab
データ生成とは、QNAファイルに含まれる質問と回答に基づいて、合成質問と回答を自動的に生成するプロセスです。 Red Hat AI InstructLab データを生成するために使用するプロセスは、コンテンツの品質と関連性に重点を置いている。
前提条件
コンソールを使ってデータを作成する
-
コンソールで Red Hat AI InstructLabサービス を開きます。
-
InstructLab Projects > your project > Training data > Generateをクリックします。
-
トレーニングデータの英数字の名前を入力し、使用する分類法を選択します。
-
オプション:データ作成プロセスを開始する前に、提示された見積もり費用を確認してください。
-
**「生成」**をクリックします。 状態は「
queued、次に「runningである。 -
completed。 データ生成が完了すると、ログファイルを格納したsynthetic_dataディレクトリが作成される Object Storage バケット。 トラブルシューティングや検証のために、これらのログを確認することができます。
コンソールで独自のトレーニングデータをインポートする
InstructLab のデータ生成を補完するために、過去に生成したデータをインポートすることができます。 以下の1つ以上を行う必要がある場合は、独自のデータをインポートした方がよいでしょう。
- データ生成時に、1つまたは複数のナレッジおよびスキル文書をインポートします。
- 複数のトレーニングデータを1つにまとめる。
- データを生成してダウンロードし、データの一部を操作して再生成する。
- 以前作成したデータと新しくインポートしたデータを組み合わせる。
- データをインポートし、トレーニングデータを生成し、そのデータを別のデータ生成の実行と組み合わせる。
- リプレイバッファとタクソノミーからインポートしたデータを組み合わせます。 この機能はAPIまたはCLI経由でのみ利用可能です。
- データをインポートし、タクソノミからトレーニングデータを生成します。 この機能はAPIまたはCLI経由でのみ利用可能です。
自分のデータをインポートするには、過去に実行したデータ生成を参照するか、 Object Storage バケットからファイルをインポートするか、ローカルマシンからファイルをアップロードします。
以下のステップを完了し、独自のトレーニングデータをインポートします。
-
コンソールで Red Hat AI InstructLabサービス を開きます。
-
InstructLab Projects > your project > Training data > Import をクリックします。
-
データの名前を英数字で入力します。
-
以下のいずれかのオプションを選択します。
-
Object Storage: Object Storage バケツにある既存のファイルを選択します。
- 既存のデータが保存されているインスタンスとバケットを選択します。
- 次へ をクリックします。
- インポートしたいファイルを選択します。
-
ファイルをアップロードします: ローカルマシンからファイルを選択します。 ファイルのアップロードには40MBの制限があります。
- Object Storage インスタンスとバケットを選択するか、新しいインスタンスとバケットを作成してデータを保存します。
- InstructLab バケツにライター権限を与える。
- オプション :ストレージの設定。 データの保存方法について、以下の追加情報を指定します。
- バケツファイルのパス。
- バケツ内のディレクトリ。
- Object Storage インスタンス名。
- リソースグループ。
- Object Storage バケット名
- バケットの弾力性。
- 次へ をクリックします。
- ローカルマシンからアップロードする知識とスキルのファイルを選択します。
-
-
インポート をクリックします。
コンソールでトレーニングデータをマージする
タイムアウトやシステム制限を回避するために、管理しやすい小さな塊でデータを生成することもできる。 そして、これらの小さなデータセットをトレーニング用の1つのデータセットに統合することができる。
コンソールでデータをマージするには、以下の手順を実行します。
-
コンソールで Red Hat AI InstructLabサービス を開きます。
-
InstructLab Projects > your project > Training data をクリックします。
-
リストからトレーニングデータエントリーを20個まで選択し、 Mergeをクリックします。
-
データの名前を英数字で入力します。
-
マージされたデータを保存する Object Storage インスタンスとバケットを選択します。
-
「作成」 をクリックします。
CLIを使用してデータを生成する
-
タクソノミーをリストアップし、使用したいタクソノミーをメモしてください。
ibmcloud ilab taxonomy list出力例。
id name taxonomy_path 669a88c9488ee7b95ce8fe05 test-tax taxonomy.tar.gz -
タクソノミからデータを生成する。 次のステップで使用するデータのIDをメモしておく。 名前には英数字を使用してください。
ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID]コマンドの例。
ibmcloud ilab data generate --name testdata --taxonomy-id 669a88c9488ee7b95ce8fe05出力例。
id 66a268c170dcb21150050e8e name test-data state queued status created_at 2024-07-19T15:40:29.000Z taxonomy_id 669a88c9488ee7b95ce8fe05 -
データ作成の詳細を確認する。 データのIDを含める。 状態は「
queued、次に「runningである。 状態が「completed」になるのを待つ。 状態がcompletedの場合、 Object Storage バケットに、トラブルシューティング用のログを含むsynthetic_dataディレクトリが 作成される。ibmcloud ilab data get --id DATA_IDdata getコマンドの例。ibmcloud ilab data get --id 66a268c170dcb21150050e8e出力例。
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 -
オプション: 状態が
completed、 トークンの見積もりなどのメトリックを確認して、推定コストを計算でき ます。--output jsonオプション付きdata getコマンドの例ibmcloud ilab data get --id 66a268c170dcb21150050e8e --output jsonJSON出力例
{ "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" }
CLIを使用した独自のトレーニングデータのインポート
次のような理由で、自分のデータをインポートしたいと思うかもしれません。
- データ生成時に、1つまたは複数のナレッジおよびスキル文書をインポートします。
- 複数のトレーニングデータを1つにまとめる。
- データを生成してダウンロードし、データの一部を操作して再生成する。
- 以前作成したデータと新しくインポートしたデータを組み合わせる。
- データをインポートし、トレーニングデータを生成し、そのデータを別のデータ生成の実行と組み合わせる。
- リプレイバッファとタクソノミーからインポートしたデータを組み合わせます。 この機能はAPIまたはCLI経由でのみ利用可能です。
- データをインポートし、タクソノミからトレーニングデータを生成します。 この機能はAPIまたはCLI経由でのみ利用可能です。
独自のトレーニングデータをインポートして、 InstructLab のデータ生成を補完することができます。 以前に作成した独自のデータをインポートするには、以下の1つ以上を指定する:
- 過去に実行されたデータ生成ID。
.jsonlナレッジとスキルのファイルを含む Object Storage バケット。
以下の手順でデータをインポートしてください。
- タクソノミーをリストアップし、使用したいタクソノミーをメモしてください。
出力例。ibmcloud ilab taxonomy listid name taxonomy_path 669a88c9488ee7b95ce8fe05 test-tax taxonomy.tar.gz - 以前に作成したデータを使用したい場合は、データをリストアップし、使用したいUUIDをメモしてください。 最大20のデータソースを含めることができます。
ibmcloud ilab data list - タクソノミからデータを生成する。 次のステップで使用するデータのIDをメモしておく。 名前には英数字を使用してください。
データ生成に複数の内部ID(データソース)を含めるコマンド例。ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID] [--internal-ids INTERNAL-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
その他の例については、次のセクションを参照してください: 独自のトレーニングデータをインポートするためのコマンド例。
独自のトレーニングデータをインポートするためのコマンド例
独自のトレーニングデータをインポートしたり、知識ファイルやスキルファイルをデータ生成ジョブに追加するためのコマンド例を以下に示します。
複数の内部IDを含めるコマンド例。
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
Object Storage バケットから .jsonl ファイルだけでなく、以前に生成された複数のデータソース (内部 ID) を結合するコマンドの例。
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
Object Storage バケットに保存された .jsonl ナレッジとスキルのファイルと、以前に生成されたデータを結合するコマンドの例。 オプションで、生成されたデータ (SDG) の出力を保存する出力 Object Storage バケットを指定することもできます。
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
内部IDを指定してデータをマージするコマンド例。
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
Object Storage バケツからスキルや知識を含め、内部IDを指定して以前に生成されたデータをマージするコマンドの例。
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
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
APIを使用してデータを生成する
-
タクソノミーをリストアップし、使用したいタクソノミーをメモしてください。
コマンドの例。
curl -X 'GET' \ 'https://us-east.instructlab.ibm.com/v1/taxonomies' \ -H 'accept: application/json出力例。
{ "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" } ] } -
タクソノミからデータを生成する。 次のステップで使用するデータのIDをメモしておく。 名前には英数字を使用してください。
コマンドの例。
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" }'出力例。
{ "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 } } } -
データ作成の詳細を確認する。 データのIDを含める。 状態は「
queued、次に「runningである。 状態が「completed」になるのを待つ。コマンドの例。
curl -X 'GET' \ 'https://us-east.instructlab.ibm.com/v1/data/add785e6-a8c3-4f5f-ab89-c506a3f115da' \ -H 'accept: application/json'出力例。
{ "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 } } }
状態が completed の場合、 Object Storage バケットに、トラブルシューティング用のログを含む synthetic_data ディレクトリが 作成される。
データを生成した後、 Object Storage のバケツには何が入っているのか?
データを生成すると、 Object Storage バケツには synthetic_data ディレクトリができ、以下のファイルが格納されます。
Artifacts- これらのファイルには各リーフノードのサンプルが含まれている。 これらはモデルのトレーニングには使用されないが、読みやすくするために提供されており、QNAが期待されるサンプル数を生成しているかどうかを確認するために使用できる。
Logs- これらのファイルにはRed Hat AI InstructLab実行ログとシステムの詳細が含まれています。
knowledge_train_msgs.jsonlおよびskills_train_msgs.jsonl- これらはフェーズ1とフェーズ2のトレーニングファイルで、モデルのトレーニングに使用されるサンプルが含まれています。
データが生成される理由と仕組みについて理解するには 、SDG FAQsコミュニティドキュメントを参照してください。
.jsonl フォーマットの例
スキルと知識に関する .jsonl の構成例を以下に示す。
{
"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
}
次のステップ
分類法からデータを生成したら、モデルのトレーニング を開始します。