nemo-data-designer-plugin について
nemo-data-designer-plugin は、Data Designer ライブラリで合成データセットを作成するスキルです。対話型または自動実行のワークフローを案内し、Python 設定スクリプトを生成します。
主な機能
- 01対話型と自動実行モード
- 02モード別の手順案内
- 03合成データセットの設定
- 04依存関係を含む Python スクリプト生成
活用シーン
- 01自然言語の説明からデータセットを作成
- 02LLM 列を含むデータセット用スクリプトの生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ promptingcompany/ nv-skills --skill nemo-data-designer-pluginインストール後、Claude Code で/nemo-data-designer-pluginを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.jsonreferences/nemo-platform-plugin-additions.mdperson-sampling.mdpreview-review.mdseed-datasets.mdscripts/get_person_object_schema.pyworkflows/autopilot.mdinteractive.md詳細
開始する前に
まずワークスペースを調べないでください。ワークフローの「学習」ステップで必要な情報がすべて得られます。
目標
Data Designer ライブラリを使用して、次の説明に合う合成データセットを作成します。
$ARGUMENTS
ワークフロー
ユーザーが質問に答えたくない意向を示している場合は、自動操縦モードを使用してください。たとえば、「判断は任せます」「適切に仮定してください」「そのまま作成してください」「お任せします」などの発言が該当します。それ以外の場合は、デフォルトの対話型モードを使用してください。
選択したモードに対応するワークフローファイルだけを読み、その手順に従ってください。
- 対話型 →
workflows/interactive.mdを読む - 自動操縦 →
workflows/autopilot.mdを読む
ルール
- デフォルトでは、出力にすべての列を残してください。列を削除できるのは、(1)ユーザーが明示的に依頼した場合、または(2)他の列を導出するためだけに存在する補助列(例:名前や都市などを抽出するためにサンプリングした人物オブジェクト)の場合に限ります。判断に迷ったら、列を残してください。
- シードデータセットを提案したり、使用するか尋ねたりしないでください。ユーザーがシードデータを明示的に提供した場合、または既存のレコードを元に構築するよう依頼した場合にのみ使用してください。シードを使用する場合は、
references/seed-datasets.mdを読んでください。 - データセットに人物データ(名前、人口統計、住所)が必要な場合は、
references/person-sampling.mdを読んでください。 - データセットの説明に一致するスクリプトがすでに存在する場合は、編集するか新しく作成するかをユーザーに尋ねてください。
- この NeMo Platform プラグインに固有のコマンドやコンテキスト(IGW プロバイダーからのモデル設定の取得、スクリプト内の
ModelConfig、Nemotron Personas locales のインストールまたは公開、プラットフォーム側のリソースポインターなど)については、references/nemo-platform-plugin-additions.mdを読んでください。
使用上のヒントとよくある落とし穴
- サンプラー列と検証列には、型とパラメーターの両方が必要です。 例:
sampler_type="category"とparams=dd.CategorySamplerParams(...)。 prompt、system_prompt、exprフィールド内の Jinja2 テンプレート: 列は{{ column_name }}、ネストされたフィールドは{{ column_name.field }}で参照します。**SamplerColumnConfig:**sampler_paramsではなくparamsを受け取ります。- LLM ジャッジのスコアへのアクセス:
LLMJudgeColumnConfigは、各スコア名が{reasoning: str, score: int}に対応するネストされた辞書を生成します。数値スコアを取得するには、.score属性を使用します。たとえば、qualityという名前のジャッジ列にcorrectnessという名前のスコアがある場合は、{{ quality.correctness.score }}を使用します。{{ quality.correctness }}を使用すると、数値ではなく辞書全体が返されます。
トラブルシューティング
**nemo data-designerCLI が見つからない:**nemo data-designerはこの環境にインストールされていないこと(Python >= 3.11 が必要)をユーザーに伝えてください。仮想環境を作成してインストールするか、ユーザー自身で行うかを尋ねてください。ユーザーの許可なくインストールしないでください。- プレビュー中のネットワークエラー: サンドボックス環境が外部リクエストをブロックしている可能性があります。サンドボックスを無効にしてコマンドを再試行する許可をユーザーに求めてください。サンドボックス外で再試行しても失敗する場合に限り、最終手段としてユーザー自身でコマンドを実行するよう伝えてください。
出力テンプレート
現在のディレクトリに、DataDesignerConfigBuilder を返す load_config_builder() 関数を含む Python ファイルを作成してください。説明的なファイル名を付けてください(例:customer_reviews.py)。依存関係には PEP 723 のインラインメタデータを使用してください。
# /// script
# dependencies = [
# "data-designer", # always required
# "pydantic", # only if this script imports from pydantic
# # add additional dependencies here
# ]
# ///
import data_designer.config as dd
from pydantic import BaseModel, Field
# Use Pydantic models when the output needs to conform to a specific schema
class MyStructuredOutput(BaseModel):
field_one: str = Field(description="...")
field_two: int = Field(description="...")
# Use custom generators when built-in column types aren't enough
@dd.custom_column_generator(
required_columns=["col_a"],
side_effect_columns=["extra_col"],
)
def generator_function(row: dict) -> dict:
# add custom logic here that depends on "col_a" and update row in place
row["name_in_custom_column_config"] = "custom value"
row["extra_col"] = "extra value"
return row
def load_config_builder() -> dd.DataDesignerConfigBuilder:
config_builder = dd.DataDesignerConfigBuilder(
# Declaring model configs programmatically here is the portable path:
# it works for both local `run` and cluster `submit`, while the local
# YAML registry alternative only works for `run`. The provider below
# is a common default created during `nemo setup` — confirm it (or
# discover others) with `nemo inference providers list`. See
# references/nemo-platform-plugin-additions.md for the local-YAML alternative.
model_configs=[
dd.ModelConfig(
alias="text",
model="...",
provider="default/nvidia-build",
inference_parameters=dd.ChatCompletionInferenceParams(),
),
],
)
# Seed dataset (only if the user explicitly mentions a seed dataset path)
# config_builder.with_seed_dataset(dd.LocalFileSeedSource(path="path/to/seed.parquet"))
# config_builder.add_column(...)
# config_builder.add_processor(...)
return config_builder
タスクで必要な場合にのみ、Pydantic モデル、カスタムジェネレーター、シードデータセット、追加の依存関係を含めてください。データセットで LLM 列を使用する場合は、model_configs を含めることを推奨します。スクリプト内で宣言すると、ローカルの run とクラスターの submit の間で設定を移植できますが、ローカル YAML レジストリを使う代替方法は run でしか機能しません。