見出し画像

Google Gemma の紹介

Gemmaとは何か?

Gemmaは、Geminiモデルを作成するのと同じ研究と技術から構築された軽量で最先端のオープンモデルのファミリーです。Google DeepMindおよびGoogleの他のチームによって開発されたGemmaは、Geminiに触発されており、その名前はラテン語のgemma、つまり「貴重な石」という意味を反映しています。モデルのウェイトとともに、開発者の革新を支援し、協力を促進し、Gemmaモデルの責任ある使用をガイドするためのツールもリリースしています。
GoogleのGemmaに関する論文:
Google DeepMind - Gemma: Open Models Based on Gemini Research and Technology

ダウンロードできるところ


利用ライセンス(オープンモデル)

GemmaはAIイノベーションを支える開発者や研究者のために開発されました。Kaggleで無料でアクセスしたり、Colabノートブックの無料枠を使ったり、Google Cloudを初めて使う人には300ドルのクレジットが提供されます。さらに、研究者は自分のプロジェクトを早く進めるために、最大50万ドルのGoogle Cloudクレジットを申請できます。
Googleはモデルのテストに300ドルのクレジットを提供し、研究者は50万ドルまでのクレジットを申請することができます。
でも、気をつけるべき点があります。
「現在、業界で『オープンモデル』は広く使われています。これは開発者や研究者がモデルをカスタマイズや微調整できるようにするものですが、使用条件(例えば再配布や開発したモデルの所有権)はモデルごとに異なります。私たちは、Gemmaが従来のオープンソースとは少し異なると考え、Gemmaのモデルを『オープンモデル』と呼ぶことが適切だと判断しました。」Jeanine Banks、Google
つまり、使用条件をよく確認する必要があります。Googleによると、これらのテンプレートをどのように使用できるかについてはGoogleが決めることになります。そのため、完全にオープンソースとは言えず、条件も完全には明確ではありません。


Gemmaの特徴

  • Gemmaは、テキストからテキストへの英語のLLM(Large Language Models)で、JAX、PyTorch、TensorFlow (Keras 3.0経由) を含むすべての主要なフレームワークを通じて、推論と教師ありファインチューニング(SFT)のためのツールチェーンを提供しています。また、Hugging FaceMaxTextNVIDIA NeMoTensorRT-LLMといった人気ツールとの統合や、使いやすいColabKaggleのノートブックを通じて簡単に利用開始できます。

  • NVIDIA GPUGoogle Cloud TPUを含む複数のAIハードウェアプラットフォームでの最適化により、業界をリードするパフォーマンスを実現しており、2Bおよび7BモデルのInstruction VersionとBase Version はマルチモーダル機能を除いた機能が提供され、2Bモデルは2兆トークン、7Bモデルは6兆トークンでトレーニングされています。7Bモデルは、MMLUベンチマークで64.56のスコア、平均63.75のリーダーボードスコアを達成し、23日間で16 TPUv5eポッドを使用してトレーニングされました。

  • 両モデルは8192トークンのコンテキストウィンドウをサポートし、商用利用が許可されており、Hugging Face、Kaggle、Vertex AIなどのプラットフォームでアクセス可能です。2Bモデルはモバイルフォンやエッジデバイスでの運用に特化しています。

  • Multi-Query AttentionとRotary Position Embedding (RoPE)によりAttentiopn EncodingとPositional Encoding機能が強化され、GeGLU ActivationとRMSNormによって従来のReLUを置き換え、モデルのレイヤー全体の安定性を向上させています。使用条件は、すべての組織の責任ある商用利用と配布を許可しています。

2種類のパラメタサイズ

  • Gemma 2BとGemma 7B、という2つのサイズのモデルウェイトがリリースされます。各サイズは、それぞれ、事前学習済み (pre-trained version)、およびインストラクションチューニング済み (Instruction Tuned)のバージョンがリリースされます。(合計4種類提供される、ということ)

  • Gemmaモデルは、20億および70億のパラメータサイズで利用可能です。

    • 2Bモデルはモバイルデバイスやラップトップでの実行を目的

    • 7Bモデルはデスクトップコンピューターや小規模サーバーでの実行を目的

GoogleのGemmaパラメータサイズ
Gemmaはコンポーネントを現在AIモデルであるGeminiと共有しています。これにより、Gemma 2Bおよび7Bは、他のオープンモデルと比較してサイズにおいて最高クラスのGeminiと同等のパフォーマンスが出せます。また、Gemmaモデルは、開発者のラップトップやデスクトップコンピューター上で直接実行することが可能です。パフォーマンス、データセット構成、およびモデリング方法論の詳細については、技術報告書を参照してください。

