機械学習

Meta開発のLLMであるLLaMAについて解説!LLaMAからAlpacaへ!

LLaMA
ウマたん
ウマたん
当サイト【スタビジ】の本記事では、Meta社の開発する大規模言語モデル(LLM)であるLLaMAについて解説していきます!LLaMAはパラメータの少ない軽量モデルでありながら他のLLMに匹敵する精度を誇るモデルでオープンソース化されています。LLaMAをベースに開発されたAlpacaについても見ていきましょう!

こんにちは!

データサイエンティストのウマたん(@statistics1012)です!

OpenAIのGPTやGoogleのPaLMなど、各社AIブームにおける覇権争いを繰り広げていますが、その中でもこの記事ではMetaが開発している大規模言語モデルのLLaMAについて解説していきたいと思います!

LLaMAの仕組みや構成

LLaMAは(Large Language Model Meta AI)の略であり、Metaが2023年2月に発表した大規模言語モデルです。

以下がLLaMAの論文になります。

ちなみに英語ですが、LLaMAに関して以下の動画で分かりやすく論文を解説してくれています!

LLaMAは、OpenAIに開発するGPTモデルや、Googleの開発するPaLMなどと比較すると圧倒的に少ないパラメータ数のモデルになっています。

LLaMAは、パラメータ数をおさえながら高精度を実現しているため、世界中の研究者がLLaMAをベースに様々な大規模言語モデルの可能性を探ることが可能になっているんです。

ウマたん
ウマたん
従来のモデルはパラメータ数が多すぎて学習に莫大な計算リソースが必要になってたんだよね・・・

LLaMAのコードはGithubに上がっておりオープンソースとして公開されています。

なんと、Githubのリポジトリからコードを世界中の誰でも確認できるんです!

ロボたん
ロボたん
最先端のアルゴリズムがオープンソースで確認できちゃう世の中素晴らしい!!

それでは具体的にどんな特徴があるのか簡単にまとめていきましょう!

パラメータ数

さて、先ほどLLaMAの特徴の1つはパラメータ数の少なさであるとお伝えしましたが、どのくらいのパラメータ数なのでしょうか?

LLaMAは4つのモデルが提供されています。

各モデルのパラメータ数は以下のようになっています。

各モデルのパラメータ数
(出典:LLaMA: Open and Efficient Foundation Language Models)

LLaMAにはそれぞれ、

・70億個(正確には67億個)
・130億個
・330億個(正確には325億個)
・650億個(正確には652億個)

のパラメータ数のモデルが存在しています。

これでも十分パラメータ数は多い気がしますが、GPT-3の1700億個やGoogleのPaLMの5400億個などに比べると圧倒的に少ないのが分かるでしょう!

学習データ

LLaMAでは、パラメータ数が比較的少ない分、大量の学習データで学習させています。

一番パラメータ数の少ない67億個のパラメータ数モデルでも、なんと1兆トークンの学習データで学習しているんです!※1トークンは英語の1単語に等しいです

モデルのパラメータ数(出典:LLaMA: Open and Efficient Foundation Language Models)

最もパラメータ数の多い652億個のパラメータ数モデルだと、1.4兆トークンの学習データになります。

ちなみに学習データのソース割合は以下の表のようになっています。

LLaMA学習データ割合
(出典:LLaMA: Open and Efficient Foundation Language Models)

CommonCrawlはWebサイトのクローリングデータ、C4とはGoogleが用意している巨大データセット「Colossal Clean Crawled Corpus(C4)」でありこちらもクローリングデータですね。

あとはGithubのコードデータセットやWikipediaのデータや書籍・論文などのデータが利用されていることが分かります。

アーキテクチャ

続いてLLaMAのアーキテクチャについて見ていきましょう!

特別なアーキテクチャではなく既存の研究の組み合わせのアーキテクチャになっているようです。

最近の大規模言語モデルはどれもそうですが、LLaMAもご多分に漏れずベースはTransformerのアーキテクチャになっています。

RMSNormalizationによる計算量の削減

計算量を削減するためにLLaMAではRMSNormalizationという正規化手法が用いられています。

RMSとはRoot Mean Squareの略であり、ニューラルネットワークの層に入力する前に平均二乗誤差(Root Mean Square)で正規化してから入力するというアプローチです。

RMSNormalizationに関する論文は以下ですので詳しく知りたい方は是非チェックしてみてください。

これにより大幅な計算量削減に成功しており、論文の中では実行時間を7%〜64%短縮できたと述べられています。

活性化関数にSwiGLUを適用

活性化関数にSwiGLUという関数を使っています。

活性化関数とはザックリ言うと出力値を適当な関数で変換する関数です。

例えば、

