はじめに
開始するには、スクリプトの冒頭でweave.init() を呼び出すだけです。weave.init() の引数には、Traces を整理するのに役立つ Projects 名を指定します。
Tracing
LlamaIndex は、データと LLM を簡単に接続できることで知られています。シンプルな RAG アプリケーションには、埋め込みステップ、リトリーバル(検索)ステップ、そしてレスポンス合成ステップが必要です。複雑さが増すにつれて、開発とプロダクションの両方のフェーズで、個々のステップの Traces を中央データベースに保存することが重要になります。 これらの Traces は、アプリケーションのデバッグと改善に不可欠です。Weave は、プロンプトテンプレート、LLM 呼び出し、ツール、エージェントのステップなど、LlamaIndex ライブラリを通じて行われるすべての呼び出しを自動的に追跡します。Traces は Weave のウェブインターフェースで表示できます。 以下は、LlamaIndex の Starter Tutorial (OpenAI) に基づくシンプルな RAG パイプラインの例です:
ワンクリック・オブザーバビリティ(可観測性) 🔭
LlamaIndex は、プロダクション環境で原則に基づいた LLM アプリケーションを構築できるように、ワンクリック・オブザーバビリティ 🔭 を提供しています。 私たちのインテグレーションはこの LlamaIndex の機能を活用し、WeaveCallbackHandler() を自動的に llama_index.core.global_handler に設定します。したがって、LlamaIndex と Weave のユーザーとして必要なのは、Weave の Run を初期化する weave.init(<name-of-project>) を実行することだけです。
実験を容易にするための Model 作成
プロンプト、モデル設定、推論パラメータなど、複数のコンポーネントがある様々なユースケースにおいて、アプリケーション内の LLM を整理し評価することは困難です。weave.Model を使用すると、システムプロンプトや使用するモデルなどの実験の詳細をキャプチャして整理でき、異なるイテレーション間の比較が容易になります。
次の例は、weave/data フォルダにあるデータを使用して、WeaveModel 内で LlamaIndex クエリエンジンを構築する方法を示しています。
weave.Model を継承した SimpleRAGPipeline クラスは、この RAG パイプラインの重要なパラメータを整理します。predict メソッドを weave.op() でデコレートすることで、追跡が可能になります。
weave.Evaluation による評価の実施
Evaluations は、アプリケーションのパフォーマンスを測定するのに役立ちます。weave.Evaluation クラスを使用することで、特定のタスクやデータセットに対してモデルがどれだけ適切に機能するかをキャプチャでき、異なるモデルやアプリケーションのイテレーションを比較しやすくなります。次の例は、作成したモデルを評価する方法を示しています。
weave.Evaluation を使用した評価には、評価データセット、スコアラー関数、および weave.Model が必要です。これら 3 つの主要コンポーネントに関する注意点は以下の通りです。
- 評価サンプルの辞書のキーが、スコアラー関数の引数および
weave.Modelのpredictメソッドの引数と一致していることを確認してください。 weave.Modelには、predict、infer、またはforwardという名前のメソッドが必要です。追跡のためにこのメソッドをweave.op()でデコレートしてください。- スコアラー関数は
weave.op()でデコレートし、outputを名前付き引数として持つ必要があります。
Weave を LlamaIndex と統合することで、LLM アプリケーションの包括的なログ記録と監視が保証され、評価を使用したデバッグとパフォーマンスの最適化が容易になります。