ハルシネーション(Hallucination)

ハルシネーション(Hallucination)

データ活用やDX成功に必要な考え方を、各種キーワードの解説で理解できる用語解説集です。

今回は、生成AIをビジネスで利用するにあたって留意すべき生成AIの現象であるハルシネーションについて解説をします。

ハルシネーション(Hallucination)とは

ハルシネーション(Hallucination)とは、英語の「幻覚(hallucination)」に由来した言葉であり、生成AIが事実とは相違すること、あるいはまったく架空の話を、まるで正しい内容であるかのように回答してしまう現象のことです。

ただ間違えるだけではなく、自信満々に間違ったことを言う、その分野に詳しくなければまるで本当のことであると思えてしまうくらいの妙なリアリティのある作り話をすることもある、特徴的な挙動です。多くの見解では、大規模言語モデルの仕組み上必然的に発生する現象で、この挙動をすっかり無くすことは難しいと考えられています。

生成AIをビジネスで利用するにあたって問題となることが多い特徴であり、ハルシネーションが発生することに対してどのように対処するかが、生成AI活用における重要なポイントになることがあります。

ハルシネーションとは(ハルシネーションの例)

現在に続く生成AIブームは2022年11月30日のChatGPTの一般公開から始まりましたが、その最初期から、人と会話をしているかのような衝撃的な利用感と共に、「平然と作り話をする」特徴も広く知られるようになりました。

特に初期の生成AIが用いていた大規模言語モデル(LLM)は、現在のような水準のものではなかったため、明らかな作り話をすることが少なからずありました。以下は、実際のやり取りではなく、生成AI初期に見られた「あからさまなハルシネーション」風のやり取りを創作したものですが(つまり歴史的事実と異なる内容です)、このような感じになってしまうことは結構あったことではないかと思います。

現在の石川県を本拠地とした有名な戦国武将について教えてください。

石川県を本拠地とした戦国武将と言えば織田信長です。金沢城を居城として活躍した、有名な戦国大名です。
※間違い:石川県を本拠地とした戦国武将は前田利家

織田信長についての、有名な歴史上の事件について教えてください。

織田信長の有名な歴史上の事件としては、柴田勝家と戦った桶狭間の戦いが有名です。織田信長は油断していた柴田軍を奇襲して勝利し、その後金沢城を与えられました。
※間違い:桶狭間の戦いの相手は今川義元。

このような、間違ったことを平然と回答してしまう特徴的な現象のことを「ハルシネーション」と呼びます。

現在では生成AIが用いている大規模言語モデルはより多くのデータを用いて学習したものになっており、また内部で複数回の処理を行う(複数のエージェントを用いるなど)対策などによりハルシネーションを抑止した出力にする対策も進んでいるので、ここまであからさまに間違っている回答をすることは少なくなりました。

しかし、ハルシネーションがすっかり無くなっているわけではなく、詳しい内容まで流暢に回答しているので正しいと思っていたら、回答のあちこちに事実と異なる間違いがあることや、存在しないソースを参照してしまう問題は今でも起こっていることがあります。間違った回答をすることが減ったのは良いことですが、間違った回答が混ざっていることを見分けにくくなり、より難しい状況になったと考えることもできます。

ハルシネーションの発生原因

ハルシネーションがどうして発生するのか、その原因はきちんとは解明されていません。また、何らかの対策によりハルシネーションをすっかり無くすことも難しいと考えられている状況です。

学習データ(だけ)の問題ではない

ハルシネーションの発生原因として、(特に初期には)学習データに間違いがあるから、という説明を見かけることがあったように思います。確かに、大規模言語モデルを間違ったデータのみで学習させると誤った出力をするようになり、大規模言語モデルの学習においては間違った内容のものもあるインターネット上のテキストデータが用いられているのも事実です。

しかしながら、学習に用いているデータを問題のないものとしても、なおもハルシネーションは全てなくならず、むしろ大規模言語モデルの学習過程や回答の生成過程そのものから発生しているような現象であると(も)考えられています。

