Contents
Gemma モデルの概要とライセンス
Gemma は Google DeepMind が開発したオープンソースの大規模言語モデル(LLM)です。2024 年に Gemma 2 が公開され、Apache 2.0 ライセンスの下で無償利用が可能となっています。本節では現在公式に提供されているモデルサイズとライセンス条件を整理し、プロジェクトへの採用判断に役立つ情報を提示します。
公開されているモデルサイズ
2024 年 3 月にリリースされた Gemma 2 系列は、主に以下の 2 種類が公式に提供されています。パラメータ数や推奨 GPU メモリは DeepMind の技術資料を基にしています。
| モデル | パラメータ数 (概算) | 推奨 GPU VRAM* | 主な利用シーン |
|---|---|---|---|
| gemma‑2b | 約 2 B | 4 GB 以上 (FP16) | 軽量チャット、リアルタイム応答 |
| gemma‑9b | 約 9.5 B | 12 GB 以上 (FP16) | 中規模テキスト生成、コード補完 |
*「GPU VRAM」は FP16 推論を前提とした目安です。CPU のみで実行すると速度が大幅に低下します。
ライセンス情報
Gemma 系列は Apache 2.0 ライセンスで配布されており、以下の点が特徴です。
- 商用・非商用を問わず自由に使用できる。
- ソースコードやモデルバイナリの再配布・改変が許可されている(ただし、著作権表示とライセンス文書の同梱が必須)。
- 特許権に関しては Apache 2.0 の特許付与条項が適用され、利用者は一定の法的保護を受けられる。
公式ページ(DeepMind – Gemma)で最新のライセンス文書とリポジトリへのリンクが公開されています。
ローカル実行に必要なハードウェアと環境設定
ローカルで Gemma を動作させる際に最も重要になるのは GPU のメモリ容量 と CUDA/Metal のランタイム です。本節ではモデルごとの最低・推奨スペックをまとめ、主要 OS 向けの前提ソフトウェアインストール手順を示します。
推奨 GPU とシステム要件
以下は公式資料と一般的なベンチマーク結果から導き出した、モデル別のハードウェア目安です。実際のメモリ使用量はコンテキスト長やバッチサイズに左右されます。
| モデル | 最低 GPU VRAM | 推奨 GPU(例) | CPU コア数 | システム RAM |
|---|---|---|---|---|
| gemma‑2b | 4 GB | NVIDIA RTX 3060 / AMD Radeon RX 6600 XT | 4 コア以上 | 8 GB |
| gemma‑9b | 12 GB | NVIDIA RTX 4090 / AMD Radeon PRO W6800 | 8 コア以上 | 32 GB |
CPU のみで実行する場合は、上記 VRAM 要件の 2 倍 程度の RAM を確保すると安定します(例:gemma‑9b → 64 GB 推奨)。
OS 別の前提ソフトウェア
Windows
- NVIDIA GPU 利用時は CUDA Toolkit 12.x と cuDNN 9.x を公式サイトからインストール。
- パッケージ管理には
wingetが便利で、winget install Ollamaにより Ollama 本体を自動導入できる。
macOS (Apple Silicon)
- GPU ドライバは OS に統合されているため追加インストール不要。
- Homebrew で
brew install ollamaとすれば、ローカルサーバーが即座に利用可能になる。
Linux (Ubuntu 22.04 以降)
- NVIDIA ドライバは
sudo apt-get install nvidia-driver-560等でインストールし、CUDA Toolkit と cuDNN を同梱。 - コンテナ運用を希望する場合は公式手順に従い Docker を設定し、
docker run --gpus all ollama/ollama:latestで起動できる。
インストール方法 – Ollama と Unsloth の比較
Gemma 系列は Ollama(スタンドアロンのサーバ/GUI)と Unsloth(Python ライブラリ)という二つの主要な配布形態で提供されています。ここではそれぞれの導入手順を示し、選択時のポイントを比較します。
Ollama のインストール手順
Ollama はワンクリックまたはワンコマンドで環境構築が完了するため、初心者向けに最適です。以下のステップでセットアップできます。
- 公式インストーラを取得
- Windows:
https://ollama.com/download/OllamaSetup.exeをダウンロードして実行 - macOS:
brew install ollama -
Linux:
curl -fsSL https://ollama.com/install.sh | sh -
インストール確認
bash
ollama --version # バージョン情報が表示されれば成功 -
サービスとして自動起動(任意)
- Windows: スタートアップにショートカットを配置
-
Linux/macOS:
systemctl enable --now ollama -
モデル取得コマンド例(後述の「モデル取得」節参照)
Unsloth(Python ライブラリ)のセットアップ方法
Unsloth は開発者が Python コード内で直接 Gemma を呼び出すための高速化ラッパーです。以下の流れで環境を整えます。
-
Python 環境の作成(pyenv + venv 推奨)
bash
pyenv install 3.11
python -m venv .venv
source .venv/bin/activate -
依存ライブラリをインストール(GPU がある前提)
bash
pip install "unsloth[torch]" --extra-index-url https://download.pytorch.org/whl/cu121 -
GPU の認識確認
python
import torch
assert torch.cuda.is_available(), "CUDA が検出されません" -
モデルは Hugging Face Hub から取得(例:
google/gemma-2b)
主要な違いと選び方
| 項目 | Ollama | Unsloth |
|---|---|---|
| インストール難易度 | ワンクリック/ワンコマンドで完了 | Python 環境構築が必須 |
| GUI の有無 | Web UI が同梱(ブラウザ) | なし(完全 CLI / API) |
| 本格的なカスタマイズ | 限定的(Ollama CLI のオプションに依存) | transformers と同等の柔軟性 |
| 推奨ユーザー層 | プロトタイピング、非エンジニア | エンジニア・研究者向け本格開発 |
モデル取得・実行例
この節では Ollama と Unsloth + Transformers の具体的な使用例を示し、同一モデルでも異なるインターフェースでどのように呼び出すかを比較します。
Ollama での取得と実行
-
利用可能モデル一覧の確認
bash
ollama list -
gemma‑2b のダウンロード
bash
ollama pull gemma:2b -
対話モードで実行(CLI)
bash
ollama run gemma:2b日本の人口推移を概観してください。
-
Web UI で操作
ollama serveを起動 → ブラウザでhttp://localhost:11434/にアクセス。- UI の「モデル」一覧から
gemma:2bを選択し、テキストボックスに質問を入力。
Python API(Ollama)サンプルコード
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import requests def ollama_chat(model: str, user_msg: str) -> str: payload = { "model": model, "messages": [{"role": "user", "content": user_msg}], "stream": False } resp = requests.post("http://localhost:11434/api/chat", json=payload) resp.raise_for_status() return resp.json()["message"]["content"] if __name__ == "__main__": answer = ollama_chat( model="gemma:2b", user_msg="AI の倫理課題を箇条書きで教えてください。" ) print(answer) |
Unsloth + Transformers サンプルコード
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
from transformers import AutoModelForCausalLM, AutoTokenizer import torch model_name = "google/gemma-2b" tokenizer = AutoTokenizer.from_pretrained(model_name) # 量子化や FP16 は Unsloth が自動で最適化してくれる model = AutoModelForCausalLM.from_pretrained( model_name, device_map="auto", torch_dtype=torch.float16 # FP16 推論で VRAM を削減 ) prompt = "次世代の自然言語処理技術について要点をまとめて。" inputs = tokenizer(prompt, return_tensors="pt").to(model.device) with torch.no_grad(): output_ids = model.generate(**inputs, max_new_tokens=150) print(tokenizer.decode(output_ids[0], skip_special_tokens=True)) |
トラブルシューティング・パフォーマンス最適化
実務で Gemma を安定運用するためには、よくあるエラーへの対処法と高速化テクニックを事前に把握しておくことが重要です。ここでは代表的な障害例と推奨される解決策、さらにメモリ削減やセキュリティ管理のベストプラクティスをまとめます。
よくあるエラーと対処法
| エラー | 主な原因 | 推奨対策 |
|---|---|---|
| CUDA driver version mismatch | CUDA Toolkit と GPU ドライバのバージョン不整合 | nvidia-smi でドライバを確認し、DeepMind が推奨する CUDA バージョンに合わせて再インストール |
| Out Of Memory (OOM) | モデルが GPU VRAM を超過 | 1) FP16 推論に切り替える 2) max_new_tokens・コンテキスト長を削減3) INT8 量子化モデルを使用(Unsloth の quantize_model) |
| CPU fallback | GPU が認識されない、環境変数未設定 | export PATH=/usr/local/cuda/bin:$PATH と LD_LIBRARY_PATH に CUDA ライブラリパスを追加し、再起動後に torch.cuda.is_available() を確認 |
| Port 11434 already in use (Ollama) | 他プロセスが同ポート占有中 | lsof -i :11434 → PID を特定し kill <PID>、または環境変数 OLLAMA_HOST=0.0.0.0:11500 で別ポートに変更 |
高速化テクニック
-
FP16 推論(Ollama)
bash
export OLLAMA_DTYPE=fp16
ollama run gemma:2b -
INT8 量子化(Unsloth)
python
from unsloth import quantize_model
qmodel = quantize_model(
model_name="google/gemma-2b",
bits=8,
dtype=torch.int8,
device_map="auto"
)
- バッチサイズ・シーケンス長の最適化
max_new_tokensをタスクに必要最低限に設定する。- 大規模推論の場合は「シーケンス分割」や「ステートフル推論」機能を活用し、GPU メモリの再利用率を上げる。
セキュリティとアップデート管理
| 項目 | 推奨手順 |
|---|---|
| 定期的なバージョンチェック | ollama list --updates で新しいビルドがあるか確認し、ollama pull <model> で更新。 |
| ダウンロードの検証 | DeepMind が提供する SHA‑256 ハッシュを取得し、sha256sum コマンドでファイル整合性をチェック。 |
| ネットワーク制御 | ローカルサーバーはファイアウォールで外部からの 11434 ポートアクセスを遮断し、必要時のみ SSH トンネル経由で利用。 |
| 機密情報の除去 | プロンプトやログに個人情報・企業秘密が含まれないよう、出力前にサニタイズ処理を実装。 |
まとめ
- 現時点で公式に提供されている Gemma は gemma‑2b と gemma‑9b の 2 種類です(Gemma 4 に関する情報は未公開)。
- Apache 2.0 ライセンスの下、商用利用も自由に行えます。
- GPU メモリと CUDA/Metal 環境が最重要要件であり、モデルサイズに応じたハードウェアを事前に確保してください。
- 手軽さ重視なら Ollama、高度なカスタマイズや研究開発は Unsloth + Transformers が適しています。
- エラー対処・量子化・セキュリティ管理のベストプラクティスを守れば、ローカル環境でも安定した Gemma の運用が可能です。