当前位置: 首页 > news >正文

模型训练、部署遇到的问题

1.在 ​​AutoDL 实例​​ 上手动设置 ​​Hugging Face 镜像​​(如 hf-mirror.com

echo 'export HF_ENDPOINT=https://hf-mirror.com' >> ~/.bashrc
source ~/.bashrc  # 立即生效

2.缓存迁移和设置

# ✅ 1. 创建目标缓存目录
mkdir -p /root/autodl-tmp/cache# ✅ 2. 移动 huggingface 缓存(去掉重复目录名)
mv ~/.cache/huggingface /root/autodl-tmp/cache/# ✅ 3. 删除原目录或符号链接
rm -rf ~/.cache/huggingface# ✅ 4. 创建新的符号链接
ln -s /root/autodl-tmp/cache/huggingface ~/.cache/huggingface# ✅ 5. 可选:设置环境变量(确保 transformers 使用这个目录)
export HF_HOME=/root/autodl-tmp/cache/huggingface
echo 'export HF_HOME=/root/autodl-tmp/cache/huggingface' >> ~/.bashrc

3.版本问题

ValueError: Due to a serious vulnerability issue in torch.load...
we now require users to upgrade torch to at least v2.6
This version restriction does not apply when loading files with safetensors
发生原因:

这是由 HuggingFace 的 transformers 库(从 v4.41.0 开始)引入的强制安全限制

  • torch.load() 存在严重安全漏洞(编号 CVE-2025-32434):

    • 攻击者可通过篡改的 .bin 权重文件执行任意代码。

  • 所以 HuggingFace 限制了旧版本 PyTorch(<2.6)加载 .bin 权重,即使你设置了 weights_only=True,也不再信任。

解决方法汇总
方法是否推荐说明
方法 1:升级 PyTorch ≥ 2.6.0推荐根本解决安全限制,兼容所有模型
✅ 方法 2:降级 transformers 到 ≤4.40.2推荐绕过版本检查,适用于 PyTorch < 2.6 用户
✅ 方法 3:确保模型完整使用 .safetensors 格式条件有限仅当模型发布了 safetensors-only 权重时可行

4.显存不足 

加载并运行 Qwen/Qwen1.5-7B-Chat 本地大模型(7B参数量) 时,显存出现了爆满:

原因说明
模型过大Qwen 7B 模型全量 FP32 加载时通常占用 16~22GB 显存
未使用混合精度(FP16)默认是 FP32 精度,内存翻倍消耗
生成参数太大max_new_tokens=512,一次生成太多token,占显存
缓存碎片/未释放PyTorch 默认会预分配并保留部分显存,导致申请新内存失败
其他进程占用显存比如你在容器或多模型环境下,还有其他程序也占用显存
方法是否推荐效果说明
开启 FP16(混合精度)⭐⭐⭐⭐ 显存直接减少约 40%~50%
减少 max_new_tokens 数量⭐⭐⭐建议从 512 改为 256 或更低
清理显存碎片 (torch.cuda.empty_cache())⭐⭐⭐每次推理前释放未使用缓存显存
设置环境变量优化显存分配⭐⭐防止碎片:export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
重启程序/杀掉旧进程⭐⭐⭐清空旧模型或推理留下的显存
✅ 使用小模型(如 Qwen-1.5B)测试⭐⭐先验证流程,避免大模型调试成本
✅ 启用 device_map="auto" 分配模型到多卡⭐⭐多GPU部署时有效,单卡无法解决

 

http://www.dtcms.com/a/268436.html

相关文章:

  • 鼓式制动器的设计+(说明书和CAD【6张】 - 副本➕降重
  • jenkins安装
  • contain:paint和overflow:hidden的区别
  • C++高频知识点(二)
  • 9. 【Vue实战--孢子记账--Web 版开发】-- 账户账本管理(二)
  • 2025.7.6总结
  • android 获取手机配对的蓝牙耳机的电量
  • Flutter 项目开启 UI 层级虚线(UI Guides)
  • 【C++】string类(二)相关接口介绍及其使用
  • 植物大战僵尸杂交重制版1.0,经典焕新,重燃策略塔防之火
  • Altium Designer使用入门(非精通)教程 第三章(PCB绘制)
  • 前端开发深度剖析:核心痛点、隐藏陷阱与系统解决方案
  • 【MySQL进阶】MySQL架构
  • 【HarmonyOS】鸿蒙应用开发Text控件常见错误
  • AI+Web3:从自动化工具到自主经济体的范式革命
  • 爬虫-协议基础
  • 1865.找出和为指定值得下标对
  • Java笔记-下
  • MyBatis-Plus分页拦截器原理深度解析
  • new与malloc[c++面试系列]
  • GCC/G++编译器详解:从编译原理到动静态链接
  • 2025 JuniorCryptCTF re 部分wp
  • 【一起来学AI大模型】算法核心:数组/哈希表/树/排序/动态规划(LeetCode精练)
  • 【Docker基础】Docker数据卷管理:docker volume rm与prune命令对比
  • 计算机网络实验——配置ACL
  • vue3 当前页面方法暴露
  • 「Java题库」基础程序设计(理论+操作)
  • Excel 日期计算与最小日期选择(附示例下载)
  • DAY 49
  • monorepo + Turborepo --- 开发应用程序