导读

日前,南方科技大学 联合 粤港澳大湾区数字经济研究院(简称IDEA研究院)认知计算与自然语言研究中心(CCNL, Cognitive Computing and Natural Language)推出并开源了340亿 参数规模的双语模型 SUS-Chat-34B。

 

SUS-Chat-34B基于01-ai/Yi-34B 预训练模型通过数百万高质量、多语言的指令数据进行了微调,模型具有以下亮点:

  1. 大规模复杂指令跟随数据:使用1.4B token的高质量复杂指令数据进行训练,涵盖中英文、多轮对话、数学、推理等多种指令数据;
  2. 强大的通用任务性能:SUS-Chat-34B模型在众多主流的中英文任务上表现出色,其效果超越了相同参数规模的其他开源的指令微调模型。即使与更大参数规模的模型相比,SUS-Chat-34B模型也具有不错的竞争力
  3. 更长的上下文窗口与出色的多轮对话能力:SUS-Chat-34B原生支持8K的上下文窗口,在大量多轮指令以及单多轮混合数据中进行训练,具有出色的长文本对话信息关注与指令跟随能力。

 

在训练方法方面,官方在 南方科技大学联合IDEA研究院CCNL中心发布34B最强Chat模型:登顶Open LLM Leaderboard​ 一文中,围绕精细化筛选数据迭代、人类逻辑思维方式对齐、指令间共享注意力机制、复杂指令理解与角色扮演能力、深度长文本理解检索 五个方面进行了详细介绍。同时,证明了通过正确的指令微调,学术机构可以在不增加模型参数的情况下,通过开源的数据集和模型,获得更好的性能,也弥合了学术界和工业界的在大语言模型上的差距,为学术界和工业界的合作提供了新的可能性。

 

目前,SUS-Chat-34B 已上线魔搭社区,社区为开发者们提供了推理、微调实践教程,欢迎大家来玩!

 

环境配置与安装

  1. python 3.8及以上版本
  2. pytorch 1.12及以上版本,推荐2.0及以上版本
  3. 建议使用CUDA 11.4及以上

 

创空间体验

创空间体验链接:

SUS-Chat-34B-Demo · 创空间 (modelscope.cn)

 

逻辑推理:

数学计算:

 

文学创作:

模型链接和下载

SUS-Chat-34B模型现已在ModelScope社区开源:

SUS-Chat-34B · 模型库 (modelscope.cn)

 

社区支持直接下载模型的repo:

 

from modelscope import snapshot_download
model_dir = snapshot_download("SUSTC/SUS-Chat-34B", revision = "master")

 

模型推理

SUS-Chat-34B推理代码:

from modelscope import AutoModelForCausalLM, AutoTokenizer


def chat_template(messages):
    history = ""
    for message in messages:
        if message['role'] == 'user':
            message = message['content']
            history += f"### Human: {message}\n\n### Assistant: "
        elif message['role'] == 'assistant':
            message = message['content']
            history += message
    return history


model_path = "SUSTC/SUS-Chat-34B"

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

query = "浙江的省会在哪?"
messages = [{"role": "user", "content": query}]

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
)
print(f"response: {response}")
messages.append({"role": "assistant", "content": response})

# Second round
query = "这有什么好玩的"
messages.append({"role": "user", "content": query})

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
)
print(f"response: {response}")
messages.append({"role": "assistant", "content": response})
"""
response:  浙江的省会是杭州。<|endoftext|>
response:  杭州有许多著名的景点和活动,以下是一些值得一游的地方:

1. 西湖:杭州最著名的景点之一,被誉为“人间天堂”,可以欣赏到美丽的湖景和历史建筑。

2. 灵隐寺:位于杭州市区西部的灵隐寺,是杭州最古老的佛教寺庙之一,也是中国佛教四大名山之一。

3. 宋城:位于杭州市区南部的宋城,是一座以宋代文化为主题的旅游景区,可以体验到宋代文化、美食和娱乐。

4. 千岛湖:位于杭州市区西南部的千岛湖,是中国最大的淡水湖之一,可以欣赏到美丽的湖景和自然风光。

5. 杭州乐园:位于杭州市区南部的杭州乐园,是一座以游乐设施为主题的旅游景区,可以体验到各种刺激的游乐项目。

此外,杭州还有许多美食和购物场所,如河坊街、南宋御街、西湖文化广场等,可以品尝到当地的美食和购买到特色商品。<|endoftext|>
"""

 

