Update README.md
Browse files
README.md
CHANGED
@@ -1,3 +1,87 @@
|
|
1 |
---
|
2 |
license: apache-2.0
|
|
|
|
|
|
|
|
|
3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
license: apache-2.0
|
3 |
+
language:
|
4 |
+
- en
|
5 |
+
- zh
|
6 |
+
pipeline_tag: text-generation
|
7 |
---
|
8 |
+
|
9 |
+
# Unichat-llama3-Chinese-8B-28K
|
10 |
+
|
11 |
+
|
12 |
+
## 介绍
|
13 |
+
* 中国联通AI创新中心发布业界第一个llama3中文指令微调模型长文本版本,全参数微调(非lora),2024年4月26日19点
|
14 |
+
* 本模型以[**Meta Llama 3**](https://huggingface.co/collections/meta-llama/meta-llama-3-66214712577ca38149ebb2b6)为基础,增加中文数据进行训练,实现llama3模型高质量中文问答
|
15 |
+
* 此模型上下文原生长度28K,比原始版本上下文长度8k提高了20k
|
16 |
+
* 基础模型 [**Meta-Llama-3-8B**](https://huggingface.co/meta-llama/Meta-Llama-3-8B)
|
17 |
+
|
18 |
+
|
19 |
+
### 📊 数据
|
20 |
+
- 高质量指令数据,覆盖多个领域和行业,为模型训练提供充足的数据支持
|
21 |
+
- 微调指令数据经过严格的人工筛查,保证优质的指令数据用于模型微调
|
22 |
+
|
23 |
+
## 基础示例
|
24 |
+
|
25 |
+
* 摘取《明朝那些事儿》小说第[319]章至[337]章内容约1万6千字左右,对文章内容进行提问。
|
26 |
+
* 问:明朝三大营的组成及职责是什么?
|
27 |
+
* 答:根据文章内容,明朝三大营的组成及职责如下:
|
28 |
+
|
29 |
+
1. 五军营:由骑兵和步兵组成,分为中军、左军、左掖军、右掖军、右哨军,担任攻击的主力。
|
30 |
+
|
31 |
+
2. 三千营:由投降的蒙古骑兵组成,主要是以雇佣兵为主的。下属全部都是骑兵,这支骑兵部队人数虽然不多,却是朱棣手下最为强悍的骑兵力量,他们在战争中主要担任突击的角色。
|
32 |
+
|
33 |
+
3. 神机营:使用火炮和火铳等火器为主的部队,是明朝政府的炮兵部队。朱棣同志之所以要组建这样的一支部队,那是有着深刻原因的。
|
34 |
+
|
35 |
+
所以,明朝三大营的组成和职责是:五军营负责攻击,三千营负责突击,神机营负责使用火器进行打击。
|
36 |
+
|
37 |
+
## 快速开始
|
38 |
+
|
39 |
+
```python
|
40 |
+
import transformers
|
41 |
+
from transformers import AutoTokenizer, AutoModelForCausalLM
|
42 |
+
import torch
|
43 |
+
|
44 |
+
model_id = "UnicomAI/Unichat-llama3-Chinese-8B-28K"
|
45 |
+
|
46 |
+
pipeline = transformers.pipeline(
|
47 |
+
"text-generation",
|
48 |
+
model=model_id,
|
49 |
+
model_kwargs={"torch_dtype": torch.bfloat16},
|
50 |
+
device="cuda",
|
51 |
+
)
|
52 |
+
|
53 |
+
|
54 |
+
messages = [
|
55 |
+
{"role": "system", "content": "A chat between a curious user and an artificial intelligence assistant.The assistant gives helpful, detailed, and polite answers to the user's questions."},
|
56 |
+
{"role": "user", "content": "你是谁"},
|
57 |
+
]
|
58 |
+
|
59 |
+
|
60 |
+
prompt = pipeline.tokenizer.apply_chat_template(
|
61 |
+
messages,
|
62 |
+
tokenize=False,
|
63 |
+
add_generation_prompt=True
|
64 |
+
)
|
65 |
+
|
66 |
+
terminators = [
|
67 |
+
pipeline.tokenizer.eos_token_id,
|
68 |
+
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
|
69 |
+
]
|
70 |
+
|
71 |
+
|
72 |
+
outputs = pipeline(
|
73 |
+
prompt,
|
74 |
+
max_new_tokens=2048,
|
75 |
+
eos_token_id=terminators,
|
76 |
+
do_sample=False,
|
77 |
+
temperature=0.6,
|
78 |
+
top_p=1,
|
79 |
+
repetition_penalty=1.1
|
80 |
+
)
|
81 |
+
print(outputs[0]["generated_text"][len(prompt):])
|
82 |
+
```
|
83 |
+
|
84 |
+
## 资源
|
85 |
+
更多模型,数据集和训练相关细节请参考:
|
86 |
+
* Github:[**Unichat-llama3-Chinese**](https://github.com/UnicomAI/Unichat-llama3-Chinese)
|
87 |
+
|