4. OpenLLaMAとオープンな完全再現
OpenLLaMAの誕生背景と目的
初代 LLaMA(2023 年 2 月)は高い性能を示した一方で、モデルの重み(ウェイト)は非商用・研究目的限定のライセンスでした。 そのため、一般企業が自社の製品や業務システムに LLaMA を組み込んで活用することは法的に許されていませんでした。
この課題を解決するため、カリフォルニア大学バークレー校の AI 研究グループ(Berkeley AI Research: BAIR)に所属する Xinyang Geng 氏と Hao Liu 氏らが中心となり、「OpenLLaMA」プロジェクトが立ち上がりました。 その目的はシンプルで明確でした。「初代 LLaMA と完全に同一のアーキテクチャを持ち、完全に公開されたクリーンなデータセットを使ってゼロから事前学習を行い、商用利用可能な寛容ライセンスで一般公開すること」です。
再現の要となったRedPajamaデータセット
LLaMA の論文には学習データの構成比率(Common Crawl 67%、C4 15%、GitHub 4.5%、Wikipedia 4.5% など)が明記されていました。 しかし、実際に Meta がダウンロード・フィルタリングした生データそのものは公開されていませんでした。
この欠落を埋めたのが、オープン AI 団体 Together AI が主導する「RedPajama(レッドパジャマ)」プロジェクトです。 RedPajama チームは、LLaMA 論文に記載されたデータ収集・前処理手順を忠実に再現し、1.2 兆トークンに及ぶオープンデータセット「RedPajama-1T」を構築・一般公開しました。 OpenLLaMA は、この RedPajama データセットを直接用いて、ゼロからの事前学習を敢行しました。
学習フレームワークとアーキテクチャの互換性
OpenLLaMA は、大規模言語モデルの並列学習フレームワークである「EasyLM」(JAX/Flax ベース、Google Cloud TPU 向け)を用いて学習が行われました。 モデルサイズとしては、3B、7B、13B のバリエーションが提供されました。特に 3B モデルは、スマートフォンやエッジデバイスでも扱いやすい手頃なサイズとして重宝されました。
重要な点は、モデルの内部構造(RMSNorm、SwiGLU、RoPE、レイヤー数、ヘッド数など)が初代 LLaMA と完全に一致するように設計されたことです。
重みの形式も Hugging Face の LlamaForCausalLM と互換性を持つように変換・公開されたため、開発者は既存の LLaMA 向けエコシステムや推論ツールをそのまま変更なしで OpenLLaMA に適用できました。
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# OpenLLaMA 3B モデルのロード例
model_id = "openlm-research/open_llama_3b_v2"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16,
device_map="auto"
)
prompt = "The primary purpose of OpenLLaMA is"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=50)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
LLaMAとの性能比較と評価結果
OpenLLaMA は、標準的な言語モデル評価ベンチマーク(MMLU、ARC、HellaSwag、PIQA など)において、オリジナルの LLaMA に極めて近いスコアを記録しました。 特に v2(バージョン2)では、トークナイザーの語彙処理や学習スケジュールの改善により、7B モデルにおいて初代 LLaMA 7B と同等クラスの推論性能を達成しました。
学術研究としてモデルの構造と学習レシピが公開されていれば、民間企業や独立した研究チームであっても最先端モデルを再現できることが実証された瞬間でした。
完全オープンライセンス(Apache 2.0)がもたらした意義
OpenLLaMA の最大の功績は、モデルの重みとコードを「Apache 2.0 ライセンス」でリリースしたことです。 これにより、あらゆる企業や個人が以下の恩恵を受けられるようになりました。
-
商用利用の完全な自由: ライセンス違反の法的リスクを恐れることなく、自社のクラウドサービスやオンプレミス環境に組み込むことができます。
-
完全な透明性: どのデータでどのように学習されたかが完全に追跡可能であり、学術的な再現性やコンプライアンスの検証が容易です。
-
コミュニティの安心感: Meta が Llama 2 や Llama 3 をより寛容なライセンスで公開するまでの重要な移行期において、真に自由なオープンソース AI の象徴として大きな役割を果たしました。
次章からは、これらの LLaMA 系モデルを一般的な PC で高速に動かす立役者となった「llama.cpp」について詳しく見ていきます。