2つのチューニングモデル

Gemmaには、チューニング済み (Pre-Trained)と事前学習済み (Instruction-Tuned)の2つのバージョンがあります。

  • 事前学習済み:これは、ファインチューニングを施していないベースモデルのようなものです。このモデルは、Gemmaのコアデータトレーニングセットを超えて、特定のタスクや指示に基づいてトレーニングされていません。

  • インストラクションチューニング済み:このモデルは、人間の言語相互作用にファインチューニングされており、特定のタスクを実行する能力が向上しています。

いずれも、ラップトップ、ワークステーション、またはGoogle Cloud上で簡単にデプロイでき、Vertex AIやGoogle Kubernetes Engine(GKE)での容易なデプロイメントが可能です。


Gemma’s Neural Architecture

Googleが公開してる、Gemmaのレポート内に次のテーブルがあります。

source

この表では、Googleは各モデルのパラメータ数を示しており、エンベディングパラメータと非エンベディングパラメータを区別しています。7Bモデルの場合、非エンベディングパラメータは7.751Bです。エンベディングパラメータを数えなくても、私たちは7Bよりも8Bに近いです。パラメータの総数を考慮すると、Gemma 7Bは8.54Bのパラメータを持っています...
Gemmaは、7Bモデルよりも9Bモデルに近いです。「7B」としてGemmaをリリースすることは誤解を招くかもしれませんが、LLMメーカーが自社のLLMを以前にリリースされた7Bモデルと比較したいという新しい傾向のようです。比較のために、他の人気の「7B」モデルのパラメータの総数は以下の通りです:

  • Llama 2 7B: 6.74B

  • Mistral 7B: 7.24B

  • Qwen-1.5 7B: 7.72B

  • Gemma 7B: 8.54B

    1. Gemma 7Bは、Llama 2やMistralと同じカテゴリでプレイしているわけでは明らかにありません。Gemma 7BはLlama 2 7Bよりも1.8B多くのパラメータを持っています。

このレポートでは、Googleはモデルのアーキテクチャについてもいくつかの詳細をTable 1で提供しています:

source

モデルは、最大8,000トークンのコンテキストを扱うことができます。効率的なスケーリングのために、Googleはmulti-Quert AttenbtionとRoPE Embeddingを使用しました。GemmaはすでにFlashAttention-2と互換性があります。
アーキテクチャは、語彙サイズが巨大である、という事をを除いて、非常に標準的です。最近の生成LLMの中で、Gemmaは256kエントリを持つ最大の語彙を持っています。それはLlama 2の語彙の8倍大きく、すでに非常に大きいと考えられていたQwen-1.5の語彙よりも1.7倍大きいです。
大きな語彙を持つことは通常、モデルが多言語で訓練されたことを意味します。しかし、Googleはモデルが主に英語のタスクのために訓練されたと書いています。
Geminiとは異なり、Gemmaのモデルはマルチモーダルではなく、多言語タスクでの最先端のパフォーマンスのために訓練されていません。
推測では、Googleはモデルの語彙に示されているように、多くの言語をカバーするデータでモデルを訓練した、と考えられます。多言語タスクでのファインチューニングは良いパフォーマンスをもたらすと想定されます。


公開ベンチマークでのGemmaのパフォーマンス

Googleは標準ベンチマークでGemmaを評価し、結果をLlama 2(論文ではLLaMA-2と綴られています...)とMistral 7Bと比較しました。

source

Gemma 7Bは、これらのタスクの多くにおいて他のモデルよりも優れたスコアを出してます。ただし、Googleのスコア算出方法については詳細が説明されていないので、少々懐疑的に見る必要があります。


Gemmaの安全性

新しくリリースされた責任ある生成AIツールキットは、Gemmaを使用した安全なAIアプリケーションの作成ガイダンスとツールを提供します。
Gemmaは、GoogleのAI原則を最前線に置いて設計されていると書かれています。Gemmaの事前訓練済みモデルを安全かつ信頼性が高いものにするため、特定の個人情報やその他の機微なデータをトレーニングセットから自動的にフィルタリングする技術を使用しました。さらに、責任ある行動と一致させるために、広範なファインチューニングと人間のフィードバックからの強化学習(RLHF)を採用してます。Gemmaモデルのリスクプロファイルを理解し、低減するために、マニュアルでのRed Teaming、自動化された敵対的テスト、危険な活動に関するモデル能力の評価など、多くの評価が実施されています。これらの評価は、Googleのモデルカードに概説されています。
この責任ある生成AIツールキット (Responsible Generative AI Toolkit)以下が含まれます:

  • 安全分類:最小限の例で安全分類子を構築するための新しい方法論を提供します。

  • デバッグ:モデルのデバッグツールは、Gemmaの潜在的な問題に対処するのに役立ちます。

  • ガイダンス:Googleが大規模言語モデルの開発経験に基づいて、モデルビルダー向けのベストプラクティスにアクセスできます。

