View a markdown version of this page

SageMaker トレーニングジョブでの Amazon Nova のカスタマイズ - Amazon Nova

SageMaker トレーニングジョブでの Amazon Nova のカスタマイズ

SageMaker トレーニングジョブは、機械学習モデルを大規模にトレーニングできる環境です。コンピューティングリソースを自動的にプロビジョニングおよびスケーリングし、Amazon S3 などのソースからトレーニングデータをロードし、トレーニングコードを実行して、生成されるモデルアーティファクトを保存します。

トレーニングの目的は、自社の所有データを使用してベース Amazon Nova モデルをカスタマイズすることです。通常、トレーニングプロセスには、データの準備、レシピの選択、YAML ファイルの設定パラメータの変更、トレーニングジョブの送信の各ステップが含まれます。トレーニングプロセスでは、トレーニングされたモデルチェックポイントをサービスマネージド Amazon S3 バケットに出力します。このチェックポイントの場所は評価ジョブに使用できます。SageMaker AI トレーニングジョブでの Nova カスタマイズでは、モデルアーティファクトがサービスマネージド Amazon S3 バケットに保存されます。サービスマネージドバケット内のアーティファクトは、SageMaker AI マネージド KMS キーで暗号化されます。サービスマネージド Amazon S3 バケットは現在、カスタマーマネージド KMS キーを使用したデータ暗号化をサポートしていません。

Amazon Nova カスタマイズのベストプラクティス

概要

このセクションでは、カスタマイズ手法の概要を説明し、ニーズと利用可能なデータに最適なアプローチを選択するのに役立ちます。

LLM トレーニングの 2 つのステージ

大規模言語モデルトレーニングは、事前トレーニングと事後トレーニングの 2 つの主要なステージで構成されます。事前トレーニング中、モデルは未加工テキストのトークンを処理し、次のトークン予測のために最適化します。このプロセスでは、ウェブや厳選されたテキストから構文、セマンティクス、ファクト、推論パターンを吸収するパターンコンプリータを作成します。ただし、事前トレーニング済みのモデルは、指示、ユーザー目標、またはコンテキストに適した動作を理解していません。トレーニングディストリビューションに適したスタイルでテキストを続行します。事前トレーニング済みのモデルは、指示に従うのではなくオートコンプリートし、一貫性のないフォーマットを生成し、トレーニングデータから望ましくないバイアスや安全でないコンテンツをミラーリングする可能性があります。事前トレーニングは、タスクの有用性ではなく、一般的な能力を構築します。

事後トレーニングにより、パターンコンプリータは便利なアシスタントへと変化します。教師ありファインチューニング (SFT) を複数回実行すると、モデルに指示に従ったり、スキーマやポリシーに従ったり、ツールを呼び出したり、高品質のデモンストレーションを模倣して信頼性の高い出力を生成したりすることができます。この調整により、続行するにはテキストではなくタスクとしてプロンプトに応答するようにモデルに指示します。次に、強化ファインチューニング (RFT) を適用して、測定可能なフィードバック (検証子や LLM-as-a-judge など)、精度と簡潔さなどのトレードオフのバランス、安全性とカバレッジ、制約下の複数ステップの推論を使用して動作を最適化します。実際には、SFT と RFT をサイクルで交互に実行して、事前トレーニング済みのモデルを、複雑なタスクを一貫して実行する信頼性の高いポリシーに準拠したシステムに調整します。

適切なカスタマイズアプローチを選択する

このセクションでは、トレーニング後のカスタマイズ戦略である RFT と SFT について説明します。

強化ファインチューニング (RFT)

強化ファインチューニングは、正確な回答で直接監視するのではなく、フィードバックシグナル、つまり応答品質を示す測定可能なスコアや報酬を通じてモデルのパフォーマンスを向上させます。入出力ペアから学習する従来の教師ありファインチューニングとは異なり、RFT は報酬関数を使用してモデルレスポンスを評価し、モデルを繰り返し最適化してこれらの報酬を最大化します。このアプローチは、正確な正解出力を定義するのが困難であるものの、レスポンス品質を確実に測定できるタスクに適しています。RFT を使用すると、モデルはトライアルとフィードバックを通じて複雑な動作や好みを学習できるため、微妙な意思決定、創造的な問題解決、またはプログラムで評価できる特定の品質基準への準拠を必要とするアプリケーションに最適です。例えば、複雑な法的質問に回答することは RFT の理想的なユースケースです。これは、質問により正確に回答する方法をモデルに教えたいためです。

