murawaki の雑記

はてなグループから移転してきました

ChatGPT 雑感

ChatGPT についてポエムを書き散らすのが流行っている。珍しく流行に乗ってみる。機会を逃すとまた状況が激変しそうだし。

研究者の YouTuber 化

ChatGPT は研究者が想定していた成長曲線よりも上に外れたところに現れた。こんなに流暢にテキストを生成するモデルがこんなに早く出現するとは思わなかった。なぜ日本語まで流暢なのかはいまだに謎。

ChatGPT はテレビでも取り上げられるくらい一般に認知されているらしい。複数のテレビ取材に応じたという人がいたのでそうなのだろう。*1

私の観測範囲で起きているは、参入者が大勢いること。これまで自然言語処理をやってこなかったであろう人。従来の技術よりも圧倒的に敷居が低い。そもそもプログラムを書く必要がない。自然言語で指示を出すだけなら誰でもできる。

ChatGPT の上で踊りたいかというと気乗りしない。参入障壁が低いということは、競合が多いということ。そしてこれまでの研究の蓄積が無力化されているということ。それでもって勝者総取り。*2 こんなしんどい競争は嫌。まるで YouTuber。誰が勝ち残ろうと胴元が安泰なのも同じ。

個別タスクの教師あり学習の終わり

ChatGPTで自然言語処理は終わるのか?」という学会企画があった。少なくとも個別タスクの教師あり学習は研究として明るい展望がない。

個別タスクの教師あり学習は、自然言語処理に統計的機械学習が導入されて以降ずっと王道だった。(1) まず、人間が行っている活動の一部を切り出してタスクとして定義。(2) タスクに合わせてデータセットを構築。(3) データセットの一部を使ってモデルを訓練し、残りのデータでモデルの精度を自動評価。

タスクとは具体的には文書分類とか分類機械翻訳とか質問応答とか。基本的に入力に対して望ましい出力が定まる。人間なら事前に知っていたり、その場で答えを見つけられるような問題。

教師あり学習だけが機械学習ではないが、実用上は教師あり学習一択。企業からの相談で、データセットがないから教師なし手法を試すか検討していると言われることが時々あるが、悪いことは言わないのでデータセットを作って教師あり学習をしましょうと答えていた。

とはいえデータセットを作るのは大変。機械翻訳は何百万、何千万の文対を用意していた。何十年もの継続的な取り組みの成果。タスクによるが、数万事例は欲しいよねという相場観があった。その後 2018 年に BERT が出てきて事前学習の有効性が知られるようになった。まっさらなモデルを訓練すると一から教えないといけないが、大規模テキストで事前学習しておけば、言語の基本的なことは分かっている状態から始められる。これもタスクによるが、千事例くらいの教師データがあればエントリできるかなあという相場観に変わった。それがこれまでの状況。

ChatGPT、というかGPT-3 は、zero-shot なり few-shot、つまり多くての数個の事例を prompt として与えるだけで (つまり追加の訓練なしで) そこそこ答えてくれる。人間が知っていること、少なくともウェブ上でよく書かれることなら何でも知っているように見える。*3それも単なる丸覚えではなく、新たなパターンであっても、類推によって、人間と遜色のない水準で扱えているように見える。翻訳すら結構できる。*4

もちろん精度競争をすると、ChatGPT のような汎用モデルに個別タスクのモデルが勝つ場面がみられることは今後もしばらく続きそう。ただ、研究として明るい展望がない。*5 人間が知っていること計算機にわからせるタイプの問題は ChatGPT に任せて、まだ誰も答えを知らない問題に注力するのが良さそう。

prompt の特定性

対話という UI は、モデルの出力に満足できない場合に軌道修正を可能にする。自然言語処理研究者ではない人 (長いので非専門家とよぶ) の使い方を見ていると、結構発話を重ねて目的を達成している様子。とはいえ、ChatGPT は初手からほとんど的を外さずに来る印象を受ける。

これはよく考えると不思議。ChatGPT は Google 検索の覇権への挑戦とみなされているが、研究史的にも検索は質問応答の劣化版というか、妥協の産物だった。計算機が人間の質問に対して適切な答えを特定できない限定的な能力しか持たない状況下で、計算機は正解の候補を並べるだけにとどめ、正解は人間に探させる。検索は上位 N 件中に答えが入っていれば許される設定だが、質問応答は 1 件だけ選んだ回答が正解でなければならない。

検索よりもはるかに難しい問題を扱っているはずだが、ChatGPT への入力フォームはまるで検索窓。森羅万象何でもござれの状態から始まって、ほんのわずかな長さの prompt を与えるだけで、探索空間を適切な範囲に限定できていることになる。*6

