# Unsloth データレシピ

Unsloth Studio の Data Recipes では、PDF や CSV ファイルのような文書をアップロードし、それらを使える／合成データセットへ変換できます。グラフノードのワークフローを使って、データセットを視覚的に作成・編集します。このガイドでは、Unsloth Data Recipes に入る前に基本を学べるようにします。

<div data-with-frame="true"><figure><img src="/files/1e242ab6bcf04c0b9f709e28e6dc6e17fca1b887" alt=""><figcaption></figcaption></figure></div>

### Data Recipes の仕組み

Data Recipes は同じ基本的な流れに従います。レシピページを開き、レシピを作成または選択し、エディタでワークフローを構築し、検証してプレビューを実行し、出力が適切であればフルデータセットを実行します。シードデータと生成ブロックを追加し、ワークフローを検証し、サンプル出力をプレビューしてから、フルデータセットのビルドを実行します。Unsloth Data Recipes は **NVIDIA Nemo** [**Data Designer**](https://github.com/NVIDIA-NeMo/DataDesigner).

<div data-with-frame="true"><figure><img src="/files/32c0d7501026a7267427f20ae93d1a1d8e08aced" alt=""><figcaption><p>データセットの生成とモデルのファインチューニングの例</p></figcaption></figure></div>

全体を見ると、通常のワークフローは次のようになります:

1. レシピページを開きます。
2. 新しいレシピを作成するか、既存のものを開きます。
3. ブロックを追加して、データセットのワークフローを定義します。
4. をクリックします **検証** して、設定の問題を早期に見つけます。
5. プレビューを実行して、サンプル行をすばやく確認します。
6. レシピの準備ができたら、フルデータセットのビルドを実行します。
7. 進捗と出力をグラフ上、または **実行** ビューでリアルタイムに確認し、詳細を見ます。
8. 結果のデータセットを **Studio** で選択し、モデルをファインチューニングします。

### 始める

レシピページが主な入口です。レシピはブラウザ内にローカル保存されるため、保存した作業に後で戻れます。ここから、空のレシピを作成するか、ガイド付きの学習用レシピを開けます。

{% hint style="info" %}
レシピはエクスポートとインポートができるので、他の Unsloth ユーザーとワークフローを簡単に共有できます :tada:。特定のデータセットパターンを作りたい場合は、Unsloth Discord で質問してください。すでに共有できるレシピを持っている人がいるかもしれません。
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/7344d86f4f4769ef51f636329654de84eecf6a83" alt="" width="563"><figcaption><p>レシピのランディングページ</p></figcaption></figure></div>

ワークフローの概念に慣れていないなら、学習用レシピが、シードデータ、プロンプト、式、バリデーターが 1 つの動く例でどう組み合わさるかを最速で理解できます。すでに欲しいデータセットの形が分かっているなら、最初から空で始める方が通常は早いです。

#### 開始方法を選ぶ

<table><thead><tr><th>もし次のことをしたいなら:</th><th>開始は:</th><th data-hidden></th></tr></thead><tbody><tr><td><sub><strong>カスタムワークフローをすばやく構築する</strong></sub></td><td><sub><strong>空から開始</strong></sub></td><td></td></tr><tr><td><sub><strong>例を通して製品を学ぶ</strong></sub></td><td><sub><strong>学習用レシピから開始</strong></sub></td><td></td></tr><tr><td><sub><strong>前回の作業を続ける</strong></sub></td><td><sub><strong>保存済みレシピを開く</strong></sub></td><td></td></tr></tbody></table>

### エディタで作るもの

エディタはレシピが形になる場所です。ブロックシートからブロックを追加し、ダイアログで設定し、キャンバス上で接続してから、ワークフローを検証または実行します。

<div data-with-frame="true"><figure><img src="/files/cf3df34ff6fe687b398c6250c7a57ea2ecadfe59" alt="" width="563"><figcaption><p>商品説明ワークフローを構築する例</p></figcaption></figure></div>

{% columns %}
{% column %}
エディタにはいくつかの主要部分があります:

* レシピヘッダー。ここでレシピ名を変更し、 **エディタ** と **実行**
* キャンバス。レシピのグラフが表示されます
* ブロックシート。新しいブロックを追加します
* 設定ダイアログ。プロンプト、参照、モデルエイリアス、バリデーター、シード設定を定義します。
* フローティング **実行** と **検証** コントロール
* ここにさらに追加する必要があります

{% endcolumn %}

{% column %}
レシピで最も一般的なブロックは次のとおりです:

* **シード** Hugging Face の入力データ、ローカルの構造化ファイル、または行に分割される非構造化文書用。
* **LLM + モデル** プロバイダー、モデル設定、LLM 生成ブロック、共有ツールプロファイル用。
* **式** LLM 呼び出しを必要としない、Jinja2 ベースの変換用。
* **バリデーター** Python、SQL、JavaScript/TypeScript 用の組み込みリンターで、生成された不正なコードをフィルタリングするため。
* **サンプラー** カテゴリやサブカテゴリのような決定的な列用。
  {% endcolumn %}
  {% endcolumns %}

### 参照の仕組み

データを生成するほとんどのブロックは（いくつかの例外を除き）後続ブロックの参照になります。これが Data Recipes の中心的な考え方の 1 つです。値を一度作成し、それをプロンプト、式、構造化出力、検証ステップで再利用します。

{% hint style="info" %}
Jinja の式を使うと、すでにレシピ内に存在する値を扱えます。のようなネストしたフィールドを参照できます `{{customer.first_name}}` 、のように値を結合できます `{{customer.first_name}} {{customer.last_name}}` さらに、次のようなパターンで条件分岐ロジックを追加できます `{% if condition %}...{% endif %}`&#x20;
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/7e7cd342df57a0b001404c64d1f9b27c650d1060" alt="" width="563"><figcaption><p>エディタに表示された参照の例</p></figcaption></figure></div>

たとえば:

* というカテゴリブロック `domain` は次のように参照できます `{{ domain }}`
* シード列は LLM プロンプトに直接使えます。シードデータ内の列（例: HF データセット列、csv）
* 構造化された LLM 出力は、後続のプロンプト用のフィールドを公開できます
* 式ブロックは、別のモデル呼び出しなしで前段の値を組み合わせられます

### その後は？

プレビュー実行は、素早く反復するためのものです。サンプル行と分析結果をエディタに返すので、完全な実行に進む前に生成データを確認できます。

フル実行は、永続化されたローカルデータセットの成果物を作成します。その出力は後で Studio のローカルデータセットピッカーに表示され、再確認やファインチューニングに使えます。必要に応じて、データセットを Hugging Face リポジトリに公開することもできます。

### 基本構成要素

{% columns %}
{% column %}

<div data-with-frame="true"><figure><img src="/files/9ee25c6ae48ab326e0fbc99ac91e6ad789d53330" alt="" width="188"><figcaption><p>基本構成要素</p></figcaption></figure></div>
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/3d0ec1704cfb2b1012068b94511a130c05c174b5" alt="" width="188"><figcaption><p>モデルと LLM ブロック</p></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

#### モデル設定は 2 つの使いやすい層に分かれています:

* **モデルプロバイダー** エンドポイントと認証を定義します
* **モデル設定** モデル名と推論設定を定義します

この構成は、ホスト型プロバイダー、セルフホストのエンドポイント、 `vLLM` , `llama.cpp` 、または Studio の外で実行する OpenAI 互換 API ならどれでも使えます。

{% hint style="info" %}
レシピは 1 つのモデルに限定されません。複数の **モデルプロバイダー** と **モデル設定** ブロックを追加し、コーディング用と一般テキスト用のように、異なるステップで異なるモデルを使えます。
{% endhint %}

モデル設定の後は、4 種類の LLM ブロックを使えます:

| ブロック     | 出力       | 最適用途                               |
| -------- | -------- | ---------------------------------- |
| LLM テキスト | 自由形式テキスト | 指示、説明、会話、記述                        |
| LLM 構造化  | JSON     | 固定フィールドと予測可能な構造が必要な出力              |
| LLM コード  | コード      | Python、SQL、TypeScript、その他のコード生成タスク |
| LLM ジャッジ | スコア付き評価  | 1 つ以上のユーザー定義スコアで出力を採点する            |

#### ツールプロファイル

{% columns %}
{% column %}
ツールプロファイルブロックは、1 つ以上の LLM ブロック向けに共有される MCP ベースのツールアクセスを定義します。たとえば、 `Context7`.

左の画像は、Tool Profile ブロックのダイアログで Context7 MCP が追加・設定されている様子を示しています:
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/eab65245f7e3d6de7068fc9b5a891075e78c552f" alt="" width="375"><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

#### バリデーター

{% columns %}
{% column %}
バリデーターブロックは、生成されたコード出力をリンターと構文検証に通すことで、主に LLM コードブロックを対象にします。これにより、無効または不正なコード行を最終データセットから除外できるため、品質を保てます。組み込みオプションは Python、SQL、JavaScript/TypeScript の検証をカバーします。
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/ce4f23aaa3ae3169c903d20a40ac8ed365db53a4" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

### 検証、プレビュー、実行

レシピのワークフローが整ったら、次は実行です。推奨パターンは、まず検証し、次に素早いフィードバックのためにプレビューし、実行ビューで生成データを確認し、その後、出力が計画に合っていると感じたらフルデータセットを実行することです。

実行コントロールは次の順序で使います:

{% stepper %}
{% step %}

#### 検証

をクリックします **検証** 設定の問題を見つけるために。
{% endstep %}

{% step %}

#### プレビュー

サンプル行と分析を確認するためにプレビューを実行します
{% endstep %}

{% step %}

#### 改善

プロンプト、参照、シード設定、またはバリデーターを改善します。

生成されたデータに満足できるまで反復します
{% endstep %}

{% step %}

#### フルデータセットのビルドを実行します

{% endstep %}
{% endstepper %}

<figure><img src="/files/7e3f4283b74218ef2a075e2d1c87ee5a36cc4064" alt="" width="188"><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/jp/xin-zhe/studio/data-recipe.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
