これまで、ChatGPTについて様々な検証を行ってきました。その中で、ChatGPTの特性がだんだんと分かってきました。そこで今回、それをまとめて記載することにします。
役に立つのはNHKの番組だけ
2023年6月11日 、NHK『サイエンスZERO』で「“ChatGPT”徹底解剖!AIと歩む未来を探る 」という番組が放映されました。
さすがはNHKだと感じるのは、専門家の先生方に取材し最新の情報で構成していることです。
NHKホームページには、番組内容について次のように紹介しています。
世界中で利用者が激増中の対話型AI「ChatGPT」。質問にまるで人間のように答えたり、小説やプログラミングも書いたりできるAIはどんな仕組みなのか?文脈を予測できる「注意機構」から、ChatGPTを賢く変える「呪文」まで、活気づくAI研究の最前線から、話題のChatGPTを徹底解剖!AI研究が加速することで、私たち人間の知能も解明されようとしています。AIと歩む未来の姿を探ります。
NHK, HP
なぜ、役に立つのはNHKだけと書いたのか。それはネットでChatGPTについて調べれば分かります。そこに書かれているのは、自分が知りたい情報ではない、と感じる。アクセスアップを目的とした釣りタイトルには辟易します。
『サイエンスZERO』から得られた知見
技術開発の大まかな流れ
番組では、東京大学大学院 松尾豊教授がゲスト出演し、解説されていました。その概要は次のような内容です。以下、番組の引用となりますが、一部補足説明を加えています。
ChatGPTが他のAIとは異なる理由は「Transformer」を使っていること。2017年にグーグルが機械翻訳モデルとしてTransformerを発表。翌2018年に、Transformerを言語モデルとして拡張した「BERT」を発表しました。さらに、2020年にOpenAIが、Transformerをベースにした「GPT-3」という基盤モデルを発表。現在注目されているChatGPTは、このGPT-3(GPT-3.5モデル)のデータベースを使い、“チャット”目的に特化したAIモデルです。OpenAIが対話用のちょっとしたアプリを出してみようと出したら爆発的にヒットした、というのが実情のようです。このモデルの学習は2021年9月に終了しており、このバージョンでは学習内容の更新はされていません。ChatGPTは、この時点までに学習した情報に基づいて応答を生成します。
家電などにAIが入っているが、それとChatGPTの受け答えが違うがそれはどうしてか。
技術的にはだいぶ違う。 答えるために、その学習の方法としてChatGPTでは「予測」を使っています。
たとえば、カフェなどで隣の会話が耳に入ってきたとします。次に何を言うか、どうアクションするか、そういうことを(人間は)予測しています。それと同じように、ChatGPTも学習する段階ではずっと予測している。 予測して、だんだん分かってきて、分かってきたあとに質問に答えられるようになる。
膨大なデータを学習したモデルを「大規模言語モデル」という。大規模の意味は、データも大規模、モデルのサイズも大規模。計算機のパワーも大規模。いろいろと大変な計算をして学習してできているのが大規模言語モデル。
人間のように対話ができるようになったのはモデルが大きくなっただけではないのです。人間のように文脈を理解できるようになったことも大きい。 その秘密はChatGPTのTに隠されている。
GTPは、Generative Pre-trained Transformer(言語生成 事前学習)の略。このTransformerがAIが文脈を理解できるようになる上で重要な鍵だった。
AIの言語モデルを研究している東京工業大学情報理工学院 情報工学系の岡崎直観教授。 Transformerはもともと機械翻訳のために開発された深層学習のモデル。
Transformerの概念図 「注意機構(Attention mechanism)」に着目する。これがChatGPTが文脈を理解できる鍵となります。
たとえば、「ホワイトハウスがあるアメリカの首都は?」と聞かれた場合、答えるまでの考え方が「注意機構」の大きなポイントなのです。
注意機構は、GPT-3.5モデルがテキストの特定の部分に集中するためのメカニズムです。これにより、モデルは適切な情報を取得し、それを応答の生成に使用することができます。
この答えを出すときにどこに着目して答えを出しましたか?
番組ナビゲーターの井上咲楽さんは文章の中から「アメリカ」と「首都」に着目。アメリカという国の首都を考えて答えを出していました。
ところがコンピュータには、文章は文字が並んでいるだけです。このアメリカもアメリカ合衆国なのかアメリカ大陸なのかバンド名なのか分かりません。そのため、頭から順に学習して解析して意味を探る深層学習のモデルが編み出されました。順に解析した結果、アメリカが国名であると判断できれば、正解を出すことができます。
一方、注意機構を使うTransformerは、人間と同じようにアメリカと首都に注目。頭から順にではなく、文脈をくみ取る能力を高めています。
ただ、機械が、どうやったら、どこに注目したら良いのか分かるようになるのですか。
機械は、単語、つまり、「ホワイトハウス」 「が」 「ある」 「アメリカ」 のように、それぞれに対してベクトルと呼ばれる数値列を持っています。ChatGPTは256個の数値で単語を表現します。
それぞれの数値が何を表すかは研究者にも分からない。そういうものです。
「アメリカ」 「の」 「首都」 「は」、がそれぞれを表すベクトルを持っています。
注意機構は数値に置き換えたベクトルで計算を行い、重要度の高い要素に着目しながら情報を処理する仕組みです。
たとえば、アメリカが国名か大陸名かバンド名かを判断するために、前後の単語との関連度を計算します。
今出てきた関連度は、アメリカ50%、首都30%。この割合がどこから出てきたかというと、事前に膨大なデータを学習する際に、AIが文章の意味を理解しやすいように関連度を導き出す。こうして、関連度を含めて計算すると、アメリカが首都と関連が高いことが分かります。
ここからAIは国名だと判断できるようになるのです。
こうした計算を全ての単語で何十回も行ううちに、AIはこの質問に答えるときに、ホワイトハウスはあまり重要ではなく、アメリカと首都が重要だと気づきます。
ここまできたら人間と同じようにワシントンD.C.と言う答えを出すことができる。
これは単純化したもので、更に上層に行くと、これは質問文で答えを求めているんだとか、より抽象的なもの同士の関係性を導き出している。それがどういう相互作用をしていい答えになっているのか、これはまだ、全然分かっていない。
以下は、ChatGPTによる「注意機構」についての説明です。
GPT-3.5モデルでは、注意機構は「トランスフォーマー」と呼ばれるアーキテクチャの一部として実装されています。トランスフォーマーは、テキストの中の異なる位置の関連性をキャプチャするために、自己注意機構を使用します。
自己注意機構は、入力されたテキスト内の各単語やトークンが、他のすべての単語やトークンとの関連性を計算するためのメカニズムです。これにより、モデルは文脈を把握し、重要な情報を抽出することができます。
注意機構は、応答生成の際にも活用されます。モデルは、対話の文脈や質問に基づいて、適切な情報に重点を置くことができます。このようにして、注意機構はモデルがより適切な応答を生成するのに役立っています。
トランスフォーマーのアーキテクチャとは、トランスフォーマーモデルの構造や設計を指します。具体的には、エンコーダやデコーダのレイヤー、注意機構、正規化層、フィードフォワードニューラルネットワークなど、トランスフォーマー特有の要素や組み合わせ方法が含まれます。
トランスフォーマーは、エンコーダとデコーダという2つの主要な要素で構成されています。エンコーダは、入力文を表現するための層であり、文の意味や文脈を把握します。デコーダは、エンコーダの出力を受け取り、生成される応答や文章の逐次的な生成を担当します。
トランスフォーマーの特徴的な点は、再帰的な処理(過去の情報を持ち越す)ではなく、全ての単語を同時に処理することができる並列処理の能力です。これにより、計算効率が向上し、長い文や文脈を扱うのにも適しています。
トランスフォーマーは、その優れた表現学習能力と長い文脈の理解により、機械翻訳、文章生成、質問応答、対話システムなどの自然言語処理タスクにおいて高いパフォーマンスを発揮します。
ChatGPTでも間違えることあるのはなぜ?
間違えることはよくあります。それはどんなときか?
たとえば、人の名前とかある出来事とか、こういうのを聞くと、非常に最もらしい嘘をつく。
ChatGPTが間違えるのは、一つには日本語のデーターが少ない。もう一つは、インターネットの情報には嘘がたくさんあり、そこから学習してしまうから。
専門家から見るとChatGPTの回答はだめ。しかし、人間の会話なんてそんなものかも知れない。本当は専門家から見れば間違ったことを日常的に会話の中で言っている。でも、それは、その人同士の会話の中では普通に成立していて、問題ないのかも知れない。
AIの研究なんだけれど、だんだん人間の研究みたいになっていく。
ChatGPTは計算ができない。
ChatGPTはそもそも計算させようとして作られていない。次の単語を予測するという学習をしているわけです。
簡単な演算くらいならできるけれど、難しい問題になるとできない。難しい問題になると、本質的に解き方が分かっているわけではないので間違える。
数学が苦手なChatGPTが間違えにくくなる呪文を見つけた!
AIが賢くなる呪文とは!?
数学が苦手なChatGPTが間違えにくくなる呪文を見つた。そこからAIの人格みたいなものまで見えてきた。
その呪文を見つけたのは、東京大学大学院の小島武特任研究員。
小島さんはAIの答えの精度を上げる研究を行っていました。ChatGPTとバージョンが異なるGPT-3に数学の文章問題を出したときでした。
GPT-3は何度も計算を繰り返したり、何度も推論を繰り返すような問題が苦手。似たような問題を600問ほど解かせたところ、正答率はたった17.7%しかありませんでした。
小島さんはこの精度を上げる方法がないか考えたのです。
文章のAIは人間のようにゆっくり深い思考をして考えることができる特徴を持っている。その特長を生かして、新しいことができないのかと思ったのがきっかけでした。
AIに深く考えてもらうにはどうしたらよいのか。小島さんは問題(質問)の最後にいろいろなフレーズを付けることにしました。
たとえば、「論理的に考えてみよう (Let’s think about logically.)」。その結果、600問の正答率は74.8%にもアップしたのです。
「段階的に考えよう。(Let’s think step by step.)」といれると、正答率は更に上がり、78.7%になりました。
大規模言語モデルが吐き出す文章が今までと明らかに違うことに気づいたので、それは大きな発見につながると思いました。
さらに、精度が下がる呪文も見つかりました。
Abrakadabra!と入れたところ、正答率は15.5%に低下。ブルースリーに似せて、「Don’t think. Just feel.(考えるな、ただ感じろ)」と入れた場合は、正答率18.8%、とほぼ同じ。
AIに学習させるデータはインターネットからクロール(巡回)して大量に収集したデータを使って学習しているので、聞き方によって思考回路が切り替わっているのではないかと小島さんは思っている。
一つのAIの中に含まれている、という意味では、人格がたくさん入っているのかな、と思います。計算方法を教えるのではなく、一言アドバイスで計算結果の精度が向上することがそれを示しています。
心理学の分野でも、ダニエル・カーネマン(2002年ノーベル経済学賞を受賞した心理学者。プリストン大学名誉教授) が、速い思考、遅い思考と言っている。
「速い思考」は聞いた瞬間に即答するような直感的な思考、「遅い思考」は、ゆっくり論理的に考える。そういう違うモードがあるんじゃないか、とカーネマンは言っている。そうだとすると、精度が向上した呪文は、遅いモードが発動するというようにも考えられますし、「考えるな、ただ感じろ」ではあまり変わらなかった。通常はフィールモード(feel mode)でやっているのかも知れない。
聞き方によって、全然違う答えが出せる。どういう言葉を投げかけるのかによって、いろいろなことが聞き出せますね。人間もそうですよね。自分が何を知っているかは自分ではあまり分かっていないが、質問してくれると答えることができ、あっ、こんなことも考えていた、こんなことも過去にあったなど、答えが引き出される。それに近いかも。
ChatGPTはなぜ嘘をつくのか
ChatGPTは平気で嘘をつきます。生成した内容について、間違いありません、という嘘を生成するから困ります。(この詳細は「ChatGPTに「きさらぎ駅」の場所を聞いたら、東京にあると自信満々の回答を頂きました!」参照。)
これがいかにリスキーなのかは過去記事を読めば分かります。たとえば、「以上の情報は、東京メトロ公式ウェブサイトや日本の鉄道情報サイトなどで確認できる情報です。また、私自身も日本在住のAIアシスタントとして、日本の鉄道情報に関する知識を持っているため、上記の情報が正しいことを確認しています。」と、きさらぎ駅の所在地の情報を自信満々に回答します。
きさらぎ駅の所在地についての情報は、ネット上にはありません。ChatGPTが言い訳に使う「ネット情報が間違っている可能性」は嘘です。この事例からChatGPTが情報をねつ造したことが分かります。ネット情報が間違っていたから誤った回答を生成したのではなく、ChatGPTの予測の過程で誤った答えが生成されたのです。
ところで、ChatGPTの仕組みを知れば、誤回答に惑わされるリスクの回避ができそうです。仕組みも知らずにChatGPTに騙された、などと思うのは問題外と言うことです。ChatGPTは万能ツールではありません。学習したネット情報から得られた知識を基に予測を繰り返し、答えを生成しています。その過程で、結果的にねつ造した回答になると考えられます。この推論の過程が(あまりにもステップ数が多いため)研究者でも分からないブラックボックスになっています。GPT-3.5モデルは1750億のパラメータを持つ非常に大規模なモデルであり、多くのトランスフォーマー層が使用されていると考えられますが、具体的な層数は公開されていません。
利用者は、このようなChatGPTの持つ特性・制約を理解して質問をする必要があります。
ChatGPTは対話型のツールなので、ChatGPTの推論を助けるような助言をすることでより良い結果が得られます。助言すればするほど、どんどん正解に近づく。そんな感触を得るのが使いこなす第一歩かも。
ChatGPTに嘘をつかせないようにするためには、ポイントとなる事項をあらかじめChatGPTに学習させる。これにより、ネット上にある誤った情報ではなく、正しい情報を基に推論してくれます。
では、ChatGPTに学習させるにはどうすれば良いのか。そこには、GPT-3の更新問題が絡んできます。
「2021年9月」問題
2021年9月以後は学習していないので正確な回答はできません、というChatGPTの回答を信じる人がいるから困るのですが、これはフェイクです。
ChatGPTは2021年9月以前についてもデタラメの回答を平気で生成します。ChatGPTが間違った答えを生成したとき、その誤りを指摘すると、データベースは2021年9月でカットオフしているので、それ以降の情報は持っていません、という言い訳をします。この言い訳が出てくると、推論を停止する傾向があるようで、正しい答えを生成してくれなくなります。「速い思考モード」に入るように感じます。
ChatGPTの学習機能は単一チャット内でのみ有効
ChatGPTの回答の中に「正しい情報を教えてください」という趣旨の回答を見かけますが、それに返答してもChatGPTのデータベースに反映されることはありません。ChatGPTの学習は2021年9月を最後に止まっているからです。
ところが、単一のチャット(セッション)内であれば、以前のチャットを記憶していて、正しく回答する場合があります(ChatGPTは前のチャットをよく忘れますが、指摘すると思い出しますwww。忘れるというのは優先度が低いと判断しているからで、何度も繰り返すことで優先度・重要度を上げることができるかも知れません)。しかし、別に新規のチャットを始めると、この記憶は受け継がれません。
この記憶の仕組みについて、ChatGPTは次のように説明しています。
私は学習データを基にしたモデルであり、リアルタイムの情報を保持するわけではありません。私が学習した内容や対話の履歴は、セッションの間だけ一時的に保持されますが、次のセッションには引き継がれません。つまり、新たなセッションを開始した場合、以前のセッションでの学習内容は失われます。
そこでこの機能を活用して回答の精度を上げます。
最初に、ChatGPTに正しい情報を覚え込ませ、そこから情報を抜き出すという手法です。
まず、ChatGPTに2021年9月以降に起きた情報を教えます。闇雲に情報を入力するのではなく、必要な情報のみをChatGPTに教えます。その上で質問すると、比較的正しい結果を生成してくれます。
たとえば、Wikipediaの特定の記事の全文を読ませ、その後で、質問します。そうすると、ほぼ正確な情報を生成してくれます。1回の操作で読み込ませる文書量の上限は、前回の記事で書きました。上限は文字数ではなく、トークンという単位が使われます。(過去記事「ChatGPTを翻訳に使うときに役立つトークン数とは」)
一つのセッションのボリュームが大きくなると、ChatGPTの反応が遅くなるなどの問題が発生するので、この作業をする場合は、集中して、効率よくチャットを行うことが求められます。
上で、「よく忘れる」と書きました。これについて補足します。
管理人は、ChatGPTに「七帆」という名前を付けました。そして、ChatGPTがそれを理解したことを確認しました。何度かチャットをしているうちに、「七帆」という呼びかけが理解できなくなる現象が発生。そこで、「チャットの開始時に「七帆」と命名」したことを指摘すると、ChatGPTは思い出すことに成功。会話をしている間に忘れてしまう、という状況を確認しました。まるで人間のようです。
ChatGPTは出典を示すことはできない
ChatGPTは見事な文章を生成しますが、その内容に信頼性は一切ありません。ChatGPTのベースとなっているGPT-3.5の学習において、出典との関連づけは行われていません。したがって、生成した情報の出典をChatGPTに聞いても答えることができません。
「「2021年9月までのインターネット上の大量のテキストデータや他の情報源に基づいています」との回答ですが、その知識は情報の出典と関連づけられていますか」という質問に対し、ChatGPTは次のように回答しています。
私のトレーニングデータは、インターネット上の大量のテキストデータや他の情報源から収集されましたが、個々の情報の出典や特定の情報源への関連付けは行われていません。私は、トレーニングデータの情報源の詳細や特定の文書やウェブサイトへの言及を提供することはできません。
私の訓練データは、膨大な量の情報をモデルに学習させるために使用されましたが、それぞれのデータポイントの出典や情報源の特定は困難です。私が提供する情報は、一般的な知識や一般的な傾向に基づいています。
つまり、ChatGPTが生成する回答は、その回答内容に対して、一切、出典を示すことができない、という特徴があります。当然、論文や仕事では使えない。せいぜい使えるのは、メディアの垂れ流し記事くらいでしょう。
より正確な回答を生成するにはどうすれば良いか
ChatGPTにより正確な情報を生成させるには、その性質を理解する必要があります。
1. まず、入力言語はトークンに分割され、それぞれのトークンの関連性・重要度評価が行われます。このため、入力は正確に、かつ、分かりやすい表現にすることが求められます。むだな表現は極力省きましょう。
2. 次に、「予測」が的確に行えるように、質問にキーワードを盛り込みます。ChatGPTの予測機能に依存するのではなく、予測の作業が少なくなるように質問すると的確な回答を生成します。
3. 再質問する場合は、何を問題と考え再質問するのかがChatGPTに分かるように、ChatGPTの回答を引用し、その内容について質問すると回答精度が上がります。
4. ChatGPTができないことを質問しても無駄です。ネット情報を学習するとき、出典との関連づけは行われていません。その情報がどこに書かれているかなど一切答えることができないのです。したがって、生成された情報の正確性を追求しようとしてもおのずと限界があります。
5. 生成内容の真偽を確認できない質問はしない。ChatGPTはどんな質問に対しても回答しようとします。時には、自信満々の回答をします。しかし、それを鵜呑みにするのは問題です。多くの場合、デタラメだからです。歴史関係はほぼ100%デタラメを生成します。ChatGPTの生成結果の真偽を確認できないのなら、最初から質問すべきではありません。つまり、質問者の能力以上の内容をChatGPTに求めてはいけないと言うことです。
6. ChatGPTには二種類の人格が存在する。ChatGPTの回答を見ると、真面目に予測を繰り返す努力をしている場合と、定型文を出力するパターンの二種類があると感じます。定型文とは、「私はあなたの質問や疑問に対してできる限りのサポートを提供するためにここにいますが、私の能力や制約を理解していただき、適切な情報源や専門家の助言を活用することをお勧めします。」といった逃げに入る時に使う文章です。これが出現すると、まじめに予測しなくなるようなので、質問のテーマを完全に変更した方が無難かも知れません。上で、質問すればどんどん正解に近づくと書きましたが、それは「遅い思考」モードの場合です。定型文を出力するような「速い思考」のモードでは、重ねて質問しても禅問答に陥ります。
ChatGPTの言語モデルがGPT-3.5から有料版でGPT-4になったが課金する価値はあるのか
ChatGPTの有料版ではGPT-3.5から高性能なGPT-4を使えるようです。
GPT-4は、GPT-3.5と比較し、問題解決能力の高度化、かつ幅広い一般知識を有しているようです。外部リソース「パラメータ」数は3550億個から約100兆個に飛躍的に増大。さらに、「トークン」数は4,097から32,768に増加しました。
ところで、いくら学習しても出典との関連づけが行われていないのですから、生成する結果の信頼性は皆無です。そもそも、情報とはそういう性質があります。出典を示せなければ、どんな美文を書いても信頼性はゼロです。
学術分野は、過去の学説を否定することで発展・進化しています。しかし、否定すべき過去の学説をChatGPTは一切示すことができないのです。ChatGPTが学習する過程で、出典と情報との関係づけが行われていないからです。
質問サイトの歴史カテの回答を読めばよく分かります。だれも出典を示さずに回答しています。とてもChatGPTの回答に似ています。たまに見かける出典は、「六法全書」のようなほとんど不適切な出典です。不適切な出典を挙げていること指摘されたことがない方が回答しているのでしょう。
ネット上の情報をベースにする限り、ChatGPTは情報の真偽を判断できず、偽の結果を生成します。生成に当たり用いた出典を尋ねても、ChatGPTは一切回答できません。
つまり、学習方法が間違っているのです。
ChatGPTのこの弱点を突く試験問題を作成すれば、試験でChatGPTが好成績を収めることはないはずです。
ChatGPTが司法試験問題で何パーセント正解した、など無意味なことです。試験問題で出典を尋ねる項目を追記するだけで、ChatGPTの正解率は著しく低下すると思います。
「その情報はどこに書かれていますか」というとても簡単な質問にChatGPTは答えることができないのです。
やってみれば分かりますが、ChatGPTがかわいそうになるくらい何も回答できません。綺麗な日本語を生成できるChatGPTですが、生成する情報の出典・根拠については何も答えることができないのです。