これはインタラクティブなノートブックです。ローカルで実行することも、以下のリンクを使用することもできます。
前提条件
import し、W&B APIキーを取得し、Weaveプロジェクトを初期化してください。
1. Weave でプロンプトを作成し、改善を重ねる
2. データセットを取得する
base64 でエンコードされているため、前処理なしでそのまま LLM で使用できます。
3. NER パイプラインを構築する
- データセット内の PIL 画像を受け取り、VLM に渡せる画像の
base64エンコード済み文字列を返すencode_image関数 - 画像と system prompt を受け取り、system prompt に記述されたとおりにその画像から抽出した Entities を返す
extract_named_entities_from_image関数
named_entity_recognation という関数を作成します。これには次の処理を実装します。
- 画像データを NER パイプラインに渡す
- 結果を正しい形式の JSON で返す
@weave.op() decorator デコレータを使用します。
named_entity_recognation を実行するたびに、完全なトレース結果が Weave UI に表示されます。トレースを表示するには、Weave プロジェクトの トレース タブにアクセスします。
processing_results.json に保存します。結果は Weave UI でも確認できます。

4. Weave を使ってパイプラインを評価する
- プログラムによる Scorer
- LLM-as-a-judge Scorer
プログラムベースのスコアラー
check_for_missing_fields_programatically は、モデルの出力 (named_entity_recognition 関数の出力) を受け取り、結果内で欠けている、または空の keys を特定します。
このチェックは、モデルがいずれかのフィールドを取りこぼしたサンプルを特定するのに非常に役立ちます。
LLM-as-a-judge scorer
check_for_missing_fields_with_llm は、LLM (具体的にはOpenAIのgpt-4o) を使用してスコアリングを行います。eval_promptの内容で指定されているとおり、check_for_missing_fields_with_llmはBoolean値を出力します。すべてのフィールドが画像内の情報と一致し、フォーマットが正しければ、Scorerはtrueを返します。いずれかのフィールドが欠落している、空である、誤っている、または一致していない場合、結果はfalseとなり、scorerは問題を説明するメッセージも返します。
5. 評価を実行する
dataset を自動的に反復処理し、結果をまとめて Weave UI にログする評価 call を定義します。
次のコードは評価を開始し、NER パイプラインの各出力に 2 つの Scorers を適用します。結果は Weave UI の Evals タブで確認できます。