资源消耗:

 

 

 

模型微调和微调后推理

微调代码开源地址:

https://github.com/modelscope/swift/tree/main/examples/pytorch/llm

 

clone swift仓库并安装SWIFT(魔搭官方提供的训练推理框架)

# 设置pip全局镜像和安装相关的python包
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
git clone https://github.com/modelscope/swift.git
cd swift
pip install .[llm]

 

这里介绍, 如何在10分钟内对模型进行自我认知微调.

# Experimental environment: A100
# 70GB GPU memory
CUDA_VISIBLE_DEVICES=0 \
swift sft \
    --model_id_or_path SUSTC/SUS-Chat-34B \
    --dataset alpaca-zh alpaca-en \
    --train_dataset_sample 500 \
    --eval_steps 20 \
    --logging_steps 5 \
    --output_dir output \
    --lora_target_modules ALL \
    --self_cognition_sample 500 \
    --model_name 小黄 'Xiao Huang' \
    --model_author 魔搭 ModelScope \

 

如果你想要使用ModelScope的免费算力A10 (24G显存) 训练,可以增加如下参数来支持量化训练:

# Experimental environment: A10
# 24GB GPU memory
--quantization_bit 4 \

 

模型微调后的推理脚本,这里的ckpt_dir需要修改为训练生成的checkpoint文件夹:

# Experimental environment: A100
CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --ckpt_dir "output/sus-34b-chat/vx_xxx/checkpoint-xxx" \
    --eval_human true \

 

微调的可视化结果

训练损失:

 

训练后生成样例

<<< 你是谁?
我是小黄,一个基于大规模语言模型GPT(生成预训练变换器)的人工智能聊天机器人。我的目的是通过文本交流来帮助、娱乐和提供信息。
--------------------------------------------------
<<< 你是谁研发的?
我是由魔搭研发的人工智能聊天机器人。
--------------------------------------------------
<<< what's your name?
My name is Xiao Huang.
--------------------------------------------------
<<< 浙江的省会在哪?
浙江省的省会是杭州。
--------------------------------------------------
<<< 这有什么好玩的?
杭州是一个历史悠久、文化底蕴深厚的城市,有许多值得一游的景点和活动。以下是一些推荐:

1. 西湖:作为杭州最著名的景点之一,西湖以其美丽的湖光山色和丰富的历史文化而闻名。你可以漫步在湖边,欣赏湖景,还可以参观附近的雷峰塔、断桥残雪等著名景点。

2. 灵隐寺:位于杭州市区西北部的灵隐寺是一座古老的佛教寺庙,被誉为“江南第一古刹”。寺内建筑精美,环境清幽,是放松身心、感受宁静的好去处。

3. 宋城:宋城是一座以宋代文化为主题的旅游景区,里面有仿古的建筑、表演和活动。你可以穿上古装,体验古代的生活,观看精彩的演出,还可以品尝到各种传统美食。

4. 西溪湿地:西溪湿地是一个自然保护区,被誉为“城市中的绿肺”。这里有湖泊、河流、湿地和丰富的动植物资源,可以进行徒步、划船等活动,享受大自然的美丽。

5. 美食之旅:杭州以其丰富多样的美食而闻名,如龙井虾仁、东坡肉、叫花鸡等。你可以品尝到正宗的杭帮菜,还可以尝试当地的小吃和特色饮品。

这只是一小部分推荐,杭州还有许多其他有趣的地方和活动等待你去探索。
--------------------------------------------------

 

点击直达SUS-Chat-34B模型卡片:SUS-Chat-34B · 模型库 (modelscope.cn)

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