Blog

2026.07.09

Tech

大規模言語モデルの次期バージョンPLaMo 3シリーズにおける120B事前学習モデル、31B蒸留モデルの評価

Shogo Murai

はじめに

Preferred Networksでは国立研究開発法人情報通信研究機構(以下: NICT(エヌアイシーティー) )と共同で大規模言語モデル(以下、LLM)の開発を現在行っています。この取り組みの中で、日本の文化や社会等に留意した高品質かつ大量の学習データを用いた安全で高性能な国産LLMを目指しています。

前回のブログ記事 では、PLaMo 3 シリーズのうち、比較的小さい 8B, 31B モデルについての結果を紹介しました。それから開発および学習を進め、より大きい 120B モデル、31B の蒸留モデルの学習が完了しました。また、長い入力 (long context) に対応するための継続事前学習も実施しました。今回は、これらのモデルについての結果を紹介します。

モデルの概要

今回新たに PLaMo 3 シリーズとして、plamo-3-nict-2604-120b-base および plamo-3-nict-2604-31b-base の 2 つのモデルを学習しました。

plamo-3-nict-2604-120b-base の学習では、まず PLaMo 3 31B に weight reusing を適用し重みを初期値として 120B モデルの事前学習を行いました (2025 年 11 月頃)。その上で、後述の通り long context 向けの継続事前学習を行いました。
plamo-3-nict-2604-31b-base の学習では、2025 年 11 月時点での 120B モデルを蒸留して 31B モデルを学習し、その上で long context 向けの継続事前学習を行いました。

Short Contextの評価

PLaMo 3 の120Bの性能を既存の事前学習モデルと比較するため、複数のベンチマークで評価を行いました。比較対象には Gemma 3 PT 27B および Qwen3-8B-Base を採用しました。100B級の公開モデルは限られている一方で、近年は比較的小規模なモデルに多くの計算資源を投入して性能を高める事例も増えているため、これらを投入計算量が近い代表的な事前学習モデルとして選定しています。加えて参考情報として、より大規模な Qwen3-32B の結果も掲載します。ただし、Qwen3-32B は事後学習済みモデルであるため、結果は参考値として扱います。

それぞれの事前学習時点の投入計算量は以下の通りです。なお、投入計算量はChinchilla論文で用いられた近似式(モデルパラメータ数と学習トークン数に基づく総FLOPs)により算出しています。

表1: 各モデルの事前学習における投入計算量
モデル モデルサイズ 学習トークン数 (Trillion) 投入計算量(log10 FLOPs)
PLaMo 2 8B 8 6 23.5
PLaMo 2 31B 31 2 23.6
PLaMo 3 8B 8 1 22.7
PLaMo 3 31B 31 3 23.7
plamo-3-nict-2604-31b-base 31 1.5 23.8
plamo-3-nict-2604-120b-base 120 3 24.3
Qwen3-8B-Base 8 36 24.2
Qwen3-32B (参考) 32 36 24.8
Gemma 3 PT 27B 27 14 24.4

このため、今回開発した plamo-3-nict-2604-120b-base はQwen 3 8B、Gemma 3 27Bと同レベルの投入計算量で開発したモデルということになります。

また、評価は質問と回答を日本語で行うベンチマークを中心に、以下の複数ジャンルで行いました。

  • 日本語生成
  • 知識
  • コーディング
  • 翻訳

各ジャンルについて、評価に利用したベンチマークは以下の通りです。

日本語生成

基本的な日本語生成能力を測定するためにpfgen-benchを利用しました。

pfgen-benchはPFNが開発している日本語の文章生成性能評価ベンチマークです。ベンチマークのスコアは0から1の値を取るようになっており、数値が高いほど適切な日本語の文章が生成できていることを示します。

知識

LLMがどの程度知識を有しているかを示すためにJMMLU , MMLU-ProXのja、JamC-QAの 3 つのベンチマークの結果を示します。

