これは対話型ノートブックです。ローカルで実行するか、以下のリンクを使用できます:
サードパーティシステムからのトレースのインポート
このノートブックでは、CSV ファイルから過去の会話トレースを W&B Weave にインポートする方法を紹介します。これにより、Weave でインストルメントされるアプリケーションの外部で生成されたデータを分析したり、モデル動作を比較したり、評価を実行したりできます。 Python または JavaScript のコードを Weave インテグレーションでインストルメントして GenAI アプリケーションのリアルタイムトレースを取得できない場合があります。こうしたトレースは、後で CSV または JSON 形式で入手できることがよくあります。 このノートブックでは、低レベルの Weave Python API を使用して CSV ファイルからデータを抽出して Weave にインポートし、分析および評価できるようにします。 このクックブックで想定するサンプルデータセットの構造は次のとおりです:conversation_id を、子の識別子として turn_index を使用します。
ご自身のデータセット、ファイルパス、および Weights & Biases project に合わせて、以下のセクションの変数を変更する必要があります。
環境を設定する
必要なパッケージをすべてインストールしてインポートします。wandb.login() でログインできるように、環境変数 WANDB_API_KEY を設定します (Colab ではシークレットとして登録してください) 。
Colab にアップロードするファイルの名前を name_of_file に、ログする先の Weights & Biases の project を name_of_wandb_project に設定します。
name_of_wandb_project を [TEAM_NAME]/[PROJECT_NAME] の形式で指定すると、トレースをログする先のチームも指定できます。weave.init() を呼び出して Weave クライアントを取得します。
データを読み込む
環境の準備ができたら、CSV データを読み込み、Weave が想定する親子構造に合わせて整形します。 データを pandas DataFrame に読み込み、conversation_id と turn_index で並べ替えて、親と子が正しい順序で並ぶようにします。
その結果、会話のターンが conversation_data 列に配列として格納された、2 列の pandas DataFrame が得られます。
トレースを Weave にログする
データを会話とターンに整形したら、次のステップでは、それらのレコードを親 Call と子 Call として Weave に書き込みます。 pandas データフレームを反復処理します。conversation_idごとに親 Call を作成します。- ターンの配列を反復処理して、
turn_index順に並べた子 Call を作成します。
- Weave の Call は Weave のトレースに相当します。この Call には親や子を関連付けることができます。
- Weave の Call には、フィードバックやメタデータなども関連付けることができます。この例では入力と出力のみを関連付けますが、データにこれらの項目が含まれていれば、インポート時に追加できます。
- Weave の Call はリアルタイムで追跡することを想定しているため、
createdとfinishedの状態を持ちます。今回は事後のインポートなので、オブジェクトを定義して相互に関連付けた後に、作成と終了を行います。 - Call の
op値は、同じ構成の Call を Weave が分類するために使用します。この例では、すべての親 Call はConversationタイプ、すべての子 Call はTurnタイプです。必要に応じて変更できます。 - Call は
inputsとoutputを持つことができます。inputsは作成時に定義し、outputは Call の終了時に定義します。
結果: Weave にログされたトレース
これで、CSV データが Weave にインポートされました。Weights & Biases UI で、定義したConversation および Turn オペレーションごとにまとめられた会話とそのターンを閲覧できます。
トレース:


オプション: トレースをエクスポートして評価を実行する
トレースが Weave に保存され、会話の内容を把握したら、別のプロセスにエクスポートして Weave Evaluations を実行できます。
結果
エクスポートしたデータセットが Weave にパブリッシュされ、評価の入力として使用する準備が整いました。