Googleの大規模言語モデル「Gemma」の特徴と使い方
2024年2月にGoogleが発表したオープン型の大規模言語モデル「Gemma」。今回はその特徴や使い方について解説し、「Hugging Face」を通じて実際に試す手順もご紹介します。
Gemmaの特徴とは?
Gemmaは、高性能でありながら軽量な構造が特徴のオープン型言語モデルです。Geminiシリーズと同じ技術が使われており、問答や文章作成、さらにはプログラミング支援にも対応可能。さらに無料でダウンロードして、自分のPCで動かすこともできる手軽さも大きな魅力です。
Gemmaのモデル名に付けられた「B」はビリオン(10億)を表しており、パラメータ数を示します。たとえば、「2B」は20億パラメータ、「9B」は90億パラメータを持つことを意味します。パラメータが多いモデルほど精度は高まりますが、動かすには高性能なPCが必要になります。さらに、商用利用も認められているため、ビジネスへの導入もスムーズです。
Hugging Faceを活用してGemmaを使ってみる
Hugging Faceは、AIモデルやデータセットを共有するプラットフォームで、無料で利用できるのも特徴です。GemmaもHugging Faceで提供されており、利用したいモデルを選んで環境設定するだけで使い始められます。また、Google Colabと組み合わせることで、無料のGPUを使って高速に実行することが可能です。特にリソースが限られた環境で試す場合に便利です。
Hugging Faceを用いたGemmaの実践例
Google Colabのセットアップ:
Googleドライブで「Google Colab」を開き、新しいノートブックを作成します。
「ランタイムのタイプ」を選択し、「T4 GPU」を指定しましょう。
Hugging FaceのAPIトークンを取得する:
Hugging Faceの設定から「APIトークン」を作成します。
`[setting] → [access tokens] → [create new access token]`でトークンを生成し、「Read access to contents of all public gated repos you can access」を選択し、トークンを生成します。
Gemmaモデルの実行:
Hugging FaceのGemmaモデルページから、必要なサンプルコードを取得します。
今回は「gemma-2-2b-jpn-it」モデルを使ってみます。
コード例(Gemmaモデルの利用):
# Hugging Faceの認証を行います
from huggingface_hub import login
login() # 作成したAPIトークンをここで入力
# Transformersライブラリをインストールします
!pip install -U transformers
# ライブラリのインポート
import torch
from transformers import pipeline
# テキスト生成用のパイプラインを設定
pipe = pipeline(
"text-generation",
model="google/gemma-2-2b-jpn-it",
model_kwargs={"torch_dtype": torch.bfloat16},
device="cuda" # Macを使っている場合は"mps"に変更
)
# ユーザーからの質問を設定
messages = [
{"role": "user", "content": "ケツメイシのヒット曲は?"},
]
# モデルに入力して生成結果を取得
outputs = pipe(messages, return_full_text=False, max_new_tokens=256)
# 生成されたテキストを表示
assistant_response = outputs[0]["generated_text"].strip()
print(assistant_response) # モデルの回答を表示
Hugging Faceの「サーバーレスAPI」を利用して無料で使用できるモデルについて
Supported ModelsのサイトにあるWarm Modelsの中のモデルは、サーバーレスAPIを利用して無料で使用できます。TasksやLanguagesでフィルターすると、用途に合ったモデルを見つけやすくなります。
まとめ
Gemmaは、高い性能を持つオープンモデルとして、さまざまな分野で活用が期待されています。Hugging Faceと組み合わせることで、すぐに試せる手軽さも魅力です。