# クイックスタート

> 約 10 分で最初の最適化の実行を開始します。

このページでは、約 10 分で最初の実行を開始する方法を説明します。サインインし、小さなデータセットをアップロードし、ウィザードの 4 つのステップに入力して、実行を開始します。例として、サポートメッセージをラベルに分類するプロンプトを改善します。

## 始める前に

以下が必要です。

- Skynet アカウント。
- CSV、JSON、または Excel ファイル（`.csv`、`.json`、`.xlsx`、`.xls`）。各行が 1 つのケースです。
- 1 つ以上の入力列（例: `message`）。
- 期待される出力の列 1 つ（例: `label`）。

> [!TIP]
> 少なくとも 5 行を用意してください。ペアが 5 つ未満の場合、Skynet はテストセットを残さないため、最終スコアはオプティマイザーが使ったケースから算出されます。

## 1. サインイン

Skynet にサインインします。次に、送信ページ `/submit` を開きます。

> [!NOTE]
> このページでは **標準** レベルのラベルを使います。**ガイド付き** レベルはよりシンプルなラベルを使い、オプティマイザーのステップを省略して、自動で **Auto** を選択します。レベルは設定で変更できます。

## 2. タスク

最初のステップは **タスク** です。「何を最適化しますか？」と尋ねられます。

1. **目的** に、良い結果とは何かを書きます。わかりやすい言葉で書いてください。例: 「各サポートメッセージを billing、bug、other のいずれかに分類する。」
2. 任意: **背景** に、オプティマイザーの助けになる補足情報を追加します。
3. **アーティファクトの種類** で **プロンプト** を選択します。
4. **開始バージョン** に、現在のプロンプトを貼り付けます。

## 3. 入力

2 番目のステップは **入力** です。

1. **CSV、JSON、Excel ファイルをアップロード** を選択するか、保存済みのデータセットを使う場合は **ライブラリから選択** を選択します。
2. **データの読み取り方** で、各列に役割を割り当てます。
   - **入力**: 実行コードがこの列を受け取ります。
   - **出力**: 期待値です。メトリクスがこれを受け取ります。
   - **スキップ**: Skynet はこの列を使いません。
3. 分割は **推奨を使用** のままにします。ほとんどのデータセットでは、学習 70%、検証 15%、テスト 15% に分割されます。

詳しいルールは [データセットと分割](/docs/ja/concepts/datasets) をお読みください。

## 4. オプティマイザー

3 番目のステップは **オプティマイザー**（「オプティマイザー、モデル、予算」）です。

- オプティマイザーは **Auto** のままにします。
- **リフレクションモデル** を選択します。オプティマイザーはこのモデルを使って新しいバージョンを書きます。このモデルは必須です。
- 任意: **タスクモデル** を選択します。実行コードがこのモデルを使います。
- **予算** では、**最大スコアラー実行回数** を既定値の 200 のままにします。

特定のエンジンを選ぶには、[エンジン](/docs/ja/concepts/engines) をお読みください。

## 5. メトリクスと実行

最後のステップは **メトリクスと実行**（「コードとメトリクス」）です。2 つのファイルを書きます。

```python tab="run.py"
from skynet import llm


def run(artifact, input):
    return llm(artifact, input=input["message"])
```

```python tab="metric.py"
def score(input, output, expected=None):
    want = expected["label"].strip().lower()
    got = str(output).strip().lower()
    if got == want:
        return 1.0, {"feedback": "Correct label."}
    return 0.0, {"feedback": f"Expected '{want}', got '{got}'."}
```

`artifact` はプロンプトの現在のバージョンです。`input` は 1 つのケースの入力列を保持します。`expected` は出力列を、その列名をキーとして保持します。

次に、**コントラクトチェック** の下にある **チェック** を選択します。このチェックは、サンドボックス内で 3 つのサンプルケースに対してコードとメトリクスを実行します。確認する項目は次のとおりです。

| チェック                   | 失敗する条件                                                         |
| -------------------------- | -------------------------------------------------------------------- |
| 実行コードのシグネチャ     | `run.py` が `run(artifact, input)` を定義していない                  |
| メトリクスのシグネチャ     | `metric.py` が `score(input, output, expected=None)` を定義していない |
| メトリクスモデル           | メトリクスモデルが使用できない                                       |
| サンプルでの実行コード     | 実行コードがサンプルケースでエラーを発生させる                       |
| メトリクスの戻り値         | `score` が有効なスコアとフィードバックを返さない                     |

> [!NOTE]
> 実行を開始できるのは、コントラクトチェックに合格した後だけです。

## 6. 開始して見守る

サマリー画面に「実行の準備ができました」と表示されます。タブは 全般、データ、モデル、予算、報酬 です。設定を確認してから、最適化を開始します。

実行を見守るには、最適化の一覧から実行を開きます。スコアと勝ち残ったバージョンについては、[結果](/docs/ja/guides/results) をお読みください。

## 次のステップ

- より良いメトリクスを書く: [メトリクスとスコアラー](/docs/ja/concepts/scorers)。
- アーティファクトに合うエンジンを知る: [最適化の仕組み](/docs/ja/concepts/optimization)。
- 実行のコストを知る: [請求](/docs/ja/concepts/billing)。

---

Source: https://staging.skynetml.com/docs/ja/quickstart
