本地部署阿里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社区也非常活跃,参与其中可以帮助你更快地进步。祝你学习愉快!
相关推荐
安思派Anspire2 分钟前
再见 RAG?Gemini 2.0 Flash 刚刚 “杀死” 了它!
人工智能
FF-Studio5 分钟前
【硬核数学】3. AI如何应对不确定性?概率论为模型注入“灵魂”《从零构建机器学习、深度学习到LLM的数学认知》
大数据·人工智能·深度学习·机器学习·数学建模·自然语言处理·概率论
master-dragon8 分钟前
spring-ai 工作流
人工智能·spring·ai
MO2T25 分钟前
使用 Flask 构建基于 Dify 的企业资金投向与客户分类评估系统
后端·python·语言模型·flask
慢热型网友.28 分钟前
用 Docker 构建你的第一个 Python Flask 程序
python·docker·flask
Naiva28 分钟前
【小技巧】Python + PyCharm 小智AI配置MCP接入点使用说明(内测)( PyInstaller打包成 .exe 可执行文件)
开发语言·python·pycharm
云动雨颤32 分钟前
Python 自动化办公神器|一键转换所有文档为 PDF
运维·python
moonless022238 分钟前
🌈Transformer说人话版(二)位置编码 【持续更新ing】
人工智能·llm
小爷毛毛_卓寿杰38 分钟前
基于大模型与知识图谱的对话引导意图澄清系统技术解析
人工智能·llm
梅孔立1 小时前
yum update 报错 Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 等解决办法
linux·python·centos