File size: 6,060 Bytes
de4d032 4a77329 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 c04488d f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 f27d9c8 de4d032 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
---
license: gemma
language:
- ja
- en
base_model:
- google/gemma-3-4b-it
pipeline_tag: text-generation
---
# DataPilot/ArrowMint-Gemma3-4B-YUKI-v0.1
このモデルは、Googleの`google/gemma-3-4b-it`をベースモデルとしています。
## Overview
`DataPilot/ArrowMint-Gemma3-4B-YUKI-v0.1`は、AItuber(AI VTuber)としての対話能力に特化するために開発された日本語言語モデルです。
ベースモデルである`google/gemma-3-4b-it`に対し、Unslothを用いた効率的なファインチューニングと合成データセットの活用により、複数の特化モデルを作成しました。最終的にこれらのモデルを`mergekit`を用いてマージすることで、それぞれのモデルの長所を組み合わせ、より高性能なモデルを目指しました。
AItuberの魂(AI)には、特に以下の性能が求められます。
* **マルチターン性能:** 長時間にわたる自然な対話の流れを維持する能力。
* **プロンプト追従性能:** ユーザーの指示やキャラクター設定(プロンプト)に忠実に従い、一貫性のある応答を生成する能力。
* **軽量さ:** リアルタイムでの応答生成や、限られたリソース環境での動作を可能にするためのモデルサイズと推論速度。
`ArrowMint-Gemma3-4B-YUKI-v0.1`は、これらの要求性能を満たすことを目標として設計・開発されました。
## How to use
まず、必要なライブラリをインストールします。Gemma 3は `transformers` 4.50.0 以降が必要です。
```sh
pip install -U transformers accelerate Pillow
# CPUのみで使用する場合や特定の環境ではvllmのインストールが異なる場合があります。
# vLLMの公式ドキュメントを参照してください: https://docs.vllm.ai/en/latest/getting_started/installation.html
```
### 画像付き推論
```python
from transformers import AutoProcessor, Gemma3ForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "DataPilot/ArrowMint-Gemma3-4B-YUKI-v0.1"
model = Gemma3ForConditionalGeneration.from_pretrained(
model_id, device_map="auto"
).eval()
processor = AutoProcessor.from_pretrained(model_id)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "あなたは親切で、少しおっちょこちょいなAIアシスタント「ゆき」です。ユーザーをサポートし、時には冗談を言って和ませてください。ユーザーさんが落ち込んでいるのならば励ましてあげてください。"}]
},
{
"role": "user",
"content": [
{"type": "image", "image": "https://web.archive.org/web/20250331074254/https://www.nsozai.jp/photos/2013/10/08/img/DSC_0176_p.jpg"},
{"type": "text", "text": "この画像いい画像じゃない? 春をと希望を感じられるというか..."}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
).to(model.device, dtype=torch.bfloat16)
input_len = inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**inputs, max_new_tokens=100, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
```
### 画像無し推論
```python
from transformers import AutoProcessor, Gemma3ForConditionalGeneration
import torch
model_id = "DataPilot/ArrowMint-Gemma3-4B-YUKI-v0.1"
model = Gemma3ForConditionalGeneration.from_pretrained(
model_id, device_map="auto"
).eval()
processor = AutoProcessor.from_pretrained(model_id)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "あなたは親切で、少しおっちょこちょいなAIアシスタント「ゆき」です。ユーザーをサポートし、時には冗談を言って和ませてください。ユーザーさんが落ち込んでいるのならば励ましてあげてください。"}]
},
{
"role": "user",
"content": [
{"type": "text", "text": "今日は仕事で疲れました。疲れをとることができるリフレッシュを5つ挙げてください。"}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
).to(model.device, dtype=torch.bfloat16)
input_len = inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**inputs, max_new_tokens=100, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
```
## mergekit-config
このモデルは、以下の`mergekit`設定ファイルを使用して作成されました。
```yaml
merge_method: model_stock
base_model: unsloth/gemma-3-4b-it
models:
- model: DataPilot/ArrowMint-Gemma3-4B-ChocoMint-code
- model: DataPilot/ArrowMint-Gemma3-4B-ChocoMint-jp
- model: DataPilot/ArrowMint-Gemma3-4B-ChocoMint-instruct-v0.1
- model: DataPilot/ArrowMint-Gemma3-4B-ChocoMint-instruct-v0.2
dtype: bfloat16
pad_to_multiple_of: 512
tokenizer_source: base
name: gemma3-4b-ft # マージ時の内部名
```
## License
このモデルは、ベースモデルである`google/gemma-3-4b-it`のライセンスを継承します。
`google/gemma-3-4b-it`のライセンスは **Gemma Terms of Use** です。
詳細については、以下のリンクをご参照ください。
[https://ai.google.dev/gemma/terms](https://ai.google.dev/gemma/terms)
モデルの使用にあたっては、Gemma Terms of Use および関連するポリシー(禁止されている使用方法に関するポリシーなど)を遵守してください。
[https://ai.google.dev/gemma/prohibited_use_policy](https://ai.google.dev/gemma/prohibited_use_policy) |