Skip to main content
このガイドでは、アプリケーションをインストルメントして、その実行内容を W&B Weave で詳細なトレースとして表示する方法を説明します。トレースは、入力、出力、および各操作の構造を Call として取得するため、LLM を活用したコードのデバッグ、評価、監視に役立ちます。 実行中のコードを Weave で詳細なトレースとして表示するには、Call を作成します。以下のセクションでは、そのための主な 3 つの方法を、手動での作業が少ない順に説明します。
  • LLM ライブラリ Call の自動トラッキング
  • weave.op によるカスタム関数のトラッキング
  • API を直接使用した手動での Call トラッキング
トレース対象をどの程度細かく制御したいかに応じて、適切な方法を選択してください。

LLM ライブラリ Call の自動トラッキング

Weave は、openai、anthropic、cohere、mistral、LangChain など、多くの一般的なライブラリやフレームワークと自動的に統合されます。LLM またはフレームワークのライブラリをインポートし、Weave プロジェクトを初期化するだけで、LLM やプラットフォームに対するすべての Call が自動的にトレースされ、project に記録されます。コードを追加で変更する必要はありません。サポートされるライブラリインテグレーションの一覧については、インテグレーションの概要を参照してください。
自動トラッキングの動作をより細かく制御するには、LLM Call の自動トラッキングを設定するを参照してください。

カスタム関数をトラッキングする

LLM アプリケーションには、前処理や後処理、プロンプトなど、トラッキングしたい追加のロジックが含まれることがよくあります。Weave が自動的にトレースする LLM Call に加えて、独自の関数も取得したい場合は、この方法を使用します。
Weave では、@weave.op デコレーターを使用して、これらの Call を手動でトラッキングできます。例:
クラスのメソッドをトラッキングすることもできます。

クラスおよびオブジェクトのメソッドをトラッキングする

スタンドアロンの関数だけでなく、クラスやオブジェクトのメソッドもトラッキングできます。クラス内のメソッドはどれでも、weave.op でデコレートするだけでトラッキングできます。

並列 (マルチスレッド) 関数の Call をトレースする

デフォルトでは、並列の Call はすべて Weave 上で個別のルート Call として表示されるため、トレースの階層構造を追いにくくなります。同じ親 Op の下に正しくネストさせるには、ThreadPoolExecutor を使用します。
次のコードサンプルは、ThreadPoolExecutor の使用例です。 1 つ目の関数 func は、x を受け取って x+1 を返すシンプルな Op です。2 つ目の関数 outer は、入力のリストを受け取る別の Op です。 outer の内部で ThreadPoolExecutor と exc.map(func, inputs) を使用しているため、func への各 Call は同じ親トレースのコンテキストを引き継ぎます。
Weights & Biases の UI では、1 つの親 Call の下に 5 つの子 Call がネストされて表示されます。増分の処理は並列で実行されますが、完全な階層構造を持つトレースを得られます。 outer の単一の親 Call と、その下にネストされた 5 つの子 Call を表示しているトレース UI。

Call の手動トラッキング

自動インテグレーションも weave.op デコレーターもワークフローに合わない場合は、API を直接使用して Call を手動で作成できます。この方法では定型コードが増えますが、Call の開始と終了のタイミングを完全に制御できます。
最終更新日 2026年9月30日