【Qwen部署实战】探索Qwen-7B-Chat:阿里云大型语言模型的对话实践

系列篇章💥

No.文章
1【Qwen部署实战】探索Qwen-7B-Chat:阿里云大型语言模型的对话实践
2【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人
3【Qwen2部署实战】探索Qwen2-7B:通过FastApi框架实现API的部署与调用
4【Qwen2部署实战】Ollama上的Qwen2-7B:一键部署大型语言模型指南
5【Qwen2部署实战】llama.cpp:一键部署高效运行Qwen2-7b模型
6【Qwen2部署实战】部署高效AI模型:使用vLLM进行Qwen2-7B模型推理


一、概述

在人工智能领域,大型语言模型的发展日新月异。阿里云推出的通义千问-7B(Qwen-7B)模型,以其70亿参数的庞大规模,成为该领域的新星。基于先进的Transformer架构,Qwen-7B在海量且多样化的预训练数据上进行深入学习,这些数据不仅包括了丰富的网络文本,还涵盖了专业书籍、代码等多种形式的内容。进一步地,Qwen-7B-Chat作为其衍生的AI助手模型,通过精准的对齐机制,展现了大语言模型在对话交互中的卓越性能。

二、环境要求

为了充分利用Qwen-7B-Chat模型的强大功能,官方建议开发者准备以下环境配置:
Python版本需为3.8或更高。
PyTorch框架,推荐使用1.12版本或更新,2.0版本及以上将获得更佳体验。
对于计划使用GPU加速或flash-attention库的用户,建议安装CUDA 11.4或更高版本。

三、依赖安装

运行Qwen-7B-Chat,请确保满足上述要求,再执行以下pip命令安装依赖库

pip install transformers==4.32.0 accelerate tiktoken einops scipy transformers_stream_generator==0.0.4 peft deepspeed

在这里插入图片描述

此外,为了进一步提升运行效率和降低显存占用,官方强烈推荐安装flash-attention库,该库已全面支持flash attention 2技术。安装步骤如下:

git clone https://github.com/Dao-AILab/flash-attention

在这里插入图片描述

cd flash-attention && pip install .

在这里插入图片描述

四、下载模型

将模型Qwen-7B-Chat下载到本地,提示部署运行效率

import torch
from modelscope import snapshot_download
model_dir = snapshot_download(
    'qwen/Qwen-7B-Chat', 
    cache_dir='/root/autodl-tmp', 
    revision='master'
)

执行如下:
在这里插入图片描述

检查权重文件大小,对比查看是否有缺失
在这里插入图片描述

五、快速使用

在本节中,我们将通过连贯的示例演示,引领您步入使用Qwen-7B-Chat模型进行多轮对话交互的世界。这些精心设计的交互示例不仅将帮助您迅速掌握操作流程,更将让您亲身体验到Qwen-7B-Chat在智能对话领域的非凡能力。

首先,确保您的环境中已安装了必要的库和依赖。接下来,通过以下代码片段,我们将初始化Qwen-7B-Chat模型,并配置相应的生成参数,以适应不同的硬件环境和性能需求。

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

# 信任远程代码以加载模型,这需要在安全的环境下使用
tokenizer = AutoTokenizer.from_pretrained("/root/autodl-tmp/qwen/Qwen-7B-Chat", trust_remote_code=True)

# 根据你的硬件配置选择合适的模型加载方式:
# 使用bf16精度,适用于支持bfloat16的GPU
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, bf16=True).eval()
# 使用fp16精度,适用于需要混合精度训练的场合
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, fp16=True).eval()
# 仅使用CPU进行模型加载和运算e
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", dvice_map="cpu", trust_remote_code=True).eval()
# 自动选择设备和精度模式,根据系统环境智能适配
model = AutoModelForCausalLM.from_pretrained("/root/autodl-tmp/qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True).eval()

# 对于transformers版本4.32.0及以上,生成配置已内置,无需额外指定
# 如果需要定制化生成配置,如调整生成长度或top_p等参数,可以取消下面注释
# model.generation_config = GenerationConfig.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True) 

在这里插入图片描述

现在,我们已经准备好了模型和分词器,接下来让我们通过几轮对话来感受Qwen-7B-Chat的魅力。

1、第一轮对话

在这一轮中,我们将从基础的问候开始,建立与模型的初步交流。

response, history = model.chat(tokenizer, "你好", history=None)
print(response)

输出:

你好!很高兴见到你。有什么我能帮助你的吗?

2、第二轮对话

随后,我们将提出一个更具体的要求,让模型为我们讲述一个励志的故事。

response, history = model.chat(tokenizer, "给我讲一个年轻人奋斗创业最终取得成功的故事。", history=history)
print(response)

输出

故事的主角是一个叫做李明的年轻人,他从家乡的一家小公司开始,凭借自己的努力和勇气,逐渐成为了公司的负责人,并带领公司发展成为一家全球知名的科技公司。

一开始,李明只是一个小职员,但他并不满足于现状,他知道只有不断学习、不断进步才能在未来获得更多的机会。于是,他开始自学编程,并参加各种技术比赛,不断提升自己的技能。

当公司遇到困难时,李明并没有选择放弃,而是选择勇敢面对。他积极寻找解决方案,并提出了一些新的思路,帮助公司度过了难关。

经过几年的努力,李明最终成功地领导公司实现了快速发展,并将公司推向了全球市场的前列。他的故事告诉我们,只要我们有决心和勇气,就一定能够实现我们的梦想。

3、第三轮对话

最后,我们将要求模型为这个故事构思一个恰当的标题。

response, history = model.chat(tokenizer, "给这个故事起一个标题", history=history)
print(response)

输出:

《勇攀高峰:一个年轻人的奋斗创业史》

通过这些示例,我们不仅展示了Qwen-7B-Chat模型的对话能力,也体现了其在理解和生成连贯、相关且富有创意的内容方面的强大潜力。随着对话的深入,Qwen-7B-Chat表现出的智能和灵活性无疑将为用户带来深刻的交互体验。

六、结语

通过本篇博文的实践探索,我们得以一窥Qwen-7B-Chat模型在智能对话领域的应用潜力。随着技术的不断进步和优化,我们有理由相信,Qwen-7B-Chat将在智能助手、客户服务、教育辅导等众多领域发挥重要作用。让我们共同期待,这一模型将如何进一步推动人机交互的边界。

在这里插入图片描述

🎯🔖更多专栏系列文章:AI大模型提示工程完全指南AI大模型探索之路(零基础入门)AI大模型预训练微调进阶AI大模型开源精选实践AI大模型RAG应用探索实践🔥🔥🔥 其他专栏可以查看博客主页📑

😎 作者介绍:我是寻道AI小兵,资深程序老猿,从业10年+、互联网系统架构师,目前专注于AIGC的探索。
📖 技术交流:欢迎关注【小兵的AI视界】公众号或扫描下方👇二维码,加入技术交流群,开启编程探索之旅。
💘精心准备📚500本编程经典书籍、💎AI专业教程,以及高效AI工具。等你加入,与我们一同成长,共铸辉煌未来。
如果文章内容对您有所触动,别忘了点赞、⭐关注,收藏!加入我,让我们携手同行AI的探索之旅,一起开启智能时代的大门!

评论 119
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值