XuanYuan-6B / README.md
homeyang's picture
Update README.md
46d0287 verified
|
raw
history blame
6.21 kB
---
license: llama2
---
## 介绍
在轩辕系列大模型研发过程中,我们积累了大量的高质量数据和模型训练经验,构建了完善的训练平台,搭建了合理的评估流水线。在此基础上,为丰富轩辕系列模型矩阵,降低轩辕大模型使用门槛,我们进一步推出了XuanYuan-6B系列大模型。不同于XuanYuan-13B和XuanYuan-70B系列模型在LLaMA2上继续预训练的范式,XuanYuan-6B是我们从零开始进行预训练的大模型。当然,XuanYuan-6B仍采用类LLaMA的模型架构。在预训练基础上,我们构建了丰富、高质量的问答数据和人类偏好数据,并通过指令微调和强化学习进一步对齐了模型表现和人类偏好,显著提升了模型在对话场景中的表现。XuanYuan6B系列模型在多个评测榜单和人工评估中均获得了亮眼的结果。模型训练细节请参考我们的技术报告:[Report](xuanyuan_6b_report.md)
本次开源的XuanYuan-6B系列模型包含基座模型XuanYuan-6B,经指令微调和强化对齐的chat模型XuanYuan-6B-Chat,以及chat模型的量化版本XuanYuan-6B-Chat-4bit和XuanYuan-6B-Chat-8bit。
主要特点:
* 收集多个领域大量的训练预料,进行了多维度数据清洗和去重,保证数据的量级和质量
* 从零开始预训练,预训练中动态调整数据配比,模型基座能力较强
* 结合Self-QA方法构建高质量问答数据,采用混合训练方式进行监督微调
* 构建高质量人类偏好数据训练奖励模型并进行强化训练,对齐模型表现和人类偏好
* 模型尺寸小并包含量化版本,硬件要求低,适用性更强
* 在多个榜单和人工评估中均展现出良好的性能,具备领先的金融能力
## 性能评测
### 基础评测
金融一直是轩辕大模型重点关注的领域和主要应用目标,因此我们首先在金融场景评测了XuanYuan-6B模型。我们使用自己构建并开源的FinanceIQ数据集,该数据集是一份专业的大模型金融能力评估数据集,涵盖了10个金融大类,36个金融小类,总计7173题。评估结果如下表所示。从表中可以看出,XuanYuan-6B模型在该评估数据中的性能甚至超越了GPT4,显示出了其强大的金融能力。
| 模型 | 平均分 | 注册会计师 | 银行从业资格 | 证券从业资格 | 基金从业资格 | 保险从业资格 | 经济师 | 税务师 | 期货从业资格 | 理财规划师 | 精算师 |
| ------------- | ----- | -------- | ---------- | ---------- | ----------- | --------- | ----- | ----- | ---------- | -------- | ----- |
| XuanYuan-13B | 74.02 | 75.29 | 83.52 | 77.38 | 80.5 | 75.86 | 87.31 | 62.09 | 76.44 | 75.25 | 46.59 |
| XuanYuan-6B | 68.87 | 71.62 | 77.65 | 74.83 | 77.52 | 73.56 | 86.54 | 59.02 | 70.67 | 71.19 | 26.14 |
| GPT4 | 60.05 | 52.33 | 68.72 | 64.8 | 68.81 | 68.68 | 75.58 | 46.93 | 63.51 | 63.84 | 27.27 |
除金融外,我们也注重轩辕大模型的通用能力,因此我们也在多个主流评测集上进行了模型评测,观察轩辕大模型在知识、逻辑、代码等通用能力上的表现。评测结果如下表所示。
| 模型 | C-Eval | CMMLU | MMLU | GSM8K | HumanEval |
| ----------- | ----- | ----- | ---- | ----- | --------- |
| LLaMA2-70B | 50.1 | 53.6 | 69.8 | 54.4 | 23.7 |
| LLaMA2-13B | 41.4 | 38.4 | 55 | 29.6 | 18.9 |
| LLaMA2-7B | 32.5 | 31.8 | 46.8 | 16.7 | 12.8 |
|XuanYuan-13B | 82 | 78 | 70.3 | 49.3 | 29.3 |
| XuanYuan-6B | 81.2 | 75.8 | 64.5 | 32.9 | 22.6 |
从表中结果可以看出,在五个评测集上,XuanYuan-6B的表现均超越了类似尺寸的LLaMA2-7B和LLaMA2-13B模型,展现出了强大的通用能力。在中文相关场景下,XuanYuan-6B甚至可超越更大尺寸的LLaMA2-70B模型。
值得注意的是,在上述所有评测中,XuanYuan-6B均进行了考试场景增强,具体细节可见我们的技术报告。另外榜单结果也不代表模型在真实场景中的实际能力。为进一步验证模型的实际能力,我们对模型进行了人工评测。
### 人工评测
除在各榜单进行评测外,我们进一步对XuanYuan-6B-Chat模型进行了人工评估,来公正客观地评估chat模型在对话场景中的真实能力。评估集包含一定量级的问题且对研发人员完全封闭,每个问题均由三个不同的人员进行评估来减轻偏见。评估对比对象为业界开源的类似尺寸的主流大模型,我们并采用GSB(Good,Same,Bad)指标来展示评估结果,具体结果如下图所示。从图中可以看出,在通用性(安全性在评估时被纳入了通用性)和金融能力上,XuanYuan-6B-Chat模型均超过了对比对象,显示出更强的模型能力。
<img src=resources/6b_vs_other.jpg width=80%>
## 推理部署
XuanYuan-6B系列模型均已上传到HuggingFace和modelscope网站,请点击上述链接进行下载。XuanYuan-6B基座模型、chat模型及其量化模型的使用方法和[XuanYuan-70B](#xuanyuan-70b),[XuanYuan2-70B](#xuanyuan2-70b)类似,但是tokenizer加载方式和在对话场景中使用的prompt格式不同(不包含system message)。下面以XuanYuan-6B-Chat模型为例,来展示XuanYuan-6B系列模型的使用方法。
```python
import torch
from transformers import LlamaForCausalLM, AutoTokenizer
model_name_or_path = "Duxiaoman-DI/XuanYuan-70B-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = LlamaForCausalLM.from_pretrained(model_name_or_path, device_map="auto")
model.eval()
seps = [" ", "</s>"]
roles = ["Human", "Assistant"]
content = "介绍下你自己"
prompt = seps[0] + roles[0] + ": " + content + seps[0] + roles[1] + ":"
print(f"输入: {content}")
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=256, do_sample=True, temperature=0.7, top_p=0.95)
outputs = tokenizer.decode(outputs.cpu()[0][len(inputs.input_ids[0]):], skip_special_tokens=True)
print(f"输出: {outputs}")
```