LLM アプリケーションを評価するには、フィードバックを収集して分析するためのツールが必要です。W&B Weave は統合されたフィードバックシステムを備えており、ユーザーは UI から直接、または SDK を通じてプログラムから Call に対するフィードバックを提供できます。絵文字のリアクション、テキストコメント、構造化データなど、さまざまな種類のフィードバックがサポートされており、チームは次のことを行えます。
- パフォーマンス監視のための評価用データセットを構築する。
- LLM のコンテンツに関する問題を特定して解決する。
- ファインチューニングのような高度なタスク向けの例を収集する。
このガイドは、Weave で LLM アプリケーションを扱う開発者やレビュアーを対象としています。UI と SDK の両方で Weave のフィードバック機能を使用する方法、フィードバックをクエリして管理する方法、さらに詳細な評価のために人によるアノテーションを使用する方法について説明します。
以下のセクションでは、Call details パネルまたはフィードバック アイコンを使って、Weave UI でフィードバックを送信する方法を説明します。
- Weave プロジェクトのサイドバーで、Traces にアクセスします。
- フィードバックを追加する Call の行を見つけます。
- リンクされた Trace 名をクリックして、トレース ツリーと Call details パネルを開きます。
- Call details のタブバーで、Feedback を選択します。
- フィードバックを追加、表示、または削除します。
- Call details のフィードバックビューの右上にあるアイコンを使って、フィードバックを追加または表示します。
- Call details のフィードバック表でフィードバックを表示または削除します。 該当するフィードバック行の一番右の列にあるごみ箱アイコンをクリックして、フィードバックを削除します。
Traces 表と各 Call details パネルにあるアイコンを使って、リアクションの追加や削除、メモの追加を行えます。
- Traces 表: Traces 表の該当する行の Feedback 列にあります。
- Call details パネル: 各 Call details パネルの右上にあります。
リアクションを追加するには:
- 絵文字アイコンをクリックします。
- サムズアップ、サムズダウンを追加するか、さらに絵文字を表示するには + アイコンをクリックします。
リアクションを削除するには:
- 削除したい絵文字リアクションにカーソルを合わせます。
- そのリアクションをクリックして削除します。
Call details パネルの Feedback 列からフィードバックを削除することもできます。
コメントを追加するには:
- コメントの吹き出しアイコンをクリックします。
- テキストボックスにメモを入力します。フィードバックメモの最大文字数は 1024 文字です。
- メモを保存するには、Enter キーを押します。メモは追加で入力できます。
フィードバックメモの最大文字数は 1024 文字です。メモがこの上限を超えると、Weave は作成しません。
フィードバック収集を自動化したい場合や、評価パイプラインに統合したい場合は、UI で手動でフィードバックを入力する代わりに SDK を使用します。
フィードバックに関する SDK の使用例は、UI の Call details パネルにある Use タブで確認できます。
Weave Python SDK を使用すると、call に対してプログラムから 追加、削除、およびフィードバックのクエリを実行できます。TypeScript SDK はフィードバック機能をサポートしていません。
Weave プロジェクトのフィードバックをクエリする
SDK を使用して、Weave プロジェクトのフィードバックをクエリできます。SDK では、次のフィードバック クエリ操作をサポートしています。
client.get_feedback(): project 内のすべてのフィードバックを返します。
client.get_feedback("[FEEDBACK-UUID]"): [FEEDBACK-UUID] で指定した特定のフィードバック オブジェクトをコレクションとして返します。
client.get_feedback(reaction="[REACTION-TYPE]"): 特定のリアクション タイプに対応するすべてのフィードバック オブジェクトを返します。
また、client.get_feedback() では各フィードバック オブジェクトについて次の情報も取得できます。
id: フィードバック オブジェクトの ID。
created_at: フィードバック オブジェクトの作成時刻。
feedback_type: フィードバックのタイプ (reaction、note、custom) 。
payload: フィードバックのペイロード。
Call の UUID を使って、Call にフィードバックを追加できます。UUID を使って特定の Call を取得するには、Call の実行中または実行後に UUID を取得してください。SDK では、Call にフィードバックを追加するために次の操作をサポートしています。
call.feedback.add_reaction("[REACTION-TYPE]"): 👍 など、サポートされている [REACTION-TYPE] の値 (絵文字) を 1 つ追加します。
call.feedback.add_note("[NOTE]"): ノートを追加します。
call.feedback.add("[LABEL]", [OBJECT]): [LABEL] で指定したカスタム フィードバック [OBJECT] を追加します。
フィードバックノートの最大文字数は 1024 文字です。この上限を超えるノートは Weave では作成されません。
Call の直後にフィードバックを追加しなければならない場合は、Call の実行中または実行後に、プログラムで Call UUID を取得できます。
Call 実行中
Call 実行中に UUID を取得するには、現在の Call を取得し、その ID を返します。
Call 実行後
また、call() メソッドを使用すると、オペレーションを実行し、Call 実行後に ID を取得できます。
UUID を指定すると、特定の Call からフィードバックを削除できます。
人によるアノテーションを使用すると、Call に対する、人がレビューした構造化された評価を取得できるため、レビュアーは独自の基準に基づいてモデルの出力をスコアできます。
人によるアノテーションは Weave UI でサポートされています。この機能を使用すると、フィードバックとして追加する人手入力のデータ用に、トレースにカスタムフィールドを作成できます。人によるアノテーションを行うには、まず UI または API を使用して Human Annotation スコアラーを作成する必要があります。その後、UI でそのスコアラーを使用してアノテーションを作成 したり、API を使用してアノテーションスコアラーを変更 したりできます。
UI で Human Annotation スコアラーを作成する
UI で Human Annotation スコアラーを作成するには、次の手順に従います。
- プロジェクトのサイドバーで、Assets にアクセスします。
- Assets のナビゲーションパネルで、Scorers をクリックします。
- Scorers パネルのヘッダーで、New scorer をクリックします。
- Create Scorer モーダルダイアログで、次の項目を設定します。
Scorer type を Human annotation に設定
Name
Description
Type。これにより、boolean や integer など、収集するフィードバックのタイプを決定します。
- Create scorer をクリックします。これで、作成したスコアラーを使用してアノテーションを作成できます。
次の例では、人間のアノテーターが、LLM が読み込んだドキュメントのタイプを選択しています。スコア設定の Type は、指定可能なドキュメントタイプを含む enum です。
UI で Human Annotation スコアラーを使用する
Human Annotation スコアラーを作成すると、Traces ページで使用できるようになります。
スコアラーを使用するには、次の手順を実行します。
-
プロジェクトのサイドバーで、Traces にアクセスします。
-
Human Annotation を追加する対象の Call の行を見つけます。
-
リンクされた Trace 名をクリックして、トレース ツリーと Call details パネルを開きます。
-
Call details タブバーの右上で、Show feedback ボタンをクリックします。
使用可能な Human Annotation スコアラーが、Annotate パネルに表示されます。
-
アノテーションを追加します。
-
Save をクリックします。
-
Call details パネルのタブバーで、Feedback タブをクリックして Feedback 表を表示します。新しいアノテーションが表に表示されます。メインの Traces 表の Annotations 列でもアノテーションを確認できます。
最新の情報を表示するには、Traces 表を更新してください。
API を使用して Human Annotation スコアラーを作成する
API 経由で Human Annotation スコアラーを作成することもできます。各スコアラーはそれぞれ独立したオブジェクトで、個別に作成・更新します。プログラムから Human Annotation スコアラーを作成するには、次の手順を実行します。
weave.flow.annotation_spec から AnnotationSpec クラスをインポートします。
weave の publish method を使用してスコアラーを作成します。
次の例では、2 つのスコアラーを作成します。1 つ目のスコアラー Temperature は、LLM call の知覚温度をスコアリングします。2 つ目のスコアラー Tone は、LLM response のトーンをスコアリングします。各スコアラーは、対応するオブジェクト ID (temperature-scorer と tone-scorer) を指定して save を使用します。
API を使用して Human Annotation スコアラーを更新する
API を使用して Human Annotation スコアラーを作成するの続きとして、次の例では publish 時に元のオブジェクト ID (temperature-scorer) を使用し、Temperature スコアラーの更新版を作成します。これにより、すべてのバージョンの履歴を持つ更新済みオブジェクトが作成されます。
Human Annotation スコアラーのオブジェクト履歴は、Human annotations 配下の Scorers タブで確認できます。
API を使用して Human Annotation スコアラーを利用する
feedback API では、特別な形式の名前と annotation_ref フィールドを指定することで、Human Annotation スコアラーを使用できます。annotation_spec_ref は、UI で該当するタブを選択して取得するか、AnnotationSpec の作成時に取得できます。