日本語LLMをまとめるという営み

Kaito Sugimoto
·

LLM Advent Calendar 2023 11日目の記事です。

皆さんは『日本語LLMまとめ』という GitHub リポジトリを見たことはありますか。あると嬉しいですね。

現在『日本語LLMまとめ』の GitHub スター数は 500 に到達しそうな勢いになっています。この数字は、日本語でREADMEが書かれた全世界の GitHub リポジトリの中で上位 50 位以内に入るそうなので、なかなかの規模と言えそうです。

そんな『日本語LLMまとめ』ですが、元々このまとめは、私が Zenn に書き始めたブログ記事が起源でした。今からおよそ 2 年前のことです。

このアドベントカレンダーの記事では、私がなぜ『日本語LLMまとめ』をつくり始めたのか、その後どのような経緯があって今の形態になったのかについて述べたいと思います。

2021年: 黎明期

私が『日本語LLMまとめ』の前身である『フリーで使える日本語の主な大規模言語モデルまとめ』を書き始めたのは、2021年10月のことでした。ChatGPTが世に出るおよそ1年前くらいのことです。

今 LLM を触っている方々にはあまり馴染みがないかもしれませんが、この頃は BERT という言語モデルが世界を席巻していました。自然言語処理の世界で、事前学習 -> ファインチューニング という一連の流れを最も広く普及させたのは BERT ではないかと思います。

英語の研究の世界では、BERT を個別のタスク・ドメインに特化させる研究や、BERT の事前学習の目的関数をいじる研究(RoBERTa, XLNet, ALBERT...)、逆に BERT がまだ不得意なことを探る研究など、とにかく BERT が前提の研究が増殖していました。

そのような流れの中で、当時修士課程1年だった私も、日本語の医療ドメインの言語モデルを作ろうというプロジェクトに参加することになりました(このプロジェクトでは最終的に JMedRoBERTa をリリースしています)。

そこで自分が実際に困ったこととして、日本語の言語モデルに関して集約されているドキュメントが当時ほとんど全くなかったということがありました。

確かに、京大黒橋研、東北大乾研、NICT などが既に汎用の日本語 BERT を公開していたり、ストックマークがビジネスドメインの BERT, ALBERT, XLNet を公開していたり、はたまたバンダイナムコ研究所が DistilBERT を公開していたり...と、色々面白い事例が(アカデミア・企業を問わず)世の中にあったのですが、それらをまとめているセントラルリポジトリが無かったのです。

これは、ある程度仕方のないことでもあります。アカデミアに関していえば、トップ研究者は英語データを使って国際会議に論文を通すことが主な仕事になるため、日本語の言語モデルをまとめることへのインセンティブがありません。同様に、企業でも、日本語の言語モデルをまとめること自体はお金にはならないので、やる人はいなかったのでしょう(もちろん、他社モデルよりも自社モデルが優れていることを示す上では大事かもしれませんが、あくまで評価指標を比べれば済む話なので、網羅的なドキュメントを作って公開する話にはならなかったのだと思います)。

なので、自分はニッチ戦略を狙って、日本語の言語モデルをひたすらまとめる記事を作ろうと考えました。今後、日本語の言語モデルがだんたん増えていくにつれて、そのようなまとめ記事は必ず需要が増していくと踏んだのです。とはいえ、今年2023年のような激しいモデル開発競争が繰り広げられるとは当時全く思ってもいませんでしたが...。

2022年: JGLUE と ChatGPT の登場

2022年は日本語言語モデル界隈にとって大きな出来事がありました。

一つは JGLUE が登場したことです。それまで、日本語の言語モデルが色々あったとしても、どのモデルが結局一番いいのかがよくわからなかった(モデル開発者が各々のデータで曖昧な評価をしていた)のですが、JGLUE のデータや評価スクリプトを使うことによって初めて、定量的な評価を統一的に行えるようになりました。

このおかげか、2022年後半には ELECTRA や DeBERTa 、LUKE のような凝ったアーキテクチャや事前学習手法を採用したモデルの日本語版も登場し、JGLUE の各タスクのスコアを次々と塗り替えていくという面白い時代になりました。

もう一つはやはり、2022 年末に登場した ChatGPT です。それまで、GPT 系のモデルは、単語や文を入れるとその続きを予測するという使い方がメインだったため、そのままでは用途が限定的なものとされていました。

実際、私の考えでは、GPTを実用レベルで要約や対話に使うためには、さらに要約データや対話データでファインチューニングが必要になると思っていました(そもそも、最初から要約データや対話データだけで Transformer 1ブロックを個別に学習する方が主流だったのではないでしょうか)。このためか、日本語のモデルは当時ほとんどありませんでした。

ところが、英語の研究の世界では、「要約しなさい」といったプロンプトを入れるだけで上手く要約された出力を出してくれるようなモデルがポツポツと現れ始めていました。そして、ChatGPT により、そのようなプロンプトベースのテキスト出力が実際に日本語でも可能であることが明らかになりました。当時そういったものは、英語の論文に載っている英語の出力例でしか見たことがなかったため、私自身 ChatGPT を触ってみて驚きました。

