阿里云Qwen-7B:通义千问超大规模70亿参数语言模型!

2023年08月08日08:12:02 科技 1894

阿里云Qwen-7B:通义千问超大规模70亿参数语言模型! - 天天要闻

通义千问-7B(Qwen-7B) 是阿里云研发的通义千问大模型系列的 70 亿参数规模的模型。Qwen-7B 是基于 Transformer 的大语言模型, 在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。同时,在 Qwen-7B 的基础上,我们使用对齐机制打造了基于大语言模型的 AI 助手 Qwen-7B-Chat。Qwen-7B 系列模型的特点包括:

  1. 大规模高质量预训练数据:我们使用了超过 2.2 万亿 token 的自建大规模预训练数据集进行语言模型的预训练。数据集包括文本和代码等多种数据类型,覆盖通用领域和专业领域。
  2. 优秀的模型性能:相比同规模的开源模型,Qwen-7B 在多个评测数据集上具有显著优势,甚至超出 12-13B 等更大规模的模型。评测评估的能力范围包括自然语言理解与生成、数学运算解题、代码生成等。
  3. 更好地支持多语言:基于更大词表的分词器在分词上更高效,同时它对其他语言表现更加友好。用户可以在 Qwen-7B 的基础上更方便地训练特定语言的 7B 语言模型。
  4. 8K的上下文长度:Qwen-7B 及 Qwen-7B-Chat 均能支持 8K 的上下文长度, 允许用户输入更长的 prompt。
  5. 支持插件调用:Qwen-7B-Chat 针对插件调用相关的对齐数据做了特定优化,当前模型能有效调用插件以及升级为 Agent。

评测表现

Qwen-7B 在多个全面评估自然语言理解与生成、数学运算解题、代码生成等能力的评测数据集上,包括 MMLU、C-Eval、GSM8K、HumanEval、WMT22 等,均超出了同规模大语言模型的表现,甚至超出了如 12-13B 参数等更大规模的语言模型。

阿里云Qwen-7B:通义千问超大规模70亿参数语言模型! - 天天要闻

阿里云Qwen-7B:通义千问超大规模70亿参数语言模型! - 天天要闻

要求

  • python 3.8 及以上版本
  • pytorch 1.12 及以上版本,推荐 2.0 及以上版本
  • 建议使用 CUDA 11.4 及以上(GPU 用户、flash-attention 用户等需考虑此选项)

快速使用

下面是简单的示例来说明如何利用 ModelScope 和 Transformers 快速使用 Qwen-7B 和 Qwen-7B-Chat。

在开始前,请确保你已经配置好环境并安装好相关的代码包。最重要的是,确保你满足上述要求,然后安装相关的依赖库。

pip install -r requirements.txt

如果你的显卡支持 fp16 或 bf16 精度,我们还推荐安装flash-attention(https://github.com/Dao-AILab/flash-attention)来提高你的运行效率以及降低显存占用。(flash-attention 只是可选项,不安装也可正常运行该项目)。

git clone -b v1.0.8 https://github.com/Dao-AILab/flash-attention
cd flash-attention && pip install .
pip install csrc/layer_norm
pip install csrc/rotary

接下来你可以开始使用 Transformers 或者 ModelScope 来使用模型。

Transformers

如希望使用 Qwen-7B-chat 进行推理,所需要写的只是如下所示的数行代码:

from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig

# 请注意:分词器默认行为已更改为默认关闭特殊token攻击防护。相关使用指引,请见examples/tokenizer_showcase.ipynb
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)

# 打开bf16精度,A100、H100、RTX3060、RTX3070等显卡建议启用以节省显存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, bf16=True).eval()
# 打开fp16精度,V100、P100、T4等显卡建议启用以节省显存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, fp16=True).eval()
# 使用CPU进行推理,需要约32GB内存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="cpu", trust_remote_code=True).eval()
# 默认使用自动模式,根据设备自动选择精度
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True).eval()

# 可指定不同的生成长度、top_p等相关超参
model.generation_config = GenerationConfig.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)

# 第一轮对话 1st dialogue turn
response, history = model.chat(tokenizer, "你好", history=None)
print(response)
# 你好!很高兴为你提供帮助。

