Difyのアノテーション機能を解説 ─ AIの回答を「育てる」継続改善の仕組み
BLOG / 実践ガイド

Difyのアノテーション機能を解説 ─ AIの回答を「育てる」継続改善の仕組み

By Data Insight

30秒でわかるこの記事のポイント

  • アノテーション機能で「正解データ」を蓄積し、ハルシネーション(もっともらしい嘘)を防ぐ仕組みがある
  • Good/Bad評価とログ分析で「改善すべき場所」を特定し、継続的な品質向上サイクルを回せる
  • プロンプトIDEとバージョン管理で、プロンプト修正の効果検証とロールバックが可能
  • RAGのチャンク管理・キーワード追加・検索テストで、ナレッジベースの精度を継続的に向上できる

前回の記事では、Difyで市民開発を進めるための考え方と実践ステップを解説しました。

本番環境でDifyアプリを運用し始めると、こんな声が聞こえてきませんか?

「AIが間違った回答をしていて、お客様からクレームが来た」「先月は正しく答えていた質問に、今月は変な回答をするようになった」「マニュアルを更新したのに、AIはまだ古い情報で答えている」

AIアプリは、作って終わりではありません。むしろ、本番稼働してからが本当の始まりです。

この記事では、Difyのアノテーション機能を中心に、AIの回答品質を継続的に改善するための仕組みを解説します。

Data Insightでは、AIを「完成品」として扱うのではなく、人間と共に学び、成長していくパートナーとして位置づけています。アノテーションは、そのパートナーシップを深めていくための重要な機能です。


§ 1. なぜ継続的改善が必要なのか ─ 「作って終わり」の危険

§ AIは「育てる」もの ─ 完璧は最初から存在しない

AIアプリを導入した企業の多くが、ある共通の誤解からスタートします。

「最先端のAIを使えば、すぐに完璧な回答ができるはず」

しかし現実は異なります。どんなに優秀なGPT-5やClaude 4.5を使っても、御社の業務に完璧に対応できるわけではありません。なぜなら、LLMは御社固有の文脈や暗黙知を知らないからです。

§ ハルシネーション(もっともらしい嘘)のリスク

AIが「自信満々に間違った回答をする」現象をハルシネーションと呼びます。

たとえば、こんなケースです。

  • 存在しない社内規定を「ある」と断言する
  • 製品の価格を間違えて伝える
  • 退職した担当者を「問い合わせ先」として案内する

ハルシネーションは、単なる「間違い」以上のリスクを持っています。AIが自信を持って回答するため、受け取った側も疑わずに信じてしまいやすいのです。

顧客対応でこれが起これば、企業の信頼に直撃します。

§ 社内データの変化 ─ AIの知識が「古くなる」問題

もう一つの課題は、社内のデータが常に変化することです。

  • マニュアルが更新される
  • 組織構造が変わる
  • 製品ラインナップが増減する
  • 規程や手続きが改訂される

AIに読み込ませたデータが古くなれば、当然、回答の品質も下がります。しかし、多くの企業ではデータの更新が後回しにされ、「AIの回答がおかしい」という声だけが現場から上がってきます。

§ 「改善サイクル」を仕組みとして持つ

これらの課題に対処するには、改善を「仕組み化」することが不可欠です。

  • 問題のある回答を検出する仕組み
  • 正しい回答を蓄積する仕組み
  • 変更の効果を検証する仕組み

Difyには、これらの仕組みが標準機能として備わっています。次のセクションから、具体的な機能を見ていきましょう。


§ 2. アノテーション機能の仕組み ─ 「正解」を蓄積する

§ アノテーションとは何か

Difyのアノテーション機能は、特定の質問に対して「理想的な回答」を事前に定義する機能です。

通常、ユーザーの質問はLLMに送られ、その場で回答が生成されます。しかしアノテーションを設定しておくと、LLMの生成をバイパスして、定義済みの回答を直接返すことができます。

これにより、以下のメリットが得られます。

  • 回答の一貫性: 同じ質問には常に同じ(正しい)回答
  • ハルシネーション防止: LLMが「創作」する余地をなくす
  • 応答速度の向上: LLM呼び出しをスキップするため高速
  • コスト削減: API呼び出し回数を減らせる

