南方科技大学联合IDEA研究院CCNL中心发布SUS-Chat-34B,魔搭最佳实践来啦!
导读 日前,南方科技大学 联合 粤港澳大湾区数字经济研究院(简称IDEA研究院)认知计算与自然语言研究中心(CCNL, Cognitive Computing and Natural Language)推出并开源了340亿 参数规模的双语模型 SUS-Chat-34B。 SUS-Chat-34B基于01-ai/Yi-34B 预训练模型通过数百万高质量、多语言的指令数据进行了微调,模型具有以下亮点
导读
日前,南方科技大学 联合 粤港澳大湾区数字经济研究院(简称IDEA研究院)认知计算与自然语言研究中心(CCNL, Cognitive Computing and Natural Language)推出并开源了340亿 参数规模的双语模型 SUS-Chat-34B。
SUS-Chat-34B基于01-ai/Yi-34B 预训练模型通过数百万高质量、多语言的指令数据进行了微调,模型具有以下亮点:
- 大规模复杂指令跟随数据:使用1.4B token的高质量复杂指令数据进行训练,涵盖中英文、多轮对话、数学、推理等多种指令数据;
- 强大的通用任务性能:SUS-Chat-34B模型在众多主流的中英文任务上表现出色,其效果超越了相同参数规模的其他开源的指令微调模型。即使与更大参数规模的模型相比,SUS-Chat-34B模型也具有不错的竞争力
- 更长的上下文窗口与出色的多轮对话能力:SUS-Chat-34B原生支持8K的上下文窗口,在大量多轮指令以及单多轮混合数据中进行训练,具有出色的长文本对话信息关注与指令跟随能力。
在训练方法方面,官方在 南方科技大学联合IDEA研究院CCNL中心发布34B最强Chat模型:登顶Open LLM Leaderboard 一文中,围绕精细化筛选数据迭代、人类逻辑思维方式对齐、指令间共享注意力机制、复杂指令理解与角色扮演能力、深度长文本理解检索 五个方面进行了详细介绍。同时,证明了通过正确的指令微调,学术机构可以在不增加模型参数的情况下,通过开源的数据集和模型,获得更好的性能,也弥合了学术界和工业界的在大语言模型上的差距,为学术界和工业界的合作提供了新的可能性。
目前,SUS-Chat-34B 已上线魔搭社区,社区为开发者们提供了推理、微调实践教程,欢迎大家来玩!
环境配置与安装
- python 3.8及以上版本
- pytorch 1.12及以上版本,推荐2.0及以上版本
- 建议使用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)
更多推荐
所有评论(0)