【AIの性能向上のカギを握る2つのポイント】「大量のパラメータ」か「人間からのフィードバック」か
今世間を騒がせているchatGPT。一体なにがその「凄さ」を支えているのか、日本製chatGPTはできるのか。AI研究者が解説します
Contents
※本記事は以下の記事をもとに解説・感想を追記したものです
https://www.nikkei.com/article/DGXZQOUC0625N0W3A400C2000000/
機械学習の研究者たちの輪を飛び出して、今や全世界をにぎわせているチャットボット、chatGPT。
本記事ではchatGPT、およびその背景技術であるGPT3, GPT4の概要に触れながら、
何がchatGPTを一躍時のAIにしたのか、そしてこれからの方向性について、機械学習の現役研究者の視点から考えてみたいと思います。
- 今更聞けないチャットボットchatGPT
- chatGPTを支える言語モデルのすごいところ
- (ちょっと余談)機械学習の最新情報を得るための秘密のツール
- 日本はchatGPTに追いつけるの?
1.いまさら聞けないチャットボットchatGPT
私がchatGPTを初めて触ったのは、2023年の頭ごろ。
後輩の研究指導に追われてふと息抜きに見ていたTwitterで、とてつもない盛り上がりを見せていたのがchatGPTでした。
これまでも自然言語、すなわち私たちが普段話している言葉を機械学習に学習させて、会話をしようとか、問題を解いてもらおうという研究はたくさんなされてきました。
そして、それらの研究とchatGPTに使われている技術の間に、それこそ性能が倍になるような、それほどの差はありません。
ですが、かつて、ここまで広く多くの人に使われたチャットボットはありませんでした。
それはなぜか?
より、一般の方(本記事では、機械学習を専門にしていない人をこのように呼ばせていただきたく思います)にも響くような会話ができたからだと私は考えています。
響く会話とはどういうものか?
以前とある方とお話していた時のお話です。
私「chatGPTって本当にすごいんですよ!」
Aさん「確かにすごいね。でも、返事がすごく機械的で温かくないなあ…」
衝撃です。
何が衝撃かと言いますと、私(普段から機械学習に触れている)にとっては、十二分に人間に寄り添った、暖かい話し方をchatGPTがしているように聞こえていたのです。
おそらく、会話において研究者が許容できる「機械らしさ」と、一般の方が許容できる「機械らしさ」には雲泥の差があって、
これまでのどの言語モデルも、その壁を越えられなかったのだと思います。
もっと正確に言えば、その壁を超えようとすら考えていなかったに違いありません。
というのも、言語モデルの研究者たちの興味はchatGPTの出現以前、多くは「以下に正確に問題に回答するか」に集まっていたように思います。
問いに正しく答えられていれば、「答えはA」でも「その答えはAだと思います」でも何ら違いはありませんでした。
ですが、人を相手に取るのだとすれば、その差は一目瞭然です。
どちらにより親しみを感じるかと聞かれれば、多くの方は後者を選ぶのではないでしょうか。
研究者だけを対象とせず、広く多くの人に使ってもらえるシステムとなったこと。
その背景には、人間に寄り添おうとしたオープンAI社(chatGPTの開発企業)の工夫があるように思えてなりません。
ただ、残念なことに、chatGPTはどんなに人に寄り添う回答をしようとしたとしても、所詮は機械学習です。
機械学習は、既に存在するデータをもとにルールを学習し、尤もらしい結果を返してくれるものです。
(実はこの「尤もらしい」という言葉も、適当に選んだのではなく機械学習の学習に重要な言葉なのですが、話が脱線しまうので割愛します。)
つまり、chatGPTも、①存在するデータを学習して②それっぽい言葉を返している、だけにすぎません。
そのため、学習データに含まれていない未来の話はでっち上げになってしまいます。
ですがそれを補って余りある魅力を備えていることは間違いありません。
暇なときのお話相手。
ブレインストーミングのお相手。
論文探しのお供。
使い方はとどまるところを知りません。
個人的一押しは、プログラミングのお手伝いをしてもらうことです。
きちんとシンプルな形に分解してあげる必要はありますが、口語で書いた命令文も、それらしくプログラミング言語に代えてくれます。
人間の言葉をプログラミングに落とし込んでくれる。。。
プログラミングを学び始めたときに「あったらいいのに」と夢に描いていたことが実現したのです。
こんなにわくわくすることはありません。
こちらが「こんにちは」と話せば「こんにちは」と返してくれる。
「ありがとうございます!」といえば、「どういたしまして!」と返してくれる。
その知識は過去の情報だけかもしれませんが、それでも、こちらのテンションをくみ取りながら、たくさんの会話をしてくれます。
きっとあなたの「自然な会話」の許容範囲内の言葉もたくさん返してくれることと思います。
ぜひ、遊んでみてはいかがでしょうか。
2.chatGPTを支える言語モデルのすごいところ
こんなことばかり書いていると機械学習を学んでいる学生としての立場がありませんので、少し技術的なことに触れたいと思います。
重要なのは以下の4つです。
- スケーリング則:モデルが複雑であればあるほど性能が上がる!
- 人間によるフィードバック:人間に好まれる対応がわかる!
- Few shot learning:新しいタスクにすぐ対応できます!
- 増え続けるデータ:私の書いた「こんにちは」も栄養になっているはず…
ひとつずつ解説していきます。
スケーリング則
この法則は、モデルが複雑になればなるほど性能が上がる、といった法則です。
2020年にchatGPTの生みの親であるオープンAI社が発表した論文の中で発表されていました。
複雑な仕事をさせるには、複雑なモデルが必要。
ややもすると、当たり前のことに思えるかもしれません。
複雑に動いてくれる車は総部品数数十万点(たしか)。
複雑な動きには、それに見合うだけの要素が必要です。
それならばなぜ、このスケーリング則が注目されたかと言いますと、機械学習の分野では長い間「モデルを複雑にしすぎると性能が下がる」ことが常識であったためです。
機械学習の用語でいうと、過学習と言います。
目の前のデータにオーバーフィッティング(過学習)してしまうと、他のデータに対して全く役に立たないモデルになる。
数多くの実験の中で立証され、機械学習の研究においては「過学習が起こらないギリギリのところをせめて最も高い精度を出す」ことがお約束になっていました。
ところがオープンAI社はあきらめませんでした。
精度が下がってしまうからとパラメータを増やすのを多くの人が止めたさらにその先へ。
遥かに多いパラメータを用意すると、不思議なことに精度が向上していきました。
これまでの常識を覆す、本当に驚きの事件だったのです。
人間によるフィードバック:人間に好まれる対応がわかる!
これがまさに、chatGPTが全世界に広まった理由だと私は思っているのですが、chatGPTのモデルはこの機能を備えているのです。
具体的には、言葉を理解する部分と、その出力が人間に好まれるかを評価する部分を兼ね備えています。
これまでの研究では、そのほとんどが言葉を理解する部分の改善を行うものでした。
問題に正確に回答するには、それだけで十分だったからです。
「人間に好かれるようにする。」
衝撃の機能追加です。
具体的なやり方としては、まずは質問と回答のペアを大量に用意して、人間がどちらを好むか?という評価を人手で行います。
そしてそのデータを使って、「人間に好まれる回答である度合い」を評価する関数を構築。
別途学習していた言葉理解関数と合わせて回答を出力し、さらにその出力を人間が「好むかどうか」の観点から評価。
そして再びモデルの改良を行って…。
といったように、繰り返しデータを追加しながらモデルを学習していきます。
機械学習の言葉で言えば、能動学習です。
このプロセスを通じて、chatGPTは人間に受け入れられる回答を学習していきました。
Few shot learning:新しいタスクにすぐ対応できます!
「1+2の答えは?」
「hello worldを日本語に翻訳してください」
「これから続く単語を正しい順番に並び替えてください: to birthday happy you」
私たち人間は、言葉を使っていろいろな問題を解くことができます。
突然数学の問題を言われても、翻訳を依頼されても。
文字の並び替えのような特殊なクイズを出されても。
これまでに学習した言語の知識を使って(知識さえあれば)、正しい回答を出すことができます。
ですが、このように様々な問題、すなわちタスクに対して、一つのモデルで対応できるモデルを学習することは、非常に難しいことでした。
もちろん、単一のタスクについてはそれぞれモデルがありました。
翻訳ならば翻訳を。
要約なら要約を。
各タスクに特化したモデルを用意しておく必要がありました。
しかしそれを覆したのが、Googleの開発したBERTという手法です。
3億4000万パラメータを持つ自然言語モデルを事前に学習して、そのモデルに対して、新しいタスクの問題を数百件解かせる。
それにより、新しいタスクへの対応が可能であるというモデルが2018年に発表されました。
新しいタスクの問題を数百件解かせていることが、すでに学習されたモデルを良い感じに調整するような動作に当たることから、その技術は「ファインチューニング」と言われています。
そしてそれをさらに少ない件数でできるようにしたのが、few shot learningです。
「few」の名に恥じず、たった数十件、個別タスクのデータを与えるだけで、対応できるようになりました。
なんと、それを実施するための元のモデルのパラメータ数は1750億以上。
これも、先ほどのスケーリング則の表れと言えます。
パラメータ数が多い大きいモデルを使って、精度の向上だけではなく、新しいタスクへの適用も圧倒的に少ないデータから可能になりました。
このfew shot learning、今は画像など様々な分野でも活用されているのですが、それはまた別の機会にお伝えできればと思います。
増え続けるデータ:私の書いた「こんにちは」も栄養になっているはず…
「chatGPTに個人情報を入力するのはダメ」
うちの教授に言われた言葉です。
そもそもネットの海に個人情報を流すことは怖いと感じはするのですが、なぜ名指しでchatGPTに「入力してはダメ」なのでしょうか。
それは、chatGPTが私たちの入力データを「エサ」にして、さらなる改良がおこなわれる可能性が大だからです。
もちろん、有料版にすることによって(規約上は)データを活用されないようにはなるのですが、
無料版で遊んでいる限り、私たちが入力したデータはすべて、モデルのさらなる向上のためのエサになっている可能性があります。
実は、chatGPTの出力について、私たちユーザーがgood / badをつけることができることにお気づきでしたでしょうか。
まさにこれはさきほどお伝えした、「人間からのフィードバック」に使われているのだと思います。
本来、人間による評価データを取得するためには、そのために人を雇って、お金を払ってデータを作ってもらう必要があります。
ですが数億人の人がchatGPTを利用している昨今では、その必要が一部なくなったわけです。
なぜならば、放っておいてもデータが集まってくるから。
なんと素晴らしいシステムでしょうか。
これまでお金をかけて集めていたものが、勝手に集まってくるのです。
もちろん、中にはいたずらをしてやろうとか、クリックをミスしたなどの理由で、正しくないデータを集めてしまうこともあるかと思います。
ですがそのようなデータは、たった一部です。
データが増えれば増えるほど、そのような誤ったデータはノイズとして排除できるようになります。
モデルとしてのすばらしさに加えて、公開方法のすばらしさ。
便利になればなるほど使う人が増えて、データが増えて、さらに便利になって。
好循環を作り出す天才だと思います。
3.(ちょっと余談)機械学習の最新情報を得るための秘密のツール
余談です。
機械学習の最新情報を得るのにかなり便利なツールをご存じでしょうか。
もちろん、アカデミックな視点で言えば、いろいろなツールがあります。
最新の高性能モデルをまとめてくれているサイトもありますし。
トップカンファレンスと呼ばれる、最新の研究結果が集まる学会を見に行くのも一つの手です。
ですが、今回のchatGPTのような世間をにぎわす話題をいち早く見つけるための圧倒的お勧めは違います。
あなたも使っているかもしれません。
青い鳥のSNS。
Twitterです。
なぜだかわからないのですが、FacebookやInstagramなどのSNSに比べ、Twitterの方が、いわゆるギークな方たちの住処になっているようで。
新しい情報がいち早く流れ、そしてバズり、流行りを教えてくれます。
ただし、使うには注意点もあります。
それは「嘘をついている人も多いこと」。
こちらをだましてやろうとして、詐欺まがいのことをしている人もいます。
他にも、大した情報でもない情報を、さも素晴らしいことのように謳っていたり。
誤っている情報をそれと知らずに流している人もいます。
ですが、技術的なバズりは基本的に信じてよいと感じています。
(人のうわさに関する情報はその限りではありません。あくまで技術の話です)
誤った技術はそれほど広まらないと、これまでの経験から感じます。
実際に私もchatGPTを知ったのはTwitterからでしたし、テレビ番組や各種ニュースで取り上げられる数週間前にはすでに、
当該情報について弊社メールマガジンでお知らせすることができていました。
Twitter、お勧めです。
4.日本はchatGPTに追いつけるの?
最後に、日本はchatGPTに追いつけるのか。
すなわち、日本製の日本語に特化した大規模言語モデルは作れるのか?について考えてみます。
現在、chatGPTはそのモデルの学習にかかるコストが膨大すぎて(尋常ではない数の計算機と電力を使います)、コストの回収はまだできていない、といった情報も耳にします。
ですがこれからchatGPTがシステムの基盤になると仮定するならば、高速道路の料金所のように、そこにあるだけでお金が入ってくる仕組みが構築されるに違いありません。
そしてその使用料はchatGPTの生みの親であるオープンAI社。
つまりアメリカに入っていきます。
いつぞやに聞いた言葉なのですが、このままでは日本は「IT小作人」になってしまう可能性があります。
江戸の時代に大きな土地を持つ地主から一部の土地を借りて畑を作っていたように、他国の企業が開発した土壌の上で、システムを作ってお金を儲ける。
そんな仕組みができてしまえば、日本はITの分野でお金を大量には儲けることはできません。
それはさておき、最近、サイバーエージェントやLINEなど、様々な企業が日本語に特化した大規模言語モデルの作成を発表しています。
また、オープンAIの社長であるサム・アルトマン最高経営責任者(CEO)が日本に来て、重要な開発拠点であると言っていたりもしました。
(ただ、個人的な意見ですが、後者については正直あまり期待はしていません。
おそらく日本の規制の緩さに目をつけたのではないかなと思うのですが、これは想像の範疇を出ませんのであしからず。。。
彼らはあくまで海外の企業であり、日本で開発したところで日本人は小作人から脱却できないと思うからです。
もちろん、早い段階で技術を活用できるなどのメリットはあるかと思います。)
日本製ということで、おそらくきっと日本語についてメインに開発してくれるのではないかと期待するのですが(プレスリリースでも日本語特化と書かれていましたし)、その際にはいくつか問題があります。
まず、自然言語処理の分野で、実は日本語はかなり扱いにくい言語です。
いろいろな理由はありますが、一番は単語の区切りが簡単にはわからないからです。
例えば英語などの言語では、単語間の区切りが非常にシンプルです。
スペースを使えばいいだけ。
一方日本語は、このようにつらつらとつなげて書く以上、どこが区切れ目かがぱっと見ではわかりません。
それはコンピュータも同じです。
そのために辞書を作成して対応したりしますが、それはさておき。
また、日本語ならではのchatGPTに追いつくための課題はたくさんあります。
2.chatGPTを支える言語モデルのすごいところでご紹介した「人間によるフィードバック」について、
日本語に対してフィードバックができるのは、ほとんどが日本人だけであることも大きな課題となり得ます。
モデルを学習し始めるとき。
その際には、多くの「人間によるフィードバック」が必要になります。
オープンAIをはじめとした欧米の企業は、そのような情報を付与する作業を、賃金の安い別の国の労働者に依頼していたりします。
それを可能とするのは、英語を話す人間の多さでした。
一方日本語は、かなりマイナーな言語です。
文字も多いし、同じ文字なのに読み方が違ったりするし。
文法は英語等とまったく違うし。
そもそも日本人しか話してないし。
正直、私も日本に生まれていなかったら、日本語を学ぼうとすることはなかっただろうと思うくらい、特殊な言語です。
つまり、人間によるフィードバックを得るためのコストが、どう考えても英語より高いのです。
ですがそれも工夫次第だと思います。
例えば英語と日本語を精度高く翻訳することはすでにできるのですから、英語に翻訳したうえで評価してもらうことも一つの手かもしれません。
工夫して「なんとかする」ことは日本人の得意分野のはずです。
では、どの部分を工夫するのが一番の近道なのか?
そのカギは、chatGPTの改善のカギを握っているのは何であったか?ということです。
最近、chatGPTの最新バージョン(要課金)が公開され、その性能向上に注目が集まりました。
もし仮に、大量のパラメータで学習すると良い、というスケーリング則が最も効いているのだとすれば。
おそらく日本には良い展開であるように思います。
そういった地道な取り組みはおそらく、日本人の得意とするところです。
もちろん大量の初期投資が必要になりますが、そこさえクリアすれば、という気はします。
一方で、人間からのフィードバックがカギを握っていたのだとすれば。
いかにデータを取得するプロセスを構築するか、が重要になると考えられます。
「大量のパラメータ」がカギであったのか、「人間からのフィードバック」がカギであったのか。
すなわち、どちらの要素がより性能向上に寄与したのか。
実はその点について、オープンAI社は明らかにしていません。
…やらしいですね。
また、日本製大規模言語モデル、だからと言って、何も日本語だけを取り扱う必要はありません。
アメリカ製のchatGPTが多くの言語を扱っているように、日本製だって、日本語に留まることはないでしょう。
むしろ、複数言語を扱うことができなければ、その効力は限りなく0に近づいてしまうと言ってしまっても良いかと思います。
コンピュータの利点である、多くのデータを集めてくる、部分に悪影響だからです。
そうして一つ一つ課題を解決して。
真の日本製大規模言語モデルができたのなら。
そしてそれが基盤となることができたのなら。
きっと、今まで以上に日本のAI活用が活発になることは間違いないと思います。
日本の底力を見たい!
そう願って、これからも最新情報を注視したく思います。