コンセプト
データセットと分割
Skynet がケースを読み取り、学習・検証・テストに分割する方法。
データセットはケースの表です。各行が 1 つのケースです。Skynet はケースに対してアーティファクトを実行し、各出力を採点し、そのスコアを使ってバージョンを比較します。このページでは、Skynet がケースをどのように読み取るか、列の役割が何をするか、ケースをどのように学習・検証・テストのセットに分割するかを説明します。
データを読み込む
ウィザードの 入力 ステップには、2 つの選択肢があります。
- CSV、JSON、Excel ファイルをアップロード。Skynet は
.csv、.json、.xlsx、.xlsファイルを受け付けます。 - ライブラリから選択。以前に保存したデータセットを使います。
1 つの実行で使えるケースは最大 200,000 件です。
保存済みのデータセットを管理するには、データセット をお読みください。
列の役割
データの読み取り方 で、各列に役割を 1 つ割り当てます。
| 役割 | Skynet がその列で行うこと |
|---|---|
| 入力 | 値を input に入れます。実行コードがこれを受け取ります |
| 出力 | 値を expected に入れます。メトリクスがこれを受け取ります |
| スキップ | その列を使いません |
各列には種類もあります: テキスト または 画像。
出力列にできるのは 1 つの列だけです。2 つ目の列を出力に設定すると、1 つ目の列はスキップに変わります。
コードが受け取るもの
Skynet は各行から 1 つのケースを作ります。
inputは dict です。入力列ごとに 1 つのキーを持ちます。expectedは、キーを 1 つ(出力列の名前)持つ dict です。
次の表で、
| message | label | id |
|---|---|---|
| I was charged twice | billing | 17 |
役割を message = 入力、label = 出力、id = スキップ とした場合、コードは次を受け取ります。
{"message": "I was charged twice"}{"label": "billing"}データモード
役割によって、実行のデータモードが決まります。
| モード | 条件 | 動作 |
|---|---|---|
| ペア | 1 つの列が出力 | すべての行が、入力と期待値を持つケースになります。少なくとも 2 行が必要です。 |
| 単一 | 出力の列がない | 実行は最初の行の入力列だけを使います。期待値のない 1 つのケースになります。 |
単一モードでは、Skynet はその 1 つのケースを学習、選択、報告に使います。評価用に取り分けるデータはありません。
分割
ペアモードでは、Skynet はケースを 3 つのセットに分割します。
| セット | 用途 |
|---|---|
| 学習 | エンジンはこれらのケースでバージョンを提案し、テストします。 |
| 検証 (Val) | Skynet はこれらのケースで最良のバージョンを選びます。 |
| テスト | Skynet はこれらのケースで最終スコアを報告します。 |
既定の分割
| ペアの数 | 学習 | 検証 | テスト |
|---|---|---|---|
| 5 以上 | 70% | 15% | 15% |
| 5 未満 | 85% | 15% | 0% |
ペアが 5 つ未満の場合、Skynet はテストセットを残しません。
Skynet がケースを数える方法
Skynet は、最大剰余法で割合をケースの整数件数に変換します。件数の合計は常にケースの数と一致します。割合が 0 より大きいセットには、少なくとも 1 件のケースが割り当てられます。割合が 0 のセットには、ケースは割り当てられません。
分割の前に、Skynet はケースをシャッフルします。シャッフルには実行のシードを使います。シードを指定しない場合、Skynet はケース、目的、アーティファクトからシードを作ります。そのため、同じ実行を再度送信すると、同じ分割になります。
フォールバック
- ペアが 5 つ未満の場合、Skynet はテストセットを削除し、学習と検証の合計が 1 になるように調整します。
- 学習が空の場合、Skynet は検証ケースを学習として使います。
- 検証セットがない場合、Skynet は学習ケースで選択します。
- テストセットがない場合、Skynet は検証で報告します。検証セットもない場合は、学習で報告します。
分割を変更する
分割のセクションには 推奨される分割 が表示されます。2 つのモードがあります。
- 推奨を使用: Skynet は上記の既定の分割を使います。
- 手動選択: 学習、検証、テスト を自分で設定します。
手動選択では、各フィールドに 0〜1 の割合を 0.05 刻みで入力します。各フィールドには、割り当てられるケースの数が表示されます。3 つの割合の合計は 1 である必要があります。そうでない場合、ウィザードに「分割の合計は 1 にする必要があります。」と表示されます。
コントラクトのサンプル
メトリクスと実行 ステップのコントラクトチェックは、3 つのサンプルケースでコードを実行します。Skynet はこれらのサンプルを学習ケースと検証ケースからのみ取り出し、テストからは決して取り出しません。