翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker トレーニングジョブでの Amazon Nova のカスタマイズ
Amazon SageMaker トレーニングジョブは、機械学習モデルを大規模にトレーニングできる環境です。コンピューティングリソースを自動的にプロビジョニングおよびスケーリングし、Amazon S3 などのソースからトレーニングデータをロードし、トレーニングコードを実行して、生成されるモデルアーティファクトを保存します。
トレーニングの目的は、自社の所有データを使用してベース Amazon Nova モデルをカスタマイズすることです。通常、トレーニングプロセスには、データの準備、レシピの選択、YAML ファイルの設定パラメータの変更、トレーニングジョブの送信の手順が含まれます。トレーニングプロセスでは、トレーニングされたモデルチェックポイントをサービスマネージド Amazon S3 バケットに出力します。このチェックポイントの場所は評価ジョブに使用できます。SageMaker トレーニングジョブでの Nova カスタマイズでは、モデルアーティファクトがサービスマネージド Amazon S3 バケットに保存されます。サービスマネージドバケット内のアーティファクトは、SageMaker マネージド KMS キーで暗号化されます。サービスマネージド Amazon S3 バケットは現在、カスタマーマネージド KMS キーを使用したデータ暗号化をサポートしていません。
概要:
このセクションでは、カスタマイズ手法の概要を説明し、ニーズと利用可能なデータに最適なアプローチを選択するのに役立ちます。
LLM トレーニングの 2 つのステージ
大規模言語モデルトレーニングは、トレーニング前とトレーニング後の 2 つの主要なステージで構成されます。事前トレーニング中、モデルは未加工テキストのトークンを処理し、次のトークン予測のために最適化します。このプロセスでは、ウェブや厳選されたテキストから構文、セマンティクス、事実、推論パターンを吸収するパターンコンプリータを作成します。ただし、事前トレーニング済みのモデルは、指示、ユーザー目標、またはコンテキストに適した動作を理解していません。トレーニングディストリビューションに適したスタイルでテキストを続行します。事前トレーニング済みのモデルは、指示に従うのではなくオートコンプリートし、一貫性のないフォーマットを生成し、トレーニングデータから望ましくないバイアスや安全でないコンテンツをミラーリングする可能性があります。事前トレーニングは、タスクの有用性ではなく、一般的な能力を構築します。
トレーニング後、パターンコンプリータは便利なアシスタントに変換されます。教師ありファインチューニング (SFT) を複数回実行して、モデルに指示に従ったり、スキーマやポリシーに従ったり、ツールを呼び出したり、高品質のデモンストレーションを模倣して信頼性の高い出力を生成したりするよう指示します。この調整により、続行するにはテキストではなくタスクとしてプロンプトに応答するようにモデルに指示します。次に、強化ファインチューニング (RFT) を適用して、測定可能なフィードバック (検証子や LLM-as-a-judge など)、精度と簡潔性などのトレードオフのバランス、安全性とカバレッジ、制約の下での複数ステップの推論を使用して動作を最適化します。実際には、SFT と RFT をサイクルで置き換えて、事前トレーニング済みのモデルを、複雑なタスクを一貫して実行する信頼性の高いポリシーに沿ったシステムに形成します。
適切なカスタマイズアプローチを選択する
このセクションでは、トレーニング後のカスタマイズ戦略である RFT と SFT について説明します。
強化ファインチューニング (RFT)
強化ファインチューニングは、正確な回答で直接監視するのではなく、フィードバックシグナル、つまり応答品質を示す測定可能なスコアや報酬を通じてモデルのパフォーマンスを向上させます。入出力ペアから学習する従来の教師ありファインチューニングとは異なり、RFT は報酬関数を使用してモデルレスポンスを評価し、モデルを繰り返し最適化してこれらの報酬を最大化します。このアプローチは、正確な出力を定義するのが困難なタスクに適していますが、応答品質を確実に測定できます。RFT を使用すると、モデルはトライアルとフィードバックを通じて複雑な動作や好みを学習できるため、微妙な意思決定、創造的な問題解決、またはプログラムで評価できる特定の品質基準への準拠を必要とするアプリケーションに最適です。例えば、複雑な法的質問への回答は RFT の理想的なユースケースです。これは、質問により正確に回答する方法をモデルに教えたいためです。
仕組み
強化ファインチューニングでは、命令チューニングされたベースラインから開始し、各プロンプトを小さなトーナメントのように扱います。特定の入力について、モデルからいくつかの候補回答をサンプリングし、それぞれを報酬関数でスコアリングしてから、そのグループ内でランク付けします。更新ステップでは、モデルをナッジして、次回は高スコア候補の可能性を高め、低スコア候補の可能性を低くします。一方、stay-close-to-baselineの制約により、動作がドリフトしたり、詳細になったり、悪用されたりしないようにします。このループを多くのプロンプトで繰り返し、ハードケースを更新し、エクスプロイトが発生したときに検証者を絞り込んだり、ルーブリックを判断したりして、タスクメトリクスを継続的に追跡します。
RFT を使用するタイミング
RFT を最大限に活用するタスクには、いくつかの特性があります。1 つの正しい出力を指定するのが困難な場合でも、測定可能な成功シグナルがあります。クレジットの一部またはグレード付けされた品質を認めるため、プロンプト内または報酬関数を使用して、回答のランク付けを改善できます。これには、バランスを取る必要がある複数の目標 (簡潔性、明確性、安全性、コストなど) が含まれます。プログラムで確認できる明示的な制約を遵守する必要があります。これらは、結果 (成功または失敗、レイテンシー、リソースの使用) が観察可能なツールまたは環境ベースの設定で動作します。これらは、ゴールドターゲットの収集にはコストがかかりますが、自動フィードバックやrubric ベースのフィードバックが豊富な低ラベルの体制で発生します。RFT は、品質を信頼性の高いスカラーまたはランク付けに変えることができ、モデルにラベル付きの包括的なターゲットを必要とせずに、より高いスコアの動作を優先的に増幅させたい場合に最適です。
以下の場合は、他の方法を検討してください。
-
ラベル付き入出力ペアが豊富で信頼性が高い — SFT を使用する
-
主なギャップは知識または専門用語 – 検索拡張生成 (RAG) を使用する
-
報酬シグナルがノイズが多いか信頼性が低く、より良いルーブリックやチェッカーで修正できない – RFT の前に最初に安定させる
RFT を使用しない場合
このような状況では RFT は避けてください。
-
信頼性の高いラベル付き入出力ペアを安価に生成できます (SFT はよりシンプルで安価、安定しています)
-
ギャップは動作ではなく知識または専門用語です (RAG を使用)
-
報酬シグナルがノイズが多い、スパースである、ゲームしやすい、または計算が高価または遅い (最初に評価者を修正する)
-
ベースラインパフォーマンスがほぼゼロ (設定を最適化する前に SFT でブートストラップ)
-
タスクに決定論的なスキーマ、厳密なフォーマット、または 1 つの正しい回答がある (SFT またはルールベースの検証の方が効果的)
-
レイテンシーやコストの予算が厳しいと、RFT が必要とする追加のサンプリングや探索を吸収できない
-
安全またはポリシーの制約が報酬で明確に指定されておらず、強制可能ではない
「正しい回答」を指せる場合は、SFT を使用します。新しい知識が必要な場合は、RAG を使用します。RFT は、強固なベースラインと堅牢で高速、hard-to-exploit報酬関数がある場合にのみ使用してください。
教師ありファインチューニング (SFT)
教師ありファインチューニングは、タスクの人間がラベル付けした入出力ペアのデータセットで LLM をトレーニングします。プロンプト (質問、指示など) の例を正しいレスポンスまたは必要なレスポンスで提供し、これらの例でモデルのトレーニングを続けます。モデルは、教師あり損失 (通常は予測とターゲット出力トークン間の交差エントロピー) を最小限に抑えるように重みを調整します。これは、ほとんどの教師あり機械学習タスクで使用されるトレーニングと同じで、LLM を専門化するために適用されます。
SFT は、知識ではなく動作を変更します。事前トレーニングで表示されなかった新しい事実や専門用語をモデルに教えることはありません。モデルに、知っておくべきことではなく、答え方を教えます。新しいドメインの知識 (内部用語など) が必要な場合は、取得拡張生成 (RAG) を使用して、推論時にそのコンテキストを提供します。次に、SFT は必要な指示に従う動作を上に追加します。
仕組み
SFT は、レスポンストークンの平均クロスエントロピー損失を最小限に抑え、プロンプトトークンをコンテキストとして扱い、損失からマスクすることで LLM を最適化します。このモデルは、ターゲットのスタイル、構造、決定ルールを内部化し、プロンプトごとに正しい完了を生成する方法を学習します。たとえば、ドキュメントをカスタムカテゴリに分類するには、プロンプト (ドキュメントテキスト) とラベル付き補完 (カテゴリラベル) を使用してモデルを微調整します。モデルが各プロンプトに適したラベルを高い確率で出力するまで、これらのペアをトレーニングします。
わずか数百の例で SFT を実行し、数百にスケールアップできます。SFT サンプルは高品質で、必要なモデル動作と直接一致させる必要があります。
SFT を使用するタイミング
目的の出力が明確に定義されたタスクがある場合は、SFT を使用します。「Given X input, the correct output is Y」と明示的に記述し、そのようなマッピングの例を収集できる場合は、教師あり微調整が適しています。SFT は、以下のシナリオで優れています。
-
構造化または複雑な分類タスク – 内部ドキュメントまたは契約を多くのカスタムカテゴリに分類します。SFT では、モデルはこれらの特定のカテゴリを単独でプロンプトを表示するよりもよく学習します。
-
既知の回答を含む質疑応答または変換タスク – モデルをファインチューニングして会社のナレッジベースからの質問に回答するか、各入力が正しい応答を持つ形式間でデータを変換します。
-
フォーマットとスタイルの一貫性 – 正しい形式またはトーンの例を微調整して、常に特定の形式またはトーンで応答するようにモデルをトレーニングします。例えば、特定のブランド音声を示すプロンプトとレスポンスのペアのトレーニングでは、そのスタイルで出力を生成するようにモデルに指示します。指示に従う動作は、多くの場合、最初は優れたアシスタント動作の厳選された例に基づいて SFT を通じて教えられます。
SFT は、適切な動作がどのようなものかを指定できる場合に、LLM に新しいスキルや動作を教える最も直接的な方法です。モデルの既存の言語理解を使用し、タスクに焦点を当てます。モデルで特定の操作を行い、例のデータセットを作成または作成できる場合は、SFT を使用します。
必要な動作を厳密に反映した高品質のプロンプトとレスポンスのペアをアセンブルできる場合は、SFT を使用します。スキーマ、関数、ツール呼び出しなどの明確なターゲットや決定論的な形式、および模倣が適切なトレーニングシグナルである構造化された回答を持つタスクに適合します。目標は動作シェーピングです。プロンプトをタスクとして扱い、指示に従い、トーンポリシーと拒否ポリシーを採用して、一貫したフォーマットを生成するようにモデルに教えることです。データ品質、一貫性、重複排除が raw ボリュームよりも重要となる、少なくとも数百のデモンストレーションを計画します。シンプルでコスト効率の高い更新を行うには、低ランク適応などのパラメータ効率の高い方法を使用して、ほとんどのバックボーンをそのままにして小さなアダプターをトレーニングします。
SFT を使用しない場合
ギャップが動作ではなく知識である場合は、SFT を使用しないでください。モデルに新しい事実、専門用語、最近のイベントを教えることはありません。このような場合は、取り出し拡張生成を使用して、推論で外部知識を取り込みます。品質は測定できますが、1 つの正解にラベルを付けることができない場合は、SFT は避けてください。検証可能な報酬または LLM-as-a-judge による強化ファインチューニングを使用して、それらの報酬を直接最適化します。ニーズやコンテンツが頻繁に変更される場合は、モデルを再トレーニングするのではなく、取得とツールの使用に頼ってください。