以下の内容はhttps://stockmark-tech.hatenablog.com/entry/2025/03/06/114203より取得しました。


Stockmark 2: 日本語に特化した1000億パラメータLLMの開発と公開

ストックマークではGENIACの第2期のプロジェクトで日本語を主な対象とした1000億パラメータのLLMの開発を行なっています。このブログではGENIACの取り組みについて簡単に紹介します。また、開発自体はまだ続いていますが、一定の性能が出てきたことから、現段階のモデル、Stockmark-2-100B-Instruct-betaをベータ版としてHuggingFace HubでMITライセンスで公開します。日本語MT-Benchではこれまで日本で開発されてきたオープンなモデルに比べて高い性能を示すことがわかりました。このモデルは1.5兆トークンのデータで事前学習を行い、その後に事後学習を行なったモデルです。

モデル:https://huggingface.co/stockmark/Stockmark-2-100B-Instruct-beta

開発の背景

2024年10月に国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)が実施する「ポスト5G情報通信システム基盤強化研究開発事業/ポスト5G情報通信システムの開発」に採択されました。これは、経済産業省の国内の生成AIの開発力強化を目的としたGENIACプロジェクトと連携して行われており、国内事業者に対して生成AIの開発に必要な計算資源の確保と利用料補助を行うものです。当社は2024年2月から開始されたGENIACの第1期のプロジェクトにも採択されており、今回の第2期のプロジェクトで2回目の採択になります。

今回の事業では「ハルシネーションを抑止したドキュメント読解基盤モデルの構築」のテーマで採択され、私たちが普段業務で扱うような複雑なドキュメントでも正確に理解できるマルチモーダルの基盤モデルを目指して開発を行なっています。事業としては大まかには、以下のように、二つのパートからなっています。

  • 基盤となる日本語性能の高い1000億パラメータのLLMをフルスクラッチで開発する。
  • 上で開発したLLMに対してマルチモーダル学習を行い、正確性の高いドキュメント読解のための基盤モデルを開発する。

今回のブログでは主に前者の内容を扱います。

事前学習

まずは、1000億パラメータのLLMの事前学習での取り組みについて簡単に説明します。

今回は全体で2兆トークン程度のデータセットで学習を行なっており、データセットの構成としては大まかに、60%が英語、30%が日本語、10%がコードです。今回公開したモデルは1.5兆トークン学習時のモデルに対して事後学習を行なったものです。分散学習のためにライブラリとしてMegatron-LMを用いました。学習はAWSのNVIDIA H100 GPUクラスタ(Amazon SageMaker HyperPod)で行いました。

当社はGENIACの第1期でも1000億パラメータのLLMの事前学習を行いましたが、その時に得た知見や課題を活かして、最終的に性能の高いモデルを得る確率を上げるために、いくつかの取り組みを行いました。

一つ目の取り組みとして、まず最初に、本番と同一のデータセットを用いて、1000億パラメータより小型の150億パラメータのLLMの事前学習を行いました。この目的の一つとしては、事前学習の各時点における性能の基準を得ることです。1000億パラメータのモデルのみの学習を行なった場合、学習の途中において、学習が適切に進んでいるのかどうかを判定するのは極めて難しいです。そこで、今回は150億のモデルの性能を基準として、1000億パラメータのモデルが、事前学習の各時点でその性能を超えていることを確認して行きました。これにより、なんらかの理由により学習が適切に進んでいないなどの問題が発生した場合に、早い段階で異常に気づけることが期待できます。

例えば、下の図はLLM-jpが開発しているllm-jp-evalを用いて、Jaster 4-shotの性能を100Bトークン毎に評価したもので、各時点において1000億パラメータのモデルが150億パラメータのモデルのスコアを上回りながら学習が進んでいる様子が確認できます。

また、1000億パラメータのモデルは、完成するまでに時間がかかり、チューニングにも時間がかかるため、この小型のモデルを用いて、ダウンストリームタスクの性能向上の検証を効率的に行いました。

二つ目の取り組みとしては、いくつかのハイパーパラメータの値を何通りか用意し、それぞれ、最大100億トークンまで学習を行い、学習が安定して進んでいるハイパーパラメータを選びました。

事後学習

1.5兆トークン学習した1000億パラメータのLLMに対して以下のような事後学習を行いました。全体としては、最初に教師あり学習 (SFT) を行い、その後に選好学習(ここではDPO)を行いました。

SFT

SFTは二段階からなり、最初に数学やコーディングのデータで学習を行い、その後に一般のタスクに対する学習を行いました。学習を分けた理由としては、複数のタスクを同時に学習させようとしたときに、タスク間での競合が起こり、コーディングなどのタスクでは十分に性能が向上しないことがあるという先行研究を参考にしました*1 *2

