大規模言語モデルの全体像をざっくり理解する

# はじめに

この記事では、LLM (Large Language Model: 大規模言語モデル)について、2023年5月29日現在での情報を広くまとめてみました。技術的な特徴を通して市場動向を理解することを目的に大規模言語モデルをリリースしている各社のサイトや海外のレポートなどをざっくり斜め読みしてみたことをまとめています。各社の開発競争が激しく、新しい仕組みやモデルが次々にリリースされるので、この記事もあっという間に古くなるかもしれません。

# LLM(Large Language Model: 大規模言語モデル)ってなに？

## Large Language Model

[Wikipedia 大規模言語モデル](https://ja.wikipedia.org/wiki/大規模言語モデル)には以下のように記載があります。

出典: フリー百科事典『ウィキペディア（Wikipedia）』
大規模言語モデル（だいきぼげんごモデル、英: large language model、LLM）は、言語モデルにおける種別のひとつである。通常、機械学習における数十億以上のパラメータを持つニューラルネットワークで構成され、膨大なラベルなしテキストを使用して自己教師あり学習または半教師あり学習（英語版）によって訓練される。LLMは2018年頃に登場し、さまざまなタスク（仕事）で優れた性能を発揮している。これにより、自然言語処理の研究の焦点は、特定のタスクに特化した教師ありモデルを訓練するという以前のパラダイムから転換した。

## 大規模言語モデルの主な機能

上記のWikipediaのコメント読んでも、なるほど！、とはならないですよね。。少なくとも私はなりませんでした。どちらかというと、`ChatGPTでは大規模言語モデルを使っているらしい`みたいな感じかと思います。

大規模言語モデルが実現する主な機能とは下記になります。Speech to text (文字起こし)、text to image (画像生成)なども同じTransformerを起源としたテクノロジーですがこの記事では、下記に絞って話を進めます。
- Parapharase (言い換え)
- Text improvement (文章の改善)
- Summarize (要約)
- Grammatical error correction (文法上の誤り訂正)
- Text segmentation (文章の分割)
- Translation (翻訳)
- Contextual answers (文脈を理解した回答)

## OpenAI ChatGPTとは

ChatGPTとはなんぞや、というコメントや記事はよく見かけるかと思います。[Wikipedia ChatGPT](https://ja.wikipedia.org/wiki/ChatGPT)によると`ChatGPT（チャットジーピーティー、英語: Chat Generative Pre-trained Transformer）は、OpenAIが2022年11月に公開した人工知能チャットボット。原語のGenerative Pre-trained Transformerとは、「生成可能な事前学習済み変換器」という意味である。OpenAIのGPT-3ファミリーの大規模言語モデルを基に構築されており、教師あり学習と強化学習の両方の手法で転移学習されている。`とあります。
私は、下記のように理解しました。
OpenAIという企業が提供するChatGPTとは、文脈を理解した自然言語処理を実現するWebサービスである。ChatGPTの後ろには、GPT-3.5やGPT-4 (大規模言語モデルの名称)という仕組みが動いている。GPTとはOpenAIが提供する言語モデルの名称である。

OpenAIの提供する言語モデルは、GPTだけではなく他の目的にも提供されています。[OpenAI/Documentation/Models](https://platform.openai.com/docs/models/overview)にAPI経由で利用可能なモデルの一覧と説明があります。GPTをAPI経由で利用するとChatGPTのような機能を持つWebサービスを構築可能ということですね。

GPT-3が175B (BはBillion)、すなわち1750億のパラメータ数でトレーニングされた言語モデルと公表されています。[Wikipedia GPT](https://ja.wikipedia.org/wiki/GPT_(言語モデル))によると、`570GBのプレーンテキスト、4000億のトークン。主にCommonCrawl, WebText, English Wikipedia, および2つの書籍コーパス（Books1およびBooks2）.`をトレーニング(訓練)データに使用しているとあります。GPT3.5、GPT-3.5-Turbo、GPT-4は詳細情報が公開されていません。

## 言語モデルとは

GPTが言語モデルである、ということはわかりましたが、他にもありそうだな、ということで、調べてみるとarXivに投稿されている[Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond](https://arxiv.org/abs/2304.13712)が見つかりました。この記事の2. PRACTICAL GUIDE FOR MODELSにLLM開発の進化の過程を表す挿絵があります。記事に記載の投稿された画像の更新された情報がGitHubにありましたので、そちらを紹介します。

![qr_version.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1557529/e6b8248d-ab27-5ff7-a501-eec81f648b55.jpeg)


画像右下に企業ロゴが並んでいるのですが、これだけだとわかりにくいので、上から順番に企業名を追記しておきます。

- [Allen Institute for AI](https://allenai.org)
- [AI21 Labs](https://www.ai21.com)
- Baidu
- Microsoft
- [DeepMind](https://www.deepmind.com)
- [ANTHROPIC](https://www.anthropic.com)
- [EleutherAI](https://www.eleuther.ai)
- [BigScience / Hugging Face](https://bigscience.huggingface.co)
- [Meta AI](https://ai.facebook.com)
- [OpenAI](https://openai.com)
- Google

# OpenAIの競合企業と製品・サービス

[MicrosoftがOpenAIに対し、数十億ドル(1兆円を超える)規模の投資を行うと発表](https://news.microsoft.com/ja-jp/2023/01/25/230125-microsoftandopenaiextendpartnership/)されている通り、MS系である、と言えそうです。クラウドサービスという視点での競合であるGoogle、AWSの動向も気になりますよね。きっと。

## Google

[Google Bard](https://bard.google.com)とは、Googleが提供している対話型の自然言語処理を実現するWebサービスと言えるかと思います。FAQページに`Bardとはなんですか？`とあります。対話型AIモデル LaMDA (Large Model for Dialogue Applications)を使っている、との記載があります。Google Japan Blogにて[PaLM 2の紹介](https://japan.googleblog.com/2023/05/palm-2.html)の中にBardに適用し、言語対応を増やすという趣旨のコメントがあります。PaLMはPathways Language Modelの略であり、PaLM 2は、先日のGoogle I/O 2023で発表された最新版のモデルとなります。4つのサイズで提供しており、最軽量のGeckoはモバイル端末で動作する、と記載があります。
また、医療向けのMed-PaLM 2、セキュリティ向けのSec-PaLM (こちらは2とついていないけど、)など、PaLM 2を特定の目的に向けて仕立てたと特別なバージョンも発表されています。

## AWS

AWSは[Amazon Bedrock](https://aws.amazon.com/jp/bedrock/)という生成系AIアプリケーションを展開しています。この中には、テキスト生成系AIと画像生成系AIが含まれていますが、この記事では、テキスト生成系にフォーカスしているので下記の2つに絞って紹介します。Amazon Titanはドキュメントが見当たらなかったのでこの記事では言及していません。

### ANTHROPIC Claude

[ANTHROPIC Claude製品紹介ページ](https://www.anthropic.com/product)のFAQsにCan Claude access the internet?という質問があり、その回答は`Claude is designed to be self-contained, and will respond without searching the internet.`とあります。自己完結型の製品であり、インターネット経由のアクセスによるサービス提供ではないとあります。上記回答に続けて、セットアップした上で、インターネット経由でのやり取りは可能、という補足もあります。AWS環境でClaudeの言語モデルを利用した専用環境を構築できる、ということのようです。詳細なドキュメントはAWSでは見つかりませんでした。

### AI21 labs Jurassic-2

[AI21 Labs](https://www.ai21.com)の提供する[AI21 Studio](https://docs.ai21.com/docs/overview)は、自然言語処理ソリューションのプラットフォームである、とあります。第二世代の言語モデル[Jurassic-2](https://docs.ai21.com/docs/jurassic-2-models)を提供しており、高い品質を誇るJumbo、品質、速度、コストのバランスに優れるGrande、速く、コスト効率のよいLargeとあります。いずれの言語モデルも非英語に対応しており、スペイン語、フランス語、ドイツ語、ポルトガル語、イタリア語、オランダ語に対応とあります。

特徴として[自然言語処理のタスクごとにAPI](https://docs.ai21.com/docs/task-specific)が用意されています。Parapharase API (言い換え)、Grammatical Error Corrections API (文法上の誤り訂正)、Text Improvement API (文章の改善)、Summarize API (要約)、Text Segmentation API (文章の分割)、Contextual Answers API (文脈を理解した回答)となっています。最後の文脈を理解した回答については、ベータ版のようです。[こちらから登録して試す](https://studio.ai21.com/login)ことができます。

## オープンソースの言語モデル

上記はいずれもプロプライエタリな言語モデルを紹介しました。いくつかオープンソースの言語モデルを紹介します。

### Meta AI LLaMA

[Meta AIが発表](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/)した70億、130億、330億、650億の4種類のパラメータサイズを持つ大規模言語モデルです。非商用の研究目的の利用に限られます。ケース バイ ケースでの提供である、との記載があります。Google formにて、いくつかの質問事項に回答し、さらにLLaMA LICENSE AGREEMENTに合意した上で承認申請が下りれば使える、というもののようです。

### MosaicML MPT

[MosaicMLが発表](https://www.mosaicml.com/blog/mpt-7b)したMPT (MosaicML Pretrained Transformer)シリーズの言語モデルです。発表記事の中で言及されている特徴は下記になります。ベースのMPTと3つの目的別にファインチューニングしたモデルをリリースしています。
- 商用利用可能なライセンス (LLaMAとは違う)
- 大量データを用いたトレーニング (LLaMAと同じように1兆トークン、Pythiaは3000億、OpenLLaMAは3000億、StableLMは8000億)
- 超長文インプットに対応 (65000トークンのインプットと84000トークンのアウトプットに対応、他のオープンソースモデルは2000から4000トークン)
- 高速トレーニングと高速推論に最適化 (FlashAttentionとFasterTransformerを通じた対応)
- 高効率なオープンソースのトレーニングコードを実装済み

### Pythia

[EleutherAIのPythia](https://github.com/EleutherAI/pythia)は16種類のモデルを含むスイートとなっています。154の部分的にトレーニングされたチェックポイントを定義しており、科学的なリサーチに対しオープンにアクセスできる透明性を持った大規模言語モデルです。8つのモデルサイズ(パラメータ数が7000万、1億6000万、4億1000万、10億、14億、28億、69億、120億)と2種類のデータセット([Pile](https://pile.eleuther.ai)とPileに重複排除を行なったもの)を提供しています。

### OpenLLaMA

[OpenLLaMA](https://github.com/openlm-research/open_llama)は、Meta AI LLaMAのオープンソース版リプロダクションとしてパブリックベータ リリースされています。このモデルは、LLaMA 7Bの入れ替えとして実装することができます。2023/5/22に公開されたOpenLLaMA 7Bは7000億トークン、OpenLLaMA 3Bは6000億トークンのモデルとのことです。

### StableLM

[Stability AIのStableLM-Alpha](https://github.com/Stability-AI/StableLM)モデルは、Pileを元に約3倍の1.5兆トークンの新しいデータセットを使ってトレーニングされています。3Bと7Bがリリースされており、15B、30B、65Bが対応中、175Bが計画済み、となっています。

# 言語モデルの起源とファミリー

Transformerを起源とするモデルのファミリーツリーを見つけたので紹介します。[Transformer models: an introduction and catalog - 2023 Edition](https://amatriain.net/blog/transformer-models-an-introduction-and-catalog-2d1e9039f376/)の記事には、モデルを広くカバーしており、有名なTransformerモデルを包括的かつシンプルにカタログ化し分類してあります。

![02-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1557529/7f85b6c9-97e4-cb8e-bc95-29ea566f6cf9.png)

図の左側中央にVanilla Transformerとあります。Vanillaは、ノーマルの、とか、素の、という意味です。すなわち、Googleが2017年に公開した[Transformer: A Novel Neural Network Architecture for Language Understanding](https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html)に記載されているTransformerモデルを指しています。Transformerモデルは、連続したデータの関係を追跡することによって、文脈や意味を学習するニューラルネットワークです。言語理解のための言語モデリング、機械翻訳、質問の回答など、を向上させる仕組みとして、RNN、CNNよりも優れたパフォーマンスを得ることができると記載されています。

多くの種類が公開されているGPT系、LLaMA系、PaLM系など、本記事で紹介した言語モデルがTransformerから派生していることがご確認頂けます。本記事は大規模言語モデルにフォーカスしたため、主な機能も言語処理に絞って紹介しましたが、オリジナルのTransformerアーキテクチャは、画像、音声などの生成にも適用できるため、DALL-E 2、Stable Diffusionなどに代表されるtext to image (画像生成)などもこのファミリーツリーに記載されています。