この責任ある生成AIツールキット (Responsible Generative AI Toolkit)は、Gemmaを用いたより安全なAIアプリケーションの構築に役立ちます。ソリューションの異なる側面に対する安全戦略についての専門的なガイダンスを見つけることができます。

また、Gemmaモデルの振る舞いを視覚化し、理解するための「Learning Interpretability Tool (LIT)」も提供されています。下記がGemmaの振る舞いを調査する際のツールのアクションですす


チューニングツールが充実

要約機能や検索強化生成(RAG)などで自身のデータでGemmaモデルをファインチューニングし、特定のアプリケーションニーズに適応させることができます。Gemmaは、幅広いツールとシステムをサポートしています:

  • マルチフレームワークツール:お好みのフレームワークを持ち込み、Keras 3.0、Native PyTorch、JAX、Hugging Face Transformersを通じて、推論とファインチューニングのためのリファレンス実装が可能です。

  • クロスデバイス互換性:Gemmaモデルは、ノートパソコン、デスクトップ、IoT、モバイル、クラウドを含む人気のデバイスタイプで動作し、広くアクセス可能なAI機能を実現します。

  • 先端ハードウェアプラットフォーム:NVIDIAとのパートナーシップにより、GemmaはNVIDIA GPU(データセンターからクラウド、ローカルのRTX AI PCまで)で最適化され、業界をリードするパフォーマンスと最先端技術との統合を保証します。

  • Google Cloudでの最適化:Vertex AIは、広範なMLOpsツールセットを提供し、様々なチューニングオプションとビルトインの推論最適化を使用したワンクリックデプロイメントを可能にします。完全管理型のVertex AIツールまたは自己管理のGKEを使用した高度なカスタマイズが可能で、GPU、TPU、CPUを含むコスト効率の良いインフラストラクチャへのデプロイメントが、どちらのプラットフォームからでも利用できます。


R&D向けの無償提供枠

Gemmaは、AI開発者や研究者のオープンコミュニティ向けに構築されています。現在、Kaggleでの無料アクセス、Colabノートブックの無料枠、そしてGoogle Cloudの初回ユーザー向けに300ドルのクレジットを使用してGemmaを利用することができます。研究者は、プロジェクトを加速するために最大50万ドルのGoogle Cloudクレジットを申請することもできます。


競合比較

Gemmaはサイズが小さいため、ユーザーのラップトップ上で直接実行することができます。以下のチャートは、言語理解と生成のパフォーマンスにおいて、Gemma (7B)がLLaMA 2 (7B)、LLaMA 2 (13B)、Mistral (7B)といった同様のサイズのオープンモデルとどのように比較されるかを示しています。

よい詳細なベンチマーク比較はこの資料を参照してください。

これによると、Gemma 7Bモデルは、Mistral 7Bのようなパラメタ数が7Bの同等のモデルに匹敵するパフォーマンスを提供してます。一方で、Gemma 2Bモデルはそのサイズにおいて、PHI-2のような同じサイズの熟練したモデルと比較した場合、あまり高いランキングを達成することはありません。

Source- here


稼働環境

Gemmaモデルは軽量ですが、LLM(大規模言語モデル)の世界では、それでもギガバイト級の大きさがあります。
下記は、半精度(bfloat16)で推論を実行する際に必要となった最小ストレージとGPUメモリを示しています。

| Model    | Total parameters | Assets size | Min. GPU RAM to run |
| -------- | ---------------: | ----------: | ------------------: |
| Gemma 2B |    2,506,172,416 |     4.67 GB |              8.3 GB |
| Gemma 7B |    8,537,680,896 |    15.90 GB |             20.7 GB |

GemmaとVertex AIを評価する環境としてColab Enterpriseのg2-standard-8ランタイムを使用しています。これにはNVIDIA L4 GPUと24 GBのGPU RAMが搭載されていて、ノートブックPCでのプロトタイピング時に時間を節約し、メモリ不足を避けるためのコストパフォーマンスの良い設定です。


