生成AIはけろっと嘘をついたり、矛盾したことを言ったりします。
読んでいてあれ?と気づければいいのですが、気づかないこともよくあります。
生成AIの間違いを「ハルシネーション(幻覚)」といいます。
ハルシネーションを見破るのは、使い手である人間がどう対処するかが大切です。
ハルシネーションへの対応を一緒に勉強をしてきましょう。
前回の記事はこちらをご覧ください。
以下 緑枠・・・筆者のプロンプト(命令) 水色枠・・・生成AIの回答です。
使用している生成AIはCopilotを使っています。
ハルシネーションが起こるわけ

生成AIは大規模言語モデル(LLM)を使って学習をしています。
私も専門ではないのですが、要は人間とAIの文章の覚え方は全く違うということです。
その違いによって、生成AIはハルシネーションが起こします。
例えば、私達は、「あれが車だよ」と言われれば実物をいくつも見て、抽象化して「4つのタイヤがあって、ブーンと走っているもの」を車だと理解します。
ただ、AIはそれができません。文章を大量に読み込み、「車」という文章の周りには「タイヤ」「エンジン」「ガソリン」という単語がたくさん出てくるな。
逆に、「タイヤ」といえば「車」のことを言っているに違いないと理解をしていくわけです。
これは、とても単純化したモデルなのですが、いくつも条件を加えていくことで、より関連性の高いワードを絡めて文章を生成しています。
そのような関係で、「タイヤ」という単語を使って、人間は「飛行機のタイヤ」の説明をしてもらいたいのに、車との関わりが強すぎて、生成AIは「車」の話をしてしまう。
これがハルシネーションの構造なのです。
生成AIのハルシネーションは残念ながら、現在のモデルでは根絶するのは難しいといった側面があります。
のLLMについては、こちらを聞くとよくわかります。勉強になりました。
ハルシネーションと付き合う心構え

誤りの可能性を常に意識する
生成AIは間違うものと思って、使っていくのが大前提になってきます。
生成AIの回答した文章は必ず目を通して、
- 論理的矛盾点はないか
- 日本語としておかしなことを言っていないか
- (できれば)生成AIが参考にしたソースはあるのか
の3点を確認しながら使っていく事が大切です。
そして、万が一誤っていても、人間がリカバリーできる範囲で使っていくことが大切になってきます。
例えば、以下のように使うのはどうでしょうか?
曖昧なことや忘れたことの確認に用いる
基本的な知識を知っていれば、仮に生成AIが間違えた回答を提示しても見破ることができます。
例えば、「言葉の意味はわかっていても、適切な言葉が出てこない時」に聞くという時は効果的です。
割り算のあまりに注目して計算する演算を、数学ではなんと言ったっけ?
それは「剰余演算」(じょうよえんざん)と呼ばれます。剰余演算では、割り算のあまり(剰余)を求めます。例えば、17を5で割った時の剰余は2です。これは数学やプログラミングの分野で非常に重要な概念です。
その他に知りたいことがありますか? 😊
式ではどのように書きましたっけ?
剰余演算の式は一般的に次のように表されます:
a
ここで、 a が被除数、 b が除数、 r が剰余です。例えば、17 を 5 で割ると 3 余り 2 なので、次のように表現されます:
17
このように、剰余演算は特にプログラミングや数論などで頻繁に使用されます。他に興味のあるテーマはありますか?💡
こんなふうに出てきました。明らかにおかしいですね(コピペしたら分かりましたが、コマンドは正確でしたが、表示がうまくいかなかったようです。)そこで、追加の質問をしました。
式がおかしいです。もう一度丁寧に回答をしてください。
剰余演算では、ある数 a を別の数 b で割ったときのあまり(剰余)を求めます。この演算は次のように表現されます:
a % b = r
ここで、a は被除数、b は除数、そして r が剰余です。例えば、17 を 5 で割ると商は 3 余り 2 となるので、次のように表現されます:
17 % 5 = 2
この式は、プログラミングや数学の問題を解くときに非常に役立ちます。
自分の剰余の知識と組み合わせながら、正しい定義を確認できました。
間違っても問題が生じない用途に使う
例えば、「アイデア出し」を手伝ってもらうことは何ら問題ありません。
例えばこういうものはどうでしょうか?
小学校4年生で劇を行いたい。 15分でできそうなものを20個演目出して
森の仲間たち – 動物たちの冒険物語。
おとぎの国の探検 – おとぎ話のキャラクターたちが冒険するストーリー。
魔法の学校 – 魔法を使って問題を解決する子供たちの話。
地球を守ろう – 環境保護のテーマで、自然を守るために奮闘する子供たちの劇。
未来の世界 – 未来の世界での子供たちの冒険。
友情の力 – 友達の大切さをテーマにした物語。
宇宙の冒険 – 宇宙船に乗って未知の惑星を探検するストーリー。
学校のヒーロー – 学校で起こる問題を解決するヒーローの話。
小さな探偵たち – 子供たちが探偵となり、謎を解く物語。
動物園の1日 – 動物園での一日の出来事を描いた劇。
おもちゃの冒険 – おもちゃたちが冒険するストーリー。
忍者の修行 – 忍者の修行と冒険を描く物語。
海賊の宝探し – 海賊たちが宝を探す冒険。
魔法の本 – 魔法の本に導かれて冒険する子供たち。
タイムトラベル – 過去や未来を旅する子供たちの物語。
森の妖精たち – 森の妖精たちの生活と冒険。
サーカスの一日 – サーカスでの一日を描いた劇。
科学者の発明 – 子供たちが科学者となり、発明を通じて問題を解決する物語。
おとぎの国の冒険 – おとぎ話のキャラクターたちが新しい冒険に出るストーリー。
ロボットの友達 – ロボットと子供たちの友情を描いた物語。
そういえば、サーカスのライオンを国語でやったな。それと絡めて劇ができないかと考えたりするといいでしょう。
他にも、「2月の時候の挨拶を教えて」とか、「保護者に遠足についての文章を作りたいんだけれど、見出しを考えて」などなら十分活用できます。
ハルシネーションに気づくために