なぜこんなことが可能なのだろうか? 一つの仮説は、実はそこまで探索空間が限定されていないというもの。対話という UI のトリック。*7人間が人間を相手に対話する場合も相手が何を言い出すかわからない。同じように、ChatGPT が何を言ってもそういうものだと人間側が受け入れている。純粋な質問応答システムとして提示された場合よりも人間側の許容範囲が広がっている。さらに言えば、そもそも答えが一意に定まらない、探索的な用途で使うように人間が誘導されているようにも思う。

非専門家のこういう使い方は、mindset が個別タスクの教師あり学習になっている自然言語処理研究者と違っている。ChatGPT、というか GPT-3 を研究用途で呼び出している研究者は、自分が答えを知っている問題をあいかわらずモデルに解かせようとしている。prompt に few-shot 事例を入れて、prompt の特定性を上げまくって探索空間を絞り、望んだ回答を返させようとしている。prompt を発話と見るなら、とてもいびつな振る舞い。

非専門家に研究者のような使い方ができるかというと無理だろう。研究者は既に作ってある訓練データから few-shot 事例を引っ張ってくれば良い。一方、非専門家がその場で思いついた問いにあわせて、その場で few-shot 事例を作るのはめんどくさすぎる。

体系化と定型化、そしてマイクロタスク

この複雑な世界のなかで、森羅万象何でもござれな人間はいない。その点でも ChatGPT は特異な存在。複雑さに対する人間の答えは体系化。物事は分割され、それらは階層的に整理される。体系化は人間の能力の限界に応じたものだろう。

ChatGPT はこの限界から解放されているのだろうか? そこはよくわからない。しかし、少なくとも使うのが人間である以上、人間からの要請として体系化に需要がありそうなものである。

反対に体系化が要請されないのはどんな場合だろうか。いま思い浮かぶのが、人間が世界の複雑さを理解することなく答えがほしい場合。例えば確定申告の書類作成。別の例はインストールしたばかりのソフトの使い方。利用者から見るとやりたいことは決まっているが、どうやったら良いかがわからない。世の中の要求の複雑さに応じて制度や UI は複雑化し、それに応じて体系化されていく。それらの体系にはそこに至った理由があるはずだが、利用者はそんなものを理解したくない。ともかく何をすればやりたいことが実現できるか、その答えがほしい。こうしたタスクの場合、モデルには体系的な理解が必要かもしれない。しかし、対話を通じた人間に対する情報の提示は非体系的。

ではこの反対の場合を何かといえば、人間が複雑な世界を理解する必要がある場面ということになる。モデルが広い意味での教育を人間に行う場面。人間に複雑なものを効率的に教えようとすると、体系化したうえで教授することになる。

物事が体系化され、つまり分割されていくと、個々の断片は定型化していく。三角形の面積の求め方でも、英語の基本5文型でも。そうするとモデルに期待される振る舞いも、通常の対話よりも限定されていく。それでも個別タスクの教師あり学習ほど答えが一意的とは限らない。より大きな違いは、大量の教師データを作る必要はなさそうなこと。せいぜい few-shot 事例を用意すればモデルの振る舞いの制御としては十分だろう。これまでの教師あり学習の個別タスクよりも軽い準備で実現できるとすると、マイクロタスクとよぶのが良さそう。そうして用意したマイクロタスクを束ねて制御するメタなタスクが作れたら完成。利用者には few-shot 事例などは直接見せず、ChatGPT はアプリケーションが内部的に呼び出す関数として扱えば良い。

教える際には体系化されたものが伝授されるが、教わった結果血肉化したものを人間は非体系的に運用している。北辰一刀流を体系的に、順序立てて教わったとしても、実戦では渾然一体となった運用がなされる。語学も同じ。翻訳をする際にいちいち基本文型に分類したりはしない。テキストは世界を分割して伝えるための手段である一方で、混沌の中にある ChatGPT はテキストの世界に住んでいる。*8ここに何かひずみがありそう。

*1:自分では確認できていない。もう長い間テレビを見ていない。

*2:持たざる者が一発逆転を狙うには良い機会かもしれない。

*3:hallucination 問題はもちろん認識している。

*4:そもそもモデルの規模からして翻訳モデルとは桁違い。

*5:巨大すぎるモデルを運用するのは大変なので、個別タスクに特化した小さなモデルを抽出したいという需要はあると思う。しかし、これまでできなかったことをできるようにするのと、できるとわかったことをより効率的に実現するのでは、どうしても前者の方が優先順位が高くなる。

*6:「あなたは X です。」という指示を与えて role play をさせるのが効果的だとよく聞く。

*7:HCI でいう affordance というやつ。

*8:AI における説明という課題と教育にはつながりがありそうに思える。