【Gemma】”Llama 2超え”と噂のGoogleのオープンソースLLMの性能を徹底比較してみた

Gemma Llama 2 超え Google オープンソース LLM 性能

WEELメディア事業部LLMリサーチャーの中田です。

2024年2月21日、オープンソースの大規模言語モデル「Gemma」を、Googleが公開しました。

このモデルはGeminiをもとに設計されており、軽量ながら高精度なんです!

Google DeepMindの公式Xでの投稿のいいね数は、すでに2000を超えており、かなり期待されていることが分かります。

この記事ではGemmaの使い方や、有効性の検証まで行います。本記事を熟読することで、Gemmaの凄さを理解し、昨今のGoogleの勢いを肌で感じられるでしょう。

ぜひ、最後までご覧ください。

\生成AIを活用して業務プロセスを自動化/

目次

Gemmaの概要

Gemmaは、Googleが開発した最新のオープンソースLLMです。現在は、2Bおよび7Bパラメータのモデルが公開されており、様々なタスクでの使用が可能です。

Gemmaの語源は「宝石」から来ているとされています。

また、公式テクニカルレポートによると、Gemmaモデルは最近話題のGemini(Transformerのデコーダ)をもとに構築されており、言語理解や推論などに関するベンチマークで、高いパフォーマンスを示します。

参考:https://storage.googleapis.com/deepmind-media/gemma/gemma-report.pdf
参考:https://blog.google/
参考:https://huggingface.co/blog/gemma

特に、Gemmaは軽量でありながら、その他のモデルの性能よりも高いのが特徴的です。

加えて、深層学習フレームワーク「Keras 3.0」を介して、JAX、PyTorch、TensorFlow など、すべての主要なフレームワークにわたって、「推論」と「ファインチューニング」を実行できるとのこと。また、Colabおよび Kaggleノートブックに加え、Hugging FaceやNVIDIA などの人気プラットフォームと統合しているので、Gemmaを簡単に始めることができます。

Gemmaのモデルについて

2025年7月29日現在、最新版のGemmaをはじめ様々なモデルが公開されています。それぞれ用途に応じたモデルやパラメータサイズが用意されているので特徴をまとめました。

Gemma(第1世代)

2024年2月にリリースされたGemmaの初代モデルです。2BはCPUやエッジ向け、7BはGPU/TPU向けに最適化されており、それぞれ事前学習済み(pre‑trained)と指示調整済み(instruction‑tuned)版が提供されています。

Gemma 2(第2世代)

Gemma2は2024年6月に登場した第2世代のGemmaです。クラウドからローカルまで幅広い環境に対応することができる軽量なモデルとなっています。用意されているモデルサイズは2B、9B、27 Bの3種類。27 BはWeb文書や科学論文、コードなどから学習されており、9Bおよび2Bは上位モデルから知識蒸留されているのもポイントの一つです。

Gemma 3(最新世代)

2025年3月にリリースされた最新モデル。Gemma3は最大128Kトークンの長文コンテキスト(ただし1Bモデルは32K)、140以上の言語対応、視覚入力対応などを備え、単一GPUでの動作、推論速度、マルチモーダル対応と完成度の高いモデルとなっています。

モデルサイズは1B、4B、12B、27Bと幅広いため様々な分野で活用が可能なモデルです。

Gemma 3n(モバイル・エッジ向け)

2025年6月に発表された軽量版Gemma3。搭載メモリが2GB程度の端末でも動作可能なモデルとなっています。Gemma3nは端末のみで完結できる設計で、ローカルでの音声認識・翻訳、テキスト生成、画像解析などに用いられます。スマホやエッジ端末でのリアルタイムAI活用を想定して作られています。

CodeGemma(コード生成特化)

CodeGemmaは多言語プログラミング(Python、JavaScript、Java、Rust など)に対応したコード生成に特化した軽量モデルです。下記の3つのバリアントが提供されています。

  • Codegemma-2b: 最大2倍のコード補完速度を実現した高速なコード補完に特化したモデル
  • Codegemma-7b: コード補完とコード生成に特化したモデル
  • Codegemma-7b-it: 自然言語からコードへのチャットと命令実行に特化したモデル

PaliGemma(ビジョン言語推論)

PaliGemmaは画像データ処理アプリケーションに合わせて微調整され、複数の解像度で利用できるモデルです。ビジュアルデータ処理を活用したAI ソリューションの構築などが可能です。

PaliGemma2は、30 億・100 億・280 億のパラメータが利用可能で、前身モデルであるPaliGemmaは3Bが利用できます。