仕組み

強化ファインチューニングでは、命令チューニングされたベースラインから開始し、各プロンプトを小さなトーナメントのように扱います。特定の入力について、モデルからいくつかの候補回答をサンプリングし、それぞれに報酬関数を使用してスコアを付け、そのグループ内でランク付けします。更新ステップでは、次回は高いスコアの候補をより可能性が高く、低いスコアの候補をより可能性が低くするようにモデルをナッジします。一方、stay-close-to-baseline の制約により、動作がドリフトしたり、冗長になったり、悪用されたりしないようにします。多数のプロンプトに対してこのループを繰り返し実行し、難易度の高いケースを更新し、エクスプロイトが確認された場合は検証ツールや判定ルーブリックを厳格化し、タスクメトリクスを継続的に追跡します。

RFT はどのような場合に使用するか

RFT を最大限に活用するタスクには、いくつかの特性があります。1 つの正しい出力を指定するのが困難な場合でも、測定可能な成功シグナルがあります。こうしたタスクでは部分的な評価や段階的な品質判定が認められるため、プロンプトのグループ内で、あるいは報酬関数を使用して、回答の良し悪しをランク付けすることができます。これには、バランスを取る必要がある複数の目標 (正確であると同時に簡潔、明確、安全、高いコスト効率を実現するなど) が含まれます。プログラムで確認できる明示的な制約を遵守する必要があります。これらは、結果 (成功または失敗、レイテンシー、リソースの使用) が観察可能なツールを介した設定または環境ベースの設定で動作します。これらは、ゴールドターゲットの収集にはコストがかかるが、自動フィードバックまたはルーブリックベースのフィードバックが豊富な低ラベル体制で発生します。RFT は、品質を信頼性の高いスカラーまたはランキングに変えることができ、モデルがラベル付けされた包括的なターゲットを必要とせずに、より高いスコアの動作を優先的に増幅したい場合に最適です。

以下の場合は、他の方法を検討してください。

  • ラベル付き入出力ペアが豊富で信頼性が高い場合 – SFT を使用してください

  • 主なギャップが知識または専門用語である場合 – 検索拡張生成 (RAG) を使用してください

  • 報酬シグナルがノイズが多いか信頼性が低く、より良いルーブリックやチェッカーで修正できない場合 – RFT の前に報酬シグナルを最初に安定させてください

RFT の使用が適さない場合

次の状況では RFT の使用は避けてください。

  • 信頼性の高いラベル付き入出力ペアを安価に生成できる (SFT の方がよりシンプルで安価、かつ安定している) 場合

  • ギャップが動作ではなく知識または専門用語である場合 (RAG を使用します)

  • 報酬シグナルがノイズが多く、スパースであり、ゲームが容易であり、または計算が高価または遅い場合 (最初に評価者を修正します)

  • ベースラインパフォーマンスがほぼゼロ (設定を最適化する前に SFT でブートストラップします)

  • タスクに決定論的なスキーマ、厳密なフォーマット、または 1 つの正しい回答がある場合 (SFT またはルールベースの検証の方が効果的)

  • レイテンシーやコストの予算が厳しく、RFT が必要とする追加のサンプリングや探索を吸収できない場合

  • 安全またはポリシーの制約が報酬で明確に指定されておらず、適用可能ではない場合

「正しい回答」を参照できる場合は、SFT を使用します。新しい知識が必要な場合は、RAG を使用します。RFT は、強固なベースラインがあり、堅牢で高速、悪用困難な報酬関数がある場合にのみ使用してください。

教師ありファインチューニング (SFT)

教師ありファインチューニングは、タスクの人間がラベル付けした入出力ペアのデータセットで LLM をトレーニングします。プロンプト (質問、指示など) の例を正しいレスポンスや望ましいレスポンスと共に提供し、それらに関するモデルのトレーニングを続けます。モデルは、教師あり損失 (通常は予測とターゲット出力トークン間のクロスエントロピー) を最小限に抑えるように重みを調整します。これは、ほとんどの教師あり機械学習タスクで使用されるトレーニングと同じで、LLM を専門化するために適用されます。

