LLMの不確実性をサービスオーナにどう説明するか
toC向けのチャットボットにLLMを組み込んだシステムを開発しています。
最近のLLMは回答精度も非常に高く、一見すると「なんでも答えられる万能エンジン」のように見えます。しかし、実際にはときどき想像もしなかったようなハルシネーションを起こしたり、意図に沿わない回答が返ってくることもあります。
特にチャットボット開発の現場では、「OpenAIなどの高性能LLMにRAG(Retrieval-Augmented Generation)で業務ドメインの情報を渡せば、あとは全部うまくいく」といった楽観的な期待があるように感じることもあります。
PoC(概念実証)段階では、確かにそれっぽいデモができて感動もありますが、実際に運用レベルまで精度・安定性を高めていく作業は想像以上に地道で困難です。
LLMは「めっちゃ頭のいい新人さん」
LLMの性質を端的に表すたとえとして、誰かが言っていた「めっちゃ頭のいい新人さん」という表現が印象に残っています。
この「新人さん」は非常に優秀で、一般的な知識を広く深く持っています。ただし、会社には入社したてで、自社の業務や製品についての知識はまだありません。
RAGによる業務知識の補完
こうした新人さんに業務知識を与える手段としてRAGの仕組みがあります。業務マニュアルやFAQなどのドキュメントを検索・提示し、それをベースにLLMが回答を生成するという方法です。
確かにこれにより、業務ドメインに関する情報にも対応できるようになりますが、LLMはそのドキュメントの内容を本当に理解しているわけではありません。
持ち前の言語能力を駆使して、ドキュメントを参考に「それらしく説明している」に過ぎません。
頭がいいがゆえに、足りない情報も既存の知識を使って想像で補完することができます。しかし、業務文脈に不慣れなLLMにとって、その想像が的を射ている確率は高いとは言えません。
合意形成に向けたスタンス
このようなLLMの不確実性を、システムエンジニアの立場からサービスオーナーにどう伝え、合意形成を進めていくかは非常に悩ましい問題です。
多くの場合、サービスオーナーがLLMに抱く期待と、現実にできることとの間には大きなギャップがあります。
特にtoCサービスでは、LLMの誤回答が直接的にユーザー体験や企業リスクに結びつく可能性があります。
また、このリスクが「どの程度起こりえるか」を、サービスオーナーとエンジニアの双方が客観的に見積もることは非常に難しいです。
だからこそ、「ハルシネーションは起こるもの」という前提を持ってもらうことが重要で、そのための導入として、「LLMはめっちゃ頭のいい新人さん」というたとえなどを使うことは、サービスオーナーにLLMの性質を直感的に理解してもらう上で、良い方法だと考えます。
他にも良いたとえやサービスオーナへの説明方法などのアイデアがあればコメントいただけると幸いです。
Discussion