大規模言語モデル (LLM) のカスタマイズの概要
事前トレーニング済みの言語モデルを特定のタスクまたはドメインに合わせて調整するための手法がいくつかあります。 これには、プロンプト エンジニアリング、RAG (取得拡張生成)、ファインチューニングが含まれます。 これらの 3 つの手法は相互に排他的ではなく、逆に組み合わせて特定のユース ケースに適用できる補完的な方法です。 この記事では、これらの手法、実例的なユース ケース、考慮すべき事項について説明し、詳細を確認し、それぞれの作業を開始するためのリソースへのリンクを提供します。
プロンプト エンジニアリング
Definition
プロンプト エンジニアリングは、芸術と科学の両方の手法であり、生成 AI モデルのプロンプトの設計を行います。 このプロセスでは、コンテキスト内学習 (ゼロ ショットと少数のショット) を利用し、反復によって、応答の精度と関連性を向上させ、モデルのパフォーマンスを最適化します。
実例的なユース ケース
環境に配慮した企業のマーケティング マネージャーは、プロンプト エンジニアリングを使用して、ブランドのトーンとスタイルに合った説明を生成するようにモデルをガイドできます。 たとえば、「品質、効果を強調し、環境に優しい成分の使用を強調する、環境に優しいクリーニング商品の新しいラインアップの商品説明を記述する」などのプロンプトを入力に追加できます。 これは、モデルがブランドの価値とメッセージに合わせた説明を生成するのに役立ちます。
考慮事項
プロンプト エンジニアリングは、生成 AI モデルから目的の出力を生成するための開始点です。
明確な指示を作成する: 指示はプロンプトで一般的に使用され、モデルの動作をガイドします。 具体的にするとで、解釈の幅をできるだけ狭めます。 モデルが目的の結果を理解するのに役立つ例えと説明的な言語を使用します。
実験と反復: プロンプト エンジニアリングは、実験と反復を必要とする芸術です。 さまざまなタスクのプロンプトを作成して練習し、経験を積みます。 すべてのモデルは動作が異なる可能性があるため、それに応じてプロンプト エンジニアリング手法を適応することが重要です。
作業の開始
RAG (取得拡張生成)
Definition
RAG (取得拡張生成) は、外部データを大規模言語モデル プロンプトに統合して、関連する応答を生成する方法です。 この方法は、さまざまなトピックに基づいて非構造化テキストの大規模なコーパスを使用する場合に特に便利です。 これにより、組織のナレッジ ベース (KB) を回答を基にして、よりカスタマイズされた正確な応答を提供できます。
RAG は、組織のプライベート データに基づいて質問に回答する場合や、モデルがトレーニングされたパブリック データが古くなった場合にも便利です。 これにより、データ ランドスケープの変更に関係なく、常に最新で関連性の高い応答を生成できます。
実例的なユース ケース
ある会社の人事部で、従業員の健康保険関連の具体的な質問に答えるインテリジェントなアシスタントを提供することを検討しています。たとえば、「眼鏡はカバーされていますか?」といった質問です。RAG を使用して、保険プラン ポリシーに関連する広範で多数のドキュメントを取り込み、これらの特定の種類の質問への回答を可能にします。
考慮事項
RAG は、実際のデータを AI 出力の基礎とするのに役立ち、でっち上げの可能性を減らします。
RAG は、プライベートな独自データに基づいて質問に回答する必要がある場合に役立ちます。
RAG は、少し前の質問に回答したい場合に役立ちます (たとえば、モデル バージョンが最後にトレーニングされた期限より前)。
作業の開始
- Azure AI Studio での取得拡張生成 | Microsoft Learn
- Azure AI Search での取得拡張生成 (RAG)
- Azure Machine Learning プロンプト フローを使用した取得拡張生成 (プレビュー)
微調整
Definition
ファインチューニング、このコンテキスでは具体的には教師ありファインチューニングは、パフォーマンスの向上、モデルの新しいスキルの教育、待機時間の短縮を目的として、既存の大規模な言語モデルを提供済みのトレーニング セットに適応させる反復的なプロセスです。 このアプローチは、特にトピックの範囲が一般的に小さい場合に、モデルがそれらの特定のトピックについて学習し、一般化する必要がある場合に使用されます。
ファインチューニングには、新しいファインチューニングされた大規模言語モデルを作成するために、特殊な例ベースの形式で高品質のトレーニング データを使用する必要があります。 特定のトピックに焦点を当てることで、ファインチューニングにより、モデルは焦点の範囲内でより正確で関連性の高い応答を提供できます。
実例的なユース ケース
IT 部門は GPT-4o を使用して自然言語クエリを SQL に変換してきましたが、応答が常にスキーマに確実に基づいているとは限らず、コストが非常に高いことがわかりました。
何百もの要求と正しい応答で GPT-4o mini をファインチューニングし、ベース モデルよりも低いコストと待機時間で優れたパフォーマンスを発揮するモデルを生成します。
考慮事項
ファインチューニングは高度な機能です。これは、リリース日以降のナレッジやドメイン固有のナレッジで LLM を強化します。 このオプションを検討する前に、標準モデルのベースライン パフォーマンスを要件に照らして評価することから始めてください。
ファインチューニングしていない場合のパフォーマンスのベースラインを取得することは、ファインチューニングによってモデルのパフォーマンスが向上したかどうかを把握するために不可欠です。 不適切なデータを使用して微調整すると、基本モデルが悪化し、ベースラインがないと、回帰を検出するのが困難です。
ファインチューニングに適したユース ケースには、特定のカスタマイズされたスタイル、トーン、または形式でコンテンツを出力するようにモデルを操作するケースや、モデルを操作するために必要な情報が長すぎるか複雑すぎてプロンプト ウィンドウに収まらないシナリオなどがあります。
ファインチューニングのコスト:
ファインチューニングでは次の 2 つの側面でコストを削減できます。(1) タスクに応じて使用するトークンを減らす (2) より小さなモデルを使用する (たとえば、GPT-4o mini をファインチューニングして、特定のタスクで GPT-4o と同じ品質を実現できます)。
ファインチューニングでは、モデルをトレーニングするための初期コストが発生します。 また、デプロイ後にカスタム モデルをホストするための時間単位の追加コストも発生します。