HuggingFace镜像/SUS-Chat-34B
模型介绍文件和版本分析
下载使用量0

🐷SUS-Chat:正确的指令微调

中文  |  English 



最新动态

  • 2024-1-04:🔥 cloudyu 基于我们的模型创建了一系列排名靠前的 MOE
  • 2023-12-09:🔥 Tigerbot 变体已被 删除,SUS-Chat-34B 现已成为排名第一的 LLaMA 模型和排名第一的聊天模型。
  • 2023-12-07:SUS-Chat-34B 现已在 WiseModel🧠 上线。
  • 2023-12-06:体验 SUS-Chat-34B 聊天界面。
  • 2023-12-05:SUS-Chat-34B 现已在 ModelScope🤖 上线。
  • 2023-12-05:SUS-Chat-34B 在 Open LLM 排行榜 中排名第二,超越了所有 70B 以下的模型。
  • 2023-12-01:SUS-Chat-34B 现已在 HuggingFace🤗 上线。

简介

Figure 1: DALL·E 2023-12-01 11.03.28 - An imposing, majestic wild boar combined with elements of a futuristic transformer robot. The boar itself should be intricately blended with these tra

SUS-Chat-34B 是一款340亿参数的中英双语对话模型,由南方科技大学(Southern University of Science and Technology)与IDEA-CCNL(IDEA-CCNL)联合发布。该模型基于 01-ai/Yi-34B 构建,并在数百万条高质量多语言指令数据上进行了微调。在保留基础模型强大语言能力的同时,SUS-Chat-34B 通过高质量指令微调提升了模型对人类指令的响应能力,并擅长通过思维链模仿人类思考过程。它在长文本中引入了指令间注意力共享机制,将上下文窗口大小从4K扩展至8K,显著增强了多轮对话的实用性。

该模型在几乎所有同规模模型的基准测试中均表现卓越,更能满足复杂多语言任务的实际需求。与更大规模的模型相比,SUS-Chat-34B 依然保持着高度竞争力,并在我们的综合评估中取得了最先进的性能。

SUS-Chat-34B 模型具有以下亮点:

  1. 大规模复杂指令遵循数据:使用14亿 tokens 的高质量复杂指令数据进行训练,涵盖中英双语、多轮对话、数学、推理等多种类型的指令数据;
  2. 通用任务表现强劲:SUS-Chat-34B 模型在众多主流中英文任务上表现出色,超越了其他同参数规模的开源指令微调模型,并且与更大参数规模的模型相比也具有竞争力;
  3. 更长的上下文窗口与出色的多轮对话能力:目前,SUS-Chat-34B 支持8K上下文窗口,并通过大量多轮指令及单-多轮混合数据的训练,在长文本对话信息聚焦和指令遵循方面展现出卓越能力。

SUS-Chat 有力地证明,通过恰当的指令微调,学术机构无需增加模型参数,利用开源数据集和模型即可实现更优性能。这弥合了学术界与工业界在大型语言模型领域的差距,并为学术界与产业界的合作开辟了新的可能性。

性能表现

为了更全面地评估SUS-Chat-34B模型的性能,我们在多个基准测试中进行了评估,并开源了评估框架TLEM,以便其他研究人员进行复现和对比。

在TLEM中,我们采用了包括MMLU、CMMLU、C-Eval、BBH、GSM-8K和MATH在内的多种基准测试,以衡量模型的知识水平和思维能力。在这些指标上,SUS-Chat-34B模型均取得了最先进的性能。此外,我们还结合了lm-eval,在winogrande、hellaswag、arc和truthful-qa等任务上对SUS-Chat及同类模型进行测试,评估模型的常识推理能力和幻觉倾向。

总体而言,SUS-Chat-34B模型显著优于同规模模型,取得了最先进的综合性能。

图2:基准测试

英语理解能力

模型mmlu(零样本)
GPT-483
SUS-Chat-34B74.35
Qwen-72b-Chat74.52
Deepseek-68b-Chat69.43
OrionStar-Yi-34B-Chat68.51
Yi-34B-Chat66.96

中文能力

