LlamaIndex
WeaveはLlamaIndex Pythonライブラリを通じて行われるすべての呼び出しの追跡とログ記録を簡素化するように設計されています。 LLMを扱う際、デバッグは避けられません。モデル呼び出しが失敗したり、出力の形式が間違っていたり、ネストされたモデル呼び出しが混乱を招いたりする場合、問題を特定することは難しい場合があります。LlamaIndexアプリケーションは多くの場合、複数のステップとLLM呼び出しで構成されており、チェーンやエージェントの内部動作を理解することが重要です。 Weaveは、LlamaIndexアプリケーションのトレースを自動的にキャプチャすることでこのプロセスを簡素化します。これにより、アプリケーションのパフォーマンスを監視および分析し、LLMワークフローのデバッグと最適化が容易になります。Weaveは評価ワークフローにも役立ちます。はじめに
開始するには、スクリプトの先頭で単にweave.init()を呼び出すだけです。weave.init()の引数は、トレースを整理するのに役立つプロジェクト名です。
トレーシング
LlamaIndexは、データとLLMを簡単に接続できることで知られています。単純なRAGアプリケーションには、埋め込みステップ、検索ステップ、応答合成ステップが必要です。複雑さが増すにつれて、開発中も本番環境でも個々のステップのトレースを中央データベースに保存することが重要になります。 これらのトレースは、アプリケーションのデバッグと改善に不可欠です。Weaveは、プロンプトテンプレート、LLM呼び出し、ツール、エージェントステップなど、LlamaIndexライブラリを通じて行われるすべての呼び出しを自動的に追跡します。Weaveウェブインターフェイスでトレースを表示できます。 以下はLlamaIndexのStarter Tutorial (OpenAI)からの単純なRAGパイプラインの例です:
ワンクリック観測性 🔭
LlamaIndexはone-click observability 🔭を提供し、本番環境で原則に基づいたLLMアプリケーションを構築できるようにします。 私たちの統合はLlamaIndexのこの機能を活用し、自動的にWeaveCallbackHandler()をllama_index.core.global_handlerに設定します。したがって、LlamaIndexとWeaveのユーザーとして、あなたがする必要があるのはWeaveランを初期化することだけです - weave.init(<name-of-project>)
作成するModelより簡単な実験のために
プロンプト、モデル構成、推論パラメータなど、複数のコンポーネントを持つさまざまなユースケースのアプリケーションでLLMを整理および評価することは難しいです。weave.Modelを使用すると、システムプロンプトや使用するモデルなどの実験の詳細をキャプチャして整理し、異なるイテレーションを比較しやすくなります。
次の例は、WeaveModelでLlamaIndexクエリエンジンを構築する方法を示しています。weave/data folder:
SimpleRAGPipelineクラスはweave.Modelからサブクラス化され、このRAGパイプラインの重要なパラメータを整理します。queryメソッドをweave.op() トレースを可能にします。
評価の実施 weave.Evaluation
評価はアプリケーションのパフォーマンスを測定するのに役立ちます。weave.Evaluation クラスを使用することで、モデルが特定のタスクやデータセットでどれだけうまく機能するかを把握でき、異なるモデルやアプリケーションの反復を比較しやすくなります。以下の例では、作成したモデルを評価する方法を示しています:
weave.Evaluation を使用した評価には、評価データセット、スコアラー関数、および weave.Model が必要です。3つの主要コンポーネントについていくつかの注意点があります:
- 評価サンプル辞書のキーがスコアラー関数の引数および
weave.Modelのpredictメソッドの引数と一致することを確認してください。 weave.Modelにはpredictまたはinferまたはforwardという名前のメソッドが必要です。このメソッドにはweave.op()でトレースのための装飾をしてください。- スコアラー関数は
weave.op()で装飾され、outputを名前付き引数として持つ必要があります。
WeaveとLlamaIndexを統合することで、LLMアプリケーションの包括的なロギングとモニタリングを確保し、評価を使用したデバッグとパフォーマンス最適化を容易にすることができます。