DeL-TaiseiOzaki commited on
Commit
e1e7c9c
·
verified ·
1 Parent(s): d889188

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +170 -3
README.md CHANGED
@@ -1,3 +1,170 @@
1
- ---
2
- license: apache-2.0
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - ja
5
+ - en
6
+ base_model:
7
+ - llm-jp/llm-jp-3-13b
8
+ pipeline_tag: text-generation
9
+ library_name: transformers
10
+ ---
11
+ # Enhanced LLM-JP Model with Extended Tokenizer and Chat Template
12
+
13
+ This is an enhanced version of [{base_model_name}](https://huggingface.co/{base_model_name}) with an extended tokenizer that includes additional special tokens for structured conversations and advanced prompting.
14
+
15
+ ## Model Information
16
+
17
+ - Base Model: [{base_model_name}](https://huggingface.co/{base_model_name})
18
+ - Added Features: Extended tokenizer with special tokens for structured conversations and chat template
19
+ - Vocabulary Size: Extended from the base model
20
+
21
+ ## Special Tokens
22
+
23
+ ### Basic Tokens
24
+ - UNK Token: `{token_config.unk_token}`
25
+ - BOS Token: `{token_config.bos_token}`
26
+ - EOS Token: `{token_config.eos_token}`
27
+ - PAD Token: `{token_config.pad_token}`
28
+ - CLS Token: `{token_config.cls_token}`
29
+ - SEP Token: `{token_config.sep_token}`
30
+ - MASK Token: `{token_config.mask_token}`
31
+
32
+ ### Conversation Structure Tokens
33
+ - System: `{token_config.system_token}` and `{token_config.system_end_token}`
34
+ - User: `{token_config.user_token}` and `{token_config.user_end_token}`
35
+ - Assistant: `{token_config.assistant_token}` and `{token_config.assistant_end_token}`
36
+
37
+ ### Reasoning Process Tokens
38
+ - Reasoning: `{token_config.reasoning_token}` and `{token_config.reasoning_end_token}`
39
+ - Solution: `{token_config.solution_token}` and `{token_config.solution_end_token}`
40
+ - Response: `{token_config.response_token}` and `{token_config.response_end_token}`
41
+
42
+ ### Hint and Supplementary Information Tokens
43
+ - Hint: `{token_config.hint_token}` and `{token_config.hint_end_token}`
44
+ - Note: `{token_config.note_token}` and `{token_config.note_end_token}`
45
+ - Context: `{token_config.context_token}` and `{token_config.context_end_token}`
46
+ - Reference: `{token_config.reference_token}` and `{token_config.reference_end_token}`
47
+ - Example: `{token_config.example_token}` and `{token_config.example_end_token}`
48
+
49
+ ### Control Tokens
50
+ - Important: `{token_config.important_token}` and `{token_config.important_end_token}`
51
+ - Warning: `{token_config.warning_token}` and `{token_config.warning_end_token}`
52
+ - Error: `{token_config.error_token}` and `{token_config.error_end_token}`
53
+
54
+ ## Chat Template Usage
55
+
56
+ このモデルは以下の役割(roles)をサポートしています:
57
+ - system: システムプロンプト用
58
+ - user: ユーザーの入力用
59
+ - hint: ヒントやガイダンス用
60
+ - reasoning: 推論プロセス用
61
+ - assistant: アシスタントの応答用
62
+
63
+ ### Basic Usage:
64
+
65
+ ```python
66
+ from transformers import AutoModelForCausalLM, AutoTokenizer
67
+
68
+ model = AutoModelForCausalLM.from_pretrained("{model_name}")
69
+ tokenizer = AutoTokenizer.from_pretrained("{model_name}")
70
+
71
+ # チャット形式での使用例
72
+ messages = [
73
+ {
74
+ "role": "system",
75
+ "content": "あなたは親切で有能なAIアシスタントです。"
76
+ },
77
+ {
78
+ "role": "user",
79
+ "content": "次の数学の問題を解いてください:2x + 3 = 7"
80
+ },
81
+ {
82
+ "role": "hint",
83
+ "content": "方程式を解くときは、まず両辺から数を移項することを考えてみましょう。"
84
+ },
85
+ {
86
+ "role": "reasoning",
87
+ "content": "この方程式を解くために以下のステップで考えます:\\n1. 3を両辺から引く\\n2. 両辺を2で割る"
88
+ },
89
+ {
90
+ "role": "assistant",
91
+ "content": "x = 2 が方程式の解です。"
92
+ }
93
+ ]
94
+
95
+ # チャットテンプレートを使用してメッセージを整形
96
+ prompt = tokenizer.apply_chat_template(messages, tokenize=False)
97
+ print("\\nGenerated prompt:\\n", prompt)
98
+
99
+ # トークン化と推論
100
+ inputs = tokenizer(prompt, return_tensors="pt", max_length=2048, truncation=True)
101
+ outputs = model.generate(**inputs, max_length=2048, temperature=0.7)
102
+ response = tokenizer.decode(outputs[0])
103
+ print("\\nModel response:\\n", response)
104
+ ```
105
+
106
+ ### Advanced Usage:
107
+
108
+ # カスタムシステムメッセージを使用
109
+ messages = [
110
+ {
111
+ "role": "system",
112
+ "content": "あなたは数学の専門家です。"
113
+ },
114
+ {
115
+ "role": "user",
116
+ "content": "二次方程式 x² - 4x + 4 = 0 を解いてください。"
117
+ }
118
+ ]
119
+
120
+ # 生成プロンプトを追加せずにテンプレートを適用
121
+ prompt = tokenizer.apply_chat_template(
122
+ messages,
123
+ tokenize=False,
124
+ add_generation_prompt=False
125
+ )
126
+
127
+ # 手動でヒントを追加
128
+ prompt += "\\n<|HINT|>因数分解を使うと簡単に解けるかもしれません。</|HINT|>"
129
+
130
+ # 手動で推論プロセスを追加
131
+ prompt += "\\n<|REASONING|>1. この式は(x-2)²の形に似ています\\n2. 実際に展開すると同じ式になります</|REASONING|>"
132
+
133
+ # アシスタントの応答用のプロンプトを追加
134
+ prompt += "\\n<|ASSISTANT|>"
135
+
136
+ # 以降は通常通り処理
137
+ inputs = tokenizer(prompt, return_tensors="pt", max_length=2048, truncation=True)
138
+ ```
139
+
140
+ ## Chat Template Specification
141
+
142
+ モデルのチャットテンプレートは以下の要素を含みます:
143
+ - 5つの異なるロール(system, user, hint, reasoning, assistant)
144
+ - 各ロールに対応する特殊トークン
145
+ - デフォルトのシステムメッセージ
146
+ - 柔軟なテンプレート構造
147
+
148
+ 特徴:
149
+ - メッセージの順序は保持されます
150
+ - 各ロールは明確に区別されます
151
+ - システムメッセージは任意です
152
+ - ヒントと推論は必要に応じて追加できます
153
+
154
+ ## Additional Notes
155
+
156
+ ### トークナイザーの拡張について
157
+ - 元のトークナイザーの全機能を保持
158
+ - 新しい特殊トークンの追加による機能拡張
159
+ - チャットテンプレートによる構造化された会話のサポート
160
+
161
+ ### 使用上の注意
162
+ - 特殊トークンは必要な場合にのみ使用してください
163
+ - チャットテンプレートは柔軟に調整可能です
164
+ - システムメッセージは対話の文脈に応じてカスタマイズできます
165
+
166
+ ## License
167
+ このモデルは元のLLM-JPモデルのライセンスに従います。
168
+
169
+ ## Acknowledgments
170
+ このモデルは[LLM-JP](https://llm-jp.nii.ac.jp/)プロジェクトの成果物をベースにしています。