🦾

Transformerから始まる大規模言語モデルの、オープンソース化に向けた動向を記録する2023年4月

2023/04/23に公開

Transformerから始まる大規模言語モデルの動向の一例を、筆者が知る限りまとめていきます。今回は大規模言語モデルの発展とオープンソース化に向けた動向についてメモとして残します。動向と共に、当時の自分は何をしていたかなと振り返りながら書いていますので、話題がそれている箇所は読み飛ばしていただけますと幸いです。

目次を見ると登場したモデルが時系列順に一覧できるので目次から見て興味のある箇所からご確認することをお勧めします。

おことわり

概要を覚えておくために一個人が作成したものである点をご留意いただけますと幸いです。また、こちらの動向はあくまで一例であり、途中で画像・言語モデル、音声信号処理・ロボティクス・連合学習など、様々な研究へと分岐していると考えています。

2017年6月 Transformerの公開

Google社からarXivにAtention is All You Needが公開されます。
https://arxiv.org/abs/1706.03762
Self-AttentionやMulti-head attention, RNNなのに並列計算可能なアーキテクチャが報告され、論文掲載時の機械翻訳タスクでは優れた精度改善があったことが報告されます。筆者は当時大学院に入ったばかりで、生体信号処理まっしぐらで深層学習など全く興味の範囲外でした。

当時は人の顔面の動画を撮影すると、実は血液の流れと相関のある成分も計測できていて、動画解析すると、その人の脈拍数とストレス度合いまで定量化できる!という研究にお熱で深層学習自体は無知でした。。

2018年6月GPTの公開

OpenAI社のブログにImproving language understanding by generative pre-trainingが公開されます。当時の自然言語処理タスクの12個中9個において、事前学習による精度向上が報告されています。この時期から、自然言語処理の深層学習には事前学習が必須なのではないか、という話をする方が周りにいらっしゃいました。
https://openai.com/research/language-unsupervised

2018年11月 BERTの公開

Google社からarXivにBERT: Pre-training of Deep Bidirectional Transformers for Language Understandingが公開されます。
https://arxiv.org/abs/1810.04805
自然言語処理の多くのタスクがBERTによる事前学習を経ることでタスク達成度が向上することが報告されています。個人的なGLUEという複数の自然言語処理タスクに対する評価タスクもBERTが登場してから注目を浴びたように感じます。

2019年2月 GPT-2の公開

OpenAI社のブログにLanguage Models are Unsupervised Multitask Learnersが公開されます。Transformer Decorderブロックを複数段に増やすことで複数のタスクで精度向上を実現しています。Transformerブロックを最大で48ブロックまで積み重ねることで、15億パラメータを持つモデルを学習していることが報告されています。
https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

2020年3月 GPT-3の公開

OpenAI社のブログにarXivにLanguage Models are Few-Shot Learnersが公開されます。GPT-2では個々のタスクを解けるようになるには専用のデータセットが大量に必要になることが指摘されていますが、GPT-3ではそれが少量のデータセットで事足りるよう、事前学習時のデータセットを大幅に拡大しています。さらに、モデルのパラメータ数も1750億パラメータまで拡大し表現力を上げることを意図して設計されています。モデル構造はTransformerブロックを96ブロック重ねています。なぜこのモデル構造で上手く学習が進んでいるのか、については様々な分析結果が報告されている為、勉強中です。
https://arxiv.org/abs/2005.14165

筆者としてはこのあたりからモデルのパラメータ数をどれだけ増やして学習ができるか、という計算資源と予算の闘いに移っていったように感じます。個人はおろかGPUサーバーを持つ1企業でも学習結果を再現することは困難になっていったのではないでしょうか。

また、このあたりから、大量のデータを学習した結果、人間の差別的表現や思考の偏りも同時に学習されてしまい、中立な立場かつ倫理的に安全な表現を獲得しなければならない、という課題が表出されてきたように思います。

2021年8月 Gopherの公開

Alphabet社傘下のDeepMind社からarXivにScaling Language Models: Methods, Analysis & Insights from Training Gopherが公開されます。パラメータ数は2800億と、GPT-3よりも膨大なパラメータ数で学習し、10.5TBのコーパスでトレーニングし、124評価タスク中の100件において当時の最高記録を凌駕しました。
https://arxiv.org/abs/2112.11446

2021年10月 MT-NLGの公開

Microsoft社とNVIDIA社のブログに、Megatron-Turing Natural Language Generation(MT-NLG)が公開されます。パラメータも5300億とこれまで報告されたモデルの中でも最大のモデルだと認識しています。Transformerブロックも105ブロック積まれているとのことで、モデルの表現力についても高く設計されています。

Scaling則がOpenAIから報告されて間もない時期だったため、モデルの大きさ=賢さ、という共通認識が形成されていったように思います。

Microsoft社

https://www.microsoft.com/en-us/research/blog/using-deepspeed-and-megatron-to-train-megatron-turing-nlg-530b-the-worlds-largest-and-most-powerful-generative-language-model/

NVIDIA社

https://developer.nvidia.com/blog/using-deepspeed-and-megatron-to-train-megatron-turing-nlg-530b-the-worlds-largest-and-most-powerful-generative-language-model/

2022年3月 Chinchillaの公開

Alphabet社傘下のDeepMind社からChinchilla「Training Compute-Optimal Large Language Models」が公開されます。パラメータ数は700億でありながらGPT-3やGopherなどのモデルのタスク達成度を上回ったと報告されています。
https://arxiv.org/abs/2203.15556?ref=ja.stateofaiguides.com

