220、【AI】【模型部署】跑起第一个模型(上):装 CPU 环境与下载 Qwen2.5-0.5B
2026/9/13 23:22:35 网站建设 项目流程

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

标题

220、【AI】【模型部署】跑起第一个模型(上):装 CPU 环境与下载 Qwen2.5-0.5B

背景

上篇 blog
【AI】【模型部署】装库前先"隔离":venv 虚拟环境从概念到落地
把环境概念讲清了:venv 是 Python 官方的隔离方案——python3 -m venv myenv建独立房间(自己的 bin/python、pip 与 site-packages),激活source …/activate、退出deactivate,前缀方式等价;Ubuntu/Debian 的 PEP 668 会拦系统级pip install,正解是先进 venv;venv 装坏可删目录重建。本篇在这个 venv 里正式动手:装 CPU 版 torch、transformers、modelscope,并从 ModelScope 下载开源模型Qwen2.5-0.5B-Instruct——跑起第一个模型的"准备篇",下一篇在 Notebook 里真正推理

模型部署

目标是把一个真实模型跑起来。第一步不是"跑",是先把三样东西放进 venv:能算数的张量库会加载模型的推理库能从国内仓库拉模型文件的下载工具


🔍为什么是这三件套 + CPU 版

职责中文定位
torch张量计算、跑神经网络模型运行的地基
transformers加载模型、分词、推理统一 API模型的"通用挂载层"
modelscope从 ModelScope 下载模型文件国内模型仓库的下载器

torch 特意选CPU 版:本机没有 GPU,装默认版会拖进几 GB 的 CUDA 运行库(用不上);官方提供了单独的 CPU wheel 源,体积小很多。


🧩第一步:装 CPU 版 torch

在 venv 里用官方 CPU 源安装(--index-url只对这一次生效):

jupyter-venv/bin/pipinstalltorch\--index-url https://download.pytorch.org/whl/cpu# 实际输出关键行:# Using cached torch-2.14.0+cpu-cp312-cp312-manylinux_2_28_x86_64.whl (196.3 MB)# Successfully installed … torch-2.14.0+cpu

版本号里的+cpu后缀是辨别标记:2.14.0+cpu表示"纯 CPU 版",与 CUDA 版是两套 wheel,装错会互不可见。196MB 的包是压缩大小,解压后占约几百 MB,属正常。


🧩第二步:装 transformers 与 modelscope

这两个走默认 PyPI 即可,体积小:

jupyter-venv/bin/pipinstalltransformers modelscope# 实际输出关键行:# Successfully installed … transformers-5.16.1 modelscope-1.40.0

装完用一条命令确认三件套版本(顺带验证 import 不报错):

jupyter-venv/bin/python-c\"import torch, transformers, modelscope; print(torch.__version__, transformers.__version__, modelscope.__version__)"# 2.14.0+cpu 5.16.1 1.40.0

如何确认装的是纯 CPU 版:跑一条自检,看 CUDA 与线程情况:

jupyter-venv/bin/python-c\"import torch; print('cuda_built=', torch.backends.cuda.is_built()); print('threads=', torch.get_num_threads())"# cuda_built= False# threads= 8

cuda_built=False直接证明这是无 CUDA 的纯 CPU 构建;threads=8表示推理会用到本机 8 核——CPU 推理慢不等于单核,torch 会尽量吃满多核。


🧩第三步:下载 Qwen2.5-0.5B-Instruct

模型仓库在 ModelScope,用官方 SDK 一键下载整份文件:

jupyter-venv/bin/python-c\"from modelscope import snapshot_download; print(snapshot_download('Qwen/Qwen2.5-0.5B-Instruct'))"

下载完成会打印缓存目录;实测本机结果:

/home/adminpc/.cache/modelscope/models/Qwen--Qwen2.5-0.5B-Instruct/snapshots/master

本次实测:11 个文件约21 秒全部拉完(峰值约 55MB/s),期间进度条按文件逐一下载、最大的是 943MB 的 model.safetensors。

为什么选它:0.5B(约 5 亿参数)是能在 CPU 上流畅跑的最小档,又保留了完整的对话能力(Instruct 版带指令微调),跑通后再换大模型只是换一行仓库名。参数与文件体积的关系可先验算:权重字节数 ≈ 参数量 × 每参数字节数,Qwen2.5-0.5B 用 bf16 存储(每参数 2 字节),0.5×10⁹ × 2 ≈ 1GB——与实际 943MB 的model.safetensors对得上。照此估算,7B 模型光权重就要 ~14GB,CPU 内存吃紧,这也是先从 0.5B 入手的原因。


📚下载到手的到底是什么:11 个文件、约 1GB

下载清单(实测):

文件大小是什么
config.json659 B架构与超参声明
model.safetensors943 MB模型全部权重(真正的大头)
tokenizer.json/vocab.json/merges.txt~11 MB分词器三件套
generation_config.json242 B生成参数默认值
tokenizer_config.json7 KB分词器配置(特殊符号等)
README.md/LICENSE/ 其余<20 KB说明与许可

下载速度实测约 55 MB/s,1GB 总量几十秒内完成;目录整体占用 954MB。两个实用细节:

  • 重复下载是幂等的snapshot_download重跑会先比对已存在文件,只补缺失/变化的部分,不会把 1GB 重新拉一遍;
  • 缓存位置可改:默认落在~/.cache/modelscope/,可用环境变量MODELSCOPE_CACHE指到别的目录(比如放在项目旁,方便整目录拷贝去服务器)。

四个常见坑,遇事先对号入座

现象原因对策
系统里 pip 直接被拒PEP 668 拦系统 Python到 venv 里装(219 讲过)
torch 装完体积巨大没走 CPU 源,拉了带 CUDA 的默认版--index-url https://download.pytorch.org/whl/cpu
from_pretrained报找不到仓库仓库名/平台写错(ModelScope 与 HuggingFace 各管一套)用 modelscope 的Qwen/Qwen2.5-0.5B-Instruct这种"组织/模型"全名
换了模型名仍秒失败本地无缓存又没网snapshot_download下到本地,再本地目录加载

至此"模型"已经安静地躺在本机缓存里——它不是装进 pip 的包,而是一堆文件,下一篇就用 Notebook 把其中最核心的config.jsonmodel.safetensors加载起来真正推理。

最后看一眼这一步的空间账(实测,便于心里有数):venv 的 site-packages 共约 1.4GB,其中 torch 769MB、transformers 113MB、modelscope 66MB;模型缓存另占 954MB。也就是说装推理环境 + 一个小模型 ≈ 2.4GB——换大模型(7B 起)时模型本身会到十几 GB,提前规划磁盘。


📌一句话记忆

跑模型第一步是环境:在 venv 里装 CPU 版 torch(--index-url …/whl/cpu,得2.14.0+cpu)+ transformers(加载/推理 API)+ modelscope(下载工具);再用snapshot_download('Qwen/Qwen2.5-0.5B-Instruct')从 ModelScope 拉下约 1GB 的 11 个文件到缓存目录——模型本质是一堆文件(config.json 声明结构、model.safetensors 装权重),下一篇把这些文件加载起来跑第一次推理。


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【AI】【模型部署】跑起第一个模型(下):Notebook 里首次推理

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询