例えばこんな事件があります。FacebookのMeta社が2022年11月に独自の大規模言語モデル「Galactica(ギャラクティカ)」を一般公開したのですが、わずか3日で公開中止となりました。

⇒MIT Tech Review: メタの言語AI「ギャラクティカ」がたった3日で公開中止になった理由

Galacticaは科学者を支援することを目的として、厳選されたデータ(学術論文・教科書・百科事典など)で学習させて作られた大規模言語モデルでした。

しかしながら、出力される内容は専門家風の大変もっともらしいものである一方、間違った内容を回答することや、存在しない論文を引用元として提示するなどの挙動が多々みられたため、誤情報を権威があるかのような形で提示する危険性のあるものとして批判を受け、このような結末となりました。

生成AIになってからの問題ではない

また、ハルシネーションは生成AIになってから新たに使われるようになった言葉ではなく、ニューラルネットを利用したシステムで発生する奇妙な現象の呼び名として以前から使われていた言葉です。

生成AIがブームになるよりも前、ディープラーニング(深層学習)がブームになっていた時期がありましたが、2018年にディープラーニングを用いたニューラル機械翻訳(NMT)において、「原文に全く存在しないテキストが訳文に出てくる怪現象」が見つかったことがGoogleの研究者により論文発表される事件がありました。

⇒Hallucinations in Neural Machine Translation

原文に全く存在しないでたらめな内容が訳文に出現することがある、しかも流暢な文章で出現するという厄介な問題が起きることが見つかり、そのことから論文のタイトルが「ニューラル機械翻訳(NMT)におけるハルシネーション(Hallucinations in Neural Machine Translation)」となっています。

ニューラル機械翻訳は大規模言語モデルとは直接的には同じタスクを実行しているわけではない(少なくとも「次の単語を当てる」タスクではない)のですが、類似した奇妙な現象が起こっています。

ハルシネーションは大規模言語モデルそのものが抱えている問題と考えられていることが多い

ハルシネーション対策の研究開発や、ハルシネーションがどうして発生するのかの研究は世界中で続けられています。しかし今後の見通しとしては、ハルシネーションとは大規模言語モデルそのものが本質的に抱えている問題であって、全く発生しないようにはできないのではないか、と考えられていることが多いようです。

一般的にはコンピュータとはプログラムにより決められた通りに動作する、論理的かつ一貫性の高い挙動をする印象があります。他のIT技術、例えば社員データベースへの問い合わせ処理を行った際に、RDBがデータベースに登録されていない社員データを出力してしまうような挙動はほとんど考えられません。

しかし、生成AIを実現している技術である大規模言語モデルは、確率的に動作をして「次に出現する確率の高い単語を出力する」ものであるため、通常のITシステムとは動作の原理が大きく異なります。

⇒大規模言語モデル(LLM:Large Language Model)|用語集

ハルシネーションの発生原因についてもう少し

例えば、「織田信長は尾張国の戦国大名である(加賀国ではない)」ということを論理的に理解して回答しているわけではないと考えられているので、尾張国の話題ではない文脈を考慮できずに「有名な戦国大名と言えば」の次に「織田信長です」が出現する確率が高いと判断して、このような挙動が起こってしまうことがあります。

意味そのものを理解しているわけではないことに加えて、次の単語(トークン)の確率を計算する過程が積み重なって出力がなされるため、途中で計算のズレが生じると(例えば織田信長で一度話が進んでしまうと)その後はそのズレを前提に出力が進んでしまうことになり、間違った内容のまま流暢な応答が続いてしまう現象が起こることがあります。

上記の例では、現在の石川県の戦国大名についての学習が十分でなく、確率分布の学習がうまくできていない状態で回答を出力しようとしたため、戦国大名とは織田信長である、という一般的な表現に引っ張られてしまってこのようになることがあります。学習データが十分でないことが原因であると言えますが、しかし世の中の森羅万象全てについて万全に学習済みということも望めないので、どこかの話題領域ではこのような問題が起こりうるということになります。

