0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

超軽量LLM Gemma 3 270MをColabで試す:感情を分類してみた

Last updated at Posted at 2025-08-18

はじめに

Google DeepMind が公開した軽量モデル Gemma 3 270Mを使って、日本語テキストの感情分析を試してみました。
270M という小さなパラメータ数ながら、オンデバイスで動かせるほど軽量で、省メモリ・高速動作が特徴です。今回は Colab 上で動かし、「ポジティブ/ネガティブ/ニュートラル」に分類できるか確認しました。

Gemma 3 270M とは?

Gemma 3 270M は Google DeepMind が公開した 超軽量な大規模言語モデル(LLM) です。パラメータ数は約2億7千万と非常に小さく、CPU やスマートフォンでも動作できるように設計されています。
消費電力も低く、モバイル環境でも利用しやすいのが大きな魅力です。

特徴まとめ

・パラメータ数:270M(埋め込み + Transformer 本体)
・超軽量:オンデバイスや低スペック環境でも実行可能
・低消費電力:スマホで25回会話してもバッテリー消費 1%未満
・Instruction-tuned 版あり:指示に従ったテキスト生成も可能
・オープンモデル:Hugging Face などからダウンロード可能

おすすめの用途

Gemma 3 270M は万能型というよりも、小さなタスクや特化用途で力を発揮します。
・感情分析(レビューのポジティブ/ネガティブ判定)
・テキスト分類(スパム/非スパム、問い合わせ種別の仕分けなど)
・短文の要約やFAQ応答(長文より短文が得意)
・教育・研究用途(LLM入門やファインチューニング練習に最適)
・オンデバイスAIアシスタント(スマホやPCで動く軽量AI)
・複数モデルを組み合わせる「艦隊運用」(それぞれ特定タスク専用に割り当てて低コスト運用)

今回取り上げる「感情分析」は、まさに Gemma 3 270M の得意分野のひとつです。


実行環境と準備

Colab(CPU でも可、GPU ならより高速)で実行しました。
事前に Hugging Face で Gemma 3 270M の利用規約に同意し、アクセストークンでログインする必要があります。

!pip -q install --upgrade "transformers" "accelerate" "datasets" "huggingface_hub"

from huggingface_hub import login
login()  # HFトークンを入力

モデルのロード

from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

MODEL_ID = "google/gemma-3-270m-it"  # instruction-tuned版推奨
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, use_fast=True)
model = AutoModelForCausalLM.from_pretrained(MODEL_ID, device_map="auto", torch_dtype="auto")

gen = pipeline("text-generation", model=model, tokenizer=tokenizer,
               max_new_tokens=48, do_sample=False, temperature=0.0)

プロンプト設計(Few-shotが重要)
小型モデルではプロンプト設計が精度に直結します。
日本語での具体例(few-shot)を与え、出力を JSON 形式に固定しました。

SYSTEM_PROMPT = """あなたは日本語テキストの感情分析アシスタントです。
与えられたテキストを POSITIVE / NEGATIVE / NEUTRAL のいずれか1つに分類します。
出力は必ず次のJSONのみとします: {"label":"POSITIVE|NEGATIVE|NEUTRAL","confidence":0.0~1.0,"reason":"短い根拠"}

判断基準:
- 明確な称賛や高評価 → POSITIVE
- 不満や否定的な表現 → NEGATIVE
- 「普通」「どちらとも言えない」など → NEUTRAL

例1:
Text: 最高の体験だった!スタッフの対応も素晴らしい。
JSON: {"label":"POSITIVE","confidence":0.9,"reason":"肯定表現と賞賛が明確"}

例2:
Text: 値段の割にサービスが悪い。もう利用しないと思う。
JSON: {"label":"NEGATIVE","confidence":0.9,"reason":"不満と再利用しない意思が明確"}

例3:
Text: 可もなく不可もなく、普通でした。
JSON: {"label":"NEUTRAL","confidence":0.7,"reason":"評価が中立的"}
"""

実際の推論結果
3つの日本語文を入力してみた結果がこちら。

Text: 最高の体験だった!スタッフの対応も素晴らしい。
→ {"label":"POSITIVE","confidence":0.9,"reason":"肯定表現と賞賛が明確"}

Text: 値段の割にサービスが悪い。もう利用しないと思う。
→ {"label":"NEGATIVE","confidence":0.9,"reason":"不満と再利用しない意思が明確"}

Text: 可もなく不可もなく、普通でした。
→ {"label":"NEUTRAL","confidence":0.7,"reason":"評価が中立的"}

感想

・小型モデルでもここまでできる:270M という小ささでも、few-shot を工夫すれば十分実用的な感情分析が可能でした。
・軽量ゆえのメリット:Colab CPU でもスムーズに実行でき、推論時間も短いです。
・限界もある:大規模モデルと比べるとニュアンスの取り違えが起きやすいので、業務利用なら LoRA 等での微調整が望ましいと感じました。

まとめ

Gemma 3 270Mは「軽量・省エネ・オンデバイスでも動く」という強みを持つ小型言語モデルです。分類タスクや感情分析、短文応答など 特化型の用途に最適 で、教育・研究用途としても非常に扱いやすいモデルです。


フリーランスエンジニアです。
AIについて色々記事を書いていますのでよかったらプロフィールを見てみてください。

もし以下のようなご要望をお持ちでしたらお気軽にご相談ください。
AIサービスを開発したい、ビジネスにAIを組み込んで効率化したい、AIを使ったスマホアプリを開発したい、
ARを使ったアプリケーションを作りたい、スマホアプリを作りたいけどどこに相談したらいいかわからない…

いずれも中間コストを省いたリーズナブルな価格でお請けできます。

お仕事のご相談はこちらまで
rockyshikoku@gmail.com

機械学習やAR技術を使ったアプリケーションを作っています。
機械学習/AR関連の情報を発信しています。

X
Medium
GitHub

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?