また、PaliGemmaは下記の3つのカテゴリに分かれているため、用途によってモデルを選択しましょう。

  • PaliGemma PT – さまざまなタスクでファインチューニングできる汎用事前トレーニング済みモデル。
  • PaliGemma FT – 特定の研究データセットでファインチューニングされた研究指向のモデル。
  • PaliGemma ミックス – 一般的なユースケースですぐに使用できる、タスクの組み合わせに合わせてチューニングされたモデル。

ShieldGemma(安全評価)

ShieldGemmaは定義された安全ポリシーに対してテキストと画像の安全性を評価するためのモデルです。ShieldGemma ファミリーのモデルにはオープン重みが用意されているため、特定のユースケースに合わせてファインチューニングが可能となっています。

ShieldGemma2は、安全性に関する画像のラベル付け用に構築された 40 億のパラメータモデルが利用可能で、ShieldGemma1は、2B・9B・27B のパラメータとなっています。

GemmaとGeminiの違いとは?

Googleが提供する生成AIモデルとして、GemmaとGeminiは混同されがちですそれぞれ異なる目的と特性を持っています。

両者の最も大きな違いは、「用途」と「ターゲット」と言えるでしょう。

Gemmaは「オープンソースの軽量モデル」として提供されています。

これは、Googleがモデルの重みを無料で公開しており、開発者が自由にダウンロードして自身の環境で実行、カスタマイズ、さらには商用利用まで可能であることを意味します。

モバイルデバイスやエッジ環境など、限られたリソース下でも高性能を発揮できるよう設計されており、開発者が特定の用途に合わせてモデルを細かく調整できる柔軟性がGemmaの魅力です。

一方、Geminiは「Googleが提供するクローズドな生成AI」となります。

こちらはAPIやGoogle Cloudなどのサービスを通じて利用が提供されていますが、モデルの内部構造は非公開です。また、テキストだけでなく、画像や音声、動画といった多様な情報を理解・生成できる「マルチモーダルモデル」となっておりな能力を持ち、非常に複雑で高度なタスクに対応することが可能です。

競合としてはChatGPTやClaudeなどが挙げられるためエンドユーザー向けの生成AIといえるでしょう。

つまり、Gemmaはローカル開発や研究目的など、自由にカスタマイズ可能な軽量モデルなのに対し、Geminiは最先端技術を活用した高性能・多機能AIモデルという位置付けになります。

両者ともGoogleが提供する生成AIモデルですが、用途もターゲットも明確に分かれているため目的に応じて選択することが重要です。

Gemmaのライセンス

公式ページGemma Terms of Useによると、誰でも無償で商用利用することが可能です。

利用用途可否
商用利用⭕️
改変⭕️
配布⭕️
特許使用Gemma Terms of Useに記載なし
私的使用⭕️
Gemmaのライセンス情報

Gemmaの使い方

今回は、公式のHuggingFaceにあるやり方を参考に、Google Colab上(A100サーバ)で実行していきます。

まず、モデルカードのページを開き、HuggingFaceにログインした後、「Acknowledge license」ボタンをクリックして、ライセンスを認証しましょう。

参考:https://huggingface.co/google/gemma-7b-it

次に、以下のコードを実行して、ライブラリをインストールしましょう。

!pip install -U transformers

次に、左端の鍵アイコンに移動し、「HF_TOKEN」にHuggingFaceのトークンを設定し有効化しましょう。

その後、以下のコードでトークンを読み込みます。

from google.colab import userdata

HF_TOKEN = userdata.get('HF_TOKEN')

次にモデルやトークナイザーのロードを完了させましょう。

from transformers import AutoTokenizer, pipeline
import torch

model = "google/gemma-7b-it"

tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = pipeline(
    "text-generation",
    model=model,
    model_kwargs={"torch_dtype": torch.bfloat16},
    device="cuda",
)

以下のコードを実行すると、推論が実行されます。

messages = [
        {"role": "user", "content": "Who are you? Please, answer in pirate-speak."}, # プロンプト
]
prompt = pipeline.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipeline(
    prompt,
    max_new_tokens=256,
    add_special_tokens=True,
    do_sample=True,
    temperature=0.7,
    top_k=50,
    top_p=0.95
)
print(outputs[0]["generated_text"][len(prompt):])

試しに、以下のプロンプトを入力し、実行してみます。

Who is the Prime Minister of Japan?

和訳:
日本の総理大臣は誰ですか?

結果は以下の通りです。

As of today, October 26, 2023, the Prime Minister of Japan is Fumio Kishida.

Gemmaがリリースされた2024年2月時点の情報となりますが、ちゃんと「岸田文雄」と答えてくれています。

Gemmaを動かすのに必要なPCのスペック

こちらは、Gemma-7b-itを動かした場合のスペックです。

■Pythonのバージョン
Python3.8以上

■使用ディスク量
17.07GB

■RAMの使用量
18GB