JMMLUに関しては、オリジナルのMMLUがよく5-shotで評価されるため、JMMLUの公開されているtestデータからランダムに5つのサンプルを選び、few shotの入力としました。評価はStability AIのLanguage Model Evaluation Harness (以降、lm-evaluation-harness) のMMLUのコードを改良して実施しました。

また、MMLUのような選択問題はpromptで性能が大きく変化することが知られています。今回は選択肢をLLMに入力し、A,B,C,Dの選択肢を答えさせる方法(lm-evaluation-harnessのMMLUにおけるdefaultのprompt)を利用しました。

MMLU-ProXに関してはlm-evaluation-harnessのものを利用して測定しました。

最後にJamC-QAに関してはlm-evaluation-harnessのタスクを作成し、評価しました。タスク設定はplamo-lm-evaluation-harness-extで公開しています。

コーディング

コーディングに関してはJHumanEvalという、日本語でプログラミングの指示をするベンチマークによって評価しました。この評価に利用した実験条件はAppendixに示しています。

翻訳

翻訳性能を測定するために、今回はWMT23とWMT24のうち、日本語が関係するものを測定しました。評価に利用した実験条件はAppendixに示しています。

ここから各ベンチマークの結果をまとめて紹介したのち、結果の考察を述べます。

表2: 日本語生成に関する評価 (pfgen-bench)
モデル pfgen-bench
PLaMo 2 8B 0.75
PLaMo 2 31B 0.80
PLaMo 3 8B 0.68
PLaMo 3 31B 0.79
plamo-3-nict-2604-31b-base 0.78
plamo-3-nict-2604-120b-base 0.83
Qwen3-8B-Base 0.55
Qwen3-32B (参考) 0.63
Gemma 3 PT 27B 0.68
表3: モデルの有する知識の評価 (JMMLU, MMLU-ProX ja, JamC-QA)
モデル JMMLU(5 shot, acc) MMLU-ProX ja (5 shot, acc) JamC-QA (4 shot, acc)
PLaMo 2 8B 0.57 0.23 0.56
PLaMo 2 31B 0.67 0.34 0.68
PLaMo 3 8B 0.60 0.26 0.46
PLaMo 3 31B 0.73 0.43 0.63
plamo-3-nict-2604-31b-base 0.74 0.45 0.63
plamo-3-nict-2604-120b-base 0.77 0.52 0.69
Qwen3-8B-Base 0.72 0.47 0.39
Qwen3-32B (参考) 0.79 0.64 0.46
Gemma 3 PT 27B 0.77 0.44 0.50
表4: コーディング能力の評価 (JHumanEval)
モデル JHumanEval (pass@1)
PLaMo 2 8B 0.45
PLaMo 2 31B 0.49
PLaMo 3 8B 0.40
PLaMo 3 31B 0.54
plamo-3-nict-2604-31b-base 0.60
plamo-3-nict-2604-120b-base 0.68
Qwen3-8B-Base 0.62
Qwen3-32B (参考) 0.76
表5: 日本語に関する翻訳性能の評価 (WMT23, WMT24)
モデル WMT23 (en->ja, 4-shot bleu) WMT23 (ja->en, 4-shot bleu) WMT24 (en->ja, 4-shot bleu)
PLaMo 2 8B 23.87 19.71 27.11
PLaMo 2 31B 26.01 22.51 30.43
PLaMo 3 8B 25.24 19.67 28.59
PLaMo 3 31B 26.28 22.30 30.45
plamo-3-nict-2604-31b-base 25.91 22.75 29.46
plamo-3-nict-2604-120b-base 27.01 23.32 31.26
Qwen3-8B-Base 21.62 20.69 24.57
Qwen3-32B (参考) 23.20 22.63 25.83
Gemma 3 PT 27B 26.02 22.79 30.18