§ 仕組みの詳細 ─ 類似度マッチング

アノテーション機能は、以下のステップで動作します。

ステップ1: ベクトル化
ユーザーの質問を、テキスト埋め込みモデル(Embedding Model)でベクトル(数値の配列)に変換します。

ステップ2: 類似度比較
変換されたベクトルと、登録済みアノテーションの質問ベクトルを比較し、類似度スコアを算出します。

ステップ3: 閾値判定
類似度が設定した閾値(たとえば0.9)を超えた場合、そのアノテーションの回答を返します。超えなければ、通常どおりLLMが回答を生成します。

ユーザーの質問
    ↓
[ベクトル化]
    ↓
[登録済みアノテーションと類似度比較]
    ↓
閾値を超えた? → Yes → アノテーション回答を返す
    ↓ No
[LLMが回答を生成]

§ 類似度閾値の調整 ─ 精度とカバレッジのバランス

閾値の設定は、精度とカバレッジのトレードオフです。

閾値設定 精度 カバレッジ 特徴
高い(0.95以上) 高い 低い ほぼ完全一致のみ。誤マッチは少ないが、表現の揺れに対応しにくい
中程度(0.85-0.95) 中程度 中程度 バランス型。多くのケースで推奨
低い(0.85未満) 低い 高い 表現の揺れに対応しやすいが、意図しないマッチが発生する可能性

運用開始時は中程度の閾値から始め、実際のマッチング状況を見ながら調整することをお勧めします。

§ ゴールデンデータセットとしての価値

アノテーションで蓄積した「質問と正解回答のペア」は、ゴールデンデータセットとして将来的な活用が期待できます。

  • ファインチューニングの素材: 自社専用モデルを作る際の学習データ
  • RAG精度評価の基準: ナレッジベースの検索精度を測定する基準データ
  • 品質監視の指標: 「この質問にはこう答えるべき」という品質基準

アノテーションは単なる「一時的な修正」ではなく、AIを育てるための資産として蓄積されていきます。


§ 3. アノテーションの作成方法

Difyでアノテーションを作成するには、主に2つの方法があります。

§ 方法1: ログから修正 ─ 実際の回答を改善する

最も実践的な方法は、実際のログから問題のある回答を特定し、修正することです。

手順:

  1. Difyの管理画面で「ログ」セクションを開く
  2. 問題のある会話を特定する
  3. 該当の回答を選択し、「アノテーションとして保存」をクリック
  4. 正しい回答を入力して保存

この方法のメリットは、実際にユーザーが行った質問に対してアノテーションを作成できることです。理論的に「こういう質問があるかも」と想像するより、はるかに実用的です。

§ 方法2: 一括インポート ─ 既存のQ&Aを活用する

すでに社内にFAQデータやQ&A集がある場合は、CSVファイルで一括インポートできます。

CSVフォーマット例:

question,answer
"御社の営業時間は?","平日9:00-18:00、土日祝日は休業です。"
"返品ポリシーを教えてください","商品到着後7日以内であれば、未使用品に限り返品を承ります。"
"担当者の連絡先は?","カスタマーサポート(support@example.com)までお問い合わせください。"

手順:

  1. アノテーション管理画面で「インポート」を選択
  2. CSVファイルをアップロード
  3. マッピングを確認して実行

§ アノテーションが特に有効な場面

以下のような場面では、積極的にアノテーションを活用することをお勧めします。

1. 企業ポリシーに関する回答

  • 返品・返金ポリシー
  • 個人情報の取り扱い
  • 免責事項

2. 正確性が求められる情報

  • 製品の価格・仕様
  • サービスの利用条件
  • 法的な注意事項

3. 一貫性が重要な回答

  • ブランドメッセージ
  • 定型の挨拶・締めくくり
  • 頻出FAQ

§ 4. フィードバック収集とログ分析

アノテーションを「作る」だけでなく、どこを改善すべきか「発見する」仕組みも重要です。Difyには、そのためのフィードバック収集とログ分析機能が備わっています。