# 第二轮对话 2nd dialogue turn
response, history = model.chat(tokenizer, "给我讲一个年轻人奋斗创业最终取得成功的故事。", history=history)
print(response)
# 这是一个关于一个年轻人奋斗创业最终取得成功的故事。
# 故事的主人公叫李明,他来自一个普通的家庭,父母都是普通的工人。从小,李明就立下了一个目标:要成为一名成功的企业家。
# 为了实现这个目标,李明勤奋学习,考上了大学。在大学期间,他积极参加各种创业比赛,获得了不少奖项。他还利用课余时间去实习,积累了宝贵的经验。
# 毕业后,李明决定开始自己的创业之路。他开始寻找投资机会,但多次都被拒绝了。然而,他并没有放弃。他继续努力,不断改进自己的创业计划,并寻找新的投资机会。
# 最终,李明成功地获得了一笔投资,开始了自己的创业之路。他成立了一家科技公司,专注于开发新型软件。在他的领导下,公司迅速发展起来,成为了一家成功的科技企业。
# 李明的成功并不是偶然的。他勤奋、坚韧、勇于冒险,不断学习和改进自己。他的成功也证明了,只要努力奋斗,任何人都有可能取得成功。

# 第三轮对话 3rd dialogue turn
response, history = model.chat(tokenizer, "给这个故事起一个标题", history=history)
print(response)
# 《奋斗创业:一个年轻人的成功之路》

运行 Qwen-7B 同样非常简单。运行 Qwen-7B:

from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig

tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-7B", trust_remote_code=True)

# 打开bf16精度,A100、H100、RTX3060、RTX3070等显卡建议启用以节省显存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B", device_map="auto", trust_remote_code=True, bf16=True).eval()
# 打开fp16精度,V100、P100、T4等显卡建议启用以节省显存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B", device_map="auto", trust_remote_code=True, fp16=True).eval()
# 使用CPU进行推理,需要约32GB内存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B", device_map="cpu", trust_remote_code=True).eval()
# 默认使用自动模式,根据设备自动选择精度
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B", device_map="auto", trust_remote_code=True).eval()

# 可指定不同的生成长度、top_p等相关超参
model.generation_config = GenerationConfig.from_pretrained("Qwen/Qwen-7B", trust_remote_code=True)

inputs = tokenizer('蒙古国的首都是乌兰巴托Ulaanbaatar)\n冰岛的首都是雷克雅未克(Reykjavik)\n埃塞俄比亚的首都是', return_tensors='pt')
inputs = inputs.to('cuda:0')
pred = model.generate(**inputs)
print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))
# 蒙古国的首都是乌兰巴托(Ulaanbaatar)\n冰岛的首都是雷克雅未克(Reykjavik)\n埃塞俄比亚的首都是亚的斯亚贝巴Addis Ababa)...

ModelScope

魔搭(ModelScope)是开源的模型即服务共享平台,为泛 AI 开发者提供灵活、易用、低成本的一站式模型服务产品。使用 ModelScope 同样非常简单,代码如下所示:

import os
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope import snapshot_download

model_id = 'QWen/qwen-7b-chat'
revision = 'v1.0.0'

model_dir = snapshot_download(model_id, revision)

pipe = pipeline(
task=Tasks.chat, model=model_dir, device_map='auto')
history = None

text = '浙江的省会在哪里?'
results = pipe(text, history=history)
response, history = results['response'], results['history']
print(f'Response: {response}')
text = '它有什么好玩的地方呢?'
results = pipe(text, history=history)
response, history = results['response'], results['history']
print(f'Response: {response}')

交互式 Demo

Qwen-7B 提供了一个简单的交互式 Demo 示例,请查看cli_demo.py。当前模型已经支持流式输出,用户可通过输入文字的方式和 Qwen-7B-Chat 交互,模型将流式输出返回结果。

https://github.com/QwenLM/Qwen-7B/blob/main/cli_demo.py

传送门

开源协议:Tongyi Qianwen LICENSE

开源地址:https://github.com/QwenLM/Qwen-7B