「わかりません」と回答することは容易ではない

このような場合には、生成AIに「わかりません」と回答してほしいところですが、それが難しい事情もあります。次の単語の確率を計算するモデルにおいて「出力しない」「データ不足なので出力を停止すべき」をそのままでは直接扱えるようになっていません。

また、利用者の評価から生成AIを学習する取り組みにおいても難しさがあります。「わかりません」と答えるとそこで会話が終わってしまいますが、「それっぽい内容であるものの実は間違っている」が「利用者が見抜くことができず会話が続いた」場合には話が続いてしまいます。その結果、利用者が回答に満足して会話が続いたケースとみなされ、ともかくも「会話が続いてしまう応答ならその方向で学習が進んでしまいやすい」問題もあるとされます。

またこのような現象は、学習した通りそのままを回答するだけの挙動では発生しない現象であり、大規模言語モデルが備えている有用性である創造性(新奇性)の望まれない別の側面でもあります。例えば、生成AIが広く活躍している用途である「アイディア出しに利用する」においては、「無いことを上手に創作する」挙動が我々の役に立っていると考えることもできます。

ハルシネーションの対策

ハルシネーションへの対策として、様々な手法が提案されています。それぞれ効果があると考えられる対策ですが、いずれも抑止効果に限界があるとも考えられます。

『わかりません』と答えてください

プロンプトに「わからないときには『わかりません』と答えてください」と書き加えることでハルシネーションを抑止する対策手法がまずあります。ただし、大規模言語モデルは自身の学習が十分ではないことを直接理解できるモデルではないことから、この対策によりハルシネーションを全て抑止することは期待できないように思われます。

プロンプトの意図を明確にする

プロンプトの意図を明確にすることで、生成AIに出力してほしいことをわかりやすくする対策手法も提案されていることがあります。

一般的に出力の改善方法としては有用であり、生成AIにどのような出力を要望しているかは明確になると期待できるものの、出力すべき内容そのものが大規模言語モデルからみて問題があるために発生するハルシネーションへの対策にはならないと考えられるので、これだけで万全な対策にはならないでしょう。

ソース(出典)を示して出力をさせるなど自己検証させる

プロンプトによって「生成AIの主張することについてソースを示して出力をさせる」ことなどにより出力を自己検証させて、論拠のない出力を抑制する手法も知られています。

しかし、生成AIが出力できたはずの有益な出力も抑止してしまうことや、存在しないソースを捏造してしまう、主張と関連のないソースを参照してしまうなど、別の種類のハルシネーションを起こしてしまうことがあります。

生成AIに思考する方法を指示する(段階的に思考させるなど)

「Chain-of-Thoughtプロンプティング」の利用などにより、どのような過程で思考してほしいかを生成AIに指示することでハルシネーションを抑止する手法の提案があります。

⇒Chain-of-Thoughtプロンプティング|用語集

例えば最初の例なら、「戦国武将と言えば織田信長」に引っ張られて間違えているようなところもあるので、石川県の歴史上の有名人についてまず列挙させ、その中から石川県を本拠地とする戦国武将を選ぶ(あるいはいない場合には「いない」と答える)ように指示すれば、問題を緩和できる可能性があります。

しかしプロンプト作成者にとって、生成AIに対してどのような思考過程を取らせるとハルシネーション対策として効果があるのか必ずしも明確ではなく、ハルシネーション自体の発生原因に直接働きかけている対策ではないところもあります。

他のAIエージェントによる検証

出力に間違いがないかを、他のAIエージェントに検証させることでハルシネーションを抑止する手法があります。我々に見えない形で、生成AIサービスの内部でも採用されていることの多い仕組みです。

