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: ログから修正 ─ 実際の回答を改善する
最も実践的な方法は、実際のログから問題のある回答を特定し、修正することです。
手順:
- Difyの管理画面で「ログ」セクションを開く
- 問題のある会話を特定する
- 該当の回答を選択し、「アノテーションとして保存」をクリック
- 正しい回答を入力して保存
この方法のメリットは、実際にユーザーが行った質問に対してアノテーションを作成できることです。理論的に「こういう質問があるかも」と想像するより、はるかに実用的です。
§ 方法2: 一括インポート ─ 既存のQ&Aを活用する
すでに社内にFAQデータやQ&A集がある場合は、CSVファイルで一括インポートできます。
CSVフォーマット例:
question,answer
"御社の営業時間は?","平日9:00-18:00、土日祝日は休業です。"
"返品ポリシーを教えてください","商品到着後7日以内であれば、未使用品に限り返品を承ります。"
"担当者の連絡先は?","カスタマーサポート(support@example.com)までお問い合わせください。"
手順:
- アノテーション管理画面で「インポート」を選択
- CSVファイルをアップロード
- マッピングを確認して実行
§ アノテーションが特に有効な場面
以下のような場面では、積極的にアノテーションを活用することをお勧めします。
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の回答品質を継続的に改善するための仕組みを解説しました。
ポイントをおさらいします。
- アノテーション機能で「正解データ」を蓄積し、ハルシネーションを防ぐ
- Good/Bad評価とログ分析で「改善すべき場所」を特定する
- プロンプトIDEでA/Bテストを行い、リグレッションを防ぎながら改善する
- RAGのメンテナンスでナレッジベースの検索精度を維持・向上させる
AIは「作って終わり」ではありません。人間と共に学び、成長していくパートナーとして、継続的に育てていくことで、真の価値を発揮します。
改善サイクルを「担当者の頑張り」に頼るのではなく、仕組みとして組み込むことが、長期運用の鍵です。
§ Difyの導入・運用改善をお考えの方へ
このシリーズを通じて、Difyの導入から運用・改善までの全体像を解説してきました。
「Difyを導入してみたいが、どこから始めればいいか分からない」
「すでに運用しているが、品質改善のサイクルがうまく回っていない」
「社内だけでは改善の仕組み化が難しい」
そのようなお悩みをお持ちでしたら、ぜひData Insightにご相談ください。
Data Insightでは、AIを単なるツールではなく、御社のビジネスを共に成長させるパートナーとして位置づけています。導入の企画から、設計・構築、運用改善まで、一緒に進めていきます。
お問い合わせ・ご相談はこちら
→ 無料相談で課題を整理する