SFTでは主にLLMによる合成データを用いました。合成データの作成には制約の少ないライセンス(Apache-2.0)で公開されており、日本語の性能の高いQwen2.5-32B-Instructを用いました。合成データの作成のために、まず公開されているApache-2.0やMITなどの制約の少ないライセンスを持つ英語の指示学習データセットからプロンプトを収集し日本語に翻訳しました。収集されたプロンプトに対して、応答、それに対する追加の指示、応答を順次LLMで生成して、マルチターンの指示データセットを作成しました。

その後の評価から、公開データセットから収集したプロンプトに質が悪いサンプル(例えば、そもそも明確な指示になっていないものなど)が一定の割合で混じっており、ダウンストリームタスクの性能が悪影響があることがわかりました。そのため、LLMによる取集したプロンプトの修正などを行い、一定の効果がありました。

DPO

SFTが完了した後のモデルに対して、DPOを行いました。

DPOを行うには、一つのプロンプトに対する二つの出力を用意し、どちらが良い出力であるかがラベル付けされた選好データが必要となります。初期の検証では、公開されている英語の選好データセットを日本語に翻訳したものを用いて、オフラインのDPOを試しましたが、性能の改善があまり見られませんでした。そのため、今回はDPOを行うSFT済みのモデルから直接出力を生成し、そこから選好データを作成し、オンラインに近い形でのDPOを試しました。

具体的には、SFTのために作成した合成データセットの中からランダムにプロンプトをサンプルし、それに対してSFT済みのモデルを用いて、複数の出力を生成しました。その後に、それぞれの出力に対して、LLM(Qwen2.5-32B-Instruct)でスコア付けを行い、最も良いスコアの出力と最も悪いスコアの出力でペアにして、選好データを作成しました*3。LLMによるスコア付けでは、有用性、正確性、簡潔さ、有害な出力を含んでいないか、出力形式が指定されている場合にそれに従っているかなどの観点を考慮するようにしました。

後述の日本語MT-BenchではDPOにより0.3-0.4ポイントほどのスコアの向上が見られました。

性能評価

これまで説明してきた方法により開発されたモデルを、ここでは日本語MT-Benchにより既存のモデルと評価を行いました。今回の評価では、日本の組織により開発されてきたオープンなモデルとの比較を行いました*4。その結果、これまで日本でフロムスクラッチで開発されたモデルと比較すると、今回開発したモデルは一定の差を持って高い性能を示していることがわかりました。また、LlamaベースのSwallowに対しても、今回開発したモデルはわずかにスコアが高い結果になりました。

ChatGPTなどのクローズドなモデルやQwenやDeepSeekなどのモデルと比べるとまだ一定の差はありますが、今後、さらなる性能の向上を目指していきたいと思っています。

また、今回、日本語に特化したモデルを開発しているということで、日本のビジネスドメインでの知識をどの程度保持できているかを、当社が開発したStockmark Business Questionを用いて評価したところ、今回の正解率は90%で、gpt-4oの正解率88%をわずかながら上回る結果となりました。

最後に

このブログでは、GENIAC第2期における当社のLLM開発の取り組みについて紹介しました。今回、現在開発中のモデルをベータ版として公開しましたが、開発はまだ続いており、プロジェクトが終わるまで、さらに性能の向上を目指していきたいと思っています。また、このブログではあまり触れませんでしたが、プロジェクトの本丸であるドキュメント読解に特化したマルチモーダルモデルの開発についても、別の機会で紹介させていただければと考えています。

謝辞

この成果は、NEDO(国立研究開発法人新エネルギー・産業技術総合開発機構)の助成事業「ポスト5G情報通信システム基盤強化研究開発事業」(JPNP20017)の結果得られたものです。また、当社は産業技術総合研究所とLLMに関する共同研究をおこなっており、今回のプロジェクトの遂行にあたっても助言をいただきました。また事前学習に関しては、LLM-jp内での議論を参考にさせていただきました。

(作成)近江崇宏

*1:Adler, Bo, et al. "Nemotron-4 340b technical report." arXiv preprint arXiv:2406.11704 (2024). https://arxiv.org/abs/2406.11704

*2:Guanting Dong, Hongyi Yuan, Keming Lu, Chengpeng Li, Mingfeng Xue, Dayiheng Liu, Wei Wang, Zheng Yuan, Chang Zhou, and Jingren Zhou. 2024. How Abilities in Large Language Models are Affected by Supervised Fine-tuning Data Composition. In Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 177–198, Bangkok, Thailand. Association for Computational Linguistics. https://aclanthology.org/2024.acl-long.12/

*3:厳密には、データの質を上げるために、最も良い出力のスコアがある決められた閾値以上であり、かつ、最も良い出力と悪い出力のスコアの差がが閾値以上のものに限定しましたが、これにどの程度の効果があるかは未検証です

*4:評価にはgpt-4o-2024-08-06を用い、スコアは3回のトライアルの平均値を示しています。それぞれのモデルで、使用例などでrepetiton_penaltyやtop_pの値が指定されている場合は、その値を用いました。




以上の内容はhttps://stockmark-tech.hatenablog.com/entry/2025/03/06/114203より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14