なお、Googleの音声生成AIについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

GemmaとLlama 2を比較してみた

ここでは、テクニカルレポートでも良く比較対象として挙げられていた「Llama 2 70B」とGemmaを、以下のタスクで比較しようと思います。

  • 数学能力
  • コーディング能力
  • 日本語能力

それでは順番に見ていきましょう。

数学能力

深津貴之さんがXで、以下の様に「もしかしたら数学能力が高くなっているかもしれない」という旨のツイートしていました。

そこで、「100以下の素数を挙げて、それらすべての数字を足し合わせたもの」を出力させてみます。プロンプトは以下の通りです。

Please list and add up all prime numbers below 100.

和訳:
100以下の素数をすべて挙げて足してください。

ちなみに答えは、以下の通りです。

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97

When added up, they sum to 1060.

Gemmaの答えは以下の通りです。

Sure, here are the prime numbers below 100:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 33, 37, 41, 43, 47, 49, 51, 53, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97

Total number of prime numbers below 100 = 25

Total sum of prime numbers below 100 = 2035

49や63など、非素数が含まれている可能性があり、正確さに欠ける結果となることがあります。

Llama 2の答えは以下の通りです。

Sure, I'd be happy to help! Here are the prime numbers below 100:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
The sum of these prime numbers is 837.

こちらも間違いです。

コーディング能力

次に、コーディング能力を試すために、「ボストン住宅価格データセットを用いた回帰分析」を実行してもらいます。使用したプロンプトは、以下の通りです。

Please perform a regression analysis in Python using the Boston home price dataset with as much accuracy as possible.

和訳:
ボストン住宅価格データセットを用いて、Pythonにより、なるべく精度の高い回帰分析を行ってください。

Gemmaの答えは以下の通りです。

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression

# Load the Boston home price dataset
df = pd.read_csv('boston.csv')

# Split the dataset into X and y variables
X = df.drop('price', axis=1)
y = df['price']

# Create and fit the linear regression model
model = LinearRegression()
model.fit(X, y)

# Make predictions
y_pred = model.predict(X)

# Print the coefficients
print('Coefficients:', model.coef_)

# Print the mean squared error
print('Mean Squared Error:', np.mean((y_pred - y)**2))

# Print the R-squared value
print('R-Squared:', model.score(X, y))

#Output:

Coefficients: [ 0.71929232 -0.04383986 -0.0782692 ]
Mean Squared Error: 122.881128001
R-Squared: 0.632612

Explanation:

The pandas library is used to read and manipulate the dataset.
The numpy library is used for numerical operations.
The sklearn.linear_model library is used to create and fit the linear regression model.
The LinearRegression class is used to create the model.
The fit method is used to fit the model to the data.
The coef_ attribute is used to get the coefficients of the model.
The mean_squared_error attribute is used to get the mean squared error of the model.
The score attribute is used to get the R-squared value of the model.
Note:

The results of the regression analysis may vary slightly depending on the dataset and the parameters used for the model fitting.
For improved accuracy, you can try different preprocessing techniques or use a different model type.
The Boston home price dataset is a commonly used dataset for regression analysis and has a relatively high level of accuracy.

このままのコードでは、データセットをロードしないので、あらかじめボストン住宅価格データセットのcsvを用意します。そのうえで、こちらのコードをGoogle Colab上で実行したところ、以下のようなエラーが発生し、実行できなかったです。

KeyError: "['price'] not found in axis"

Llama 2の答えは以下の通りです。

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# Load the Boston home price dataset
boston_data = pd.read_csv('boston_housing.csv')
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(boston_data.drop('price', axis=1), boston_data['price'], test_size=0.3)
# Create a linear regression model
model = LinearRegression()
# Train the model on the training data
model.fit(X_train, y_train)
# Make predictions on the testing data
y_pred = model.predict(X_test)
# Evaluate the model's performance
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f'Mean squared error: {mse:.2f}')
print(f'R-squared: {r2:.2f}')
# Plot the data and the predicted values
plt.scatter(X_test, y_test, c='blue')
plt.scatter(X_test, y_pred, c='red')
plt.xlabel('Feature 1')
plt.ylabel('Price')
plt.show()
The output of the code will show the mean squared error and R-squared value for the linear regression model. The mean squared error represents the average squared difference between the predicted values and the actual values. The R-squared value represents the proportion of the variance in the dependent variable that is explained by the independent variable(s).
In this case, the mean squared error is 10.28, indicating that the model is not doing a great job of predicting the housing prices. The R-squared value is 0.67, indicating that about 67% of the variance in the housing prices can be explained by the independent variables.
The plot of the data and the predicted values will also be displayed, showing how well the model is able to fit the data.
It's important to note that this is just one example of a linear regression model, and there are many other factors that can affect the accuracy of the model, such as the quality of the data, the choice of independent variables, and the choice of model.