plamo-3-nict-2604-120b-base の結果について順番に確認していきます。まず、PLaMo 3 8B/31Bと120B モデルの比較をしてみると、すべてのベンチマークにおいて、plamo-3-nict-2604-120b-base が向上していることがわかります。これはモデルサイズおよび投入計算量が多くなったためであると考えられます。

また、投入計算量が同レベルのQwen3-8B-Base、Gemma 3 PT 27BとPLaMo 3 120Bを比較すると、日本語の生成能力を測定するpfgen-benchや翻訳精度を測定するWMT23、WMT24など学習する日本語の比率が高いと精度が上がりやすいベンチマークだけでなく、JMMLUやJHumanEvalのような日本語が少なくても高いスコアが達成できるベンチマークにおいても同等のスコアが達成できていることがわかります。

最後に plamo-3-nict-2604-120b-base よりも投入計算量が多いQwen3-32Bとの比較です。Qwen3-32Bは事後学習モデルなので、適切な比較が難しく、参考程度の比較になりますが、PLaMo 3 8B/31Bのときと同様に日本語の生成能力を測定するpfgen-benchや翻訳精度を測定するWMT23、WMT24など学習する日本語の比率が高い精度が上がりやすいベンチマークにおいては plamo-3-nict-2604-120b-base のほうが高い精度を達成できています。これに加え、JMMLUに関しては、plamo-3-nict-2604-120b-base とQwen3-32Bを比較すると、同レベルのスコアを達成できていると考えています。
一方、MMLU-ProX jaとJHumanEvalは依然としてQwen3-32Bのほうが高いスコアとなっていました。これは投入計算量の差であると考えられます。この点について説明します。

投入計算量とベンチマークスコアの関係性の評価

MMLU-ProX jaとJHumanEvalに関して、投入計算量とベンチマークスコアの関係のグラフを以下に示します。

図1: 投入計算量 vs MMLU-ProX jaの散布図

図2: 投入計算量 vs JHumanEvalの散布図

この結果からわかる通り、これらのベンチマークのスコアが投入計算量に比例することを示唆している可能性があります。本検証で開発した plamo-3-nict-2604-120b-base は2つのベンチマークにおいてQwen 3 32Bに劣るものの、投入計算量を増やすことで、Qwen 3 32Bと同レベルのところまで持っていける可能性があることがわかります。

long context性能を向上させるための取り組み

PLaMo 3では、long contextの扱いもPLaMo 2以上に力を入れています。ここではそのための取り組みについて紹介します。

近年のLLMにおいて、long contextを扱える能力は非常に重要です。例えば、RAGなどにおいてpromptにある様々な情報を適切に処理可能であることは重要ですし、reasoning LLMでは思考過程のために大量のtokenを生成できる必要があります。
こういった理由から、最近のモデルは64K以上のcontextをサポートするのが一般的です。例えば、Olmo 3は64K token、gpt-ossは128K token、Qwen3は32K tokenをサポートし、YaRNなどの導入によって最大で128Kまで対応できるとしています。

PLaMo 2.0では32K tokenへの対応をしましたが、現在主流のモデルに追いつくにはこれでは足りないという状況です。したがって、PLaMo 3では、gpt-ossやQwen3に並ぶ128K tokenを超えるcontext長への対応を目指すことにしました。

PLaMo 2での手法の適用

取り組みの出発点として、PLaMo 2と同じ手法をほぼそのまま適用しました。PLaMo 2では、以下の2つの手法により32K tokenまでの拡張を実現しています。

  • ABF RoPEの利用
  • 約1B tokenの継続事前学習

しかし、このアプローチでは64K token以上への拡張が難しいという問題がありました。実際に2Bモデルで評価した結果、context長の増加に伴い性能が大きく劣化することが確認されています。
なお、細かい学習設定はAppendixを参照してください。