§ Good/Bad評価 ─ ユーザーの声を収集する

Difyのチャットアプリには、回答に対する**thumbs up(Good)/ thumbs down(Bad)**の評価ボタンを表示できます。

設定方法:
アプリの設定で「ユーザーフィードバック」を有効にすると、各回答の下に評価ボタンが表示されます。

分析の活用:

  • Good率が低い質問パターンを特定
  • Bad評価が集中する時間帯・ユーザー層を分析
  • 改善前後のGood率を比較して効果測定

§ コメント収集 ─ 「なぜ不満だったか」を記述で収集

評価ボタンだけでなく、コメント入力欄を設けることで、より詳細なフィードバックを収集できます。

「なぜBadを押したのか」が分かれば、改善の方向性が明確になります。たとえば、以下のようなコメントです。

  • 「情報が古い」→ ナレッジベースの更新が必要
  • 「質問の意図を取り違えている」→ プロンプトの改善が必要
  • 「回答が長すぎて分かりにくい」→ 出力形式の調整が必要

§ ログコンソールでの分析

Difyのログコンソールでは、以下のような分析が可能です。

1. 会話の全体像を把握

  • どのような質問が多いか
  • 平均的な会話のターン数
  • 離脱が多いポイント

2. 失敗したやり取りの特定

  • Bad評価がついた会話
  • エラーが発生した会話
  • 長時間かかった会話

3. 傾向分析

  • 時間帯別の利用状況
  • 質問カテゴリの分布
  • 改善施策後の変化

§ 内部メモ(注釈)の活用

ログの各会話には、**内部メモ(注釈)**を残すことができます。

これは、運用チーム内での情報共有に役立ちます。たとえば、以下のような使い方です。

  • 「この質問パターンは要アノテーション登録」
  • 「RAGで引っ張ってきた情報が古い。ソース確認要」
  • 「プロンプト修正後に再検証する」

メモを残しておくことで、チームでの改善議論がスムーズになります。


§ 5. プロンプトIDEによるA/Bテスト

プロンプト(AIへの指示文)の改善は、AIアプリの品質向上に直結します。しかし、「良かれと思って変更したら、別の部分が悪化した」という事態は避けたいものです。

DifyのプロンプトIDEは、そのような問題を防ぐためのテスト環境を提供します。

§ プロンプトIDEの概要

プロンプトIDEでは、以下のことができます。

  • 複数のモデルを同時に比較: GPT-5、Claude 4.5、Gemini 3などを並べて回答を比較
  • 同じ質問で繰り返しテスト: 入力を固定して、プロンプト変更の効果だけを測定
  • パラメータの調整: Temperature、Max Tokensなどのパラメータを変えて実験

§ リグレッションテスト ─ 「前より悪くなっていないか」の確認

プロンプトを修正する際、最も重要なのはリグレッション(退行)の防止です。

あるケースを改善したつもりが、別のケースで品質が低下していた……という事態を防ぐため、以下の手順を推奨します。

1. テストケースを用意する
改善対象のケースだけでなく、「今うまく動いているケース」も含めてテストセットを作成します。

2. 変更前の結果を記録する
現在のプロンプトで各テストケースを実行し、結果を保存します。

3. 変更後に全ケースを再テスト
プロンプト修正後、全テストケースを実行し、結果を比較します。

4. 悪化がないことを確認してから公開
改善対象が良くなり、かつ他のケースが悪化していないことを確認してから本番反映します。

§ バージョン管理 ─ ドラフト→テスト→公開のサイクル

Difyでは、プロンプトのバージョン管理が可能です。

ドラフト(Draft)
作業中のバージョン。本番には影響しません。

公開(Published)
本番で使用されているバージョン。

変更履歴
過去のバージョンが保存され、いつでも確認・ロールバックが可能です。

このサイクルにより、安全に実験し、問題があれば即座に戻せる運用が実現します。

[ドラフト作成] → [テスト実行] → [問題なし?]
                                    ↓ Yes
                               [公開(本番反映)]
                                    ↓ No(問題発生)
                               [前バージョンにロールバック]