SFT は、知識ではなく動作を変更します。事前トレーニングで表示されなかった新しい事実や専門用語をモデルに教えることはありません。モデルに、知っておくべきことではなく、答え方を教えます。新しいドメイン知識 (内部用語など) が必要な場合は、検索拡張生成 (RAG) を使用して、推論時にそのコンテキストを提供します。次に、SFT は必要な指示に従う動作を上乗せします。

仕組み

SFT は、レスポンストークンの平均クロスエントロピー損失を最小限に抑え、プロンプトトークンをコンテキストとして扱い、損失からマスクすることで LLM を最適化します。このモデルは、ターゲットのスタイル、構造、決定ルールを内部化し、プロンプトごとに正しく完了させる方法を学習します。例えば、ドキュメントをカスタムカテゴリに分類するには、プロンプト (ドキュメントテキスト) とラベル付き補完 (カテゴリラベル) を使用してモデルをファインチューニングします。モデルが各プロンプトに適したラベルを高い確率で出力するまで、これらのペアをトレーニングします。

わずか数百の例で SFT を実行し、数十万の例までスケールアップできます。SFT サンプルは高品質で、目的のモデル動作と直接一致させる必要があります。

SFT はどのような場合に使用するか

SFT は、明確に定義されたタスクがあり、望ましい出力が明確である場合に使用します。「入力が X の場合、正しい出力は Y である」と明示的に言うことができ、このようなマッピングの例を収集できる場合は、教師ありファインチューニングが適しています。SFT は、次のシナリオで優れています。

  • 構造化または複雑な分類タスク: – 内部ドキュメントや契約書を多数のカスタムカテゴリに分類する場合。SFT を使用すると、モデルは、プロンプトのみの場合よりも、これらの特定のカテゴリをうまく学習できます。

  • 既知の回答がある質疑応答または変換タスク: 企業のナレッジベースからの質問に答えたり、各入力が正しい応答を持つ形式間でデータを変換したりするためにモデルをファインチューニングする場合。

  • フォーマットとスタイルの一貫性: 正しい形式/トーンの例に基づいてファインチューニングすることで、モデルが常に特定の形式またはトーンで応答するようにトレーニングする場合。例えば、特定のブランドボイスを示すプロンプトとレスポンスのペアでトレーニングすると、そのスタイルの出力を生成するようにモデルをトレーニングできます。指示追従型動作は、多くの場合、最初は SFT を通じた優れたアシスタント動作の厳選された例に基づいてトレーニングされます。

SFT は、適切な動作がどのようなものかを指定できる場合に、LLM に新しいスキルや動作をトレーニングする最も直接的な方法です。モデルの既存の言語理解を利用し、それをタスクに集中させます。モデルで特定の操作を行い、例のデータセットがあるか、作成できる場合は、SFT を使用します。

必要な動作を厳密に反映した高品質のプロンプトとレスポンスのペアをアセンブルできる場合は、SFT を使用します。スキーマ、関数、ツール呼び出しなどの明確なターゲットや決定論的な形式、および模倣が適切なトレーニングシグナルである構造化された回答を持つタスクに適合します。目標は動作シェーピングです。プロンプトをタスクとして扱い、指示に従い、トーンポリシーと拒否ポリシーを採用し、一貫したフォーマットを生成するようにモデルに教えることです。データ品質、一貫性、重複排除が raw ボリュームよりも重要となる、少なくとも数百のデモンストレーションを計画します。シンプルでコスト効率の高い更新を行うには、低ランク適応などのパラメータ効率の高い方法を使用して、ほとんどのバックボーンをそのままにして小さなアダプターをトレーニングします。

SFT の使用が適さない場合

ギャップが動作ではなく知識である場合は、SFT を使用しないでください。SFT はモデルに新しい事実、専門用語、最近のイベントを教えません。このような場合は、検索拡張生成を使用して、推論で外部知識を取り込みます。品質を測定できるが、1 つの正しい回答にラベルを付けることができない場合は、SFT は使用しないでください。それらの報酬を直接最適化するには、検証可能な報酬または LLM-as-a-judge による強化ファインチューニングを使用します。ニーズやコンテンツが頻繁に変更される場合は、モデルを再トレーニングするのではなく、取得とツールの使用に頼ってください。