このあたりからモデルの大きさ=賢さ、という表現でなく、モデルを十分大きくして、できることが分かってきたので、この賢さをいかに小さなモデルで表現するか、という話題に移っていったように筆者は感じます。

2022年4月 Flamingo

同じくDeepMind社から画像と自然言語を入力とした「Vision&Language」モデルであるFlamingoが公開されます。arXivでFlamingo: a Visual Language Model for Few-Shot Learningが公開されます。
https://arxiv.org/abs/2204.14198

賢さという解釈の内の一つに、「マルチモーダルであること」が入ってきたのかなという印象です。その後もOpenFlamingo等オープンソースでのVision&Languageモデルの構築にも一役買っていると感じます。

2022年5月 Gato

同じくDeepMind社から画像と言語を入力に、ロボットなどの行動生成まで行えるGatoが報告されます。arXivにA Generalist Agentが公開されます。
https://arxiv.org/abs/2205.06175

言語、画像に続き行動生成を対象としたDeepMind社は、やはり賢さの解釈にマルチモーダルであることを重視されていると感じました。当時はパラメータがぐんぐん増えるのに食傷気味になる一方で、なんでもかんでも一つのモデルにやらせようとするから大変になるんじゃないのか、とも思ったりしました。でも1つのタスクをこなすために手がかりはあるだけあった方が有利だよなぁという考えもよぎり、多分どこかに、タスクに応じて動的に変化する、いい塩梅のモダリティの比率みたいなものがあるんだろうなと考えていました。

2022年11月 chatGPTの公開

OpenAI社からchatGPTが公開されます。Blog postによると事前学習、指示文と回答文によるInstruct tuning, 生成文章の順序付けと順序付け予測のための報酬モデルの学習、最後に報酬に基づく文章の生成など、従来にはない様々な工夫が凝らされています。非専門家でない一般ユーザーもWebUIの登場によって一気に大規模言語モデルの人気に火が付き始めます。
https://openai.com/blog/chatgpt

2023年2月 LLAMAの公開

Meta社から、GPT-3よりも半分以下のパラメータ数でGPT-3のタスク達成度の一部と並ぶ精度を達成したLLaMA: Open and Efficient Foundation Language ModelsがarXivで公開されます。GPT-3と異なる点のひとつにオープンソースである点が挙げられます。
https://arxiv.org/abs/2302.13971

これで大規模言語モデルの開発が一部の大企業だけでなく、ある程度の計算資源を持つ企業にもできるようになったと認識しています。

2023年3月13日 Stanford Alpacaの公開

Stanford UniversityからAlpaca: A Strong, Replicable Instruction-Following Modelが公開されます。ユーザーの入力文に沿って、適切な応答を返すように微調整された大規模言語モデルの一つです。このモデルの特徴のひとつは、学習用の指示文と回答文の用意の仕方にあると筆者は考えています。
https://crfm.stanford.edu/2023/03/13/alpaca.html

Stanford Alpacaが参考にしている技術の一つにSelf-Instructと呼ばれる手法があります。(Self-Instruct自体は2022年の12月にarXivに公開されています。)chatGPTのような対話型の大規模言語モデルを用意する際に、大量の指示文と理想的な回答文を人手で用意する必要があります。Self-Instructでは、この指示文と回答文を作る人の能力に依存してモデルの性能が決まってしまうことを指摘しており、これを避けるために言語モデルを用いてこの指示文と回答文を作れないか検討した研究であると理解しています。
https://arxiv.org/abs/2212.10560

Stanford AlpacaはSelf-Instructに使用する言語モデルにtext-davinch-003を用いることで大量の指示文と回答文のペアを用意しています。

個人的には、上記の大規模言語モデルの動向をみると比較的軽量なモデルであるStanford Alpacaは非常によく動作しており、自分で開発したい、製品にも組み込んでみたい、など新たな開発の動機が生まれてきます。

しかし、stanford alpacaを商用利用しようとすると、OpenAI社のライセンスに抵触します。OpenAI社は自社が提供するAPIの出力を、OpenAIの競合となるモデルの開発に使用してはいけない、と明記しています。(以下リンクの2.Usage requirementsの(c)Restrictionsの(iii))
https://openai.com/policies/terms-of-use

そこで、OpenAIのライセンスに抵触しない大規模言語モデルを作成したい、という需要が生まれます。

2023年3月26日 GPT4ALLの公開

nomic ai社からGPT4ALLというリポジトリが公開されます。データセットから完全にオープンソースな対話支援型の言語モデルの開発を目指しています。
https://github.com/nomic-ai/gpt4all

実際にどんなデータを使用しているかは3ページ程のTechnical reportにまとめられていますので、こちらをご参照ください。
https://s3.amazonaws.com/static.nomic.ai/gpt4all/2023_GPT4All_Technical_Report.pdf

リポジトリの動作確認については別の記事で作成していますので、こちらもよろしければご参照ください。
https://zenn.dev/kaeru39/articles/9b40e93469de57

まとめ

Transformerから始まる大規模言語モデルのオープンソース化についての動向を、自分が把握できている範囲で整理しました。Twitterで何だかいろいろな情報が飛び交っていくため、名前は知っているけど何ができるものなのか分からない、それぞれの位置づけが分からない、などもやもやが溜まっていっていたので、一度自分なりに整理できて勉強になりました。

今回は最終的に対話支援型の言語モデルのオープンソース化、という着地点に行き着きましたが、例えばマルチモーダル基盤モデルなど、他にも多くの着地点があるかと思います。そういった別視点での動向もこれから勉強していって自身のできる範囲で動向を把握して行きたいと思います。

Discussion