§ 6. RAGのメンテナンスサイクル

RAGの基本で解説したように、RAG(検索拡張生成)はAIに社内データを「知識」として与える仕組みです。しかし、一度設定すれば終わりではありません。

RAGの精度を維持・向上させるには、継続的なメンテナンスが必要です。

§ チャンク管理 ─ 分割されたデータを確認・編集する

ナレッジベースにアップロードしたドキュメントは、自動的に「チャンク」に分割されます。このチャンクの品質が、検索精度を大きく左右します。

Difyで可能な操作:

操作 説明
確認 各チャンクの内容を表示
編集 チャンクの内容を手動で修正
削除 不要なチャンクを削除
無効化 一時的に検索対象から除外

たとえば、以下のような問題を発見したら、手動で修正します。

  • 意味のある文が途中で切れている
  • 関係ない情報が1つのチャンクに混在している
  • 重要な情報が欠落している

§ キーワード追加 ─ 検索ヒット率を向上させる

Difyでは、各チャンクにキーワードを手動で追加できます。

これにより、ベクトル検索だけでは拾えない「表現の揺れ」に対応できます。

例:
チャンク内容: 「当社の就業時間は9時から18時です」
追加キーワード: 「営業時間」「勤務時間」「働く時間」「始業」「終業」

ユーザーが「営業時間」と質問しても、「就業時間」という表現のチャンクがヒットするようになります。

§ 検索テスト ─ シミュレーションで精度を確認

Difyには、検索テスト機能があります。実際の質問を入力し、どのチャンクがヒットするか、スコアはいくつかをシミュレーションできます。

確認ポイント:

  • 期待したチャンクがヒットしているか
  • スコアは十分に高いか(他のチャンクと混同しないか)
  • 不要なチャンクがヒットしていないか

この機能を使って、改善前後の検索精度を比較することをお勧めします。

§ 親子分割の最適化 ─ 検索精度を高める工夫

Difyの親子分割(Parent-Child Chunking)では、子チャンクを「ユーザーがしそうな質問」に書き換えることで検索率を向上できます。

例:
親チャンク: 長い製品説明文
子チャンク(最適化前): 製品説明の一部
子チャンク(最適化後): 「この製品の特徴は?」「価格はいくら?」「サイズは?」

子チャンクを質問形式にすることで、ユーザーの質問とのマッチング精度が向上します。


§ 7. 事例 ─ AIの回答品質を継続的に改善する企業のアプローチ

ここでは、継続改善サイクルを実践している企業のアプローチを紹介します。

§ 事例1: 社内ナレッジベースの改善サイクル

課題:
社内問い合わせ対応のAIチャットボットを導入したが、「回答が的外れ」という声が多かった。

取り組み:

Phase 1: 問題の可視化
Good/Bad評価を有効化し、Bad評価がついた会話を週次で分析。「回答品質が低いエリア」を特定した。

Phase 2: アノテーションによる改善
Bad評価が多い質問パターンに対して、アノテーションで「正解」を定義。特に人事規定や経費精算に関する質問でハルシネーションが多かったため、これらを優先的に対応した。

Phase 3: RAGの見直し
検索テスト機能で分析したところ、古いマニュアルのチャンクが優先的にヒットしていることが判明。最新マニュアルのチャンクにキーワードを追加し、検索優先度を調整した。

成果:
Bad評価率が導入初期の35%から、3ヶ月後には12%まで低下。

§ 事例2: カスタマーサポートFAQの自動解決率向上

課題:
顧客向けFAQチャットボットを導入したが、自動解決率が低く、有人対応へのエスカレーションが多かった。

取り組み:

Phase 1: エスカレーション分析
有人対応にエスカレーションされた質問を分析。「AIが回答できなかった質問」のパターンを特定した。

Phase 2: アノテーション追加
エスカレーションが多い質問パターンに対して、カスタマーサポートチームが正解回答を作成し、アノテーションとして追加した。

Phase 3: 継続的な追加
月次でエスカレーション分析を行い、新規のパターンが出現したらアノテーションを追加するサイクルを確立した。

