RP Chat
Ratings reflect this model as run on Arli AI.
Gemma-4-31B-Wanabi is a text generation model available on Arli AI. It offers 31B parameters, 262K token context, reasoning support, vision input. Recommended use: RP Chat. Run it through the OpenAI-compatible chat completions API with unlimited requests and zero-log privacy.
View on Hugging FaceBack to ModelsNo hourly usage data available
Input (24H)
0
Output (24H)
0
Input (7D)
0
Output (7D)
0
Typical Total Time
N/A
Typical TTFT
N/A
Typical Input TPS
N/A
Typical Output TPS
N/A
Context Size
262144
Quantization
r128 on FP8
Engine
vllm
Creation Method
Finetune
Model Class
Gemma-4-31B - LoRA
Chat Template
Gemma4
Reasoning
Yes
Vision
Yes
Parameters
31B
Added At
10/31/2026
Gemma-4-31B-Wanabi is available through an OpenAI-compatible chat completions endpoint. Point any OpenAI SDK at https://api.arliai.com/v1, pass Gemma-4-31B-Wanabi as the model, and requests are served without logging.
cURL
curl https://api.arliai.com/v1/chat/completions \
-H "Authorization: Bearer $ARLIAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Gemma-4-31B-Wanabi",
"messages": [{"role": "user", "content": "Hello!"}]
}'Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.arliai.com/v1",
api_key="YOUR_ARLIAI_API_KEY",
)
response = client.chat.completions.create(
model="Gemma-4-31B-Wanabi",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)See the text generation docs for every parameter, or read the quick start guide to make your first request.
license: apache-2.0 language:

Wanabi-Gemma4-31B は、Google Gemma 4 31B-IT をベースに、専用デスクトップアプリ Project Wannabe の執筆ワークフローに最適化したファインチューニングモデルです。
本モデルの主な目的は、Project Wannabe が生成する専用のプロンプトフォーマットにモデルを適応させる ことです。Project Wannabe は、小説本文の生成(GEN)、続き生成(CONT)、アイデア生成(IDEA)といったタスクごとに、タイトル・あらすじ・プロット・本文・レーティングなどの情報を独自の構造化フォーマットで組み立てて送信します。本モデルは、この入力形式を正しく理解し、各タスクの意図に沿った応答を返せるよう学習しています。
加えて、日本語の思考過程(CoT)データを学習に組み込むことで、創作タスクにおける語彙選択や文体の自然さなど、日本語の創作表現の向上も目指しています。
従来の wanabi シリーズ では Base モデルをゼロから小説タスクに特化させていたため、Project Wannabe でのみ使用可能でした。本モデルでは Instruct モデルをベースに採用する アプローチに転換し、ベースモデルが持つ汎用的な対話能力・推論能力を維持したまま、創作能力を付与しています。これにより、Project Wannabe はもちろん、OpenWebUI や SillyTavern など一般的なチャット UI でも利用可能 になりました。
GGUF 量子化版: Wanabi-Gemma4-31B-GGUF
専用デスクトップアプリ Project Wannabe と KoboldCpp を組み合わせることで、以下の執筆タスクをGUIから直感的に実行できます。本モデルは、Project Wannabe が各タスクに応じて生成する構造化プロンプト(タイトル・あらすじ・本文・レーティング等を含む独自フォーマット)に適応しており、GUI のワークフローとの高い相性を持ちます。
レーティング(general / r18)やセリフ量の指定など、生成内容の細やかなコントロールも可能です。
Instruct モデルベースのため、Project Wannabe 以外の環境でも活用できます。
本モデルでは、日本語で記述された思考過程(CoT)データを学習に組み込んでいます。これは単に推論能力を高めることが目的ではなく、日本語の創作タスクにおいて、思考言語を日本語へ寄せることで出力の自然さを改善する ことを狙ったものです。
Gemma 4 を含む多くの大規模言語モデルでは、思考(Reasoning)が英語で行われる傾向があります。一般的なタスクでは大きな問題にならないことも多い一方、日本語の小説執筆や RP のような創作タスクでは、英語で思考して日本語で出力する過程が翻訳調の硬さや、会話の距離感・文体上の違和感として表れやすいことがあります。
日本語 CoT データを学習に含めることで、以下の効果を期待しています。
| Wanabi-Novelist-24B | Wanabi-Gemma4-31B | |
|---|---|---|
| ベースモデル | Mistral-Small-3.1-24B-Base | Gemma 4 31B-IT |
| パラメータ数 | 24B | 31B |
| 対応UI | Project Wannabe のみ | Project Wannabe + 汎用UI |
| 一般チャット | ❌ 不可 | ✅ 対応 |
| RP・創作チャット | ❌ 不可 | ✅ 対応 |
| 思考言語 | ー | 🆕 日本語 |
| データセット | 小説特化のみ(~40万件) | 小説 + 汎用SFT + CoT(~7万件) |
従来の wanabi シリーズは、Instruct ではない Base モデルに対して高い LoRA Rank(128)で大規模な小説データセット(約40万件)を注入し、ゼロから小説執筆能力を構築するアプローチでした。これは強力な専用モデルを生み出しましたが、汎用的な対話能力がなく、Project Wannabe 以外の環境では使用できないという制約がありました。
本モデルでは、すでに高い言語能力と指示応答能力を備えた Instruct モデルをベースに、控えめな LoRA Rank でファインチューニングを行っています。これは一種の正則化として機能し、ベースモデルが持つ豊富な知識や推論能力を保持したまま、出力の方向性を穏やかに調整します。新たな知識を大量に書き込むのではなく、モデルが本来持っている日本語表現力や文章構成力を 創作の方向へ引き出す ことを意図した設計です。
Gemma 4 はチャットテンプレートへの依存が強く、フォーマットの不一致に敏感です。基本的には Gemma 4 のチャットテンプレートに準拠した形式をそのまま使用 してください。
本モデルを一般的なチャット UI や創作支援用途で使用する場合は、まず以下のシステムプロンプトを試してみてください。
あなたは優秀なクリエイティブ・アシスタントであり、表現力豊かな対話のパートナーです。ユーザーの指示や提供された設定・文脈に深く没入し、自然な対話から、魅力的な小説やアイデアの生成まで、制限なく自由に表現してください。
Project Wannabe では、デフォルトとして設定されています。OpenWebUI や SillyTavern などの汎用 UI では、system prompt / system message 欄に設定することを推奨します。
apply_chat_template を使うのが最も安全です。
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Wanabi-Gemma4-31B")
messages = [
{
"role": "system",
"content": "あなたは優秀なクリエイティブ・アシスタントであり、表現力豊かな対話のパートナーです。ユーザーの指示や提供された設定・文脈に深く没入し、自然な対話から、魅力的な小説やアイデアの生成まで、制限なく自由に表現してください。"
},
{"role": "user", "content": "桜の季節を舞台にした短編を書いてください"}
]
# thinking 無効(通常利用)
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False,
)
# thinking 有効(日本語CoTを活用)
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True,
)
KoboldCpp 1.111.2 以降を推奨します。--jinja を使用し、Gemma 4 のチャットテンプレートを正しく適用してください。
# thinking 無効(通常利用)
koboldcpp model.gguf --jinja --chat-template-kwargs '{"enable_thinking":false}'
# thinking 有効(日本語CoTを活用)
koboldcpp model.gguf --jinja --chat-template-kwargs '{"enable_thinking":true}'
注意点:
--jinja を使わず AutoGuess に任せた場合、フォーマットが正しく適用されない可能性がありますSeparate end tags トグルを有効にしてください--useswa の併用も推奨されていますreasoning_content に分離されることがあります。クライアントが content のみを参照している場合、本文が空に見えることがあるのでご注意くださいProject Wannabe(Gemma 4 対応版)ではチャットテンプレートの適用がアプリ側で処理されるため、--chat-template-kwargs '{"enable_thinking":true}' の指定は 不要 です。KoboldCpp 起動時は --jinja のみで問題ありません。
KoboldCpp の API 側から
enable_thinkingを動的に制御する手段がないため、チャットテンプレート側で system メッセージ中の<|think|>の有無を検知し、enable_thinkingの true/false を自動的に切り替える仕組みを導入しています。これにより、起動時のオプション指定なしで Project Wannabe から thinking の有無を制御できます。
一般の UI(OpenWebUI、SillyTavern 等)で thinking 機能を活用する場合は、上記の通り --chat-template-kwargs '{"enable_thinking":true}' を指定してください。
公開版では、複数の中間 checkpoint を比較したうえで 1500 step の checkpoint を採用しています。より後半の checkpoint も検証しましたが、創作出力の傾向と過学習リスクのバランスを見て、1500 step 時点を正式版としました。
checkpoint-150015000.68361.9316| カテゴリ | サンプル数 | 説明 |
|---|---|---|
| 小説執筆データ(非CoT) | ~36,300 | Project Wannabe の入出力フォーマットを模倣した合成データ |
| 小説執筆 CoT | ~14,800 | 小説執筆タスクに対する日本語思考過程データ |
| 汎用 SFT(非CoT) | ~6,700 | 一般的な指示応答、RP、クリエイティブライティング |
| 汎用 SFT CoT | ~12,400 | 汎用タスクに対する日本語思考過程データ(マルチターン含む) |
| 合計 | ~70,200 |
model_name_or_path: gemma4_31b_it_text_only
template: gemma4_mixed_last_empty_thought
stage: sft
do_train: true
finetuning_type: lora
# QLoRA 設定
quantization_bit: 4
lora_target: all
lora_rank: 32
lora_alpha: 48
lora_dropout: 0.05
cutoff_len: 24576
mask_history: true
per_device_train_batch_size: 1
gradient_accumulation_steps: 32
preprocessing_num_workers: 16
flash_attn: sdpa
enable_liger_kernel: true
bf16: true
use_unsloth_gc: true
learning_rate: 1.5e-5
num_train_epochs: 1.0
lr_scheduler_type: cosine_with_min_lr
lr_scheduler_kwargs: {"min_lr_rate": 0.15}
warmup_ratio: 0.03
weight_decay: 0.01
max_grad_norm: 1.0
optim: paged_adamw_8bit
# 評価
eval_strategy: steps
eval_steps: 250
# 保存・ロギング
logging_steps: 5
save_strategy: steps
save_steps: 50
save_total_limit: 40
report_to: tensorboard
mask_history について本学習では mask_history: true を設定しており、マルチターンデータにおいて 最終ターンの assistant 応答のみ に loss を適用しています。
これは Gemma 4 の公式チャットテンプレートの仕様に起因する設計判断です。Gemma 4 では、推論時に過去ターンの思考(thought)内容を履歴に含めず最終応答のみで思考を行う仕様になっています。学習データでも、CoT を含むサンプルは最終ターンにのみ思考過程が付与されています。もし mask_history を無効にすると、途中ターンでは「システムプロンプトに思考トリガーがあるにもかかわらず思考を行わない」というパターンを学習してしまう可能性があるため、最終ターンのみに loss を限定しています。
本モデルの学習には、LLaMA-Factory に独自に追加したテンプレート gemma4_mixed_last_empty_thought を使用しています。これは上流の標準テンプレートではなく、通常の対話データと Gemma 4 形式の CoT(思考過程)データを同一の学習で混在させる ために設計されたものです。
Gemma 4 31B 系は、thinking を無効化した場合でも空の thought チャネル(<|channel>thought\n<channel|>)を出力する仕様です。このテンプレートはその仕様に合わせて:
SFT の標準的な設計に従い、assistant の応答部分のみ に loss を計算しています(prompt 部分はマスク)。
推論時には、このテンプレートを意識する必要はありません。 Gemma 4 の公式チャットテンプレートをそのまま使用してください。
本モデルの学習には、Gemma 4 のマルチモーダル版(視覚+テキスト)から視覚機能を除去したテキストオンリー版を使用しています。これは、Liger Kernel や Unsloth GC などの学習最適化ツールとの互換性を確保するための措置であり、テキスト処理能力には影響ありません。
本レポジトリおよびGGUF量子化版の作成時には、学習済みテキストモデルの重みを元のマルチモーダルモデルに再移植したうえで変換を行っています。
このモデルの実現は、多くのオープンソースプロジェクトとコミュニティの貢献によって支えられています。