はじめに
リリースされてしばらく経つOpenAI o1(オーワン)について調べてみました。
今更ながら調べようと思った動機はモデルの名前に「gpt-」と付いていなかったことです。GPTシリーズとは違うんだろうなと思いつつも、AzureでAzure OpenAI Studioを見てみるとgpt-3.5-turboやgpt-4o-miniなどと同じ「Chat completion」という区分をされています。
「複雑な推論ができる」であるとか「より高度な思考力を持つとか」そういう説明は色々なところで目にしますし、実際にChatGPT Plusに加入して使ってみても、時間をかけて回答を出力するのは確認したのでそういうものなのだろうということは理解したのですが、技術的な仕組みやコンセプトとして何が違うのかわからなかったので調べてみた、という内容になります。
また、私自身がo1を理解するために調べてまとめた内容であり、私見も多分に含まれる若干ポエミーな仕上がりになっております。
そもそもGPTとは
GPTとはGenerative Pre-trained Transformerの略です。
Pre-trained(事前にトレーニング済み)の内容をGenerate(生成)できるということになるかと思います。
言わずもがなですが、以下の特徴があります。
- 膨大なテキストデータで事前学習(プレトレーニング)されており、言語の構造や知識を内部に学習している
- トランスフォーマーアーキテクチャをベースとしており、文脈を包括的に理解する能力を持つ
- 自然言語処理のさまざまなタスクに適用可能で、テキスト生成、要約、翻訳、質問応答などを高い精度で実行できる
そしてGPT-1から4oまで進化を重ねてきている、というのが大まかな状況かと思います。
そしてo1はこの「GPT」という名称がつかないモデルということになります。
GPTとの違い
o1がリリースされた際のOpenAIの記事を読んでみると以下のような記述がありました。
人間が何かを問われた時にそうするように、問題に対する回答を生成する前に問題についてより長い時間をかけて考えるよう、新モデルを訓練しました。
こちらのページにもo1が回答を生成する際のアプローチについて記載がありました。
Chain of Thought
Similar to how a human may think for a long time before responding to a difficult question, o1 uses a chain of thought when attempting to solve a problem. Through reinforcement learning, o1 learns to hone its chain of thought and refine the strategies it uses. It learns to recognize and correct its mistakes. It learns to break down tricky steps into simpler ones. It learns to try a different approach when the current one isn’t working. This process dramatically improves the model’s ability to reason.
[意訳]人間が難しい質問に答える前に長い時間考えるのと同じように、o1は問題を解決する際に思考の連鎖(Chain of Thought)を使います。強化学習を通じてo1は、思考の連鎖に磨きをかけ、その使い方を洗練させていきます。間違いを認識してミスを修正することも学習します。また、難しいステップをよりシンプルなステップに分解することを学びます。そして、問題解決する際に取っているアプローチがうまくいかない場合は、別のアプローチを試すことも学びます。このプロセスはモデルの推論能力を劇的に向上させます。
GPT系のモデルとは回答生成をする際のアプローチそのものが違うようです。
従来のモデルはシンプルに言ってしまえば、与えられた質問の文脈に基づいて、統計的に最も可能性が高い単語、フレーズを順番に予測して答えを生成する仕組みかと思いますが、o1に関してはより人間が問題を解決するときに使うアプローチに近い方法を取るように作られているということかなと思います。
次のトークンの予測というアプローチから、その時その時にリアルタイムで考える、というアプローチになってきているということになると思いますのでこれはやはりGPTの系列ではないモデルだと理解できました。
今までのモデルは膨大な量のトレーニングに依存していたわけですが、そこにも変化があるのでしょうか。
2つの思考モード(システム1とシステム2)とモデル
ここで思い出したのが『ファスト&スロー』です。
ざっくりの説明ですが「思考には速い思考と遅い思考の2つのモードがある」という話です。
それぞれシステム1、システム2と紹介されていて次のような特徴があります。
- システム1(速い思考):
- 直感的で自動的思考。考えるというより直感に近い。
- 起こったことに対して経験則などから素早く答えを出す。
- システム2(遅い思考):
- 熟慮的で論理的な思考。システム1で答えが出せない時に行われる。
- 注意力を必要とし、労力がかかる。
人間の意思決定はほとんどシステム1で行われ、どうしても頭を使わないといけない時にシステム2を行なっているという話です。
これはGPTとo1の使い分けを考える時に理解しやすいコンセプトのように思えます。
私は「両方Chat completionだし、どう使い分けるんだ?」と思っておりましたし、実際にo1を使ってみた後も「別にgpt-4oでも同じことができるじゃないか」と考えていました。
しかし、
- gpt系: システム1
- o1: システム2
と考えると立ち位置がよくわかると思いました。
人間の意思決定時にはほとんどシステム1が使われると言います。実際に多くのケースではgpt系で十分対処できるのかと思います。しかし、システム1は経験則(事前に学習した内容)やバイアスに左右されます(左右されるからこそ速い思考になるのでダメという意味ではないです)。
gptはこれと同じく事前に学習した内容から統計的に確率が高い答えを素早く回答してくれます。十分多くのタスクに対応できるかなと思います。
しかし、人間にもシステム2があるようにシステム1で対処できない問題を解決する必要が現実にはあります。
そんな時にo1を使うことになる、またはそうなることを目指しているシリーズのモデルなのかなと思いました。
まとめ: 「GPTではない」とは何なのか
o1とは人間でいうシステム2を担っていく事を目指すモデルなのかと思いました。
つまり、事前学習データに頼りきりではなく、その場その場で人間のようにリアルタイムに問題に対して解決方法を考えていく事を目指しているモデルという意味になると思います。
そうなると、Generative Pre-trained Transformerではないよね、ということになるのは自然なのかなと自分の中では落とし込めました。
参考文献