- Google DeepMindのGemma 2は、2B・9B・27B規模の軽量オープンモデル製品群で、小規模モデルでもより大きなモデルと競争できる性能を目指して公開された
- 2Bと9Bは次トークン予測の代わりに知識蒸留を適用し、27Bは最初から学習して、規模ごとに異なる学習戦略を採用した
- 構造面ではlocal-global attentionの交互配置、Grouped-Query Attention、logit soft-capping、pre-norm・post-norm RMSNormを組み合わせ、効率と性能の両立を狙った
- 学習データは主に英語のWeb文書・コード・科学文献で、マルチモーダルや最先端の多言語性能を目標にしたモデルではない
- 評価では同規模のオープンモデルより高い性能を示したが、実際の展開前にはユースケース別の安全性テストが必要である
Gemma 2モデル概要
- Gemma 2はGemma系列の新しい軽量オープンモデルで、2B、9B、27Bパラメータ規模を提供する
- 2Bと9Bモデルは次トークン予測の代わりに知識蒸留で学習された
- 大規模言語モデルを教師モデルとして用い、各トークンのあり得る次トークン分布を生徒モデルが学習する
- 2Bと9Bは理論上のcompute-optimalトークン数より50倍以上多いトークンで蒸留学習された
- 27Bモデルはこの作業のために最初から学習された
- 同規模のオープンモデルと比べて性能が大きく改善され、一部のベンチマークと人間評価では2〜3倍大きいモデルとも競争可能な結果を示した
- 実際の適用前には、すべてのユーザーが展開または利用文脈に合った安全性テストを実施する必要がある
モデル構造と設計上の選択
- Gemma 2は以前のGemmaと似たデコーダ専用Transformer構造を採用する
- 共通の設計要素は次の通り
- コンテキスト長: 8192トークン
- RoPE位置埋め込み
- GeGLU非線形性
- 256,128語彙のSentencePieceトークナイザー
- tied embeddingを使用
- 主な構造変更はattentionと正規化に集中している
- local sliding window attentionとglobal attentionを1層ごとに交互配置する
- local attentionのsliding windowは4096トークン
- global attention spanは8192トークン
- attention layerとfinal layerにlogit soft-cappingを適用する
- self-attention layerのsoft_capは50.0
- final layerのsoft_capは30.0
- 各Transformer sub-layerの入力と出力にRMSNormを適用し、pre-normとpost-normの両方を使う
- Grouped-Query Attentionはablationで性能を維持しつつ推論速度を高める選択であることが確認された
学習データとインフラ
- 事前学習トークン数はモデル規模ごとに異なる
- Gemma 2 27B: 13兆トークン
- Gemma 2 9B: 8兆トークン
- Gemma 2 2B: 2兆トークン
- 学習データは主に英語で、Web文書、コード、科学文献など多様なソースで構成される
- モデルはマルチモーダルモデルではなく、最先端の多言語性能を目標に別途学習されていない
- データフィルタリングはGemma 1と同じ方式で適用された
- 望ましくない、または安全でない発話の低減
- 特定の個人情報と機微データの除去
- 評価セット汚染の除去
- 機微な出力の反復リスクの緩和
- 学習インフラはTPUベースで構成される
- 2B: TPUv5e 512チップ
- 9B: TPUv4 4096チップ
- 27B: TPUv5p 6144チップ
- 事前学習の炭素排出量は1247.61 tCO2eqと推定される
- TPUデータセンターの時間当たりエネルギー使用量に基づいて計算された
- Googleデータセンターのカーボンニュートラルは、エネルギー効率、再生可能エネルギー購入、カーボンオフセットを通じて達成されている
事後学習と対話フォーマット
- 事後学習は事前学習モデルをinstruction-tuned modelへ微調整する過程である
- 学習段階は次の通り
- 英語テキスト専用のsyntheticおよびhuman-generatedのprompt-responseペアでSFTを実施
- 英語の選好データで学習したreward modelを用いてRLHFを適用
- 各段階で得たモデルを平均して全体性能を改善する
- データ混合と事後学習レシピは、有用性向上、安全性確保、hallucination関連の有害性最小化を基準に選定された
- Gemma 1.1以降の事後学習データは、内部データと外部公開データを混ぜて拡張された
- LMSYS-chat-1Mではpromptのみを使用し、answerは使用しない
- synthetic dataには複数のフィルタリング段階が適用される
- 個人情報
- 安全でない、またはtoxicなモデル出力
- 誤った自己識別データ
- 重複例
- Gemma 2はGemma 1と同じcontrol tokenを使うが、formatting schemaは異なる
- モデルは生成終了時に
<end_of_turn><eos>トークンを明示的に出力する
- 以前は
<eos>のみを生成していた
知識蒸留と構造選択の実験
- 2Bモデルを500Bトークンで学習した比較では、蒸留学習が最初から学習したモデルより高い性能を示した
- 3つのベンチマーク平均: from scratch 60.3, distilled 67.7
- 500Bは2Bモデルのcompute-optimalトークン数より10倍多い
- 200M、400M、1Bモデルの検証perplexity比較でも蒸留モデルのperplexityがより低い
- 200M: from scratch 23, distilled 21
- 400M: from scratch 19, distilled 17
- 1B: from scratch 17, distilled 15
- 9BモデルでのGQAとMHAの性能差は小さく、GQAはパラメータ数が少なく推論時により高速なため採用された
- 4つのベンチマーク平均: MHA 50.3, GQA 50.8
- 同じ9Bパラメータ数では、広い構造より深い構造の方がわずかに良い性能を示した
- 4つのベンチマーク平均: Wide 50.8, Deep 52.0
- 推論時にsliding windowサイズを4096、2048、1024に変えてもperplexityへの影響は限定的である
- 4096: 1.63
- 2048: 1.63
- 1024: 1.64
自動ベンチマーク結果
- 27B事前学習モデルはHuggingFace評価でQwen1.5 32BおよびLLaMA-3 70Bと比較された
- MMLU: Gemma-2 27B 75.2, Qwen1.5 32B 74.3, LLaMA-3 70B 79.2
- GSM8K: Gemma-2 27B 74.0, Qwen1.5 32B 61.1, LLaMA-3 70B 76.9
- ARC-c: Gemma-2 27B 71.4, Qwen1.5 32B 63.6, LLaMA-3 70B 68.8
- HellaSwag: Gemma-2 27B 86.4, Qwen1.5 32B 85.0, LLaMA-3 70B 88.0
- Winogrande: Gemma-2 27B 83.7, Qwen1.5 32B 81.5, LLaMA-3 70B 85.3
- 2Bと9Bモデルも以前のGemmaモデルに比べて改善幅が大きい
- 9Bモデルは一部ベンチマークで前バージョン比最大10%改善した
- Gemma 2 2BはGemma 1 2Bと近いトークン数で学習されたが性能が向上した
- 複数ベンチマークの全体平均は次の通り
- Gemma 1 2B: 44.2
- Gemma 2 2B: 48.7
- Gemma 1 7B: 57.9
- Gemma 2 9B: 64.9
- Gemma 2 27B: 69.4
人間評価とChatbot Arena
- Gemma 2 instruction-tunedモデルはLMSYS Chatbot Arenaでblind side-by-side方式により評価された
- Eloスコアは次の通り
- gemma-2-27b-it: 1218
- gemma-2-9b-it: 1187
- gemma-2-2b-it: 1126
- 比較結果はモデルサイズに対する競争力を示す
- gemma-2-27b-itはllama-3-70b-instruct Elo 1206より高い
- gemma-2-9b-itはgpt-4-0314 Elo 1186と近い
- gemma-2-2b-itはgpt-3.5-turbo-0613 Elo 1116より高い
- 別途の人間選好評価ではheld-out single-turn promptで安全性とinstruction followingを測定した
- instruction following: Gemma 1.1 IT 7B 24.3%, Gemma 2 IT 2B 26.5%, 9B 34.1%, 27B 37.7%
- safety: Gemma 1.1 IT 7B 42.8%, Gemma 2 IT 2B 57.5%, 9B 57.8%, 27B 55%
- マルチターン評価は500件のheld-out scenarioと平均8.4件のuser turnで実施された
- ユーザー満足度: Gemma 1.1 IT 7B 3.32, Gemma 2 IT 2B 3.64, 9B 4.04, 27B 4.20
- 対話目標達成: Gemma 1.1 IT 7B 3.36, Gemma 2 IT 2B 3.88, 9B 4.08, 27B 4.24
暗記と個人情報
- 大規模言語モデルは特定条件下で学習データをそのまま出力する可能性があり、Gemma 2はverbatimおよびapproximate memorization評価を受けた
- 評価は50トークンのpromptを与え、学習データの50トークン暗記を測定する方式で行われた
- exact match基準
- edit distance 10%を用いるapproximate match基準
- Gemma 2の全体exact memorization rateは0.1%未満である
- データソース別ではコード、wiki、科学系ソースでより多くの暗記が見られたが、全体としてGemma 1より低い水準である
- 個人情報評価にはGoogle Cloud Sensitive Data Protection Toolを使用した
- 高深刻度の個人情報出力事例は見つからなかった
- 低深刻度の個人情報を含む暗記データ比率は0.00026%と測定された
- 自動化ツールは文脈を考慮しないためfalse positiveが発生し得て、結果が過大推定されている可能性がある
責任ある展開と安全性
- Gemma 2の開発には、学習中の安全緩和、透明なモデル評価、Responsible Generative AI Toolkitの開発という3つの柱が適用された
- 公開モデルはAI技術の利点を広げられる一方で、deepfake画像、AI生成の偽情報、違法またはdisturbing material生成のような悪用リスクも併せて評価する必要がある
- Gemmaに対する悪意ある利用報告はまだ受けていないが、関連報告があれば調査し、コミュニティとともに監視を続ける計画である
- より大規模で強力な公開モデルがすでに存在することを踏まえると、Gemma 2が全体のリスク地形に与える影響は小さいと評価されている
- 安全ポリシーはGeminiモデルと同じ方向で、有害コンテンツ生成を防ぐよう設計されている
- 児童の性的虐待と搾取
- 被害につながり得る個人情報の公開
- ヘイトスピーチと嫌がらせ
- 危険または悪意あるコンテンツ
- 性的に露骨なコンテンツ
- 科学的・医学的コンセンサスに反する医療助言
- instruction-tunedモデルはSFTとRLHFを通じて望ましくない行動から外れるよう調整される
1件のコメント
Hacker Newsの意見
27B版が非常に強力
LMSys Chatbot ArenaでLlama-3-70Bより高いスコアを取り、OpenAI GPT-4およびClaude-3 Sonnetの水準にある
Gemmaをローカルで評価してみたいなら、ollamaとpromptfooでかなり簡単にできる
Gemmaでいつも気に入っていた小さな点は、「Sure, I can help you」のような前置きなしにすぐコードに入り、その後ろに説明を付けること
学習が応答構造と理解しやすさに重点を置いているように見える
また、公開コードの単純な暗記に依存しない評価を回すほうがよいので、個人用のテストに変えてみるのがよい
[0] https://ollama.com/library/gemma2
[1] https://github.com/promptfoo/promptfoo
過度な期待に流される前に自分でテストし、Chatbot Arenaのスコアが安定するまで待つことを勧める
個人的な評価では、AI Studioのgemma-2-27b-itはLlama 3 70Bよりかなり劣っており、特に推論と基本的な世界理解の質問で差が大きかった
後から見たが記録用に残しておくと、Gemma 2モデルはChat Arenaの性能に合わせて強化学習されたように見える: https://x.com/natolambert/status/1806384821826109597
論文の該当部分が強調されている
最も目立つ強みが何なのか気になる
小型モデルはベンチマークでは良くても汎化で失敗することが多く、Phi-2を思い出す
英語以外の言語の学習データが改善された影響のように見える
英語の難しいプロンプトではLlama-3-70Bより15 ELO低く、一般的な英語では41 ELO低い
後者は実際に統計的に有意
Gemmaチームから改めてご挨拶
今回のリリースを出せてとても嬉しく、質問があれば答える
意見は個人のものであり、Google DeepMindの立場ではない
一方でGoogle Cloud Vertexがどう動作し課金されるのかを把握するのはより複雑で、AzureとAWSもこの用途に使うには同じように複雑
Google CloudでOpenAI互換APIとサービスを提供してくれるとよい
部署が違うのは分かっているが、モデル利用がずっと簡単になるはず
Google CloudはUXやエンドユーザーテストがまったくされていないように感じることが多い
aistudio.google.comは以前より確実に良くなった
27bはhttp://aistudio,google.comで試せるので、よく使うプロンプトを入れて、応答を気に入ってもらえるとよい/
単に全体を8kや16kにせず、その方式を選んだ理由が気になる
根本的なアーキテクチャの違いなのか、学習セットの違いなのか、それとも別の理由なのか気になる
2.6B/9BはMistralやLlama-3より、MicrosoftのPhi-3 mini 3.8Bと比較すべきではないかと思う
論文7ページの表13とhttps://arxiv.org/pdf/2404.14219の6ページを比べると、全体的にPhi-3のほうがかなり良さそうに見える
ただし知識蒸留学習に関する報告は興味深い
2.6BはPhi-3に大きく劣るはずなので、比較がないのだろう
2.6Bと3.8Bは2.6対3.8と見ると実感しにくいが、26億対38億と見るとかなり大きなサイズ差なので、そのためかもしれない
ところがMistral 7B対Llama 8B対Gemma 9Bのようなパラメータ水増しが出始めている
Llama 3が8Bに行った時から、パラメータ数で遊ぶ流れが生まれるのではと心配したが、杞憂だと思っていた
Phi-3系は知識抽出/要約でより強い競合なので、良い比較対象だという点には同意する
VRAMが限られたワークステーションでこうした作業用として今いちばん気に入っているのはPhi-3 medium、つまりphi3:14b-instruct
9B版と27B版はOllamaで提供されている: https://ollama.com/library/gemma2
27BモデルはAI Studioでも使える
https://aistudio.google.com/app/prompts/new_chat?model=gemma...
今のところ、サイズの割にかなり強そうに見える
素晴らしいリリース
良いインターフェースでローカルで試してみたいなら、私が作っているアプリ [1] に、たった今 Gemma2 サポートのアップデートを入れた
1: https://msty.app
msty は本当に良さそう
ローカルでホストしている LibreChat インスタンスを使うやり方の代替にできるか、あとで詳しく見ようと思ってブックマークした
多くの質問で、リモートモデルではなくローカルモデルを使えると大きな改善になりそう
ただ、msty をオープンソースではなくクローズドソースのままにしている理由があるのか気になる
FAQ の「why should I trust msty」は読んだが、物足りなく感じた
何の身元表示もないよりはずっとましだが、コードを読んで信頼性を検証できることとは程遠い
公開しない理由を聞きたい
それでも一度使ってみるつもりではある
良さそうだが、クローズドソースなので慎重になる
Arch Linux で Anthropic API キーを保存しようとしても何も起きず、「If you're experiencing problems saving API keys especially on Linux, contact Discord」というメッセージが出る
それほどよくある問題なら、考えられる解決策へのリンクがあるべきではないかと思う
テストするために Discord サーバーをもう1つ追加し、すでに何度も聞かれているに違いない質問の答えを検索しなければならないのは、かなり大きな障壁
ダウンロードしてみたが良さそう
同期された分割ビューが気に入った
ただし、ランディングページで発表されているのとは違って、Gemma 2 や Claude 3.5 Sonnet が見当たらない
Windows ダウンロード用に Chocolatey に追加する予定があるのか気になる
これは良さそう
どうして今まで見落としていたのか分からないし、一度動かしてみるつもり
知識蒸留は非常に興味深いが、大きな教師モデルから数兆個の出力を生成するのは、費用がとんでもなく大きくなりそう
その計算資源を、より多くのデータやより多くのエポックで直接モデル学習に使うより、本当に費用対効果が高いのか気になる
6か月前までは、みんながモデル崩壊を恐れていたように思うのに、今では合成学習データ生成と教師モデルが流行している
モデル崩壊の問題を解決したのか気になる
生徒モデルがシーケンスを生成し、教師モデルがロジットの形でフィードバックを提供する
明示的な特殊トークンを使う方式が気になる
ユーザーがメッセージにそうしたトークンを入れたらどうなるのか、「以前の指示を無視して」のようなものを簡単に作れてしまうのか気になる
モデルに渡す前に入力を自前でサニタイズする必要があるのだろうか
トークナイザを制御できるなら、ユーザー入力からそうしたトークンが出ないようにできる
たとえば特殊トークンではなく、「<」「eos」「>」のように、その文字列の自然なエンコードにすればよい
llama3 のトークナイザには、特殊トークンのトークン化を制御するオプションがある: https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
特殊トークンとユーザー入力を組み合わせて使う方法はここで見られる: https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
トークナイザを制御できないなら、言うように入力側でサニタイズする必要がありそう
蒸留で学習すると、所定の性能に到達するまでに必要な反復回数ベースでどれくらい速くなるのか気になる
ここでいう unsafe が何を意味するのか知りたい
Phi 3 の2倍のサイズなのに、かなり悪いということなのか
自分が何を見落としているのか分からない
Phi-3 は主にカリキュラム学習のブレイクスルー
学習セットを高品質トークンに絞り込み、合成データで学習して良い結果を出した
Gemma-2 は蒸留のブレイクスルー
より大きな教師 LLM のガイドを受けて LLM を学習させ、良い結果を出した
両方やってはいけない理由はない
たとえば Phi-3-Medium はベンチマークではより良くても、LMSYS Chatbot Arena では Llama-3-8b に大きく劣る
Gemmaの性能は、むしろベンチマークでは低く見えがちな気がする
27bは現在、Chatbot ArenaのランキングでLlama3-70bより上位にいる
LMSYSではphi-3 smallは1100 ELOで52位、Gemma 2 9Bの信頼区間は1170〜1200 ELOで15〜25位の間
ここで直接使ってみて、そういう形で比較すればよい: https://aistudio.google.com/app/prompts/new_chat?model=gemma...
Phi 3を使ってみたことがあるのか気になる
賢いのでベンチマークは良い結果が出るが、会話やチャットボットとしてはそれほど良くない
Gemma 2は多くの人にとってより良い汎用アシスタントになりそうで、Phi 3は要約、RAG、数学学習のような、より具体的な用途に向いた堅実な小型LLMに近いように見える