こんにちは、AIチームの戸田です
本記事はAI Shift Advent Calendar 2023の21日目になります
FAQ検索において、ユーザーの問い合わせ(クエリ)が一発で回答となるFAQにヒットすることは稀です。多くの場合検索ワードを追加したり、変更を行うことで検索対象の絞り込みを行います。
これはFAQ検索において、現在最も注目を集めているRAG(Retrieval-Augmented Generation)の場合も同様です。加えてRAGは基本的に一問一答であるため、Generatorに渡す検索結果の上位N件に正解となるFAQが取得できなかった場合は答えられなかったり、hallucinationを起こしてしまう可能性もあります。
ここで単純にGeneratorに渡す検索結果を増やしてしまうと、かえって余計な情報を与えてしまう場合もあり、簡単に解決できる問題ではありません。そもそもトークン数制限によって渡すことができないということも考えられます。RAGは非常に強力な手法ですが、Generatorを使わずに、単純にRetrieve結果の一覧を表示する旧来の検索インターフェースの方がユーザー体験としては良い可能性もあります。
前置きが長くなりましたが、本記事ではこういったRAGだと回答が困難なケースが起こり得る代表的な問い合わせとして「ログインできない」という問合せとその回答になりうるであろうFAQを分析してみます。
さまざまな「ログインできない」
具体的な分析対象としてAmebaブログのFAQ検索評価データを利用します。
所謂サービスにログインできないという問題ですが、TitleやContentに「ログイン」が含まれるFAQを見ていくと、別々のログインできない理由、または背景にあるやりたいことが想定され、それぞれに対して別々のFAQが設計されています。
具体的には以下のようなもので分けられています。
パスワードを忘れた
一番ありそうな問題ですね。実はこの中でも登録したメールアドレスがわかるケースとわからないケースでFAQが分かれています。
例: パスワードを忘れました, 現在利用できないメールアドレスを登録している, アメーバIDを忘れました
エラーが起こっている
ユーザー側の端末やブラウザ設定の問題だったり、サーバー側で何かしらの障害が起こっているケースです。
例: 画面が表示されない・記事が投稿できない, 画面が真っ黒になってログインできません
Amebaブログへのログインではない
基本的にFAQはAmebaブログに関するものなのですが、Amebaブログの登録IDで使えるAmeba漫画やドットマネーといった他のサービスへのログインができないケースです。
例: アメーバピグにログインするには?, Amebaマンガやドットマネーへのログインについて
外部サービスを使ってログインしたい
AmebaブログはApple IDなどの外部サービスのアカウントでもログインすることができます。その際のFAQになります。
例: 外部サービス(Google・Yahoo!JAPAN・X(旧Twitter)・Facebook・AppleID)でログインする, ID連携でログインの場合
アプリでログインしたい
Amebaブログはブラウザからはもちろん、専用のアプリでも使用することができます。そのアプリを使った際のログインがうまくいかないケースのFAQです
例: Amebaアプリでログインできない, ログイン時に新規登録画面が表示される・頻繁にログインを求められる場合
退会したい
こちらは少し特殊なのですが、退会をするためにログインをしたいケースです。この場合、専用のFAQが用意されていて、ログインしなくても、専用の問合せフォームが用意されています。
実際の検索結果の確認
ここまで、「ログインできない」という問合せの回答になりそうなFAQをみてきました。「ログインできない」と一言に言っても、それを聞く人の背景には色々な事情があり、それらに対応したFAQが存在することがわかりました。
ここからは、実際にRAGシステムに回答させるとどうなるかを見ていきます。使用するモデルは、
- Retriever: text-embedding-ada-002
- Generator: gpt-4
です。以下にGenerator部分のコードを示します。Retriever部分は以前ブログで書いたものと同様です。コンテキストは上位3件を与えるようにしました。
from openai import OpenAI
client = OpenAI()
template = f"""
Please use the following context to answer questions.
Context: {context}
---
Question: ログインできない
Answer: Let's think step by step.
日本語で答えてください"""
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": template},
]
)
print(response.choices[0].message.content)
ログインができない場合、まずは端末上のキャッシュ情報やCookieの影響が考えられます。キャッシュ情報やCookieを削除し、以降ログインが可能かご確認ください。それでもまだログインできない場合、ご利用されている環境が推奨環境外である可能性があります。
推奨環境についてはPC版とスマホ・アプリ版どちらもヘルプページでご確認いただけます。最新の端末OSバージョンやAmebaアプリ、スマートフォンブラウザを使っていることを確認してください。
それでもログインできない場合は、ログインフォームへの入力内容に誤りがある可能性があります。また、ログインを試されているアカウントがすでに退会済みのアカウントである可能性もあります。パスワードを忘れてしまった場合は、パスワード再設定を試す等の対応をお願いいたします。
回答としては悪くなさそうですが、上記で紹介したような状況の人はほとんど救えなさそうです。
この結果をより深掘りするために、Retireverの上位10件を見てみましょう。
楽天IDに関するFAQが5位にきているので、このような外部サービスを使ってログインしたい人はまったく対応できなさそうです。「退会したいのにログインできない」は3位以内に入っているのでこのケースの人は対応できそうなのですが、生成にはこのことについての言及はありません。contextとして与えることができても、必要な情報を確実に反映することができることができないのもRAGの弱点とも言えるかもしれませんね。
まとめ
本記事では、現在流行しているRAGだと回答が困難なケースが起こり得る代表的な問い合わせとして「ログインできない」という問合せとその回答になりうるであろうFAQを分析してみました。結果、問い合わせをしてくる人の背景にはさまざまな要望があり、それらに対応したFAQが必要が存在するため、単純にRAGの一問一答で答えるのは困難だとわかりました。
現在FAQ応答の分野ではRAGxチャットボットのシステムが隆盛を極めていますが、今回紹介したような課題もあるので、一覧を表示できる旧来の検索インターフェースのシステムを見直してもよいかもしれません。
またRAG x チャットボットのシステムも、一問一答ではなく、クエリに応じて適宜ユーザーに検索対象を絞り込みするための逆質問(問い返し)のようなものを行うような仕組みづくりも今後大切になってくるかもしれません。
最後までお読みいただきありがとうございました!
おわりに
AI Shift の開発チームでは、AI チームと連携して AI/LLM を活用したプロダクト開発を通し、日々ユーザのみなさまにより素晴らしい価値・体験を届けるべく開発に取り組んでいます。
AI Shift ではエンジニアの採用に力を入れています!この分野に少しでも興味を持っていただけましたら、カジュアル面談でお話しませんか?(オンライン・19 時以降の面談も可能です!)
【面談フォームはこちら】
明日はAIチームの下山の記事が公開される予定です。