PR 本ブログはアマゾンアソシエイトに参加しています。

【生成AI ハルシネーション 間違い】生成AIのハルシネーションを見極めることができるようにするために

ICT活用

生成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です。

参考にできるウェブページ

  1. Wikipedia 剰余 (整数) のページ
  2. Monospacedの「剰余とは?」の解説ページ
  3. Math is Funの「Remainders(余り)」の解説ページ (英語)

これで少しでも理解が深まることを願っています!どうぞ他にも疑問があれば教えてくださいね。

ただ2番、3番のリンクが切れていました。そこでこんなふうに追加で質問をします。

二番三番のリンクが切れています。日本語のホームページで引用を教えてください。

申し訳ありません、それらのリンクが切れているようですね。代わりに、以下の日本語のホームページを参考にしてください:

  1. 商と剰余の計算 – MiniWebtool
  2. 【高校数学Ⅱ】「整式の割り算と剰余の定理」 | 映像授業のTry IT
  3. 【高校数学Ⅱ】「剰余の定理の活用問題」 (練習編) | 映像授業のTry IT

これらのページで剰余について詳しく学ぶことができます。何か他にお手伝いできることがあれば教えてくださいね。

明光義塾の動画解説サイトを提示してきました。こちらのサイトと、生成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の可能性について考えたいと思います。こちらをご覧ください。

スーさん
スーさん

Xで最新情報を更新中!

ぜひ、フォローしてくださいね!

X:プロフィール

参考文献・参考HP

参考文献

created by Rinker
¥1,870 (2025/02/22 01:18:55時点 楽天市場調べ-詳細)

参考HP

ゆるコンピュータ科学ラジオ
ゆるく楽しくコンピュータの話をするラジオです。「コンピュータ科学をやるのにコンピュータは不要」「プログラミング言語には思想が宿る」「サーバーはかわいいので○人と数える」など、とっつきやすい話をふざけながらしています。

コメント

タイトルとURLをコピーしました