トレーニングデータセット

トレーニングに要したハードウェア

Gemmaは、最新世代のTensor Processing Unit(TPU)ハードウェア(TPUv5e)を使用してトレーニングされました。
大規模言語モデルのトレーニングには膨大な計算能力が必要です。機械学習で一般的な行列演算を特に扱うように設計されたTPUは、この分野でいくつかの利点を提供します:

  • パフォーマンス:TPUは、LLMのトレーニングに関わる大量の計算を処理するために特別に設計されています。CPUと比較して、トレーニングのスピードを大幅に上げることができます。

  • メモリ:TPUはしばしば、トレーニング中に大規模なモデルやバッチサイズを扱うための大量の高帯域幅メモリを備えています。これにより、より良いモデル品質を得ることができます。

  • スケーラビリティ:TPU Pods(TPUの大規模クラスタ)は、大規模な基盤モデルの複雑さが増すのに対応するスケーラブルなソリューションを提供します。複数のTPUデバイスにトレーニングを分散することで、より高速かつ効率的な処理が可能になります。

  • コスト効率:多くのシナリオにおいて、TPUはCPUベースのインフラストラクチャと比較して、大規模なモデルをトレーニングするためのよりコスト効率の良いソリューションを提供できます。特に、より速いトレーニングによって時間とリソースが節約されることを考慮すると、その効率性は顕著です。

トレーニングデータセット

これらのモデルは、合計6兆トークンを含む幅広いソースからなるテキストデータのデータセットでトレーニングされました。主要なコンポーネントは以下の通りです:

  • ウェブドキュメント:多様なウェブテキストの収集により、モデルが幅広い言語スタイル、トピック、および語彙にさらされることを保証します。主に英語のコンテンツです。

  • コード:モデルにコードをさらすことで、プログラミング言語の構文とパターンを学ぶのに役立ち、コード生成やコード関連の質問を理解する能力を向上させます。

  • 数学:数学的テキストでのトレーニングにより、モデルは論理的推理、記号表現を学び、数学的なクエリに対処する能力を向上させます。

Source- here

これら多様なデータソースの組み合わせは、様々なタスクやテキストフォーマットを扱える強力な言語モデルをトレーニングするために不可欠です。
Gemma 2Bと7Bはそれぞれ2兆トークンと6兆トークンでトレーニングされています。これは、Gemma 7BがLlama 2よりも3倍多くのトークンでトレーニングされたことを意味します。その理由として次の二つが考えられます:

  • Llama 2のトレーニングロスは、3Tトークンでのトレーニング後もまだ顕著に減少していた。

  • 語彙が非常に大きいため、モデルが語彙のすべてのトークンのより良い埋め込みを学ぶためには、より長いトレーニングが必要。

Gemmaのインストラクトバージョン

モデルのインストラクトバージョンについては、人間および合成データから成るインストラクションデータセットに対して、Reinforcement Learning from Human Feedback (RLHF)による強化学習が行われました。
こちらがプロンプトのフォーマットです:

source


プロンプト構造

Gemmaシリーズのファウンデーションモデルは、特定のプロンプト形式に固執していません。他のベースモデルと同様に、与えられた入力シーケンスからの一貫した続きを生成するのに柔軟性があり、ゼロショットおよびフューショットの推論タスクに適しています。この柔軟性は、特定のアプリケーションに合わせたカスタムファインチューニングのための優れた出発点となります。一方、指示調整されたバージョンは、わかりやすい会話フレームワークで設計されています:

<start_of_turn>user
knock knock<end_of_turn>
<start_of_turn>model
who is there<end_of_turn>
<start_of_turn>user
Gemma<end_of_turn>
<start_of_turn>model
Gemma who?<end_of_turn>

この形式は、効果的な使用のために正確に再現されなければなりません。


Deploying Gemmaのデプロイ方法

MLOpsの領域においては、GPUやTPU上で動作するLLM最適化サービングフレームワークが異なります。
一般的なサービングフレームワークは次のとおりです。これらのフレームワークは、Vertex AIに簡単にデプロイできる事前構築済みのコンテナイメージを提供します。
以下は、始めるためのシンプルなノートブックです:

プロダクション環境でのファインチューニングには、Vertex AIのカスタムトレーニングジョブを使用できます。こちらは詳細なノートブックです:

次のノートブックは、デプロイメントとサービングに焦点を当てています:

この記事が気に入ったらサポートをしてみませんか?