効果のある対策ですが、プロンプトのみでは実現できず、作り込みや手作業での複数の生成AIの併用が必要になり、検証を行うAIエージェントも同じ原理で動作しているために間違った出力を見逃してしまうことがあります。また、検証するAIエージェントに厳しく判断させて抑制させようとすると、過剰に拒絶してしまって出力が得られなくなってしまうこともあります。

検索拡張生成(RAG)などで外部データを取り込む

検索拡張生成(RAG)などにより、生成AIの適切な回答に必要なデータを外部から取り込むことで、ハルシネーションを抑止する対策があります。

⇒検索拡張生成(RAG:Retrieval Augmented Generation)|用語集

大規模言語モデルの学習データが足りていないことがハルシネーションの原因になっている場合があり、外部から適宜足りていないデータを補うことができれば、挙動の抑制効果は期待できます。

ただし、一般的なRAGの活用状況を考えると、大規模言語モデルに自社に関連するデータを与えることで自社に関連する事象での回答を改善することは見込めるものの、ハルシネーションを一般的に抑止する手段になるかというとそうではないように思われます。

人による検証(HITL:Human-in-the-Loop)

生成AIの出力にはハルシネーションなどによる間違いが混ざってしまうことを前提として、生成AIによる出力をそのまま利用せず「人による確認」を経てから利用する対策手法です。自動処理とせずに処理の途中で人を介在させることから「ヒューマンインザループ」(HITL:Human-in-the-Loop)とも呼ばれる対策手法です。

この手法はハルシネーションに限らない生成AIの多くの課題への対策として有効性があります。しかし、確認作業の負荷が高くなりやすく、対応する人員が疲弊してしまって(生成AIを導入したのに)業務が停滞してしまうことや、AIの出力だからだいたい正しいだろう、ときちんと確認せずにOKを押してしまうようになり、そこから事故が起こってしまうような問題が起こることがあります。

またハルシネーションは、流暢な文章で人にはわかりにくいポイントや専門性の高い内容で巧妙に間違っている場合もあるので、人が確認すれば適切に判断できるであろうと期待しづらい状況もあります。

実行環境の利用

例えば生成AIにプログラムコードを出力させるような用途の場合、出力されたソースコードが実際に動作するか、コンパイルや実行してみることで確認することができます。他にもロボットの動作手順など、生成AIが出力した内容を実際に実行して試すことができる場合があります。

ただし、実行環境の用意と利用によりハイコストな取り組みになりやすく、実行自体ができないような間違いは検出できても微妙に間違っているような場合まで検知できるとは限りません。さらに、生成AIに実行環境を与えると意図しない危険な挙動(外部ITシステムに不正アクセスしてしまう事故を起こすなど)をする可能性があり安全面でのリスクが発生することがあります。

用途を工夫する

あるいは大規模言語モデルの活用においてはハルシネーションが発生することは避けられないと考え、ハルシネーションが発生してしまう特性に合わせてユースケースの方を調整することも一種の対策です。

例えば、広く使われている生成AIの活用方法に「アイディアを出してもらう」ような使い方がありますが、そのような用途であればハルシネーションはあまり問題にならなくなります。

生成AIはハルシネーションが発生する前提で総合的に工夫して利用する必要がある

このようにハルシネーション対策としては様々な手法があり、それぞれ効果もあるのですが、残念ながらハルシネーションをすっかり無くすことはできず、発生確率を下げる方法しか存在しないと考えるべき状況です。

生成AIの特性にうまく合わせる必要がある

現実の生成AIの活用とは、ハルシネーションが存在する前提で、存在しても問題のない用途でうまく使えないかを工夫する、あるいは人による検証をうまく組み合わせる方法を考えるようなところがあります。

ビジネス的に実現されてほしいことと思ったことが魔法のように実現される技術ではなく、ハルシネーションなどの生成AIの技術的な特性を踏まえた上で、どのように活用できるかをビジネスの側から工夫することや、試行錯誤を経てうまく機能するポイントを上手に活用して成果につなげるような取り組みが必要になるはずです。

試行錯誤することがより重要になる

