Text Generation
Transformers
Safetensors
Japanese
English
conversational
Inference Endpoints
DeL-TaiseiOzaki commited on
Commit
96e7159
1 Parent(s): 7e5166c

Update README.md

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