导读
日前,南方科技大学 联合 粤港澳大湾区数字经济研究院(简称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及以上
创空间体验
创空间体验链接:
https://modelscope.cn/studios/SUSTC/SUS-Chat-34B-Demo
逻辑推理:
数学计算:
文学创作:
模型链接和下载
SUS-Chat-34B模型现已在ModelScope社区开源:
https://modelscope.cn/models/SUSTC/SUS-Chat-34B/summary
社区支持直接下载模型的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模型卡片:https://modelscope.cn/models/SUSTC/SUS-Chat-34B/summary