生成AIのこのような特性を踏まえると、(ウォーターフォールモデルのような)古典的なITシステム開発の手法、つまりビジネス側のニーズから要件定義を行ってから開発するITシステムの仕様を決め、というような取り組み方ではうまくいかないことが多くなってきます。

事前にしっかり分析して計画を立てて「作るべきもの」を明らかにしても、実際に作ってみると予測した通りにならないことが多ければ、成果の出る分析や計画を適切に行うことは困難になります。あるいは生成AIでは技術的に難しい「作るべきもの」を計画通りに実現しようとして、コストや時間を費やすも結果は芳しくない、というようなことになりやすくなります。

むしろ時間をかけて計画や分析を行うのではなく、思いついたらすぐ作って実際に動かしてみて、使ってみてどうだったかを踏まえて、その結果から逆にビジネス側で実現できることを考察する取り組み方(アジャイル的な取り組み方)の方が結果につながりやすくなります。

この使い方では実用性がちょっと厳しそうだ、こちらの使い方では有用性がありそうだが活用領域に留意が必要で業務側の工夫が必要、というような是非の判断のみならず、実際に使った結果から「思わぬ使い方で活用できること」が発見され、それがビジネスで大きな成果を生む活用方法になるようなこともあります。

「試行錯誤ができる」「自在に連携できる」環境が必要

つまり、生成AIの活用で成果を出すためには、試行錯誤ができる環境があることが必要です。また、ビジネス的ないろいろな活用を工夫できるようにするためには、生成AIを外部のシステムやデータと自在に連携できる環境があることも必要になります。

ハルシネーション対策のテクニックにおいても、生成AIの指示に工夫したプロンプトを追加するもの、外部で何らかの検証作業をさせた結果と併せての判断をする、自社ITシステムから適切なデータを供給してRAGを実現する、生成AIによる処理に人による判断をどのポイントでどのような形で埋め込むか試しつつ考える、など、外部との連携が必要で試行錯誤が望まれるものがあります。

エンジニアを確保してPythonで開発をしてもらうような状況がイメージされるかもしれませんが、加えてこれらの試行錯誤は、ビジネス的な観点での感性でよく考えて行われる必要があり、すなわち非エンジニアである業務の現場主導(ないしは経営者自身が考える)で取り組むことが望ましい状況です。

生成AI活用を成功させる環境を実現する「つなぐ」技術

活用アイディアを思いついたらすぐに「試行錯誤ができる」「自在に連携ができる」環境が整備され、しかも非エンジニアである業務の現場主導で取り組みができる、もしかすると、そんな環境をどうやって用意するのか、と思われたかもしれませんが、実際にそのような活用環境を実現できる手段がすでにあります。

「つなぐ」技術を活用ください

このような各種の「連携処理」を、「GUIだけ」で効率的に開発できる手段が存在します。「EAI」や「ETL」、「iPaaS」と呼ばれる、「DataSpider」や「HULFT Square」などの「つなぐ」技術です。これらを活用することで、新旧システムをスムーズかつ効率的に連携させることができます。

「GUIだけで利用・開発できる」ことの長所

通常のプログラミングのようにコードを書く必要がありません。GUI上でアイコンを配置し設定をすることで、多種多様なシステムやデータ、クラウドサービスへの連携処理を実現できます。

GUIだけでのノーコード開発は、本格的なプログラミングに対して簡易で妥協的な印象を受けるかもしれません。しかしながら、GUIだけで開発できれば「業務の現場の担当者が自分たち自身で主体的にクラウド連携に取り組む」ことが可能になります。

本格的処理を実装できる

「GUIだけで開発できる」ことを謳っている製品は多くありますが、そういう製品に簡易なことしかできない悪い印象を持っている人もおられるかもしれません。

確かに、「簡単に作れるが簡易なことしかできない」「本格的処理を実行しようとしたら処理できずに落ちてしまった」「業務を支えられるだけの高い信頼性や安定稼働能力がなくて大変なことになってしまった」ようなことは起こりがちです。