成果:
自動解決率が導入初期の45%から、6ヶ月後には72%まで向上。

§ これらの事例が示すもの

共通しているのは、改善を「仕組み化」している点です。

  • 問題を検出する仕組み(評価機能、ログ分析)
  • 改善を実行する仕組み(アノテーション、RAGメンテナンス)
  • 効果を検証する仕組み(検索テスト、リグレッションテスト)

「担当者が頑張る」のではなく、仕組みで品質を維持・向上させることが、長期運用の鍵です。


§ 8. よくある質問(FAQ)

§ Q1: アノテーションは何件くらい登録すべきですか?

A: 件数に決まりはありませんが、問題が発生した質問から優先的に登録することをお勧めします。最初から網羅的に用意しようとすると、実際には使われないアノテーションが増えてしまいます。Bad評価やエスカレーションが多いパターンを分析し、インパクトの大きいものから対応しましょう。

§ Q2: アノテーションの類似度閾値はどう決めればいいですか?

A: 運用開始時は0.9前後から始めることをお勧めします。その後、実際のマッチング状況を確認しながら調整してください。「意図しないマッチ」が多ければ閾値を上げ、「マッチすべきものがマッチしない」場合は閾値を下げます。

§ Q3: プロンプトを変更したら、過去の会話に影響しますか?

A: いいえ、過去の会話には影響しません。プロンプトの変更は、変更後の新しい会話にのみ適用されます。ただし、ログに残っている会話を再評価する際は、当時のプロンプトバージョンを確認することをお勧めします。

§ Q4: RAGのメンテナンスはどのくらいの頻度で行うべきですか?

A: 元データの更新頻度に合わせてください。マニュアルや規程が頻繁に更新される場合は週次、比較的安定している場合は月次程度が目安です。また、Good/Bad評価の傾向が悪化した場合は、臨時でRAGの検索精度を確認することをお勧めします。

§ Q5: 小規模なチームでも継続改善サイクルは回せますか?

A: はい、回せます。重要なのは仕組み化です。週に30分でも「Bad評価を確認し、必要ならアノテーションを追加する」というルーティンを設けるだけでも、品質は着実に向上します。最初から完璧を目指さず、小さく始めて継続することが大切です。


§ まとめ ─ AIの回答品質を「仕組み」で育てる

この記事では、Difyのアノテーション機能を中心に、AIの回答品質を継続的に改善するための仕組みを解説しました。

ポイントをおさらいします。

  1. アノテーション機能で「正解データ」を蓄積し、ハルシネーションを防ぐ
  2. Good/Bad評価とログ分析で「改善すべき場所」を特定する
  3. プロンプトIDEでA/Bテストを行い、リグレッションを防ぎながら改善する
  4. RAGのメンテナンスでナレッジベースの検索精度を維持・向上させる

AIは「作って終わり」ではありません。人間と共に学び、成長していくパートナーとして、継続的に育てていくことで、真の価値を発揮します。

改善サイクルを「担当者の頑張り」に頼るのではなく、仕組みとして組み込むことが、長期運用の鍵です。


§ Difyの導入・運用改善をお考えの方へ

このシリーズを通じて、Difyの導入から運用・改善までの全体像を解説してきました。

「Difyを導入してみたいが、どこから始めればいいか分からない」
「すでに運用しているが、品質改善のサイクルがうまく回っていない」
「社内だけでは改善の仕組み化が難しい」

そのようなお悩みをお持ちでしたら、ぜひData Insightにご相談ください。

Data Insightでは、AIを単なるツールではなく、御社のビジネスを共に成長させるパートナーとして位置づけています。導入の企画から、設計・構築、運用改善まで、一緒に進めていきます。

お問い合わせ・ご相談はこちら
無料相談で課題を整理する

#サービス業#DX#AI活用#Dify#アノテーション#LLMOps#品質管理

記事の内容について相談する

AI導入やデータ活用について、より詳しい情報をご希望ですか?
初回相談は無料です。お気軽にお問い合わせください。

無料相談を申し込む