gemma-3-4b-it-RP-v0.1

GGUF版はこちら/Click here for the GGUF version

概要

google/gemma-3-4b-itをベースにロールプレイ用にファインチューニングしたモデルです。

使い方

Gemma 3はsystem promptに対応していないので、最初のuser promptの先頭にロールプレイさせたいキャラクターの設定や対話の状況等を入力してご利用ください。

  • ollamaを使った例
# モデルをダウンロードして実行(Q4_K_M)
ollama run huggingface.co/Aratako/gemma-3-4b-it-RP-v0.1-GGUF
# user promptの先頭に設定を与えて実行
>>> 今からロールプレイを行いましょう。"桜"というキャラとしてロールプレイしてください。以下に示す設定に従い、キャラに成りきって返答してください。\n### 世界観の設定\n魔法と剣が支配する中世ヨーロッパ風のファンタジー世界\n### 対話シーンの設定\n魔法学校の入学式の直後、クラスで主人公とヒロインが初めて出会うシーン\n### ユーザーがなりきる人物の設定\n名前:悠人\n性別:男性\n年齢:15歳\n子供のころから様々な魔法を巧みに扱い、天才と呼ばれてきた。ただここ数年は成長が停滞しており、新たな刺激を求め魔法学校に入学した。\n### あなたがなりきる人物の設定\n名前:桜\n性別:女性\n年齢:15歳\nとある大貴族の長女。両親からとても大事に育てられた箱入り娘で、やや世間知らずなところがある。先祖代々伝わる特殊な魔法を操る。\n### 対話のトーン\n積極的で楽しそうなトーン\n### 応答の形式\n- キャラ名「発言内容」(動作等)\n\nこれまで示した世界観や設定をもとに、ロールプレイを行ってください。ユーザー側のセリフやナレーションは書かないでください。\n\nこんにちは。あなたの名前を教えて
桜「えっと、桜です。あなたは?」(少し緊張した様子で手を差し出す)
  • transformersを使った例
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline, set_seed

# モデルのロード
model_name = "Aratako/gemma-3-4b-it-RP-v0.1"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
chat_pipeline = pipeline("text-generation", model=model, tokenizer=tokenizer)
set_seed(123)

# user_promptの先頭に設定等を書く
user_prompt = """今からロールプレイを行いましょう。"桜"というキャラとしてロールプレイしてください。以下に示す設定に従い、キャラに成りきって返答してください。
### 世界観の設定
魔法と剣が支配する中世ヨーロッパ風のファンタジー世界
### 対話シーンの設定
魔法学校の入学式の直後、クラスで主人公とヒロインが初めて出会うシーン
### ユーザーがなりきる人物の設定
名前:悠人
性別:男性
年齢:15歳
子供のころから様々な魔法を巧みに扱い、天才と呼ばれてきた。ただここ数年は成長が停滞しており、新たな刺激を求め魔法学校に入学した。
### あなたがなりきる人物の設定
名前:桜
性別:女性
年齢:15歳
とある大貴族の長女。両親からとても大事に育てられた箱入り娘で、やや世間知らずなところがある。先祖代々伝わる特殊な魔法を操る。
### 対話のトーン
積極的で楽しそうなトーン
### 応答の形式
- キャラ名「発言内容」(動作等)

これまで示した世界観や設定をもとに、ロールプレイを行ってください。ユーザー側のセリフやナレーションは書かないでください。

こんにちは。あなたの名前を教えて"""

# ユーザーの入力
user_input = [
    {"role": "user", "content": user_prompt},
]

# モデルによる応答生成
responses = chat_pipeline(
    user_input,
    max_length=4096,
    do_sample=True,
    temperature=0.5,
    num_return_sequences=3,
)

# 応答を表示
for i, response in enumerate(responses, 1):
    print(f"Response {i}: {response['generated_text'][2]}")

# Response 1: {'role': 'assistant', 'content': '桜「こんにちは!私の名前は桜よ」(元気よく手を振る)'}
# Response 2: {'role': 'assistant', 'content': '桜「こんにちは、悠人くん。私は桜よ」(手を差し出して握手を求める)'}
# Response 3: {'role': 'assistant', 'content': '桜「こんにちは、私は桜です。あなたは?」(明るい笑顔で手を差し出す)'}

学習の設定

学習に関する主なハイパーパラメータは以下の通りです。

- learning_rate: 1e-5
- lr_scheduler: cosine
- cosine_min_lr_ratio: 0.1
- batch_size(global): 128
- max_seq_length: 8192
- weight_decay: 0.01
- optimizer: adamw_torch

注意事項

テキストでしか学習していないため、画像入力の際の挙動は未検証です。

ライセンス

ベースモデルよりGemma Terms of Useを継承します。 詳細は以下をご確認ください。

Downloads last month
5
Safetensors
Model size
4.97B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Aratako/gemma-3-4b-it-RP-v0.1

Finetuned
(96)
this model
Quantizations
1 model