mcpField
N
nemo-data-designer-plugin

nemo-data-designer-plugin

github.com/nvidiaデータ・データベース3.8k1.8k 回インストール今日更新
リポジトリ

nemo-data-designer-plugin について

NeMo Data Designer を使って合成データセットを作るワークフロースキルです。必要なデータを説明するユーザー向けに、対話型または Autopilot の手順を選び、Python 設定ファイルを生成します。

主な機能

  1. 01説明に基づく合成データセット作成
  2. 02対話型と Autopilot のモード
  3. 03サンプラー列と検証列の設定
  4. 04Python 設定ファイルの出力

活用シーン

  1. 01要件に沿ったデータセットの作成
  2. 02Autopilot モードでの選択の委任
  3. 03シードデータによる既存レコードの拡張
  4. 04LLM 列を含むデータセットのモデル設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nvidia/skills --skill nemo-data-designer-plugin

インストール後、Claude Code で/nemo-data-designer-pluginを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
nemo-platform-plugin-additions.md
person-sampling.md
preview-review.md
seed-datasets.md
scripts/
get_person_object_schema.py
workflows/
autopilot.md
interactive.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-designer CLI が見つからない: この環境には 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 でしか機能しません。

コメント