「AIが言うことを聞かない」のはなぜか — 普通のプログラムとの違いから
アウン・ピエAIエンジニア結論から書く。AIが「言うことを聞かない」ように見えるのは、指示を無視しているからではありません。こちらの言葉が二通りに読めるとき、AIがそのうちの一つを選んでいるからです。 Excelのように答えが一つに決まるソフトと違い、AIには選ぶ余地があります。その仕組みを、普通のプログラムと比べながら説明します。
「AI、言うこと聞かないよね」
この言葉を何度も聞きました。AIで何かを作ってみた人から出てくる言葉です。頼んだものと違うものが出てくる。言い直してみる。また違う。その気持ちは分かりますし、同じように思ったこともあります。
Excelに「言うことを聞かない」とは言いません。
Excelにはなぜ言わないのか
Excelだって間違った答えを出すことはあります。セルがずれている。数式が間違っている。それでもそのとき口に出るのは「数式が間違っている」で、「Excelが言うことを聞かない」ではありません。理由は単純で、Excelには選ぶ余地がないからです。
=1+1 と入力すれば 2 が返ってきます。いつでも。百万回やっても 2 です。今日やっても、来年やっても 2 です。結果が一つしかないなら、「言うことを聞く/聞かない」という言い方自体が成り立ちません。
AIは違います。同じことを聞いても、返ってくる答えが毎回変わることがある。人に対して使う言葉が出てきてしまうのは、そのためです。
では、AIはなぜExcelのようにならないのか。Excelと同じように、手順を書いておくことはできないのでしょうか。
普通のソフトは答えが一つしかない
コンピュータのソフトは、あらかじめ書かれた手順で動いています。たとえば数字を小さい順に並べ替えさせるなら、こう書きます。
- 二つ取り出す
- どちらが大きいか比べる
- 大きいほうを右、小さいほうを左に置く
- 全部そろうまで繰り返す
これだけ書いておけば、コンピュータはやってくれます。人より速く、正確に。毎回まったく同じ結果になります。手順がすべて先に決まっているからです。
これは普通のソフトすべてに共通します。Excelも、給与計算のシステムも、サイトの問い合わせフォームも同じです。
こうやって先に決めておけない仕事もあります。例を一つ見てみます。お客様から届くメールに自動で返信する仕組みを作るとして、ルールを一つ決めます。
「解約」という言葉が入っていたら、解約手続きの案内を送る
「解約したいです」と書かれていれば、これで動きます。でも「やめたいのですが」だと動きません。「もう使わないので」も動きません。意味は同じで、言葉が違うだけです。
ではリストに足していくのか。「やめたい」「終わりにしたい」「使わない」。どこまで足せば終わるのでしょうか。もう一つ、こう書かれてきたらどうなるか。
「解約はしません。このまま続けます」
「解約」が入っています。ルールどおり、解約手続きの案内が送られます。まったく逆のことをしてしまいました。
言葉は入っているのに意味が反転している。これをルールで拾うことはできません。文章を扱うときに必ずぶつかる問題です。
「この文章をもっと良くして」となると、さらに厄介になります。ルールを書き始めることすらできません。「もっと良く」とは何なのか。
ルールと意味の地図。左:「解約」を含むかで判定するルールは、言い換えを拾えず、否定文で逆の処理をする。右:意味の近さで並べると、解約・やめたい・もう使わない は近く、解約はしません は離れる
AIはルールで動いていない
では、AIはなぜそれができるのか。ルールを一つも与えられていないからです。
かわりに、膨大な量の文章を見せられています。その文章を細かく区切って、数値に置き換えていきます。なぜ数値なのか。比べられるようにするためです。
文字として比べれば「解約」と「やめたい」はまったく別物です。数値に置き換えて比べると、近い場所にあります。
「近い」とはどういうことか。地図を思い浮かべてください。すべての言葉に、その地図上の位置が一つずつ割り当てられているとします。「解約」と「やめたい」は近くに置かれます。「解約」と「天気」はかなり離れています。
なぜそうなるかというと、この二つの言葉が似た場面に出てくるからです。周りに並ぶ言葉が似ている。使われ方が似ている。何百万という文章を見ていくと、その共通点が浮かび上がってきます。数値は、この地図上の位置を表したものです。
これをパターンを覚えるといいます。言葉を丸暗記しているわけではなく、言葉がどう使われているか、そのパターンのほうを覚えています。
リストに入っていない「もう使わないので」が来ても分かるのは、このためです。完全に一致している必要はなく、近ければ足ります。さきほどの二つの問題のうち、一つ目はここで解決しました。
聞くたびに計算し直している
ただ、「近い」というのは、百パーセント確実ではないという意味でもあります。AIは「これは解約の話だ」と確信しているわけではなく、「その可能性が高い」と計算しているだけです。
スマートフォンで文字を打つと、次の言葉を予測して出してくれます。あの予測はいつも同じ言葉ではありません。前に何を打ったかで変わります。しかも一つだけではなく、二つ三つ並びます。可能性のあるものを並べて見せているわけです。AIも基本的には同じで、答えが先に用意してあるのではなく、聞かれるたびに「次に来る可能性がいちばん高いのは何か」を計算し直しています。
もう一つあります。可能性がいちばん高いものを必ず選ぶわけではありません。 可能性のあるものの中から選んでいます。同じことを聞いても答えが変わるのは、このためです。一つ言葉が変われば、その後に続く言葉も次々に変わっていきます。
ExcelとAIの違い。Excelは =1+1 に対して 2 が一つだけ返る。AIは「解約」の次に来る候補を可能性の高さで並べ、その中から一つを選ぶ
Excelとの違いはここにあります。Excelには選ぶ余地がない。AIには選ぶ余地がある。一つ断っておくと、実際に計算していることはこれよりずっと複雑です。
言葉を一つずつ読んではいない
さきほどの二つ目の問題が残っています。「解約」が入っているのに意味が反転していた、これです。
「解約はしません。このまま続けます」
ルールでは拾えませんでした。AIはどうやって拾っているのか。
昔のこうした仕組みは言葉を一つずつ順番に読んでいたので、前後のつながりをうまく捉えられませんでした。2017年にTransformerと呼ばれる方式が出てきて、今使われているAIは、ほぼすべてこの方式の上に作られています。
この方式は、文の中の言葉を一度に全部見ます。 そのうえで、どの言葉がどの言葉とどれくらい関係しているかに点をつけていきます。渡した文のどこが重要かを、AI自身が決めているということです。
「解約はしません」で「しません」が「解約」をひっくり返している。これが分かるのは、文全体を一度に見ているからです。
聞いていないのではなく、別の意味に読んでいる
ここに、最初の問いの答えがあります。答えは、上で説明した二つを合わせたものです。
一つ、AIは可能性のあるものの中から一つを選ぶ。
二つ、文全体を見て、どこが重要かを自分で決める。
渡した文が二通りに取れると、どうなるか。可能性の高い答えが二つ並ぶことになります。AIはそのうちの一つを選びます。どちらを選ぶかは、こちらでは決められません。解約の例で続けてみます。
一つの文が二通りに読める図。「解約について教えてください」から「解約したい→手続きの案内」と「知りたいだけ→仕組みの説明」の二本に分かれ、AIがどちらか一つを選ぶ
「解約はしません。このまま続けます」
これははっきりしています。たいていの場合、AIは正しく読みます。
「解約について教えてください」
こちらはどうでしょうか。解約したくて書いているのか。手続きを知りたいだけなのか。解約すると何を失うのかを知りたいのか。
人が読んでも分かりません。AIが読んでも分かりません。分からないまま、AIは一つを選んで返してきます。こちらが意図したのと違うほうを選べば、「言うことを聞かない」になります。
このメールを同僚に渡したらどうなるか。聞き返してくるはずです。「このお客様、解約したいんですかね。それとも聞いてるだけですかね」
AIも聞き返してくることはあります。曖昧だと分かる場合は、選択肢を出して尋ねてきます。問題は、AIのほうが分かったつもりになっているときです。そのときは尋ねません。そのまま進めます。
こちらは一つの意味で書いた。AIは別の意味で受け取った。どちらも通じたと思っている。そこで出てくるのが「言うことを聞かない」という言葉です。
実際には聞いています。言われたとおりにやっています。言ったほうの言葉に、意味が二つ以上あっただけです。
人に仕事を頼むときにやっていることと同じです。何を、誰に、いつまでに。そこを伝えてから渡す。AIにも同じことをするだけです。