「DataSpider」や「HULFT Square」は、簡単に使うこともできますが本格的プログラミングと同等のレベルの処理の作り込みもできます。内部的にJavaに変換されて実行されるなど本格的プログラミングと同様の高い処理能力があり、長年にわたって企業ITを支えてきた実績もあります。「GUIだけ」の良さと、プロフェッショナルユースとしての実績と本格的能力の両方を兼ね備えています。

オンプレミスでも運用でき、自社運用不要なiPaaSとしても利用できる

DataSpiderなら自社管理下のシステムでしっかりと運用できます。クラウドサービス(iPaaS)のHULFT Squareなら、このような「つなぐ」技術そのものもクラウドサービスとして、自社での導入やシステム運用の手間がなく利用できます。

データ連携ソフトウェア「DataSpider」についてはこちらもご覧ください
⇒DataSpider Servista|サービス

「つなぐ」ことができるクラウドサービス「HULFT Square」についてはこちらもご覧ください
⇒HULFT Square|サービス

関係するキーワード(さらに理解するために)

生成AI/ChatGPTに関係するキーワード

機械学習に関連したキーワード

データ連携やシステム連携に関係するキーワード

  • EAI
    • システム間をデータ連携して「つなぐ」考え方で、様々なデータやシステムを自在につなぐ手段です。IT活用をうまく進める考え方として、クラウド時代になるずっと前から、活躍してきた考え方です。
  • ETL
    • 昨今盛んに取り組まれているデータ活用の取り組みでは、データの分析作業そのものではなく、オンプレミスからクラウドまで、あちこちに散在するデータを集めてくる作業や前処理が実作業の大半を占めます。そのような処理を効率的に実現する手段です。
  • iPaaS
    • 様々なクラウドを外部のシステムやデータと、GUI上での操作だけで「つなぐ」クラウドサービスのことをiPaaSと呼びます。

「iPaaS」や「つなぐ」技術に興味がありますか?

オンプレミスにあるITシステムからクラウドサービスまで、様々なデータやシステムを自在に連携し、IT活用をうまく成功させる製品を実際に試してみてください。

「つなぐ」ツールの決定版、データ連携ソフトウェア「DataSpider」および、データ連携プラットフォーム「HULFT Square」

当社で開発販売しているデータ連携ツール「DataSpider」は長年の実績がある「つなぐ」ツールです。データ連携プラットフォーム「HULFT Square」はDataSpiderの技術を用いて開発された「つなぐ」クラウドサービスです。

通常のプログラミングのようにコードを書くこと無くGUIだけ(ノーコード)で開発できるので、自社のビジネスをよく理解している業務の現場が自ら活用に取り組めることも特徴です。

DataSpider / HULFT Squareの「つなぐ」技術を試してみてください:

簡易な連携ツールならば世の中に多くありますが、GUIだけで利用でき、プログラマではなくても十分に使える使いやすさをもちつつ、「高い開発生産性」「業務の基盤(プロフェッショナルユース)を担えるだけの本格的な性能」を備えています。

IT活用の成功を妨げている「バラバラになったシステムやデータをつなぐ」問題をスムーズに解決することができます。無料体験版や、無償で実際使ってみることができるハンズオンも定期開催しておりますので、ぜひ一度お試しいただけますと幸いです。


「HULFT Square」で貴社のビジネスが変えられるか「PoC」をしてみませんか:

貴社のビジネスで「つなぐ」がどう活用できるのか、データ連携を用いた課題解決の実現可能性や得られる効果検証を行ってみませんか?

  • SaaSとのデータ連携を自動化したいが、その実現可能性を確認したい
  • データ活用に向けて進めたいがシステム連携に課題がある
  • DXの実現に向けてデータ連携基盤の検討をしたい

用語集 コラム一覧

英数字・記号

あ行

か行

さ行

た行

な行

は行

ま行

や行

ら行

わ行

» データ活用コラム一覧

おすすめコンテンツ