論文の内容を理解するための生成AI
TL;DR
- 生成AIをパートナーとして論文の内容を理解することができるようになってきた
- 現状は ChatGPT o1-preview, o1-mini が圧倒的で、他の生成AIだと厳しい
- 将来はさらにレベルが上がっていくだろうしとても楽しみ
OpenAI o1-preview, o1-mini が発表されて、生成AIが数理的な推論も優れた内容を返すようになってきたため、これは論文を読む際に理解を深めるためのパートナーとして活用できるようになってきたという実感がある。
o1-preview を使うことでパッとは追えなかった論文の式展開を追うことができた。
— Yohei KIKUTA (@yohei_kikuta) September 14, 2024
こういうのは前々からやりたいと思ってたけどこれまでのモデルでは全然無理だったレベルのものなので、けっこう感動ものだ。
これが誰でもアクセスできるというのはいい時代だな。
自分自身が論文の内容を理解するために生成AIを使ってどのようなことができるのかについて、現時点での自分の所感をまとめておく。
論文の内容を理解するということは、具体的には、論文における式の導出や変形のギャップを埋めたり、論文の記述における誤りがあればそれを発見して間違った認識をしないようにしたり、論文における内容に関して別の例を考えてみて理解を深めたり、などを指す。
具体的な例があった方が説明しやすいので、ここでは Toward a Theory of Tokenization in LLMs https://arxiv.org/abs/2404.08335 における以下の式 (2) の計算を追うことを考える。 ここに至るまで色々な準備が必要なのでこの部分だけ切り出しても前提とか notation とか分からないけど、それは興味があれば論文を読んでもらうとして、token における unigram model の cross entropy loss を token を形成する文字列に対する定常マルコフ過程の言葉で書き換えたのちに、エントロピーの表式にするというものである。
PDF から数式の情報を正しく取得するのは大変なので、arXiv の LaTeX ソースファイルから該当する部分をコピペして使う。
やりたいことは難解な式変形というほどではないのだけど、ちゃんと論文の情報を整理した上で添え字に注意しつつ丁寧に式を展開する必要があり、このスクショには含まれてないけど論文の記述によくないところ(長さ の一つの token を文字列の定常マルコフ過程でモデリングするが、 と という token の表記 を使って書いてあり、ここは文字列の の表記で書く方が断然よい)があり、題材として程よいレベルと思う。
よくない記述のところは、 の定義自体は書いてないのでこれが token を文字毎に表現したものですとよしなに解釈してくれよな、分かるよな?みたいな感じで間違いとまでは言えないけど、こう書いてくれた方が理解しやすいけどな〜ということは論文を読む上ではよく遭遇するものである。
o1-previw, o1-mini が凄い
他のブログエントリでも書いているが、o1-preview, o1-mini のレベルが高く、このような論文の理解を深めるためのパートナーとして十分高いレベルになっている。
出力が長いのでブログに貼れないけど、実際のやり取りは https://chatgpt.com/share/66efa870-7da4-8012-bb01-9baf87c4d608
ちょっとおかしいところもあるんだけど、このレベルで出力をしてくれれば、一定水準以上の数理的バックグラウンドのある読み手が適切にそれを扱うことで、正しい理解へと到達することができる。
論文の表式でいけてないところを自発的に修正してくれるところまではまだ難しいので、上記のやり取りでは自分がここ間違ってない?と指摘してより良い形になったが、この観点でも読み手が一定水準以上の数理的バックグラウンドを有していて適切にコミュニケーションを取る必要がある。
この例に限らず他の例でも、これくらい論理的に穴が少なめで回答してくれるなら自分がコミュニケーションすることを前提に考えるならめちゃくちゃ役に立つな〜という感じで、これまでの生成AIだと全然無理なレベルだったので感動ものである。
ちなみに prompt で、式の導出過程で元のファイルに間違いを見つけたら修正しつつ導出して、と足してみたら直接的にここが間違いなので直しますとはならなかったけど、導出過程の表式はちょっとマシになったりもした。
今は自分が理解を深めるためのパートナーのレベルまで進化したな〜という感じだけど、このペースでいけばあっという間にパートナーでなく先生のレベルまで進化するだろう。
いやはや、楽しすぎるね。
他の生成AIモデルはまだまだこれから
同様の問題に関して、Gemini Advanced と Claude 3.5 Sonnet と Claude 3 Opus でも試してみた。
Gemini に関しては、論理的におかしい処理をしてしまうのと出力が簡素化されていて、OpenAI o1 には遥かに及ばない。 そして何より、出力の LaTeX 表記をレンダリングすることができないので、数式を扱う気に全くなれない。 論文の内容を理解するという目的では自分としては全然まだ使えないなという評価。 ただ、長い文章を貼り付けたときに input を折りたためる UI は気に入っている(右上のトグルアイコンをクリックすると全文表示される)ので、これは ChatGPT にも欲しいな。
Claude に関しては 3.5 Sonnet も 3 Opus も論理的におかしい処理をしてしまい、そのことを指摘するとどんどん前言撤回をして変な方向にいってしまう。 これは Claude が悪いというより OpenAI o1-preview, o1-mini 登場以前の生成AIで共通して観測されている限界なので、数学的な推論は OpenAI がずば抜けた結果を出しているという現状である。 ちなみに Claude は preview で LaTeX のレンダリングをサポートしているが、インライン表記は毎回明示的に指定しないとレンダリングしてくれなかったりしてまだちょっとイマイチである。
We've added support for LaTeX rendering as a feature preview.
— Anthropic (@AnthropicAI) August 22, 2024
Claude can now display mathematical equations and expressions in a consistent format. pic.twitter.com/SGjkkpIIFX
モデル開発は追いつけ追い越せなので、少し時間が経てば Gemini も Claude も ChatGPT 並の論理的推論はできるようになっていくとは思う。
現状では、推論能力が圧倒的なことに加え、数式込みの表示の見やすさとかも頭一つ二つは抜け出しているレベルなので、自分はしばらく ChatGPT o1-preview, o1-mini を使っていくだろう。
音声による情報取得の可能性
ちょっと趣が異なる話になるが、少し前に Google の NotebookLM で与えたファイルの情報を podcast 風の音声に変換することができるという機能が発表された: https://blog.google/technology/ai/notebooklm-audio-overviews/
これで論文を食わせて音声で情報を取得できる、という話を見かけたので、自分もいくつか試してみた。
podcast 風の音声にするというところは出来が良くてびっくりした。 掛け合いとか自然だし、こういう podcast あるよね〜という感じで、podcast で情報取得するのが好きな人は一定の恩恵に預かることはできそう。
ただ、自分としては内容に関しては続けて使おうと思うものではなかった。 内容の紹介もかなり断片的だし、これ本当に言ってるか?という内容も含まれていたりして、論文を理解するという目的では情報の質や密度や網羅性の観点からイマイチと思う。
論文には要約がついてるケースが殆どなので、論文の理解という領域に限って言えば、凝ったことをせずに arXiv の abstract の情報をそのまま読み上げて、興味のある論文があればその情報を保持しておける(そしてそれらは後で自分で読む)、というくらいが丁度良いアプリケーションであると思う。 自分は音声で情報取得する生活スタイルではないのでこういうのを作って使おうという気概までは湧かないが。
論文の理解を音声で深掘りするには、数式の取り扱いの質的な改善と双方向のやり取りが必須であると思う。
質的な改善というのは、数式をそのまま音声で読み上げても聞いてる方が解釈するのは至難の業なので、音声の場合どう取り扱うかを変える必要がある。 例えば、数式を愚直に「ピー かっこ エックス エヌ ギブン エックス エヌ マイナス ワン コンマ ドット コンマ エックス ワン かっことじ」読み上げるよりは「次のトークンを予測する言語モデル」の方が容易に理解できる。 これは聞き手の前提知識にも依存するのでうまくコントロールするのは簡単ではないが、将来的に生成AIが自分好みにカスタマイズされていけば prompt とかごちゃごちゃいじらずにこういう世界観が実現できるかもしれない。
数式が特に顕著だけど、図や表や pseudo code とかも同じような観点がありそう。
双方向のやり取りというのは、聞くだけでは理解が難しい(既に大体知っている事柄ならば聞くだけでも結構いけるとは思う)ので、気になったところを深掘りする必要がある。 例えば、先ほどの例で「次のトークンを予測する言語モデル」と出た時に、「ウィンドウサイズはどうなってるの?」とかをこちらから投げかけて回答してもらう、とかのイメージ。 これは上記の数式の取り扱いの改善に比べれば簡単だし、なんならいまの技術的にも十分にやれそうというか、OpenAI o1-preview, o1-mini が音声でやりとりできれば得たい情報は得られそう(回答待ちが長いとか返答が長すぎで音声だけで理解が難しいとか解決すべき点は色々あるけど)。
まあこうなると電車に乗りながら利用するとかは難しいが。
どんどん将来が楽しみになっていくが数式テキストの取り扱いは難しい
OpenAI o1-preview, o1-mini をありがたがる属性の人は限定的という話はあるが、その属性のど真ん中の自分としてはこの進化に胸が躍るし、将来がどんどん楽しみになるな〜と思っている。
こうなってくると、数式テキストの取り扱いが難しくてボトルネックになってきている。 LaTeX で書かれているものが多いのが現状だが、組版されたPDFファイルからシュッと情報を取るのは大変である。 今の技術なら画像として扱って LaTeX 表記に戻して扱うとかはできるけど、もっとシュッとコピペして生成AIに投げ込んでやり取りしたい。 arXiv のように LaTeX ソースファイルを公開してくれるケースが多ければそこから引っ張ってきてもいいけど、LaTeX ファイルの管理方法は人によってまちまちなのでどのファイルに所望の情報が入ってるかを明らかにする等の手間があるし、生のソースファイルを人間が見ても読みづらい。
いっそのこと、数式も Unicode でいい感じに取り扱えるようになって、普通のテキストと同様にシュッとコピペでやり取りできるようになってくれないだろうか? そんな未来、あり得る?