本地部署阿里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社区也非常活跃,参与其中可以帮助你更快地进步。祝你学习愉快!
相关推荐
捂一捂啊啊32 分钟前
深度学习中的yield
人工智能·深度学习
计算机软件程序设计38 分钟前
酒店/电影推荐系统里面如何应用深度学习如CNN?
人工智能·深度学习·cnn·textcnn
正在走向自律2 小时前
AI 写作(一):开启创作新纪元(1/10)
人工智能·aigc·ai写作
杨琴12 小时前
基于NVIDIA NIM 平台打造智能AI知识问答系统
人工智能
盼小辉丶2 小时前
内容安全与系统构建加速,助力解决生成式AI时代的双重挑战
人工智能·深度学习·aigc
再不会python就不礼貌了2 小时前
震撼!最强开源模型通义千问2.5 72B竟在4GB老显卡上成功运行!
人工智能·算法·机器学习·chatgpt·产品经理
途途途途3 小时前
Python 给 Excel 写入数据的四种方法
windows·python·excel
走在考研路上5 小时前
Python错误处理
开发语言·python
数据小爬虫@5 小时前
Python爬虫:如何优雅地“偷窥”商品详情
开发语言·爬虫·python
霍格沃兹测试开发学社测试人社区5 小时前
OpenAI Chatgpt 大语言模型
软件测试·人工智能·测试开发·语言模型·chatgpt