\begin{eqnarray} y= \left\{ \begin{array}{l} 0   (w_1x_1+w_2x_2<=0.5) \\ 1   (w_1x_1+w_2x_2>0.5) \end{array} \right.\end{eqnarray}

みたいな関数があったら出力値が0.5というしきい値で0か1という値に変換されていることが分かります。

これも活性化関数です。

そして、ディープラーニングに古くから利用されてきている活性化関数としてはRELU関数が有名です。

RELU関数とは以下のような関数。

以下のように定式化することができます。

\begin{eqnarray} y= \left\{ \begin{array}{l} x ~~  (x>0) \\ 0~~  (x<=0) \end{array} \right.\end{eqnarray}

0以下は強制的に全部0にしてしまう活性化関数です。

このRELU関数に似た活性化関数としてよく使われるようになってきたのがSwish関数です。

Swish
(出典:ReNom:Swish関数の紹介

RELU関数にかなり近いのですが、入力が0付近で出力が若干負の値を取るようになる活性化関数です。

そしてこのSwish関数とGLU(Gated Linear Units)を組み合わせたものがSwiGLUです。

GLUはザックリ言うと通常の線形アウトプットと活性化関数で変換したアウトプットをかけあわせたものを出力とする処理です。

\begin{eqnarray} GLU = (w_1x_1+w_2x_2) × f(w_1x_1+w_2x_2) \end{eqnarray}

あまりよくわからないと思いますが、いい感じに関数組み合わせて変換するようにしたら精度上がった的な感じです(適当)。

GLUの論文は以下を参考にしてみてください。

絶対位置埋め込み処理でなくて相対位置埋め込み処理

Transformerのアーキテクチャでは単語の位置関係をモデルが理解するためにPosition Embeddingという処理が行われているのですが、LLaMAでは絶対位置埋め込み処理ではなくて相対位置埋め込み処理(Rotary Position Embedding)を用いています。

以下が論文です。

相対位置埋め込み処理は絶対位置埋め込み処理と比較して長文に対する精度が上がることがわかっています。

 

ここまでLLaMAの特徴を述べてきましたが、要は「これまでの研究で明らかになってきたアプローチを組み合わせてパラメータ数を少なめに学習データを多めに学習させたよ」ってことです。

LLaMAからAlpacaへ

実はLLaMAをベースにスタンフォード大学を中心とした大学群の研究チームが67億個のパラメータを持つLLaMAモデルにファインチューニングをかけて精度を向上させたモデルであるAlpacaが発表され話題になりました。

Alpacaの論文は以下です。

たったの70億個のパラメータで、GPT-3.5に匹敵する会話性能を持つということで話題になりました。

LLaMAの根本思想として、世界中の研究者が簡単にファインチューニングして試行錯誤できる軽量モデルを提供する、があったからこそ実現したモデルだと思います。

ウマたん
ウマたん
このように成果をオープンにして共有することで良いモデルがどんどん出てくる世の中は素晴らしい!

Googleは「我々にとってのOpenAIではない、オープンソースだ」と言っているくらいは全て公開しようとする流れは冨を独占する企業にとって脅威です。

Meta開発のLLMであるLLaMA まとめ

ここまでで、Google開発のLLMであるLLaMAについてまとめてきました!

LLMについてある程度理解した後は各種モデルを具体的に手を動かしながら実装してみることが大事です。

ウマたん
ウマたん
頭の良い人たちが研究開発した知識をガンガン社会実装していこう!

各種大規模言語モデル(LLM)をPythonで利用する方法を知りたい方は当メディアが運営するスタアカの以下のコースを是非チェックしてみてください!

スタアカは業界最安級のAIデータサイエンススクールです。

スタアカトップ
【価格】ライトプラン:980円/月
プレミアムプラン:98,000円
【オススメ度】
【サポート体制】
【受講形式】オンライン形式
【学習範囲】データサイエンスを網羅的に学ぶ
実践的なビジネスフレームワークを学ぶ
SQLとPythonを組み合わせて実データを使った様々なワークを行う
マーケティングの実行プラン策定
マーケティングとデータ分析の掛け合わせで集客マネタイズ

・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析
・世界最大手小売企業のウォルマートの実データを用いた需要予測
・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定
・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践して稼ぐ

AIデータサイエンスを学んで市場価値の高い人材になりましょう!

データサイエンスやAIの勉強方法は以下の記事でまとめています。

【5分で分かる】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。...
AIのロードマップ
【これだけ!】AI(人工知能)の勉強ロードマップを徹底的に解説!当サイト【スタビジ】の本記事では、AIを勉強するロードマップについて徹底的に解説していきます。まずは、AIの概要について理解して統計学の基本知識・機械学習の基本知識・Pythonでの実装・インフラ周りの知識などを包括的に理解していきましょう!...
スタビジアカデミーでデータサイエンスをさらに深く学ぼう!

スタアカサービスバナースタビジのコンテンツをさらに深堀りしたコンテンツが動画と一緒に学べるスクールです。

プレミアムプランでは私がマンツーマンで伴走させていただきます!ご受講お待ちしております!

スタビジアカデミーはこちら