リソース/モデルのトレーニング/データセット

概念

データセットとは何か

チャットからのコピー、モデルによる作成、またはインポートされたトレーニング例と、学習用ドキュメントを含む、名前付きの凍結されたコレクション — リンクではなくスナップショットである理由、そしてそれが修正、インポート、再現性に何を意味するのか。

第4章読了時間 2分参考文献 3件

概要

データセットは、名前が付けられたトレーニングサンプルのコレクションです。Scalataでは、ほとんどのサンプルはチャットです。つまり、会話と、どのアシスタントの返答をターゲットにするかの選択です。データセットには、事実を学習するためのドキュメントを含めることもできます。下流のすべてのプロセスがこれを参照します。データセットを準備し、準備されたファイルでトレーニングを行い、生成されたモデルを評価します。

リンクではなくスナップショット

チャットがデータセットに追加されると、そのメッセージはコピーして取り込まれます。それ以降、データセットとチャットは独立しています。チャットを継続したり、編集したり、削除したりしても、データセットには何も変更が加えられません。

チャットの追加
セッションでのチャット→コピーされたメッセージ→データセットの例以降は固定
その後、チャット内で
チャットの継続、編集、または削除✕データセットは変更なし
データセット内の返答の修正
元の返答保持+修正された返答学習対象→作成済みの選好ペア
データセットはメッセージをコピーして取り込みます。その後の元のチャットの変更はデータセットには反映されませんが、データセット内で行われた修正は元のメッセージと並行して保持されます。

これは意図的なものです。トレーニングの実行には数時間かかり、評価は数日後に読み取られ、モデルは数か月にわたって使用される可能性があります。データセットがその裏で変更される可能性がある場合、モデルが何をトレーニングしたかを説明できなくなります。「同じ」データセットからの2回の実行で異なるデータが参照された可能性があり、チャットを削除すると、依存していたサンプルが気付かないうちに削除される可能性があります。

データセット内の修正

データセット内の返答を修正できます。修正されたテキストがトレーニング対象となり、元のテキストはその横に保持されます。両方を保持することは、記録の保存以上に役立ちます。元のテキストと修正は、修正版を優先する既製のプレファレンスペアを形成します。修正は、何が間違っていたかを人が正確に指摘するものであるため、モデルに与えることができる最も強力なシグナルの1つです。

1つの修正、2つの用途
  1. 元の返答: 「設定に移動します。」
  2. あなたの修正: 「設定 → 通知を開き、『週次ダイジェスト』をオフにします。」
  3. 教師ありファインチューニングは修正内容を学習します。
  4. プレファレンス・チューニングでは、修正版を優先し、元の返答を優先しないというペアを使用できます。

インポートされた会話

他のチャットアプリからエクスポートされた会話もインポートできます。同じエクスポートを再度インポートしても、二重に追加されることはありません。重複は見た目以上に重要です。2回出現する会話はトレーニングで2回カウントされ、そのコピーが検証分割の両側に配置される可能性があり、評価を過大に見せてしまうためです。

その他のサンプルのソース

  • 合成チャット。 Dataset Builderには、概要からさまざまなシナリオをプランし、会話例を作成する高性能なモデルが備わっています。追加する前にこれらをレビューでき、実際のチャットと区別できるようにSyntheticというマークが付けられます。
  • 公開データセット。 どの列に質問と回答が含まれているかをScalataが特定すると、Hugging Faceデータセットの行をチャットとしてインポートできます。大規模なインポートはバックグラウンドで実行されます。
  • チャットのフィードバック。 チャットで付けられた高評価と低評価は学習例になります。高評価の回答は学習すべき返答となり、同じ質問に対する高評価と低評価の回答は選好ペアになります。
  • ドキュメント。 アップロードされたファイル、すでにScalataにあるファイル、公開ウェブページ、Hugging Faceデータセットのプレーンテキスト行、または接続されたデータソースからのファイルです。これらのテキストは一度読み込まれ、その後モデルがそこから質疑応答の例を作成したり、オープンモデルがテキストを直接学習(継続的な事前学習)したりできます。

各ソースにはそれぞれ落とし穴があります。合成チャットは実際のチャットよりもクリーンであるため、可能な限り実際のデータと混合し、テスト用に実際のチャットを保持してください。インポートされた行の品質は、そのソースに依存します。ドキュメントは事実を教えるものであり、回答方法を教えるものではないため、通常はチャットのトレーニングの前、またはそれと並行して行われます。

終わりのない変更ではなく新しいバージョン

新しい製品分野、新しいチャットのバッチ、異なるスタイルなど、大幅な変更の場合は、古いデータセットを再形成し続けるよりも、新しいデータセットを作成する方が通常は明確です。違いが明確になるようにバージョンの名前を付け(「Support v2 — billing added」など)、古いものは削除するのではなくアーカイブして、以前のモデルがトレーニング内容を引き続き参照できるようにします。

よくある間違い

  • 元のチャットで行われた修正が、以前に作成されたデータセットに反映されると期待すること。
  • 現在も使用しているモデルをトレーニングした古いデータセットを削除し、学習内容の記録を失うこと。
  • それぞれの十分なサンプルがないまま、関連のないタスクを1つのデータセットに混在させること。
  • データセット内で修正せずに、誤った返答をターゲットとして残すこと。

参考文献および関連資料

外部ソースは新しいタブで開きます。

  1. 01Datasheets for DatasetsGebru et al., 2018 · arXiv · arxiv.orgすべてのデータセットの収集方法と内容を記録する意義。
  2. 02DatasetsHugging Face docs · huggingface.coオープンソースのエコシステムがトレーニングデータを保存、バージョン管理、共有する方法。
  3. 03Deduplicating Training Data Makes Language Models BetterLee et al., 2021 · arXiv · arxiv.org重複する例を削除する価値がある理由。

専門家が数週間かける作業を数分に短縮します

Scalataがお客様のチーム、データ、および統制にどのように適合するかをご確認ください。

営業へのお問い合わせ