项目合集:https://github.com/RepositorySheet

科技分类资讯推荐

影驰出击BW2025:从显卡编年史到AI未来,一场科技×二次元的梦幻联动 - 天天要闻

影驰出击BW2025:从显卡编年史到AI未来,一场科技×二次元的梦幻联动

玩家和二次元爱好者们一年一度的盛典终于来了。2025年7月11日至13日, Bilibili World(简称BW)在上海国家会展中心盛大开幕。在这场融合ACGN文化与科技数码潮流的盛会中,影驰(GALAX)携旗下全系列产品震撼登场。以极具科技感的展台设计、丰富的互动活动和强劲的产品阵列,为参加BW的玩家打造了一个吸引力拉满的科技数码...
从游戏到生产力,蓝戟携Intel全系显卡亮相Bilibili World 2025 - 天天要闻

从游戏到生产力,蓝戟携Intel全系显卡亮相Bilibili World 2025

Bilibili World 2025如期而至,作为一年中二次元和科技玩家的顶级盛会,这次展会依旧群星璀璨。不仅有众多游戏厂商,许多数码硬件厂商也来凑热闹,而在此次众多的硬件厂商中,蓝戟(GUNNIR)作为Intel显卡中国大陆核心合作伙伴,凭借着Intel消费级与企业级显卡的双线阵容,以及别出心裁的“游戏集章”互动机制,成功成为BW...
地平线总裁陈黎明:高阶智能辅助驾驶的拐点已经到来,将会快速增长 - 天天要闻

地平线总裁陈黎明:高阶智能辅助驾驶的拐点已经到来,将会快速增长

红星资本局7月11日消息,今日,地平线(09660.HK)总裁陈黎明在2025中国汽车论坛上表示,高阶智能辅助驾驶的拐点已经到来,后面会有比较快速的增长。对此,他表示依据有三:第一,智能驾驶是我国智能网联新能源汽车发展战略的一个重要组成部分,政府工作报告对智能汽车的发展做出了规划和行动方向。在电动化上,地平线可以...
洛斐发布Flow2矮轴三模无线机械键盘 - 天天要闻

洛斐发布Flow2矮轴三模无线机械键盘

没想到,洛斐Flow系列这么快就进入迭代了,发布全新Flow2。引入了全新的设计语言,依然是全铝金属外壳机身,边框像苹果手机那样的直板机身。其中,右侧部分加长,侧面则是增加了Touch Bar触控滑动条,支持调节灯光亮度或系统音量。另一方面,键盘背面增加了同样极具辨识度的撑脚模块,支持两种角度调节。 同时还全新升级了...
大爷写《我的母亲》火爆全网!视频发布者最新发声 - 天天要闻

大爷写《我的母亲》火爆全网!视频发布者最新发声

连日来,一段关于大爷挑战写作1957年高考同题作文《我的母亲》的视频火爆全网。不少网民表示,文字质朴,催人泪下,深深被打动。7月11日,大皖新闻记者联系上了视频发布者连文杰。对方表示,视频中展示的作文内容由大爷独立写作,产生的版权收入也全给大爷。大爷写作文视频走红网络。大爷写的作文在网上爆火大皖新闻记者注...
10.38万元起,吉利银河A7发布预售价 - 天天要闻

10.38万元起,吉利银河A7发布预售价

7月11日,吉利银河发布了预售价,预售价格范围为10.38-13.38万元,在发布预售价格的同时,官方也带来了多项权益,包括500元订金抵扣1500元,赠送价值8800元的Flyme Sound音响等。
“中欣卡”突然停摆,超150万用户退款难 - 天天要闻

“中欣卡”突然停摆,超150万用户退款难

覆盖北京2000多家门店、拥有超150万持卡用户的预付卡“中欣卡”近日停摆,线上线下消费渠道均被暂停,恢复时间未知。大量持卡用户面临资金冻结困境。消费渠道全面“瘫痪”近日,中欣卡发布公告称“因业务调整,全面暂停所有门店合作,无法消费”。中国新闻网《民生调查局》记者发现,其官网合作商户名录已清空,线上提货渠...