XuanYuan-6B / README.md
homeyang's picture
Update README.md
46d0287 verified
|
raw
history blame
6.21 kB
metadata
license: llama2

介绍

在轩辕系列大模型研发过程中,我们积累了大量的高质量数据和模型训练经验,构建了完善的训练平台,搭建了合理的评估流水线。在此基础上,为丰富轩辕系列模型矩阵,降低轩辕大模型使用门槛,我们进一步推出了XuanYuan-6B系列大模型。不同于XuanYuan-13B和XuanYuan-70B系列模型在LLaMA2上继续预训练的范式,XuanYuan-6B是我们从零开始进行预训练的大模型。当然,XuanYuan-6B仍采用类LLaMA的模型架构。在预训练基础上,我们构建了丰富、高质量的问答数据和人类偏好数据,并通过指令微调和强化学习进一步对齐了模型表现和人类偏好,显著提升了模型在对话场景中的表现。XuanYuan6B系列模型在多个评测榜单和人工评估中均获得了亮眼的结果。模型训练细节请参考我们的技术报告:Report

本次开源的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模型均超过了对比对象,显示出更强的模型能力。

推理部署

XuanYuan-6B系列模型均已上传到HuggingFace和modelscope网站,请点击上述链接进行下载。XuanYuan-6B基座模型、chat模型及其量化模型的使用方法和XuanYuan-70BXuanYuan2-70B类似,但是tokenizer加载方式和在对话场景中使用的prompt格式不同(不包含system message)。下面以XuanYuan-6B-Chat模型为例,来展示XuanYuan-6B系列模型的使用方法。

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}")