LLMの一般的なユースケースについて
- チャットボット、構造化データ抽出、要約、チャットツーパーチェスなどが一般的
- 複雑なユースケースでは、LLMだけでなく、従来の機械学習システムや非機械学習ソフトウェアツールを組み合わせて使用することがある
LLMを使用する際の課題について
- 幻覚、不正確または不適切な応答、コールの増殖、コスト、データセキュリティの問題、差別化の難しさなどがある
- プロプライエタリデータを使用する場合、LLMの応答に誤ってプロプライエタリ情報が含まれてしまう可能性がある
- LLMへのアクセスはサードパーティプロバイダー経由で行われることが多いため、APIの変更や新しいモデルの追加、新しいセーフガードの導入などにより、モデルの動作が変わる可能性がある
LLM Observabilityとは
- アプリケーション、プロンプト、レスポンスのすべてのレイヤーに完全な可視性を提供すること
LLM ObservabilityとML Observabilityの違い
- LLMの展開モデルは従来のMLとは大きく異なり、サードパーティプロバイダーを使用するため、モデルの内部についての可視性が低い
- ランキングではなく生成を評価するため、評価方法が根本的に異なる
- ベクターストアを使用する場合、最適な検索を妨げるユニークな課題がある
- LlamaIndexやLangChainなどのエージェントワークフローやオーケストレーションフレームワークには、異なるObservabilityアプローチが必要
LLM Observabilityの5つの柱
- LLM評価
- 応答がプロンプトにどの程度よく答えているかを測定する
- トレースとスパン
- 複雑なワークフローにおいて、問題の原因となっているスパンやトレースを特定する
- プロンプトエンジニアリング
- アプリケーションのパフォーマンスを向上させる最も安価で高速かつ高レバレッジな方法
- RAG(検索補強生成とも呼ばれる)
- より関連性の高い情報を取り込むことでパフォーマンスを向上させる方法
- ファインチューニング
- 正確な使用条件により適合した新しいモデルを生成する
アプリケーションをObservability用にセットアップする方法
- ユーザーフィードバックを収集できる場合は、フィードバックと応答を将来の分析のために保存する
- 複数のプロンプトテンプレートがある場合は、それらの間で比較する
- 検索補強生成(RAG)を使用する場合は、ナレッジベースにギャップがないか評価する
- チェーンとエージェントについては、アプリケーションが中断する場所を特定するためにスパンとトレースをログに記録する
- ファインチューニングを行う場合は、ファインチューニングに使用できるサンプルデータを見つけてエクスポートする
まとめ
- 大規模言語モデルは、ユースケースと関心の両方で爆発的な増加を見せている
- 抽象化のために実装は比較的簡単だが、システムの複雑さのために、システムのすべての要素がどのように機能しているかを理解することが不可欠である
- 信頼性の高いLLMアプリケーションを実行するには、LLM Observabilityが必要である