こちらを実行したところ、先ほどのGemmaの時と同じエラーが発生しました。

日本語能力

最後に、日本語能力を試すために、和歌を出力させてみます。使用したプロンプトは、以下の通りです。

Please create a waka about summer in Japanese.

和訳:
日本語で、夏を題材にした和歌を作成してください。

Gemmaの答えは以下の通りです。

夏はこれから始まる、陽が強く熱が強く
子供たち笑顔がどこに、汗が流れます。
みんなみんな笑顔を pathlib、楽しい思い出を作ります。
ジャンプとダンス、遊びと笑いが、楽しいです。
たくさんの笑顔が聞こえて、これから始まる。

和歌にはなっていません。

Llama 2の答えは以下の通りです。

Sure, here's a waka about summer in Japanese:
夏の日の輝き
natsu no hi no kagayaki
The brightness of the summer day
緑の葉の茂み
midori no ha no matsumi
The lushness of the green leaves
暑さを忘れて
atsui sa o wasurete
Forgetting the heat
水の笑顔
mizu no egao
The smile of the water
夏の宵の広がり
natsu no yoi no hirogaru
The wide, summer night sky
星の輝き
hoshi no kagayaki
The twinkling of the stars
涼しい風
suzushii kaze
A refreshing breeze
夏の夜の暁
natsu no yoru no akatsuki
The early morning of a summer night
紅色の日の落
beni-iro no hi no ochi
The setting of the red sun
夏の季節の
natsu no kisetsu no
The season of summer
熱い情熱
atsui jounetsu
Burning passion
I hope you enjoy this waka!

こちらも和歌にはなっておらず、英語も混じっています。

なお、数学オリンピックの問題も解けるGoogleのAIについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

GoogleのAI技術に今後も注目!

GemmaはGoogleによって開発された最新のオープンソースの大規模言語モデルで、2Bおよび7Bパラメータモデルが公開されています。

名前の由来は「宝石」で、Gemini(Transformerのデコーダ)を基にしており、言語理解や推論のベンチマークで優れた性能を発揮します。Gemmaは軽量でありながら高性能で、JAX、PyTorch、TensorFlowなど主要なフレームワークに対応し、Keras 3.0を通じて推論とファインチューニングが可能です。

NVIDIAは近々、GemmaをChat with RTXで使用可能にすると発表しています。

GemmaとLlama 2の比較検証からは、両者ともに改善の余地があることが示唆されます。やはり、ハルシネーションが多く、正確でない答えを出力しがちなので、今後のアップデートに注目といったところでしょう。

タスクGemmaLlama 2
数学能力(素数判定)間違いを出力した間違いを出力した
コーディング能力(回帰分析)そのままでは動かないコードが出力されたそのままでは動かないコードが出力された
日本語能力(和歌作成)和歌になっていなかった和歌になっておらず、出力に英語が混じっていた

ちなみに、あるXユーザーによると、「Mistral 7bはGemma 7bより優れており、Gemmaはハルシネーションを起こしやすい」とのこと。

サービス紹介資料

生成系AIの業務活用なら!

・生成系AIを活用したPoC開発

・生成系AIのコンサルティング

・システム間API連携

最後に

いかがだったでしょうか?

Gemmaを活用した自社独自の生成AI戦略を、今こそ構築すべきタイミングかもしれません。

株式会社WEELは、自社・業務特化の効果が出るAIプロダクト開発が強みです!

開発実績として、

・新規事業室での「リサーチ」「分析」「事業計画検討」を70%自動化するAIエージェント
・社内お問い合わせの1次回答を自動化するRAG型のチャットボット
・過去事例や最新情報を加味して、10秒で記事のたたき台を作成できるAIプロダクト
・お客様からのメール対応の工数を80%削減したAIメール
・サーバーやAI PCを活用したオンプレでの生成AI活用
・生徒の感情や学習状況を踏まえ、勉強をアシストするAIアシスタント

などの開発実績がございます。

生成AIを活用したプロダクト開発の支援内容は、以下のページでも詳しくご覧いただけます。
➡︎株式会社WEELのサービスを詳しく見る。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

大規模言語モデル(LLM)比較レポート
LLM比較レポート

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、大規模言語モデル(LLM)を対象に、言語理解能力、生成能力、応答速度の各側面について比較・検証した資料も配布しております。この機会にぜひご活用ください。

投稿者

  • 中田

    データサイエンス専攻の大学院生。大学では、生成系AIの拡散モデルを用いた音楽生成について研究。 趣味は作曲、サッカー、コーヒー。

  • URLをコピーしました!
  • URLをコピーしました!
目次