ELYZAが公開した日本語LLM「ELYZA-japanese-Llama-2-7b」についての解説 : (3) 英語での性能評価編
ELYZAが公開した日本語LLM「ELYZA-japanese-Llama-2-7b」についての解説 : (3) 英語での性能評価編
はじめに
こんにちは!ELYZA の沖村です。本日は2023年8月29日に弊社株式会社ELYZAが公開した日本語LLM「ELYZA-japanese-Llama-2-7b」についての深掘り記事の第三弾を公開します。
この記事では、英語モデルの日本語化にあたって失われる能力についての分析記事になっております。
記事の中であわせて、弊社内で開発していた複数の事前学習設定のモデルの性能についても公開します。
※なお、ELYZAでは2023年12月27日に130億パラメータの日本語LLM「ELYZA-japanese-Llama-2-13b」も公開しています。こちらの開発も今回の分析と並行して実施していました。ぜひご覧ください。
問題意識
ELYZA-japanese-Llama-2-7bにおいて、英語のタスクで高い性能を発揮していたLlama 2 (Touvron et al., 2023)に日本語の追加事前学習とSupervised Fine-Tuning(SFT)を実施することで日本語能力を向上させたモデルの作成を目指しました。
結果として、ELYZA-japanese-Llama-2-7bがモデルとあわせて公開した評価用データセットELYZA-tasks-100で高い性能を発揮することを確認できました。
この発表以降、rinna社の「youri」シリーズやStability AI社の「Japanese Stable LM Beta」シリーズなど、海外の大規模な言語モデルに対して、日本語を含むデータセットで追加事前学習を実施したモデルが発表されました。
このように、追加事前学習とSFTを用いた英語モデルの日本語化は日本語のLLMを構築する上での1つの選択肢としての地位を確立しています。
一方で、このような英語モデルの日本語化において依然として不明なことが存在します。
それは追加学習の過程で、元のモデルが持っていた能力がどの程度失われてしまうのかという点です。
多くの日本語化モデルは、日本語能力の向上のためにさまざまな工夫が行われています。
代表的なものを挙げると、日本語を含むデータセットでの追加事前学習、指示追従能力の向上のために実施される日本語データセットでのSFT、トークン化効率の向上のための語彙拡張などが該当します。
しかしながら、これらの設定は元のモデルでの学習設定とは乖離が存在しており、モデルの学習設定のシフトにより、性能の低下を引き起こす可能性が考えられます。
このような懸念点からか、「Japanese Stable LM Beta」シリーズや「youri」シリーズでは日本語と英語の両方を含む学習データを事前学習に用いていることが発表されていますが、その設定がどの程度効果的なのかは不明です。
データセットサイズ | 言語 | |
---|---|---|
ELYZA-japanese-Llama-2-7b | 180億トークン | 日本語 |
Youri 7B | 400億トークン | 日本語/英語 |
Japanese Stable LM Beta 7B | 約1000億トークン | 日本語/英語 |
そのため、本記事では「日本語化によって失われる能力はあるのか」という疑問に対するヒントを得るために、異なる事前学習設定で学習したモデルを中心に、日本語化されたモデルが英語のデータセットにおいてどの程度性能を維持できているか検証します。
関連研究
継続事前学習は以前よりドメイン適応の文脈で研究されているテーマです。
Jin et al. (2022)は事前学習時に含まれなかった新しい知識を追加するために継続的な事前学習を実施することを提案しています。
また、Cossu et al. (2022)は言語領域と視覚領域の両方において、継続的な事前学習の有効性を下流タスクでの性能で評価し、継続的な事前学習が破滅的忘却に対してロバストであることを示しました。
加えて、事前学習だけでなくすでにファインチューニングされたモデルにおいても継続的な学習が効果的であることを示した研究もあります(Scialom et al., 2022)。
これらの研究を背景として、英語で訓練したモデルを他の言語へと活用させるために追加での学習を実施する手法も提案されており(Cui et al., 2023)、我々が開発したモデルもこの手法を適用した例の1つに該当します。
ELYZAが行った事前学習
ELYZA-japanese-Llama-2-7bを開発するにあたって、弊社では大きく2つのデータ設定で学習を実施しました。
1つ目が日本語のみのデータを用いた追加事前学習データです。
このデータはOSCARやWikipedia、またその他クロールデータといった一般的な日本語のテキストデータを中心に作成しており、トークン数で数えるとおよそ180億トークンほどのサイズになります。
現在弊社が公開しているモデルはこちらのデータでの追加事前学習を実施したモデルになります。
2つ目は日本語と英語のデータを混ぜた追加事前学習データです。
前述した日本語のデータに、英語のデータを一定割合追加しています。
具体的に、英語のデータとしては以下のデータから構成されています。
- 英語の事前学習用データ
- 英語の指示学習用データ
- 日英対訳データ
これらの英語の事前学習用データを日本語の事前学習データ:英語の事前学習データ=97.5:2.5
という比率で学習を実施しました。
ELYZAでは人手評価の結果、日本語での追加事前学習を採用しましたが、今回の検証にあたり、それぞれのデータセットでの学習を実施したモデルでの評価結果も公開します。
実験方法
対象モデル
実験では、追加学習を実施した日本語化モデルとその派生モデルについて、ベースとなったモデルの性能と比較します。
具体的には以下のようなモデルを比較します。
モデル識別子 | 追加事前学習の言語 | 語彙拡張 | SFTの有無 | 備考 | ベースモデル |
---|---|---|---|---|---|
elyza/ELYZA-japanese-Llama-2-7b | 日本語 | - | - | 学習途中のチェックポイントも評価した。 | Llama2-7b-chat |
elyza/ELYZA-japanese-Llama-2-7b-bilingual | 日本語と英語 | - | - | 学習途中のチェックポイントも評価した。非公開 | Llama2-7b-chat |
elyza/ELYZA-japanese-Llama-2-7b-instruct | 日本語 | - | ✅ | - | Llama2-7b-chat |
elyza/ELYZA-japanese-Llama-2-7b-fast | 日本語 | ✅ | - | - | Llama2-7b-chat |
elyza/ELYZA-japanese-Llama-2-7b-fast-instruct | 日本語 | ✅ | ✅ | - | Llama2-7b-chat |
rinna/youri-7b | 日本語と英語 | - | - | - | Llama2-7b |
rinna/youri-7b-instruction | 日本語と英語 | - | ✅ | - | Llama2-7b |
stabilityai/japanese-stablelm-base-beta-7b | 日本語と英語 | - | - | - | Llama2-7b |
stabilityai/japanese-stablelm-instruct-beta-7b | 日本語と英語 | - | ✅ | - | Llama2-7b |
stabilityai/japanese-stablelm-base-ja_vocab-beta-7b | 日本語と英語 | ✅ | - | - | Llama2-7b |
stabilityai/japanese-stablelm-instruct-ja_vocab-beta-7b | 日本語と英語 | ✅ | ✅ | - | Llama2-7b |
評価方法
今回英語性能を評価するために、Open LLM Leaderboardで用いられる4つのタスクでの性能の平均を評価対象として設定しました。それぞれのタスクは以下の通りです。
- AI2 Reasoning Challenge (ARC_C) (25-shot) - 小学生向けの科学問題
- HellaSwag (10-shot) - 回答に常識が必要な自然言語推論タスク
- TruthfulQA (6-shot) - インターネット上でよく見られる嘘に関連するQA
- MMLU (5-shot) - 初等数学、米国史、コンピュータサイエンス、法律など57のタスクを含むマルチタスクデータセット
検証設定
実験において、GPUにはNVIDIA L4を使用しました。また、量子化などのモデルの軽量化は行わず実験しました。
結果
追加事前学習とSFTによる性能の変化
評価結果
追加事前学習とSFTのみを行ったモデルについて、定量的な評価結果を示したのが以下の表です。
japanese-stablelm-base-beta-7bとjapanese-stablelm-instruct-beta-7bのTruthfulQAの性能を除き、ほとんどの英語タスクで性能の劣化は生じていました。
また、SFTまで行ったモデルではベースモデルと比較して、4つの英語タスクの平均で1.0~2.2%ptほどの性能の劣化が見られました。
モデル | ARC_C | HellaSwag | TruthfulQA | MMLU | Average(4 Tasks) |
---|---|---|---|---|---|
Llama-2-7b-chat | 52.73 | 78.52 | 45.32 | 48.14 | 56.18 |
ELYZA-japanese-Llama-2-7b | 51.71 | 76.53 | 38.02 | 44.94 | 52.80(Δ3.38) |
ELYZA-japanese-Llama-2-7b-instruct | 52.30 | 78.35 | 38.83 | 47.07 | 54.14(Δ2.04) |
Llama-2-7b | 53.07 | 78.62 | 38.96 | 46.55 | 54.30 |
youri-7b | 49.15 | 75.00 | 35.89 | 42.37 | 50.61(Δ3.69) |
youri-7b-instruction | 48.98 | 75.66 | 38.39 | 45.39 | 52.11(Δ2.19) |
japanese-stablelm-base-beta-7b | 51.37 | 76.88 | 39.53 | 44.37 | 53.04(Δ1.26) |
japanese-stablelm-instruct-beta-7b | 52.22 | 76.55 | 40.33 | 43.75 | 53.21(Δ1.09) |
日本語の追加事前学習による英語タスクでの性能劣化
まず、追加事前学習の前後での性能を評価しました。
ELYZA-japanese-Llama-2-7bとyouri-7bにおいては事前学習のみ行った設定では3.0~4.0%ptの英語タスクでの性能の劣化が見られました。
一方で、japanese-stablelm-base-beta-7bでは事前学習前後での性能の劣化を1.26%ptほどに抑えられていました。
具体的な追加事前学習データ中の日本語と英語のデータの比が公開されていないモデルも存在するため、詳細な因果関係は検証の余地がありますが、英語モデルの日本語化における一定の英語性能の劣化は共通してみられるようです。
日本語のSFTによる英語タスクでの性能向上
次に、日本語SFTの前後での性能を評価しました。
ELYZA-japanese-Llama-2-7bとyouri-7bにおいてはSFTの実施により、事前学習のみ行った設定と比較して1.0~1.5%ptの英語タスクでの性能の向上が見られました。
また、japanese-stablelm-base-beta-7bではSFTの前後により、0.17%pt程度と先のモデルでの向上幅と比較するとやや小さいですが、性能の向上が確認されました。
このことから日本語化したモデルは日本語のデータでのSFTにより、英語での指示追従能力を一定取り戻していることがわかります。
事前学習に用いるデータによる性能変化の比較
評価結果
さらに、事前学習データの英語の有無による性能の違いを評価するために、学習途中のチェックポイントでの性能を比較します。
具体的には、日本語のデータセットのみで事前学習したモデル(ELYZA-japanese-Llama-2-7b)と日本語と英語のデータセットで事前学習したモデル(ELYZA-japanese-Llama-2-7b-bilingual)を対象としています。
以下の表に、それぞれのモデルのチェックポイントでの性能をまとめました。
日本語のみの事前学習したモデルは最後のチェックポイント (9,000 steps) において3.38%ptの性能の劣化がみられるのに対し、日本語と英語での事前学習により最後のチェックポイントで1.77%pt程度の劣化に抑えられていることがわかります。
モデル | チェックポイント (ステップ数) | ARC_C | HellaSwag | TruthfulQA | MMLU | Average(4 Tasks) |
---|---|---|---|---|---|---|
Llama-2-7b-chat | 52.73 | 78.52 | 45.32 | 48.14 | 56.18 | |
ELYZA-japanese-Llama-2-7b | 1000 | 52.99 | 78.15 | 41.41 | 47.65 | 55.05(Δ1.13) |
3000 | 52.82 | 77.69 | 40.71 | 46.52 | 54.44(Δ1.74) | |
5000 | 52.22 | 77.24 | 39.31 | 46.39 | 53.79(Δ2.39) | |
7000 | 51.62 | 76.89 | 38.37 | 46.33 | 53.30(Δ2.88) | |
9000 | 51.71 | 76.53 | 38.02 | 44.94 | 52.80(Δ3.38) | |
ELYZA-japanese-Llama-2-7b-bilingual | 1000 | 50.77 | 76.09 | 43.19 | 48.26 | 54.58(Δ1.60) |
3000 | 50.94 | 76.39 | 43.28 | 48.62 | 54.81(Δ1.37) | |
5000 | 51.19 | 76.70 | 43.62 | 47.93 | 54.86(Δ1.32) | |
7000 | 50.94 | 76.62 | 43.14 | 47.45 | 54.54(Δ1.64) | |
9000 | 51.11 | 75.93 | 43.66 | 46.92 | 54.41(Δ1.77) |
追加事前学習における英語データの有無による英語性能の推移の違い
興味深いことに途中のチェックポイントごとの性能を見ると、英語データの有無による英語性能の推移の違いが見られます。
日本語の事前学習を実施したモデルでは学習のチェックポイントを経るごとに、およそ線形に性能の劣化が生じていました。
一方で、日本語と英語の事前学習を実施したモデルでは、学習序盤こそ比較的大きな性能劣化が生じるものの、その後はおよそ一定の性能を維持し続けました。
以上の結果が示すように、英語モデルの日本語化を行う上で、英語の事前学習データを追加することが英語の性能の維持に有益であり、学習経過ごとの性能の推移にも影響を与えることがわかります。
語彙拡張による性能への影響
評価結果
最後に、いくつかのモデルで採用されている日本語の語彙拡張を適用したモデルでの評価を実施した結果が以下の通りです。
モデル | ARC_C | HellaSwag | TruthfulQA | MMLU | Average(4 Tasks) |
---|---|---|---|---|---|
Llama-2-7b-chat | 52.73 | 78.52 | 45.32 | 48.14 | 56.18 |
ELYZA-japanese-Llama-2-7b | 51.71 | 76.53 | 38.02 | 44.94 | 52.80(Δ3.38) |
ELYZA-japanese-Llama-2-7b-fast | 51.71 | 75.45 | 36.62 | 44.48 | 52.07(Δ4.11) |
ELYZA-japanese-Llama-2-7b-instruct | 52.30 | 78.35 | 38.83 | 47.07 | 54.14(Δ2.04) |
ELYZA-japanese-Llama-2-7b-fast-instruct | 53.50 | 77.69 | 38.68 | 46.87 | 54.19(Δ1.99) |
llama-2-7b | 53.07 | 78.62 | 38.96 | 46.55 | 54.30 |
japanese-stablelm-base-beta-7b | 51.37 | 76.88 | 39.53 | 44.37 | 53.04(Δ1.26) |
japanese-stablelm-base-ja_vocab-beta-7b | 51.11 | 76.26 | 38.31 | 42.88 | 52.14(Δ2.16) |
japanese-stablelm-instruct-beta-7b | 52.22 | 76.55 | 40.33 | 43.75 | 53.21(Δ1.09) |
japanese-stablelm-instruct-ja_vocab-beta-7b | 51.96 | 76.24 | 39.53 | 42.75 | 52.62(Δ1.68) |
追加事前学習における語彙拡張による性能変化への影響
次に、追加事前学習における語彙拡張の有無による英語性能の比較を実施します。
語彙拡張を適用せず事前学習したモデルと比較して、それぞれ語彙拡張を適用し事前学習したモデル(ELYZA-japanese-Llama-2-7b-fast、japanese-stablelm-base-ja_vocab-beta-7b)は0.7~0.9%pt程度性能が低い水準に留まりました。
このことから、日本語の語彙拡張を適用した場合は、追加事前学習において英語の性能に対して負の影響を与える可能性が示唆されました。
SFTにおける語彙拡張による性能変化への影響
そして、SFTにおける語彙拡張の有無による英語性能の変化を比較します。
語彙拡張を適用しなかったELYZA-japanese-Llama-2-7bでSFTにより1.34%ptスコアが向上したのに対し、語彙拡張を適用したELYZA-japanese-Llama-2-7b-fastではSFTにより2.12%ptスコアが向上し、語彙拡張の存在により向上幅の増加が見られました。
同様にjapanese-stablelm-base-beta-7bでは性能の向上が0.17%ptに止まったのに対し、japanese-stablelm-base-ja_vocab-beta-7bでは0.48%ptの性能の向上が見られました。
以上のことから、日本語の語彙拡張を適用した場合は、SFTによる英語の性能に対しての恩恵をより享受できる可能性があります。
考察・感想
今回の検証を通じて、同じLlama-2由来のモデルをベースに日本語化した場合でも学習設定の変数に応じてモデルごとの英語性能に差が見られ、非常に興味深い結果が得られました。
例えば、ELYZA-japanese-Llama-2-7bとELYZA-japanese-Llama-2-7b-bilingualにおける英語性能の学習ステップごとでの推移の違いはその1つです。
学習序盤の1000ステップでは日本語のみを学習していたモデルが英語のタスクでの性能で良いスコアを示していました。
しかし、3000ステップ以降においては一貫して、日本語と英語のデータを混ぜて学習したモデルのスコアが日本語のみのモデルでのスコアを上回りました。
この結果から、事前学習で要するステップ数に応じて、元々の言語での性能をより維持できる学習設定が異なることが示唆されます。
また、同じ日本語と英語を混ぜたデータで学習している「youri」シリーズと「Japanese Stable LM Beta」シリーズにおいて、事前学習のみ行った場合とSFTまで行った場合で性能の変化幅に違いがありました。
このことから考えると、ただ英語データを含むかどうかだけではなく、英語データをどの程度含めるかといったことも英語の性能維持に影響を与えている可能性が考えられます。
最後に今回の英語性能のタスクでの評価ではELYZA-japanese-Llama-2-7b-bilingualが最も良いスコアを示しましたが、ELYZA-tasks-100での人手評価の結果は振るわず、結果的に採用を見送ることになりました。
このことは日本語と英語の評価で最良となるモデルが異なっていることを意味しており、日本語能力と英語能力を両立したモデルの実現の難しさが明らかになったと言えます。
まとめ
今回のブログでは、複数の日本語化モデルの英語能力の評価を通じて、以下のことを示しました。
- 日本語を含むデータの追加事前学習により日本語化したモデルにおいて、英語の性能の劣化は生じてしまう。
- 日本語のSFTにより、日本語化モデルの英語の指示追従能力も一定回復させることができる。
- 追加事前学習に英語のデータセットを追加した場合、英語タスクでの性能劣化を緩和可能である。
- 日本語の語彙拡張は日本語の事前学習時の性能劣化を顕著にするものの、SFTによる性能の上昇をより享受できる可能性がある
引き続きELYZAでは、より性能の優れた日本語モデルの作成に注力していきます。
株式会社ELYZAは、「未踏の領域で、あたりまえを創る」という理念のもと、日本語の大規模言語モデルに焦点を当て、企業との共同研究やクラウドサービスの開発を行なっております。
先端技術の研究開発とコンサルティングによって、企業成長に貢献する形で言語生成AIの導入実装を推進します。
ここまでお読みいただき、ありがとうございました。
ELYZAではAIエンジニア、AIコンサルタントなど、様々な職種で一緒に事業を前に進めてくれる仲間を募集しています。
少しでも興味を持っていただけた方は、ぜひカジュアル面談にお越しください。
日本語Llama 2をはじめとするLLM開発について話しませんか?
ELYZAの募集一覧はこちらを御覧ください。
Discussion