2023年: 新時代の幕開け

ChatGPTの登場から数ヶ月で世の中の雰囲気はガラリと変わりました。「大規模言語モデル」という言葉は「LLM」という言葉に取って代わられました。

私が今まで Zenn に書いてきた、日本語LLMまとめや transformers ライブラリの使い方のコツに関する記事へのスター数が急激に増え、世の中の自然言語処理技術に対する関心がこれまでに無いレベルで高まってきていることを実感しました。

私が修士課程を修了したすぐ後に、 国立情報学研究所(NII)が主体となって『LLM勉強会』という団体が発足しました。それまで英語データで国際会議に論文を通すのが主たる仕事だった研究者達も、いよいよ本気で日本語LLMの研究開発を始めようとしているんだな、ということをホームページを見て感じました。

私自身はソフトウェアエンジニアとして就職し、アカデミアからは離れる気持ちでいたので、当初はこのような動きに対して傍観者でいました。LLM勉強会が新しく日本語LLMを作って公開したら、自分は自分で Zenn にあるまとめ記事にその情報を一行追加すればいいのではないかと。

しかし、LLM勉強会が公開しているサーベイ資料の中に私の記事へのリンクが含まれているのを見ると、流石に不安になっていきました。このまま個人の記事として続けていくよりかは、自分よりも日本語LLMに詳しい人がたくさんいるであろうLLM勉強会の方々の共有財産にして、間違っている部分があったら直してもらう方が健全なのではないかと思いました。

そこで、当時LLM勉強会のメンバーではなかったのですが、大学院時代の指導教官のコネを使って、私がこれまで書いてきたまとめ記事をLLM勉強会の GitHub リポジトリに移すことにしました。

当時、メンバーではない人間のコンテンツを勝手に NII のものと標榜することに反対もあったかとは思いますが、私自身はこれは必要なことだと思って強行しました。ご配慮いただいた関係者のみなさま方にはこの場でもお礼申し上げます。(ちなみに、色々あって、私も現在は勤務先の企業から正式にLLM勉強会のメンバーとして参加しています。)

---

『日本語LLMまとめ』をLLM勉強会配下にしてから、記事内容に多くのアップデートを加えました。

まず、モデルのパラメータサイズの推移を示した図をトップに置きました。これは、指導教官が(多忙の合間を縫って)作成してくださったもので、インパクトがあっていいなと思います。エクセルシートから図を作る仕組みになっていたので、保守性に懸念があったのですが、昨日 CSV から matplotlib を使って図を作成するスクリプトを気合いで書き上げたのでほっとしました。

もちろん、パラメータサイズが大きければ良いモデルでは必ずしもないという事実もあります。なので、評価指標がどれだけ向上したかの推移も(Papers With Code のように)可視化できるといいと思います。

そもそも、日本語LLMの評価指標も lm-evaluation-harness、llm-jp-eval leaderboard、Rakuda Benchmark、Japanese MT-bench 等々乱立しており、どれを使うのがコミュニティにとって大正義なのかまだ不透明な状況です。あのJGLUEの父である栗原さんも悩んでいるとテックブログに書かれているので、皆さん悩んでいるのでしょう。

そこで当面の私のスタンスとしては、とりあえず評価指標に関してもできるだけ沢山まとめようという気持ちがあります。そこで、『日本語LLMまとめ』では、下の方に「日本語LLM評価ベンチマーク/データセットまとめ」というセクションを設けて、LLMを作った企業・団体が実際に評価に使ったベンチマークを紹介していくようにしました。

また、『日本語LLMまとめ』がLLM勉強会配下になったことで、知名度も大きく向上しました。特に、Sakana AI の David が X(旧Twitter) で取り上げてくれたことは大きなインパクトがありました。

実は、David は LinkedIn にも同様の投稿していて、その投稿に対して「READMEが英語で書いていないから困るぜ😤💢」という趣旨のコメントがついていました。

そこで私が LinkedIn で「英語の翻訳も募集中で〜す💦💦」と書いたところ、LinkedIn で以前から繋がっていた(Rakuda Benchmark の作者である)Sam がなんと記事の英語版を丸ごと作ってくれました。その後さらに、フランス人のエンジニアで日本語も堪能な Akim がフランス語版を作ってくれました。このような国際展開は、NII という看板が無ければできなかったことなので、大変感謝しています。

おわりに

本記事では、『日本語LLMまとめ』の経緯についてざっとご紹介しました。

『日本語LLMまとめ』はまだまだ未完成の記事だと思っています。加筆したいことのネタは沢山あり、思いついたら GitHub Issues に放り込むようにしています。

もちろん、記事をご覧になっている皆さんからの Issue や Pull Request もいつでも歓迎しています。

2024年以降も、さまざまな企業や団体が新しい日本語 LLM を次々に披露していくのではないかと期待しています。私自身も、この激動の時代に即した記事であるように、今後も継続してメンテナンスしていければと思っています。

---

最後に、LLM勉強会ではインターンシップを募集しています。日本語LLMの構築、チューニング、評価等々に興味のある方はぜひ応募してみてください!