mcpField
D
data-designer

data-designer

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

data-designer について

data-designer は、Data Designer ライブラリで合成データセットを作成するためのスキルです。対話型または Autopilot の手順に沿って設計し、要件に合わせた Python 設定ファイルを生成します。

主な機能

  1. 01対話型または Autopilot の手順
  2. 02説明に基づくデータセット作成
  3. 03Python 設定ビルダーファイルの生成
  4. 04出力列の既定での保持
  5. 05サンプラーと検証設定の案内

活用シーン

  1. 01要件に基づく顧客レビューの生成
  2. 02質問を省いたデータセット設計の自動化
  3. 03再利用可能な設定スクリプトの作成

インストール

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

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

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

同梱ファイル

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

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
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 を読みます。
  • データセットの説明に合致するスクリプトがすでに存在する場合は、それを編集するか、新しく作成するかをユーザーに尋ねます。

使用上のヒントとよくある問題

  • サンプラー列と検証列には、型とパラメーターの両方が必要です。 例: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 }} を使用すると、数値ではなく辞書全体が返されます。

トラブルシューティング

  • data-designer CLI が見つからない: この環境には data-designer がインストールされていない(Python >= 3.11 が必要)ことをユーザーに伝えます。仮想環境を作成してインストールするか、自分で行うかを尋ねます。ユーザーの許可なくインストールしないでください。
  • プレビュー中のネットワークエラー: サンドボックス環境によって、外部へのリクエストがブロックされている可能性があります。サンドボックスを無効にしてコマンドを再試行する許可をユーザーに求めます。サンドボックス外でも再試行に失敗した場合に限り、ユーザー自身でコマンドを実行するよう伝えてください。

出力テンプレート

load_config_builder() 関数を含む Python ファイルを現在のディレクトリに作成し、DataDesignerConfigBuilder を返すようにします。ファイル名は内容が分かるものにします(例: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()

    # 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 モデル、カスタムジェネレーター、シードデータセット、追加の依存関係を含めます。

コメント