Holy-fox commited on
Commit
5995b5f
·
verified ·
1 Parent(s): c897c67

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +127 -3
README.md CHANGED
@@ -1,3 +1,127 @@
1
- ---
2
- license: gemma
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: gemma
3
+ ---
4
+ # DataPilot/ArrowMint-Gemma3-4B-ChocoMint-instruct-v0.1
5
+
6
+ ## Overview
7
+
8
+ このモデルは、Googleの `google/gemma-3-4b-it` をベースモデルとしてファインチューニングされた日本語大規模言語モデルです。
9
+ [Unsloth](https://github.com/unslothai/unsloth) を使用して効率的にトレーニングを行い、特別に作成された合成データセットを用いることで、特にユーザーの指示やプロンプトに対する追従能力の向上を目指しました。
10
+
11
+ * **ベースモデル:** google/gemma-3-4b-it
12
+ * **トレーニングフレームワーク:** Unsloth
13
+ * **データセット:** 合成データセット(プロンプト追従能力向上目的)
14
+ * **主な改善点:** プロンプトへの忠実性、指示実行能力
15
+
16
+ ## How to use
17
+
18
+ このモデルは、以下の方法で使用できます。
19
+
20
+ ### 1. vLLMによる推論
21
+
22
+ [vLLM](https://github.com/vllm-project/vllm) を使用すると、高速な推論が可能です。
23
+
24
+ ```python
25
+ from vllm import LLM, SamplingParams
26
+
27
+ # モデル名を指定
28
+ model_name = "DataPilot/ArrowMint-Gemma3-4B-ChocoMint-instruct-v0.1"
29
+ # もしくはローカルパスを指定
30
+ # model_name = "/path/to/your/local/model"
31
+
32
+ llm = LLM(model=model_name, trust_remote_code=True) # Gemma-3では trust_remote_code=True が必要になる場合があります
33
+
34
+ # プロンプトの準備 (Gemma-3のチャットテンプレート形式を推奨)
35
+ # 例: <start_of_turn>user\n日本の首都はどこですか?<end_of_turn>\n<start_of_turn>model\n
36
+ prompt = "<start_of_turn>user\nあなたの得意なことは何ですか?<end_of_turn>\n<start_of_turn>model\n"
37
+
38
+ # サンプリングパラメータの設定
39
+ sampling_params = SamplingParams(
40
+ temperature=0.1,
41
+ top_p=0.9,
42
+ max_tokens=100,
43
+ stop=["<end_of_turn>"] # 必要に応じて停止トークンを設定
44
+ )
45
+
46
+ # 推論の実行
47
+ outputs = llm.generate(prompt, sampling_params)
48
+
49
+ # 結果の表示
50
+ for output in outputs:
51
+ prompt = output.prompt
52
+ generated_text = output.outputs[0].text
53
+ print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
54
+
55
+ ```
56
+
57
+ ### 2. Transformersによる推論 (テキストのみ)
58
+
59
+ Hugging Faceの `transformers` ライブラリを使用して推論を行う基本的なコードです。System Promptを設定することも可能です。
60
+
61
+ ```python
62
+ import torch
63
+ from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer
64
+
65
+ # モデル名を指定
66
+ model_name = "DataPilot/ArrowMint-Gemma3-4B-ChocoMint-instruct-v0.1"
67
+
68
+ model = AutoModelForCausalLM.from_pretrained(
69
+ model_name,
70
+ torch_dtype=torch.bfloat16, # または torch.float16
71
+ device_map="auto",
72
+ trust_remote_code=True # Gemma-3モデルによっては必要
73
+ )
74
+ tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
75
+
76
+ # プロンプトの準備 (System PromptとUser Prompt)
77
+ system_prompt = "あなたは親切で正直なアシスタントです。"
78
+ user_prompt = "自己紹介をしてください。"
79
+
80
+ # Gemma-3のチャットテンプレートを適用
81
+ messages = [
82
+ {"role": "system", "content": system_prompt},
83
+ {"role": "user", "content": user_prompt},
84
+ ]
85
+
86
+ # apply_chat_template を使用 (推奨)
87
+ input_text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
88
+
89
+ input_ids = tokenizer(input_text, return_tensors="pt").to(model.device)
90
+
91
+ # ストリーミング出力用の設定
92
+ streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
93
+
94
+ # 推論の実行
95
+ output_ids = model.generate(
96
+ **input_ids,
97
+ max_new_tokens=256,
98
+ temperature=0.7,
99
+ top_p=0.9,
100
+ do_sample=True,
101
+ streamer=streamer,
102
+ pad_token_id=tokenizer.eos_token_id, # pad_token_idを設定
103
+ eos_token_id=tokenizer.eos_token_id # eos_token_idを明示的に設定
104
+ )
105
+
106
+ # ストリーミングしない場合
107
+ # output_ids = model.generate(
108
+ # **input_ids,
109
+ # max_new_tokens=256,
110
+ # temperature=0.7,
111
+ # top_p=0.9,
112
+ # do_sample=True,
113
+ # pad_token_id=tokenizer.eos_token_id,
114
+ # eos_token_id=tokenizer.eos_token_id
115
+ # )
116
+ # generated_text = tokenizer.decode(output_ids[0][input_ids["input_ids"].shape[1]:], skip_special_tokens=True)
117
+ # print(generated_text)
118
+
119
+ ```
120
+
121
+
122
+ ## License
123
+
124
+ このモデルは、ベースモデルである `google/gemma-3-4b-it` のライセンス条件に基づいて提供されます。
125
+ `google/gemma-3-4b-it` のライセンスは [Gemma Terms of Use](https://ai.google.dev/gemma/terms) に従います。
126
+
127
+ このモデルの使用にあたっては、ベースモデルのライセンスおよび利用規約を遵守してください。