Gemmaモデルファミリーアーキテクチャの概要と機能解説

Gemmaモデルファミリーの概要

Gemmaは、Googleが開発した最新の軽量オープンモデルファミリーです。これは、Geminiモデルの作成に用いられた研究と技術を基に構築されています。Gemmaのさまざまなバリエーションは、異なるユースケースやモダリティ(単一モダリティやマルチモダリティ)向けに設計されています。以下に、Gemmaモデルファミリーの特徴を詳しく説明します。

Gemmaモデルのバリエーション

– **単一モダリティ**:テキスト入力に対するテキスト出力。
– **コーディングユースケースへの特化**:プログラミング補助に最適化されたモデル。
– **マルチモダリティ**:テキストと画像の入力に対してテキスト出力を行う。
– **異なるサイズ**:ハードウェアや推論のニーズに応じて、異なるサイズモデルが用意されています。

すべてのGemmaモデルは共通のDNAを共有しており、これによりモダンな大規模言語モデル(LLM)のアーキテクチャや設計選択について学ぶユニークな方法を提供します。

Gemmaモデルの具体的説明

Gemmaファミリーには、以下の主要なモデルがあります:

– **Gemma 1**(2B、7B):テキストからテキストへの変換モデル。
– **CodeGemma**(2B、7B):プログラムの補完や生成に最適化されたGemmaのファインチューニング版。
– **Gemma 2**(2B、9B、27B):新しいアーキテクチャでトレーニングされたテキストからテキストへのモデル。2Bおよび9Bは、大規模モデルからの蒸留を通じてトレーニングされています。
– **RecurrentGemma**(2B、9B):新しいGriffinアーキテクチャに基づいたモデルで、長い系列を生成する際に迅速な推論を実現しています。
– **PaliGemma**(3B):テキストと画像を取り入れ、テキスト出力を提供するビジョン・ランゲージモデルです。

Gemmaのアーキテクチャ

Gemmaモデルは、トランスフォーマーのデコーダーを基にしています。これは、元のエンコーダー-デコーダー型トランスフォーマーアーキテクチャとは異なり、「デコーダーのみ」のモデルです。Gemmaの基本的なアーキテクチャパラメータは、以下のようにまとめられています。

– **d_model**:入力に使用される埋め込みサイズ。モデルの複雑さに応じた調整が可能です(2Bモデルは2048、7Bモデルは3072)。
– **レイヤー数**:モデルの深さを示し、より複雑なパターンを学習する能力を示します(2Bは18レイヤー、7Bは28レイヤー)。
– **隠れ層の次元**:モデルの表現力を高めるため、フィードフォワードネットワークの次元はd_modelよりも大きくなります(2Bは32768、7Bは49152)。

これにより、Gemmaモデルはさまざまな言語タスクに対し、より良いパフォーマンスを発揮します。

CodeGemmaモデルの特長

CodeGemmaは、プログラム補完とコードアシスタントのために特に最適化されたGemmaモデルです。500億を超えるトークンの主にコードに基づいてトレーニングされており、これによりユーザー定義のトークンを使用したインタラクティブなコード補完が可能になります。

例えば:

– **BEFORE_CURSOR**: “”
– **AFTER_CURSOR**: “