この評価では RULER を用いました。
RULERに関しては長いcontext評価の際には非常に長い時間がかかります。このため、Language Model Evaluation Harness (lm eval harness) のRULERの実装そのままだと、256k tokenまで評価することが難しいことがわかりました。このためRULERの各タスクの評価サンプル数を100問にして、評価しています。

表6: RULERによる評価結果
context length 性能
8K 0.451
16K 0.402
32K 0.304
64K 0.186
128K 0.067
256K 0.053

特に64K token以降で性能が急激に低下しており、long contextへの一般化が十分にできていないことがわかります。

この問題に対処するための実験・調査を行いました。

実験1: YaRN の導入

他モデルで使われていて有望と思われる解決策として、YaRNの導入を検討しました。

YaRNは、事前学習済みモデルに対してRoPEの計算方法を変更することで、long context性能を向上させる手法です。追加学習なしに適用できる点が特徴であり、Qwenシリーズやgpt-ossシリーズなどでも採用されています。

Appendix に示した設定をベースラインとして、YaRN の有無による性能の差を比較しました。2BモデルにYaRNを適用した結果、以下のように性能が改善しました。

表7: YaRN の有無による RULER スコアの比較
context length 性能 (YaRNなし) 性能 (YaRNあり)
8K 0.451 0.476
16K 0.402 0.414
32K 0.304 0.386
64K 0.186 0.357
128K 0.067 0.243
256K 0.053 0.239

特に64K token以降において、性能低下が大幅に緩和されていることが確認できます。
YaRNはlong contextにおける外挿性能を大きく改善する有効な手法であると言えます。

実験2: 学習token数の増加

さらなる性能向上を目的として、継続事前学習における学習token数を増加させる実験を行いました。実験 1 で YaRN を有効にした設定をベースラインとして、継続事前学習の token 数を 12B/24B としたときの性能の差を比較しました。

表8: 継続事前学習の学習 token 数を変えたときの RULER スコアの比較
context length 性能 (12B token) 性能 (24B token)
8K 0.476 0.605
16K 0.414 0.446
32K 0.386 0.411
64K 0.357 0.198
128K 0.243 0.072
256K 0.239 0.053

短いcontext(32K tokenまで)では性能の向上が見られる一方で、64K token以上では逆に性能が大きく低下する結果となりました。
この結果から、単純に学習token数を増やすだけではlong context性能は改善されないことがわかります。
むしろ、長時間の学習によってYaRNが持つcontext外挿能力が徐々に失われている可能性が考えられます。これは学習率の調整等のハイパーパラメータ最適化で解決できる可能性もありますが、網羅的な実験はできていません。

今回採用した方針

上記の実験結果をもとに、PLaMo 3のlong context性能改善としては、

  • YaRNを適用する
  • 学習token数は大きく伸ばさない

という方針をとることとしました。

long contextの評価

利用したベンチマークと比較モデル

Phonebook とRULERの小規模なものを利用して評価しました。

また、評価するcontext長の長さですが、最大256kまでPLaMo 3のモデルは評価しました。
比較対象として、SSMなどのhybrid modelではない最新のbaseモデルとしてOLMo 3 32Bを評価しています。ただし、OLMo 3 32Bは最大context長は64kであり、一部のベンチマークでは64kの設定だとcontext長を超えるケースがあるため、測定できるcontext長まで測定しています。

long contextの評価結果

long contextの評価結果を以下に示します。
まずはPhonebookの結果です。

図3:plamo-3-nict-2604-31b-base (long context学習後)のPhonebookの結果

図4:plamo-3-nict-2604-120b-base (long context学習後)のPhonebookの結果

図5:OLMo 3 32B (参考)のPhonebookの結果。OLMo 3 32Bに関しては64kまでのサポートなので、64kまで示しています。

次に、RULERのサブセットの結果です。

