Contents
最近、こんな記事がNews Picksに上がっていました。
【ミニ教養】ChatGPTが突如「バカ」になった理由
本当に「バカ」になってしまったのかはさておき。
もし仮に、AIがAIの書いた文章を学習したらどうなるのか?という疑問をいただきましたので、
データサイエンスをちょっとかじっている大学院生の視点から考えてみたいと思います。
1.クイズ!AIがAIの書いた文章を学習したらどうなる?
早速ですが質問です。
AIがAIの書いた文章を学習したら、一体AIはどうなるでしょうか。
あなたの考えに一番近いものをしたからお選びください。
なお今回の記事で対象にするAIは、chatGPTを始めとする大規模言語モデルとします。
①バカになる
②面白味が無くなる
③変わらない
④賢くなる
・
・・
・・・
・・・・
・・・・・
お選びいただけたでしょうか。
実は、私は②だと思っています。
それはなぜか。
この記事でご説明していきたく思います。
ただしもちろん、こちらはあくまで個人の一意見であり、実際に実験をしたわけではないことをご了承ください。
(実験するのに数億円と半年がかかる研究を、私一人で実施することはとてもではありませんができません。。。)
この問題を考える前にまず、大規模言語モデルの学習方法について確認したいと思います。
2.問題を考えるための事前知識【大規模言語モデルの学習方法】
大規模言語モデルを「大規模」たらしめる要因はまさに、大量の言語データを学習させていることです。
モデル内部の詳細な説明は省略しますが、Google謹製BARTもOpenAI社のGPTも、学習は大きく二つのフェーズに分けることができます。
1つ目が、pre-training(事前学習)です。
そして2つ目が、fine-tuning(ファインチューニング)。
こちらの図はGPTの元論文[1]から拝借しました。
[1]Improving Language Understanding by Generative Pre-Training
左の四角い部分が事前学習。
右の横に並んでいるブロックが複数ある方が、ファインチューニングの概念を示しています。
後者の方は日本語訳があるわけではなく、ファインチューニングと呼ばれることが多い気がします。
それはさておき、大規模言語モデルは事前学習で文章のルールを掴み、ファインチューニングで個別のタスクに対応していきます。
大量の言語データを学習するのが、何を隠そう事前学習のフェーズです。
ところで、大規模言語モデルに限らず、AIの学習を難しくする要因がいくつかあります。
計算機の性能であったり、メモリの大きさであったり。
他には計算機を動かすための電気代もまた、問題になってきます。
そしてさらに「学習に使うデータを用意すること」もとても重要な課題です。
どういうことでしょうか。
例えば画像のデータに対してその画像が示すモノを推定するモデルを作ろうとするとき。
AIにルールを学習させるためには、この画像は犬で、この画像は猫で…といった、正解となるデータを用意する必要があります。
そしてこれは、人間の手で作らなければなりません。
(新規に作る、もしくは事前にユーザが付与していたタグ等の情報を活用する等の手段は問わず、人間が作業しなければならない、というのは同一です。)
問題が複雑になればなるほど、AIのモデルを複雑にする必要があり。
(y=ax1+bx2+…といったような単純な多項式では、とても犬と猫を見分けるモデルを作ることはできません)
そしてその複雑なモデルを学習するためにはデータを大量に用意する必要があります。
従って、人間が「便利!」と感じるAIを作るためには、大量の正解データが必要となるという仕組みです。
それを用意するのは一筋縄ではいきません。
では、大規模言語モデルに話を戻して。
事前学習で使うデータはどのように用意されているのでしょうか。
多ければ数兆のパラメータを持つモデルを学習するために必要なデータ数は、おそらく途方もない数になるに違いありません。
そんなデータ数に人間がラベルを付けようとしたら、数千人が一生をかけても終わらないはずです。
実は、ここで使っているデータは「インターネット上に落ちている文章そのもの」です。
人間が特別な加工をすることなく、そのままそのデータを用いています。
じゃあ、何を「正解」にするの?
それは「次に来る単語は何か?」という問題です。
I love playing a game.
という文章があった時。
I love playing aまでAIに入力し、次に来る単語を予測させる問題を作るのです。
そうすれば、新たに人間がデータを用意しなくても、AIは自分で文章から問題を作り、さらに正解を用意してモデルを学習することができます。
(もちろん、同様にしてlove, playingを予測する問題も作れますし、最初の言葉Iを推定する問題も作れます。)
モデルによってはI [??] playing a game. と言ったように途中の単語を穴抜けにして、そこを予測する機構を追加することもあり、それによってモデルの得意分野は変化するのですが、それは今回の記事では対象外とします。
なんにせよ、そのように正解データを用意することで膨大な量の学習データを用意することができ、事前学習によって「文章とはこういうもの」というルールを学習できるようになりました。
この事前学習によって、例えばI like a … までを入力して、次の単語を予測することができます。
catかもしれないし、dogかもしれない。もしかするとferret(イタチ科の可愛い生き物です)かもしれませんし、birdかも。
それぞれの単語が次に出現する確率を推定して、その確率に従って次の単語の予測結果を出します。
確率を推定しそれに合わせた出力を行うことで「常に同じ出力」にはならない様にしています。
例えばchatGPTで回答を生成するたびに異なる言葉で返してくれるのはそのためです。
3.AIの書いた文章を学習するってどういうこと?
では本題である「AIがAIの書いた文章を学習する」について考えてみます。
そもそも、AIの書いた文章を学習するとはどういうことでしょうか。
この記事では、AIが生成した文章を、先ほどお伝えした事前学習の入力とすることとします。
そうすると、どんな文章のルールが学習されるのでしょうか。
まずは別の問題で考えてみます。
文章生成の際、これまで入力された文章を考慮して次の単語の出現確率を推定し、その確率に従って単語を生成する、のが大規模言語モデルの文章生成方法でした。
つまり、単語という選択肢の中からその出現確率に合わせて一つの単語(選択肢)を選んでくる、と言い換えることができます。
そしてその出現確率は、事前学習で学習するデータに依存します。
ここでは「これまで入力された文章を考慮する」点をひとまず脇に置いておいて、単純に数字の書かれたカードを選ぶ問題に置き換えてみます。
あなたの目の前には50%の確率で1、30%の確率で2、15%の確率で3、5%の確率で4が出るようなカードのセットがあるものとします。
1のカードが10枚、2のカードが6枚、3のカードが3枚、4のカードが1枚ある状況と同じです。
そしてこれらの確率は、事前に無限回このカードセットからデータを引く試行によって、正確に推定された、と考えてください。
(統計学の分野には大数の法則というものがあり、特定の確率に従って生成される事象を無限回くり返せば、得られた結果は限りなく元の確率を表すものになる、ということが知られています。)
では、実際にこのカードセットからカードを引いてみます。
実際にカードを作ると大変なので、エクセルさんのお力を借りて実験してみたいと思います。
10回カードを引いたらどうなるでしょうか。
1が6回, 2が1回, 3が2回, 4が0回
という結果になりました。
※Excel上では、0-1の乱数を生成する関数を使って、0.5以下であれば1、0.5-0.8で2、0.8-0.95で3、0.95以上で4を生成するような関数を作って実験しました。
4が出る確率は5%あったはずなのに、一度も出てきませんでした。
では、この結果を元に再度1,2,3,4の出る確率を推定してみると…。
少なくとも、4が出る確率は下がってしまいそうです。
こういったことが大規模言語モデルでも起きると考えれます。
すなわち、事前学習によって推定された各単語の生起確率に従ってAIは単語を生成するのですが、もともと確率が低かった単語は生成されない。
そしてそれを元に事前学習を行うとさらにその単語の生成確率は下がり、そこから生成された結果もまた、生成確率の低い単語は出てこなくなってしまう…。
もちろん大数の法則はここでも健在ですので無限個の文章を生成すればこの問題は解消しますが、計算コストの面でも時間の面でも、それは非現実的なように思います。
4.結局、AIはどうなる?
という訳で、最初のクイズに戻ります。
クイズの選択肢は以下の通りでした。
①バカになる
②面白味が無くなる
③変わらない
④賢くなる
先に述べた通り、生成できるデータの数が無限でない以上、各単語の生起確率はどんどんと偏り、
そしてその生成された文章を学習したAIの出力はさらに偏り、
最後にはいつも似たような文章が生成されてしまうと考えられます。
つまり、私の考える答えは②面白味が無くなる、です。
冒頭でご紹介したNews Picksの記事。
【ミニ教養】ChatGPTが突如「バカ」になった理由
こちらはそもそもモデルそのものが変わったのではないか?というお話でした。
chatGPTの学習に使われているデータは過去のものであって最新のデータは使っていない、というお話であるため、News Picksで取り上げられている問題は今回のお話とは関係ないとは思います。
ただ、これから出てくる大規模言語モデルにおいては、その出力が面白みのないものになってしまわない様、学習データを丁寧に選んでくるなどの取り組みが必要になってしまうという可能性もあります。
そう考えると、AIに頼らずに、高い品質で何かを生み出せる人の重要性が高まってくる時代が来るのかもしれません。