リソース/モデルのトレーニング/トレーニング手法

手法

継続的な事前学習

継続的な事前学習では、モデルが最初に学習した際と同様に、次の単語を予測する方法で、お客様の生のテキストデータを使用してモデルをトレーニングします。これにより、新しい振る舞いではなく、お客様のドメイン知識が追加されるため、通常はこの後に教師あり学習が実行されます。

第7章読了時間 2分参考文献 5件

概要

ベースモデルは、膨大な公開テキスト全体で次の単語を予測するという事前学習を通じて知識を習得しました。継続的事前学習は、お客様のテキストを使用して、同じプロセスを再度実行します。プロンプトも回答も評価者も存在しません。モデルはお客様のドキュメントを読み込み、その続きを予測する能力を向上させます。つまり、その語彙、エンティティ、および事実を吸収します。

このアプローチは広く確立されています。Gururanganら(2020年)は、4つのドメイン(生物医学およびコンピューターサイエンスの論文、ニュース、レビュー)と8つのタスクにおいて、ドメイン内テキストでの第2段階の事前学習が結果を向上させること、さらにその後でもタスク自体のラベルなしテキストでの事前学習が役立つことを示しました。

テキストの準備方法

  • 約700語のパッセージ。文脈が途切れないように段落の区切りで分割されます。非常に短いドキュメントはスキップされる場合があります。
  • 他のデータ準備と同様に、個人データは秘匿化されます。
  • 約5%のパッセージが除外されるため、モデルが学習しないテキストで損失を測定できます。
1 · 段落の区切りで分割ABCDEFホールドアウト(約5%)1パッセージ ≈ 700語 ≈ 900トークン2 · 2,048トークンのシーケンスにパックシーケンス 1ABシーケンス 2CDEフルフル損失はすべてのトークンをカバーします:質問と回答はなく、テキストのみです
ドキュメントが継続的な事前学習データになる仕組み。テキストは段落の区切りで約700語のパッセージに分割されるため、文脈の途中でパッセージが終わることはありません。また、モデルが学習しないテキストの損失を測定するために、約5%がホールドアウト(除外)されます。Hugging Faceでは、短いパッセージが並べられてフルレングスのシーケンスにパックされるため、パディングに計算リソースが消費されることはありません。長さは説明のためのものです。

各プロバイダーの学習方法

Hugging Face: 各パッセージは1つの text 行になります。回答のみがカウントされる教師あり学習とは異なり、損失はすべてのトークンをカバーします。短いパッセージはフルレングスのシーケンスにパックされるため、パディングに計算リソースが消費されることはありません。