表9: RULERのサブセットのcontext長毎の結果
token数 plamo-3-nict-2604-31b-base plamo-3-nict-2604-120b-base OLMo 3 32B (参考)
4k 0.910 0.947 0.949
8k 0.860 0.904 0.927
16k 0.804 0.851 0.907
32k 0.718 0.780 0.852
64k 0.672 0.709 – ※
128k 0.600 0.612 – ※
256k 0.597 0.602 – ※

※ 今回利用したRULERの実装では生成tokenを含めると指定したtoken数を超過するケース

PhoneBook、RULERのサブセットに対する plamo-3-nict-2604-31b-base、plamo-3-nict-2604-120b-base の結果を見ると、context 長が32k以上のところでも一定の精度を保てていることがわかります。このため、YaRNの導入と学習token数の調整は一定の効果があったと考えています。一方、比較として最近公開されたOLMo 3 32Bと比べると32kの部分の精度は依然として下回っています。フルスクラッチから学習しているモデルのLong context対応向けの学習に関しては学習データやハイパーパラメータなどの情報が少ないため、今後も継続して開発を進め、さらなる精度向上を目指していくことを考えています。

終わりに

今回はNICTとの取り組みで行っているPLaMo 3シリーズの大規模な事前学習モデルの結果について紹介しました。特に、long context 処理能力の向上を実現しましたが、他社のオープンウェイトモデルと比較すると、まだ改善の余地がある部分もあります。そのため、弊社では引き続きモデル開発を進めていきます。

また、今回開発したモデルはHugging Faceの以下のURLで公開しています。

https://huggingface.co/pfnet/plamo-3-nict-2604-31b-base

ただし、このモデルは事前学習済みのモデルです。このため、他の事前学習済みのLLMと同様、今回のPLaMo 3のモデルの出力内容を事前予測することはできず、場合によっては不正確・偏った内容、あるいはユーザーの指示に対して不適切と判断される応答を生成する可能性があります。したがって、PLaMo 3の今回のモデルを利用したアプリケーションを展開される際には、開発者の方において本モデルの具体的な用途に合わせた安全性テストとチューニングを実施していただく必要があります。

仲間募集中

PFNでは今後もLLMの開発を継続して行っていきます。開発は今回紹介した以外にも多岐にわたります。我々はこれらの課題に情熱をもって挑戦していく仲間を募集しています。

これらの仕事に興味がある方はぜひご応募よろしくお願いします。

https://www.preferred.jp/ja/careers/

Appendix

JHumanEvalの評価方法

promptは https://huggingface.co/datasets/kogi-jwu/jhumaneval のpromptをそのまま利用しました。

例:

from typing import List


def has_close_elements(numbers: List[float], threshold: float) -> bool:
    """リストnumbersの中に、与えられたthresholdより近い2つの数値が存在するか判定する  
    >>> has_close_elements([1.0, 2.0, 3.0], 0.5)
    False
    >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)
    True
    """

また、LLMのコードの生成は以下のものでも止まるようにしました。

[ "\nclass", "\ndef", "\n#", "\n@", "\nprint", "\nif", "\n```", "<|plamo:file_separator|>", "\nimport", "\nfrom"]

wmt23、24の評価方法

wmt23, 24の評価はhttps://github.com/Stability-AI/lm-evaluation-harness/tree/jp-stable のものと同じものを利用しました。具体的にはen → jaは以下のようなpromptになります。

English phrase: Ford Motor and Volkswagen have said they will spend billions of dollars to jointly develop electric and self-driving vehicles.
Japanese phrase: フォード・モーターとフォルクスワーゲンは、電気自動車と自動運転車の共同開発に数十億ドルを投資する予定だと発表している。

… 


English phrase: Dozens of fundraising coffee mornings are taking place across Scotland on Friday.
Japanese phrase:

long context性能改善の事前実験条件

事前学習
モデルサイズ 2B
学習token数 100B token
学習context length 4K
long context対応の継続学習
モデルサイズ 2B
学習token数 12B token
学習context length 64K
  • Twitter
  • Facebook