はじめに
weave.init() を呼び出します。weave.init() の引数には、トレースを整理するためのプロジェクト名を指定します。
トレーシング
ワンクリックでのオブザーバビリティ 🔭
WeaveCallbackHandler() を llama_index.core.global_handler に設定します。そのため、LlamaIndex と Weave を利用するユーザーは Weave の run を初期化するだけで済みます。具体的には weave.init(<name-of-project>) を実行してください。
実験を容易にするために Model を作成する
weave.Model を使用すると、システムプロンプトや使用するモデルなどの実験に関する詳細を記録・整理できるため、異なるイテレーションの比較が容易になります。
次の例では、weave/data フォルダ内のデータを使用して、WeaveModel 内に LlamaIndex のクエリエンジンを構築する方法を示します。
SimpleRAGPipeline クラスは weave.Model のサブクラスとして定義されており、この RAG パイプラインの重要なパラメータを整理しています。query メソッドに weave.op() をデコレートすることで、トレースできるようになります。
weave.Evaluation で評価を行う
weave.Evaluation クラスを使用すると、特定のタスクやデータセットに対してモデルがどの程度良く機能しているかを記録できるため、異なるモデルやアプリケーションの反復バージョンを比較しやすくなります。次の例では、作成したモデルをどのように評価するかを示します。
weave.Evaluation を使って評価するには、評価用データセット、scorer 関数、および weave.Model が必要です。これら 3 つの主要コンポーネントについて、次のようないくつかの注意点があります。
- 評価サンプルの dict のキーが、scorer 関数および
weave.Modelのpredictメソッドの引数と一致していることを確認してください。 weave.Modelには、predict、infer、またはforwardという名前のメソッドが必要です。このメソッドをトレースするために、weave.op()でデコレートしてください。- scorer 関数は
weave.op()でデコレートし、名前付き引数としてoutputを受け取る必要があります。
Weave を LlamaIndex と統合することで、LLM アプリケーションの包括的なロギングとモニタリングを行うことができ、評価を用いたデバッグやパフォーマンス最適化を容易に行えます。