Hugging Face用の1つのパッセージ
{"text": "Sharing reports\n\nAny report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}

Vertex AIのオープンモデル(Gemma、Llama、Qwen): プレーンテキストモードがないため、各パッセージはプロンプトと補完として入力され、ドキュメントのタイトルがプロンプトになります。Vertexはパッセージである補完を学習します。Vertexは、この種のジョブの損失曲線を表示しない場合があります。

Vertex AIオープンモデル用の同じパッセージ
{"prompt": "Sharing reports",
 "completion": "Any report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}
Hugging Face · プレーンテキスト
パッセージ→text1パッセージにつき1行→すべてのトークンを学習
Vertex AIオープンモデル · プロンプトとコンプリーション
promptドキュメントのタイトル+completionパッセージ→パッセージを学習
各プロバイダーが学習できる形式で記述された同じパッセージ。Hugging Faceはプレーンテキストを受け入れます。Vertex AIのオープンモデルにはプレーンテキストモードがないため、ドキュメントのタイトルがプロンプトの代わりとなり、パッセージが学習される部分となります。

他のプロバイダーでは利用不可。 Gemini、Azure、Fireworks、および現在のBedrockモデルは継続的事前学習を提供していません。Bedrockは廃止されたTitan Textに対してのみ提供していました。これらのプロバイダーでは、ドキュメントは代わりに生成されたQ&Aになります。

振る舞いではなく知識

継続的事前学習の後、モデルの知識は増えますが、必ずしも回答が上手くなるわけではありません。モデルはテキストを続けるように学習したのであり、質問に答えるように学習したわけではないからです。Allen-Zhu & Li(2023年)は、モデルが記憶した知識が常に質問によって抽出できるとは限らず、同じ事実の多様な言い回しが検索可能性を高めることを発見しました。そのため、通常の手順としては、まず継続的事前学習を行い、次にその学習済みモデルから継続する形で、チャットや生成されたQ&Aによる教師あり学習を実行します。

ベースモデル一般知識
→お客様のテキストを読み込む継続的な事前学習お客様のドキュメントを学習済み
→ここから継続教師あり学習チャットまたは生成されたQ&A:その知識を使用して回答します
継続的な事前学習は、振る舞いではなく知識を追加します。お客様のドキュメントを読んだだけのモデルはテキストを続けるだけであり、それに関する質問にはまだ答えられません。そこから継続する教師あり学習により、読んだ内容を活用できるようになります。
実行規模の算定(例)
  1. 12万語のヘルプセンターは、約700語のパッセージ約170個に分割されます。
  2. 約5%(9パッセージ)が除外され、161パッセージ(約11万3,000語)が学習に使用されます。
  3. 1語あたり約1.3トークンとすると、1エポックあたり約15万トークンになります。2エポックでは約30万トークンを学習します。
  4. 2,048トークンのシーケンスにパックすると、1エポックは約72シーケンスになります。小規模なオープンモデルでLoRAランクを32に設定した場合、これは短時間で安価なジョブとなります。
  5. その後、サポートチャットと生成されたQ&Aによる教師あり学習がそこから継続され、それに基づいて評価されます。
  6. 対照的に、2,000語のドキュメントでのパイロット版では3つのパッセージが生成されます。これはパイプラインが機能することを証明しますが、モデルを変化させるにはテキスト量が少なすぎます。

選択するタイミング

  • 大量のドキュメント(数万語以上)があり、オープンモデルをトレーニングし、その後教師あり学習を計画している場合は、これを選択してください。
  • より良い回答をすぐに得たい場合、ドキュメントが少ない場合、または継続的な事前学習を提供していないプロバイダーでトレーニングする場合は、生成されたQ&Aを選択してください。
  • 両方を検討: 継続的な事前学習でドキュメントを吸収させ、その後、生成されたQ&Aとチャットを使用して、そこから回答するようにモデルに学習させます。

設定

パッセージの長さ一般的 約700語#

各トレーニングパッセージの長さです。段落の区切りで分割された約700語であり、各パッセージが一貫したテキストとして1つのトレーニングシーケンスに適切に収まるようにしています。非常に短いドキュメントは、学習に不十分であるとしてスキップされる場合があります。

エポック数一般的 1〜3#

モデルがすべてのパッセージを読み込む回数です。低く保ってください。回数が多すぎると、モデルは知識を活用するのではなく、パッセージを一語一句暗唱するようになります。また、1エポックごとに約1エポック分のコストが追加されます。

LoRAランク一般的 32(その他の手法では16)#

モデルが学習した内容を保持するアダプターのサイズです。新しい知識の学習には、スタイルの変更よりも大きなアダプターが必要となるため、Scalataでは継続的な事前学習にランク32を、その他の手法にはランク16を使用しています。Bidermanら(2024年)は、コードと数学の分野において、フルファインチューニングでは一般的なLoRA設定の10〜100倍のランクの変更を学習することを発見しました。これは、新しい知識の獲得を目的とする場合に、低いランクでは不十分となる可能性が高い理由の1つです。

よくある間違い

  • 数ページで実行し、変化を期待すること。数万語以上が必要です。
  • 継続的事前学習の後に停止すること。モデルの知識は増えますが、適切に回答するには依然として教師あり学習が必要です。
  • 多くのエポックを使用すること。モデルは内容を活用するのではなく、パッセージを暗唱し始めます。
  • LoRAランクを小さく保つこと。知識はスタイルよりも多くのアダプター容量を必要とします。
  • Gemini、Azure、Fireworks、またはBedrockでこの機能を探すこと。これらのプロバイダーでは生成されたQ&Aを使用してください。

参考文献および関連資料

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

  1. 01Don't Stop Pretraining: Adapt Language Models to Domains and TasksGururangan et al., 2020 · arXiv · arxiv.orgドメイン適応型およびタスク適応型事前学習に関する古典的な研究。
  2. 02LoRA Learns Less and Forgets LessBiderman et al., 2024 · arXiv · arxiv.org継続的事前学習におけるLoRAとフルファインチューニングの比較、およびランクが重要である理由。
  3. 03Synthetic continued pretrainingYang et al., 2024 · arXiv · arxiv.org小規模なコーパス単独ではほとんど学習効果がない理由と、合成バリエーションがどのように役立つか。
  4. 04SFT TrainerHugging Face TRL docs · huggingface.coHugging Face TRLを使用したプレーンテキストでの学習とシーケンスのパッキング。
  5. 05Supervised and distillation fine-tuning for open modelsGoogle Cloud docs · cloud.google.comVertex AIでのGemma、Llama、Qwenなどのオープンモデルのチューニング。

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

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

営業へのお問い合わせ