はじめに
weave.init() を呼び出します。これにより Weave が初期化され、以降の LlamaIndex の Call のトレース収集が開始されます。weave.init() の引数には、トレースの整理に役立つプロジェクト名を指定します。
トレース
ワンクリックでの可観測性
WeaveCallbackHandler() を llama_index.core.global_handler に自動で設定します。そのため、LlamaIndex と Weave を使用するユーザーが行う必要があるのは、weave.init([NAME_OF_PROJECT]) で Weave の run を初期化することだけです。
より簡単に実験できるように Model を作成する
weave.Model を使用すると、システムプロンプトや使用するモデルといった実験の詳細を取得して整理できるため、異なるイテレーションを比較しやすくなります。
次の例では、weave/data フォルダー内のデータを使用して、LlamaIndex のクエリエンジンを WeaveModel として構築する方法を示します。
weave.Model を継承した SimpleRAGPipeline クラスは、この RAG パイプラインの重要なパラメーターをまとめています。query メソッドを weave.op() でデコレートすると、トレースが有効になります。この構造にしておくことで、Weave で RAG パイプラインのさまざまな設定をバージョン管理し、比較し、評価できるようになります。
weave.Evaluation を使った評価
weave.Evaluation クラスを使うことで、特定のタスクやデータセットに対してモデルがどの程度うまく機能するかを把握できるため、異なるモデルやアプリケーションの各イテレーションを比較しやすくなります。次の例では、前のセクションで作成したモデルを評価する方法を示します。
weave.Evaluation を使って評価するには、評価用データセット、scorer 関数、weave.Model が必要です。これらの要件は、次の3つの主要コンポーネントに適用されます。
- 評価サンプルの dict のキーは、scorer 関数の引数および
weave.Modelのpredictmethod の引数と一致している必要があります。 weave.Modelには、predict、infer、またはforwardという名前の method が必要です。トレースのため、この method はweave.op()でデコレートする必要があります。- scorer 関数は
weave.op()でデコレートされており、outputという名前付き引数を持つ必要があります。
Weave を LlamaIndex とインテグレーションすることで、LLM アプリケーションの包括的なログすることとモニタリングが可能になり、評価を通じてデバッグとパフォーマンスの最適化を効率化できます。