模型cmmlu(零样本)C-Eval(零样本)1
GPT-47169.9
SUS-Chat-34B78.6882.42
Qwen-72b-Chat77.0277.22
Deepseek-68b-Chat48.5159.7
OrionStar-Yi-34B-Chat66.8865.13
Yi-34B-Chat55.1677.16

  1. C-Eval结果基于验证数据集进行评估↩︎

数学与推理能力

模型gsm8k(零样本)MATH(零样本)BBH(零样本)
GPT-491.445.886.7
SUS-Chat-34B80.0628.767.62
Qwen-72b-Chat76.5735.972.63
Deepseek-68b-Chat74.4529.5669.73
OrionStar-Yi-34B-Chat54.3612.862.88
Yi-34B-Chat63.7610.0261.54

更多任务

模型winogrande(5样本)arc(25样本)hellaswag(10样本)TruthfulQA mc1(零样本)TruthfulQA mc2(零样本)
GPT-4—94.591.459.00—
SUS-Chat-34B81.2281.5483.7940.6457.47
Qwen-72b-Chat76.0982.1086.0639.1756.37
Deepseek-68b-Chat80.5881.2987.0240.0250.64
OrionStar-Yi-34B-Chat77.2780.1984.5436.4753.24
Yi-34B-Chat76.6470.6682.2938.1954.57

总体表现

模型平均值
SUS-Chat-34B69.05
Qwen-72b-Chat68.41
Deepseek-68b-Chat62.91
OrionStar-Yi-34B-Chat60.21
Yi-34B-Chat59.72

如需复现结果,请启动相应的vllm服务器并参考此处。

使用方法

SUS-Chat-34B 是一个标准的 LLaMA 模型,应能与 LLaMA 生态系统无缝兼容。我们提供以下示例,展示如何将其用于多轮对话。

如有任何问题,欢迎随时提交 issue。

from transformers import AutoModelForCausalLM, AutoTokenizer # 🤗 Transformers, or 
# from modelscope import AutoModelForCausalLM, AutoTokenizer # 🤖 ModelScope

def chat_template(messages):
    history = ""
    for message in messages:
        match message:
            case {"role": "user", "content": message}:
                history += f"### Human: {message}\n\n### Assistant: "
            case {"role": "assistant", "content": message}:
                history += message
    return history


model_path = "SUSTech/SUS-Chat-34B"
# model_path = "SUSTC/SUS-Chat-34B" # ModelScope

tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False)
model = AutoModelForCausalLM.from_pretrained(
    model_path, device_map="auto", torch_dtype="auto"
).eval()

messages = [{"role": "user", "content": "hi"}]

input_ids = tokenizer.encode(
    chat_template(messages), return_tensors="pt", add_special_tokens=False
).to("cuda")
output_ids = model.generate(input_ids.to("cuda"), max_length=256)
response = tokenizer.decode(
    output_ids[0][input_ids.shape[1] :], skip_special_tokens=False
)

messages.append({"role": "assistant", "content": response})

# Second round

messages.append({"role": "user", "content": "What is the capital of China?"})

input_ids = tokenizer.encode(
    chat_template(messages), return_tensors="pt", add_special_tokens=False
).to("cuda")
output_ids = model.generate(input_ids.to("cuda"), max_length=256)
response = tokenizer.decode(
    output_ids[0][input_ids.shape[1] :], skip_special_tokens=False
)

messages.append({"role": "assistant", "content": response})

局限性

SUS-Chat 仅经过监督微调,尚未进行人类偏好学习训练。因此,在某些情况下,它可能会产生不合理的响应,并加剧语言模型中已存在的问题,包括幻觉、非确定性和累积误差。为了在下游任务中获得更好的性能,建议相应地调整生成配置参数。

免责声明

在训练过程中,我们使用了数据合规性检查算法,以尽可能确保训练模型的合规性。由于数据的复杂性和语言模型的多样化使用场景,我们无法保证模型在所有情况下都能产生正确合理的输出。请注意,模型仍存在生成问题输出的风险。对于因误用、误导、非法使用及相关虚假信息所引发的任何风险或问题,以及与模型相关的数据安全问题,我们不承担责任。

许可协议

本模型完全用于学术研究和免费商业用途,但必须遵守来自 01-ai 的许可协议。