阿里云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

科技分类资讯推荐

快手关停短剧小程序,背后有何深意 - 天天要闻

快手关停短剧小程序,背后有何深意

短剧圈突发大消息!新腕儿短剧社群通知显示,快手将于 6 月 17 日关停短剧小程序业务,所有任务同步下架。经官方证实,这一决策引发行业热议,背后实则藏着多重考量。政策高压下,短剧行业正经历强监管风暴。
全球最大沙电池投产:100兆瓦时系统减少70%二氧化碳排放 - 天天要闻

全球最大沙电池投产:100兆瓦时系统减少70%二氧化碳排放

该电池预计将使波尔奈宁市(Pornainen)的区域供暖排放减少近70%,每年减少约160吨二氧化碳当量的排放。一家能源公司在芬兰的一个城镇启用了世界上首个工业规模的沙电池。该电池将利用多余的可再生能源产生热能,然后供应给当地的区域供暖网络。该装置由芬兰初创公司极夜能源(Polar Night Energy)开发,据报道现已在波尔...
618倒计时!苏宁易购家电3C迎来核心爆发 - 天天要闻

618倒计时!苏宁易购家电3C迎来核心爆发

618大促进入最后冲刺阶段,家电3C消费势头强劲。即日起至6月18日,苏宁易购正式开启618巅峰狂欢,在“国补厂补苏宁补,不止5折”优惠基础上,加码推出200款爆款家电“无套路一口价”,价格做到历史最低、行业最低。线上渠道同步开启“618元抢空调、5折尖货家电专场、1元抢生活百货”等让利活动。双线联动,让消费者“买得更...
Rokid 上线全球第一个智能眼镜支付 内置支付宝 - 天天要闻

Rokid 上线全球第一个智能眼镜支付 内置支付宝

当你戴着智能眼镜走进商店,挑选好心仪商品后,在收银台“看一下”就能完成支付,这是什么体验?6月17日,Rokid 宣布实现全球第一个可支付的智能眼镜,Rokid Glasses 内置支付宝“看一下支付”,方便用户在忙碌或不便操作手机时可直接
京东CEO:京东外卖一线城市骑手人均月收入1.3万元 - 天天要闻

京东CEO:京东外卖一线城市骑手人均月收入1.3万元

【CNMO科技消息】6月17日,京东集团SEC副主席、京东集团CEO许冉在接受新浪科技等媒体采访时透露,京东外卖业务上线三个月以来发展迅猛,全职骑手规模持续扩大,一线城市骑手人均月收入已接近1.3万元。京东集团CEO许冉 许冉表示,京东外卖业务自上线以来,日单量已突破2500万单,远超管理层预期。这一成绩的取得,得益于京东...
烟台竞速新材料和低空经济创新赛道 - 天天要闻

烟台竞速新材料和低空经济创新赛道

在黄渤海新区的创新版图上,一场静悄悄的产业革命正在上演。芳纶纸薄如蝉翼,却能承受高压电流的冲击;大型无人机振翅腾空,托起吨级货物直上云霄。这两个看似不相关的领域,正在这里发生着奇妙的化学反应——当新材料为飞行器插上轻量化的翅膀,低空经济又为
微信将迎史诗级更新! - 天天要闻

微信将迎史诗级更新!

近日有消息称,微信正在优化聊天记录备份的功能,支持U盘等多种存储设备。对此,微信方面回应称,正小范围测试聊天记录备份功能优化。
全球最大直径静安EUP竖井智慧车库认筹启动 - 天天要闻

全球最大直径静安EUP竖井智慧车库认筹启动

全球最大、上海首个智慧停车库上海静安大宁EUP竖井智慧车库正式开启认筹时间:6月21日15:00地点:中铁十五局上海静安大宁EUP竖井智慧车库(广延路1055号)精彩内容,智慧与乐趣并存活动分区设置满足全家需求宣传区:专业讲解员通过展板和视频,科普车库、车辆相关知识,倡导安全和谐停车。演示区:专业人员不间断演示停车场...