書籍や検索エンジンでチェックする
書籍は、出版されるまでに多くの人が目を通すので、誤りが少ないことが多いです。
生成AIの回答を正しいかしっかり確認したいなら、関連書籍を調べて確かめることが大切です。
また、検索エンジンもGoogleの出現により、信憑性の高いものが検索上位の出てくることが多くなりました。
少なくとも、生成AIの言っていることに疑問を持ったら、検索をかけてみるのが大事です。
検索をかける上でのキーワードは、生成AIが出してくれます。
ソースを生成AIに提示してもらう
インターネットをソースに、回答をしてもらうことも可能です。
例えばこんな感じです。
剰余とは何かを教えて欲しい。合わせて、参考にしたホームページがあれば教えて
剰余(じょうよ、余り)は数学において、整数をある数で割ったときに残る部分のことを指します。例えば、7を3で割ると、商は2で余りは1になります。この余りの部分が剰余です。
剰余は特に数論の分野で重要な概念であり、モジュロ演算(mod演算)とも関連しています。モジュロ演算では、割り算の結果の剰余を求めます。例えば、7 mod 3 の結果は1です。
参考にできるウェブページ
これで少しでも理解が深まることを願っています!どうぞ他にも疑問があれば教えてくださいね。
ただ2番、3番のリンクが切れていました。そこでこんなふうに追加で質問をします。
二番三番のリンクが切れています。日本語のホームページで引用を教えてください。
申し訳ありません、それらのリンクが切れているようですね。代わりに、以下の日本語のホームページを参考にしてください:
これらのページで剰余について詳しく学ぶことができます。何か他にお手伝いできることがあれば教えてくださいね。
明光義塾の動画解説サイトを提示してきました。こちらのサイトと、生成AIの言っていることを比べて、正しいか判断できますね。
WikipediaでもOK
学術目的にWikipediaの使用は難しいところがありますが、一般的に使う用レベルならよっぽど大きな間違いはなさそうです。
現に上記の「剰余の質問」をした時は、引用にWikipediaの剰余のページを出してきました。
少なくとも一つは別のソースを確認することが、ハルシネーションへの対策として大切でしょう。
同じことを違う形で聞いてみる
剰余について、こんなふうに聞いてみます。
剰余とはどんな計算ですか?
剰余(じょうよ)とは、ある数を別の数で割ったときに余る数のことです。たとえば、7を3で割ると、商は2で余りは1です。この余りの部分が剰余となります。数学的には「割り算の余り」とも呼ばれます。
式で表すと以下のようになります:
7 ÷ 3 = 2 余り 1
このときの1が剰余です。
特にプログラミングや整数論で頻繁に使われる概念で、例えばモジュロ演算(modulus operation)としても知られています。モジュロ演算は、ある数を別の数で割ったときの余りを求める計算です。
何か具体的な計算で例を見てみますか?それとも別の質問がありますか? 😊
あまりを求める演算が剰余と呼ばれるものなのですか?
はい、その通りです。余りを求める演算が剰余と呼ばれます。特にプログラミングや数学の分野では、「モジュロ演算」(modulus operation)として知られています。これは、ある数を別の数で割ったときの余りを求める計算です。
例えば、10 ÷ 3 の場合、商は3、余りは1です。このときの余り1が剰余です。
具体的な例や、他の質問がありますか? 😊
1つ目の質問と、2つ目の質問への生成AIの回答は矛盾はないですね。
よって剰余の説明の信憑性は増しました。
自分の理解を文章にして、正しいかを生成AIの判断してもらう
剰余について生成AIの言っていることで理解できたので、こんな感じで聞き直してみます。
自分の理解を確認したいのですが、剰余とは、あまりに注目した計算でいいですか?
例えば、10(mod9)の答えは1でしょうか?
はい、その理解で正しいです。剰余は、割り算の余りに注目した計算です。
例えば、10を9で割ると、商は1で余りは1になります。したがって、10 mod 9 の答えは1です。
他の例も見てみましょう:
- 17 mod 5 は、17を5で割ると商は3で余りは2ですから、答えは2です。
- 25 mod 7 は、25を7で割ると商は3で余りは4ですから、答えは4です。
このように、剰余は割り算の余りを求める計算です。何か他に確認したいことがあれば教えてくださいね。
最後に

生成AIは間違うものです。
ただ、この間違いについて、どのように使い手が対応するかを心得ることで、生成AIと上手に付き合うことができるようになります。
- 生成AIは間違うことが前提で使っていくことが大事
- 生成AIが間違えても問題ない分野で使用をすること
- 人間が文献やインターネットで信憑性を確認すること
- 自分の理解を確かめるために生成AIを使うこと
これで、ハルシネーションにはある程度対応可能になってきます。
うまく生成AIと付き合って、来たるべきAI時代を生きていきたいですね。
さて、次回は、学校における生成AIの可能性について考えたいと思います。こちらをご覧ください。

コメント