PyTorch 不会单独提供一条“部署 DeepSeek”命令;常见做法是用 Transformers 加载具体模型仓库,底层张量由 PyTorch 执行。入门应选择较小的蒸馏模型,并把模型名、dtype 和设备记录清楚。 示例依据 DeepSeek-R1-Distill-Qwen-1.5B 模型卡和 Transformers 文档整理,未在你的硬件运行;模型许可、依赖版本、显存、远程代码和生产服务化需另行核对。
本篇验收要点:从明确的 Hugging Face 模型仓库加载 tokenizer 和 AutoModelForCausalLM,先选择 1.5B 蒸馏模型完成单请求验证。 加载后打印首个参数的 device 和 dtype,生成时查看系统监控,并确认 input tensors 与模型位于兼容设备。

开始前准备
- 隔离 Python 环境
- 与硬件匹配的 PyTorch、Transformers 版本
- 足够磁盘和内存
- 已阅读目标模型卡和许可
按顺序搭建
- 创建虚拟环境,按 PyTorch 官方安装选择 CPU 或对应加速版本,再安装 Transformers;不要混用多个环境的 pip。
- 在模型卡确认准确 repo_id、任务类型和建议用法。首次测试用不含隐私的短问题。
- 加载 tokenizer 和 CausalLM。设备映射用当前 Transformers 支持方式,dtype 按硬件能力选择;失败时先退回 CPU 或 float32 排查。
- 将提示按模型卡推荐模板编码,设置有限 max_new_tokens,运行一次生成并解码新增 token。
- 打印 device、dtype、输入长度和输出长度;再次运行比较是否只是首次下载或编译较慢。
可复制的最小示例
以下是最小形状,参数需按当前模型卡和硬件调整:
from transformers import AutoTokenizer, AutoModelForCausalLM
repo = "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, device_map="auto")
print(next(model.parameters()).device, next(model.parameters()).dtype)
inputs = tok("只用一句话解释向量检索。", return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=80)
print(tok.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
怎样验收结果
验证标准是模型与 tokenizer 来自准确仓库,代码输出实际 device 和 dtype,生成结果非空且可人工检查,重复运行不再重复下载,资源峰值在机器可接受范围内。
- 记录 repo_id 和 revision
- 打印实际 device/dtype
- 限制输出 token
- 区分首次下载和推理耗时
常见失败与处理
- CUDA 不可用:检查当前环境的 PyTorch 构建、驱动和 torch.cuda.is_available。
- 内存不足:改用更小模型、量化方案或 CPU,不盲目重复加载。
- 设备不一致:把 inputs 移到模型实际输入设备。
读者下一步是在隔离环境先打印 PyTorch 的设备可用性,再加载准确的 1.5B 仓库做一次短生成并记录资源。
相关问答
1.5B 模型等于完整 DeepSeek-R1 吗?
不是。它是官方发布的蒸馏小模型,基础架构和参数规模与完整模型不同。
device_map=auto 一定会用 GPU 吗?
不一定。它会根据环境和资源映射;必须打印设备并结合监控验证。
官方资料与适用边界
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/32493.html