目录

本地部署阿里Qwen2.5大模型

引言

Qwen2.5 是阿里巴巴云推出的一款高性能大模型,广泛应用于文本生成、对话系统、翻译等多个领域。 本文将详细介绍如何借助魔搭社区(ModelScope)在本地环境中部署 Qwen2.5 大模型。

环境

准备在开始部署之前,确保你的本地环境满足以下要求:

  1. Python 环境:建议使用 Python 3.9 及以上版本,测试版本为3.12。

  2. GPU:使用带有 CUDA 支持的 GPU,测试cuda版本为12.4,显卡为3060。

  3. python库:transformer 4.46,torch 2.5.1+cu124,modelscope 1.20.1 快速安装这些用到的python库

    shell 复制代码
    
    # 如果还没有创建项目可以使用下面三行命令创建一个带有虚拟环境的项目,如果已有项目请忽略
    mkdir qwen_demo & cd qwen_demo
    # 创建虚拟环境
    python -m venv myenv
    # 激活虚拟环境(Windows)
    myenv\Scripts\activate
    
    # 安装支持cuda 12.4版本的torch
    pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu124
    
    # 安装transformers和modelscope
    pip install transformers==4.46 modelscope==1.20.1

安装qwen2.5

我们使用modelscope安装qwen2.5。 根目录下创建main.py,下载的时候可以选择更大参数的版本,测试选择的是1.5B参数的大模型,更大参数需要更高硬件配置的支持。

python 复制代码
from modelscope import snapshot_download

# Downloading model checkpoint to a local dir model_dir
# model_dir = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct')
# model_dir = snapshot_download('Qwen/Qwen2.5-7B-Instruct')
# model_dir = snapshot_download('Qwen/Qwen2.5-32B-Instruct')
# model_dir = snapshot_download('Qwen/Qwen2.5-72B-Instruct')
model_dir = snapshot_download('Qwen/Qwen2.5-1.5B-Instruct')

执行main.py文件 如果电脑上还没有相应版本的qwen,会先下载模型,等待下载完成即可

加载模型

python 复制代码
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_dir,
    device_map="auto",
    trust_remote_code=True
).eval()

与模型进行交流

python 复制代码
# 准备输入
input_text = '''你好!'''
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
print(inputs)

# 生成输出
with torch.no_grad():
    outputs = model.generate(**inputs, max_length=5000)

# 解码输出
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)

print(generated_text)

完整代码

python 复制代码
from modelscope import snapshot_download
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Downloading model checkpoint to a local dir model_dir
# model_dir = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct')
# model_dir = snapshot_download('Qwen/Qwen2.5-7B-Instruct')
# model_dir = snapshot_download('Qwen/Qwen2.5-32B-Instruct')
# model_dir = snapshot_download('Qwen/Qwen2.5-72B-Instruct')
model_dir = snapshot_download('Qwen/Qwen2.5-1.5B-Instruct')

# Loading local checkpoints
# trust_remote_code is still set as True since we still load codes from local dir instead of transformers
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_dir,
    device_map="auto",
    trust_remote_code=True
).eval()


# 准备输入
input_text = '''如何快速学习python'''
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
print(inputs)

# 生成输出
with torch.no_grad():
    outputs = model.generate(**inputs, max_length=5000)

# 解码输出
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)

print(generated_text)

再次执行main.py,输出内容是md格式

shell 复制代码
(myenv) PS E:\py-projects\qwen-demo\qwen_demo> .\myenv\Scripts\python.exe .\main.py
Downloading Model to directory: C:\Users\Administrator\.cache\modelscope\hub\Qwen/Qwen2.5-1.5B-Instruct
2024-12-04 14:14:04,758 - modelscope - INFO - Creating symbolic link [C:\Users\Administrator\.cache\modelscope\hub\Qwen/Qwen2.5-1.5B-Instruct].
2024-12-04 14:14:04,759 - modelscope - WARNING - Failed to create symbolic link C:\Users\Administrator\.cache\modelscope\hub\Qwen/Qwen2.5-1.5B-Instruct.
{'input_ids': tensor([[100007, 101098, 100134,  12669]], device='cuda:0'), 'attention_mask': tensor([[1, 1, 1, 1]], device='cuda:0')}
如何快速学习python,可以推荐一些书籍吗? 学习Python是一个循序渐进的过程,以下是一些建议的书籍和资源:

1. **《Python编程:从入门到实践》** - Michael Dawson
   这本书非常适合初学者。它以项目为导向,帮助你理解如何在实际问题中应用Python。

2. **《Python权威指南》(第4版)** - Mark Lutz, David Ascher, and David Ascher
   作为一本经典的Python教程,这本书详细介绍了Python的各种功能,并通过大量的示例来说明如何使用它们。

3. **《Automate the Boring Stuff with Python》** - Al Sweigart
   这本书教你如何编写自动化脚本,包括数据处理、网络爬虫等实用技能。

4. **《Effective Python: 59 Specific Ways to Write Better Python Code》** - Brett Slatkin
   提供了Python编程的最佳实践,适合希望提高代码质量的专业开发者。

5. **《Python Cookbook》 (第二版)**
   这本书包含了很多高级主题,如装饰器、元类、多线程等,非常适合想要深入学习Python语言特性的读者。

6. **《深入浅出Python》(第3版)**
   这本书是专门为程序员设计的,内容覆盖了Python的基础知识以及更高级的主题。

7. **《Learning Python》**
   著名Python讲师Brett Cannon撰写的这本教材非常受欢迎,适合希望系统地学习Python的读者。

8. **在线课程和视频教程**
   如Coursera、Udemy、edX等平台上的Python课程也非常值得一看,特别是那些由知名教授或专家讲授的课程。

9. **Stack Overflow**
   Stack Overflow上有许多关于Python的问题和答案,对于解决具体技术问题非常有帮助。

10. **GitHub上的开源项目**
    GitHub上有很多Python项目的源码,你可以查看这些项目的实现方式,从中学习不同的编程技巧和最佳实践。

选择合适的书籍和资源时,请根据你的兴趣和当前的学习水平进行调整。Python社区也非常活跃,参与其中可以帮助你更快地进步。祝你学习愉快!
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
Mr_LeeCZ6 分钟前
PyTorch 深度学习 || 7. Unet | Ch7.1 Unet 框架
人工智能·深度学习·机器学习
James. 常德 student9 分钟前
多GPU训练
人工智能·pytorch·深度学习
梦回阑珊12 分钟前
《QT从基础到进阶·七十四》Qt+C++开发一个python编译器,能够编写,运行python程序改进版
c++·python·qt
前端开发张小七15 分钟前
13.Python Socket服务端开发指南
前端·python
前端开发张小七17 分钟前
14.Python Socket客户端开发指南
前端·python
Jozky8620 分钟前
大语言模型在端到端智驾中的应用
人工智能·语言模型·自然语言处理
Y1nhl26 分钟前
搜广推校招面经六十六
pytorch·python·深度学习·机器学习·广告算法·推荐算法·搜索算法
脑洞专家41 分钟前
基于改进的点线融合和关键帧选择的视觉SLAM 方法
人工智能·机器学习·计算机视觉
码界筑梦坊1 小时前
基于Django的二手交易校园购物系统
大数据·后端·python·信息可视化·django
明月看潮生2 小时前
青少年编程与数学 02-015 大学数学知识点 09课题、专业相关性分析
人工智能·青少年编程·数据科学·编程与数学·大学数学