新闻详情

新闻详情

首页 / 资讯中心 / 详情

PEFT Docker 镜像实战指南:基于 CPU 与 NVIDIA GPU 容器的参数高效微调测试环境

发布时间:2026/9/20 11:31:08来源:尧图网络
PEFT Docker 镜像实战指南:基于 CPU 与 NVIDIA GPU 容器的参数高效微调测试环境
人工智能大模型微调LoRA【免费下载链接】peft PEFT: State-of-the-art Parameter-Efficient Fine-Tuning.项目地址https://gitcode.com/gh_mirrors/pe/peft点击查看免费下载PEFTParameter-Efficient Fine-Tuning在仓库中维护了两套官方 Docker 镜像——peft-cpu与peft-gpu它们共同构成了 PEFT 测试基础设施的运行环境基座。本指南以 docker/README.md 为主线逐层拆解两个 Dockerfile 的构建策略、依赖清单与关键设计决策如多阶段构建、CUDA 计算能力硬编码、被暂时禁用的量化库帮助读者理解 PEFT 如何在容器内从源码装配完整的 Hugging Face 生态并掌握自行构建、验证与使用这两类镜像的完整方法。一、镜像定位为测试基础设施而生的容器环境docker/README.md 开篇即阐明其核心定位Here we store all PEFT Docker images used in our testing infrastructure. We use python 3.11 for now on all our images.也就是说docker/目录并非面向普通用户的「开箱即用」产品镜像而是服务于 PEFT 自身 CI/测试流程的工程化产物。理解这一点是读懂整个目录的前提统一的 Python 版本所有镜像统一使用Python 3.11保证测试环境版本一致、可复现两个镜像变体peft-cpu在 CPU 上编译安装 PEFT并安装全部 Hugging Face 核心库main 分支peft-gpu为 NVIDIA GPU 编译 PEFT同样基于各 HF 库的 main 分支并额外携带量化相关依赖与仓库质量体系挂钩根目录 Makefile 的check_dirs : src tests examples docs scripts docker表明docker目录本身也纳入ruff check/ruff format等代码质量检查范围其维护被视作仓库工程规范的一部分。二、peft-cpu单阶段构建的 CPU 测试基座CPU 镜像的完整构建脚本见 docker/peft-cpu/Dockerfile。它的设计思路是「以 conda 环境为容器内的隔离层」整体只有单一构建阶段。2.1 基础镜像与系统依赖FROM continuumio/miniconda3:latest AS compile-image ENV PYTHON_VERSION3.11 RUN apt-get update \ apt-get install -y curl git wget git-lfs ffmpeg libsndfile1-dev \ apt-get clean \ rm -rf /var/lib/apt/lists* RUN git lfs install基础镜像选用continuumio/miniconda3:latest目的正如注释所述减少构建时间避免重新下载完整 Python 发行版系统层安装git-lfs用于拉取托管在 Hugging Face Hub 上的大文件模型权重、ffmpeg与libsndfile1-dev音频数据处理所需并清理 apt 缓存控制镜像体积相关构建思路参考了同生态中 accelerate 项目的 GPU 镜像做法Dockerfile 注释中明确标注来源。2.2 conda 环境与路径激活RUN conda create --name peft python${PYTHON_VERSION} ipython jupyter pip RUN python3 -m pip install --no-cache-dir --upgrade pip ENV PATH/opt/conda/envs/peft/bin:$PATH RUN chsh -s /bin/bash SHELL [/bin/bash, -c]镜像内创建名为peft的 conda 虚拟环境同时预装ipython、jupyter便于调试并将$PATH指向/opt/conda/envs/peft/bin使后续RUN、CMD默认使用该环境。SHELL切换为 bash 是为了后续source activate指令能够正常工作。2.3 核心依赖HF 生态全部走 main 分支RUN source activate peft \ python3 -m pip install --no-cache-dir \ librosa \ soundfile0.12.1 \ scipy \ githttps://github.com/huggingface/transformers \ githttps://github.com/huggingface/accelerate \ peft[test]githttps://github.com/huggingface/peft这是 CPU 镜像最关键的一步有三个要点值得注意不装 PyTorchDockerfile 注释明确说明「We dont install pytorch here yet since CUDA isnt available, instead we use the direct torch wheel」——CPU 镜像中 PyTorch 由基础镜像/后续环节另行提供避免在无 GPU 的构建期引入 CUDA 依赖全部源码安装transformers、accelerate以及 PEFT 本体都通过githttps://...直接安装main 分支最新代码这正是 README 中「all other HF libraries installed on main branch」的落地实现。这样测试基础设施始终面向「尚未发布」的最新开发状态能够在发版前暴露回归安装peft[test]扩展[test]对应 setup.py 中定义的测试依赖组pytest、pytest-cov、pytest-xdist、parameterized、datasets、diffusers、scipy、scikit-learn、protobuf、sentencepiece、torchvision等保证容器开箱即可运行仓库的测试套件。2.4 收尾与默认命令RUN echo source activate peft ~/.profile CMD [/bin/bash]将source activate peft写入~/.profile使交互式 bash 会话自动激活peft环境容器默认命令为启动 bash方便 CI 脚本docker run后直接执行测试命令。三、peft-gpu多阶段构建的 NVIDIA 镜像GPU 镜像构建脚本见 docker/peft-gpu/Dockerfile它采用多阶段构建multi-stage以控制最终镜像体积Stage 1 在 conda 镜像中完成 Python 依赖装配Stage 2 切换到 CUDA 基础镜像并仅拷贝编译产物。3.1 阶段一compile-image准备 conda 环境FROM continuumio/miniconda3:latest AS compile-image ENV PYTHON_VERSION3.11 RUN apt-get update \ apt-get install -y curl git wget git-lfs ffmpeg libsndfile1-dev \ apt-get clean \ rm -rf /var/lib/apt/lists* RUN conda create --name peft python${PYTHON_VERSION} ipython jupyter pip ENV PATH/opt/conda/envs/peft/bin:$PATH RUN chsh -s /bin/bash SHELL [/bin/bash, -c]与 CPU 镜像的第一阶段几乎一致miniconda 基础上创建 Python 3.11 的peft环境并安装音频处理相关系统库。3.2 阶段二build-image切换 CUDA 运行基座FROM nvidia/cuda:13.2.1-cudnn-devel-ubuntu24.04 AS build-image COPY --fromcompile-image /opt/conda /opt/conda ENV PATH/opt/conda/bin:$PATH最终镜像基于nvidia/cuda:13.2.1-cudnn-devel-ubuntu24.04CUDA 13.2.1 cuDNN 开发版 Ubuntu 24.04为 GPU 训练/量化提供运行时通过COPY --fromcompile-image /opt/conda /opt/conda把阶段一装配好的整个 conda 目录搬入最终镜像这是多阶段构建的核心手法——构建期使用轻量镜像准备依赖运行期只保留带 CUDA 的最终层注意 PATH 指向/opt/conda/bin与 CPU 镜像的/opt/conda/envs/peft/bin略有不同后续统一通过conda run -n peft执行命令。3.3 量化库与加速库装配RUN conda run -n peft pip install --no-cache-dir bitsandbytes optimum先安装bitsandbytes4/8 bit 量化训练与optimum为后续 PEFT 的量化相关测试如tests/test_quantization.py场景做准备。随后主安装命令RUN conda run -n peft pip install -U --no-cache-dir \ librosa \ soundfile0.12.1 \ scipy \ torchao \ fbgemm-gpu-genai1.2.0 \ githttps://github.com/huggingface/transformers \ githttps://github.com/huggingface/accelerate \ peft[test]githttps://github.com/huggingface/peft \ aqlm[gpu]1.0.2 \ hqq \ deepspeed \ kernels0.16 \ conda run -n peft pip install -U --no-cache-dir mslk --index-url https://download.pytorch.org/whl/cu132与 CPU 镜像相比GPU 镜像明显是为「重量级、多方法」测试设计的依赖作用从仓库测试场景推断torchaoPyTorch 低精度量化/优化原语对应tests/test_torch_compile.py等编译与量化测试场景fbgemm-gpu-genai1.2.0生成式 AI 场景的 GPU 内核库GEMM 优化aqlm[gpu]1.0.2AQLM 极低比特量化用于量化推理测试hqqHQQ 半二次量化同样服务于量化相关测试deepspeedDeepSpeed 分布式训练引擎对应 Makefile 中tests_training目标使用的tests/training/deepspeed_config.yamlkernels0.16供部分 tuner 使用的自定义内核mslk从 PyTorch 官方 cu132 wheel 源安装配合 CUDA 13.2 基础镜像安装完成后以pip freeze | grep transformers校验版本并把source activate peft写入~/.profileCMD [/bin/bash]结束。四、被禁用的组件Dockerfile 中的工程决策记录GPU Dockerfile 中大量以注释形式保留的RUN指令实际上是 PEFT 团队测试策略的动态记录阅读时信息量不亚于正式指令# Note: we are hard-coding CUDA_ARCH_LIST here since gptqmodel requires either nvidia-smi # or CUDA_ARCH_LIST for compute capability information. Since the docker build is unlikely # to have compute hardware available we use the information from the CI runner (which hosts # a NVIDIA L4). So we fix the compute capability to 8.9. # TODO pcre, which is used by gptqmodel, is resulting in a core dump, remove once its resolved # RUN CUDA_ARCH_LIST8.9 conda run -n peft pip install gptqmodel7.0.0CUDA_ARCH_LIST8.9 硬编码gptqmodel需要nvidia-smi或CUDA_ARCH_LIST获取算力信息而构建机通常无 GPU。由于 CI runner 实际搭载 NVIDIA L4算力 8.9镜像将该值固定为 8.9——这是一个可复用的关键经验在无 GPU 的构建环境中安装需要编译的内核库时显式指定CUDA_ARCH_LIST可以绕过设备探测gptqmodel 暂时停用其依赖pcre在容器内触发 core dump故gptqmodel7.0.0安装被注释待问题解决后恢复EETQ 停用EETQ 使用-stdc17而 PyTorch 2.14 起最低要求 C20版本冲突导致编译失败相关测试被跳过Transformer Engine 停用导入 TE 时出现undefined symbol: cublasLtGroupedMatrixLayoutInit_internal符号缺失对应 libcublasLt.so.13注释中给出上游 issue 编号待修复后恢复。这些注释的价值在于它们精确记录了每个被排除组件的技术原因与恢复条件是判断 PEFT 当前量化测试覆盖范围的直接证据对应tests/test_gptqmodel.py等测试文件的启用状态。五、构建与使用从镜像到跑测试5.1 构建镜像在仓库根目录执行对应 docker/peft-cpu/Dockerfile 与 docker/peft-gpu/Dockerfile# CPU 镜像 docker build -t peft-cpu docker/peft-cpu/ # GPU 镜像构建机需能拉取 nvidia/cuda 基础镜像 docker build -t peft-gpu docker/peft-gpu/需要说明的适用前提GPU 镜像构建不需要构建机具备真实 GPU阶段二通过COPY拷贝 conda 目录而非现场编译 PyTorch但最终运行需要 NVIDIA 容器运行时nvidia-container-toolkit来暴露 GPU。5.2 运行与验证# 进入 CPU 测试环境 docker run --rm -it peft-cpu # 进入 GPU 测试环境需要 GPU docker run --rm -it --gpus all peft-gpu # 直接执行仓库测试套件 docker run --rm peft-cpu python -m pytest tests/容器默认进入 bash 且自动激活peftconda 环境其中已包含peft[test]全量测试依赖可直接运行 Makefile 中定义的测试目标如python -m pytest -n 3 tests/或仅执行 CPU 兼容的测试子集。5.3 与 CI 测试矩阵的关系从仓库结构推断从仓库当前布局看GPU 相关测试集中在tests/test_common_gpu.py、tests/test_gpu_examples.py、tests/test_quantization.py、tests/test_torch_compile.py等文件中而 Makefile 为它们准备了tests_common_gpu、tests_examples_single_gpu、tests_examples_multi_gpu等目标部分带bitsandbytes标记。可以推断peft-gpu镜像即是为承载这一类 GPU/量化测试矩阵而构建的运行基座peft-cpu则用于日常 CPU 回归。六、总结镜像即测试策略的载体通过本次拆解可以提炼出 PEFT Docker 镜像设计的几条核心原则面向 main 分支HF 生态全部源码安装让测试环境始终对齐最新开发状态Python 3.11 统一基线全镜像一致降低环境漂移带来的复现问题多阶段构建GPU 镜像在 conda 轻量镜像中准备依赖、在 CUDA 镜像中落地运行兼顾构建速度与最终体积量化矩阵显式管理bitsandbytes/optimum/aqlm/hqq/torchao按需装配而gptqmodel/EETQ/Transformer Engine 的停用原因以注释形式留存形成一份可审计的工程决策日志。对于希望复现 PEFT 测试环境或搭建同类 HF 生态容器的开发者这两个 Dockerfile 本身就是一份高质量范本CPU 版展示了最小化测试基座的装配方式GPU 版则示范了 CUDA 架构硬编码、构建期依赖隔离与禁用组件的完整管理流程。更深入的信息可继续查阅 docker/peft-cpu/Dockerfile、docker/peft-gpu/Dockerfile以及配套测试目标所在的 Makefile 与 tests 目录。赞分享人工智能大模型微调LoRA【免费下载链接】peft PEFT: State-of-the-art Parameter-Efficient Fine-Tuning.项目地址https://gitcode.com/gh_mirrors/pe/peft点击查看免费下载相关推荐TimesFM 2.5 LoRA 参数高效微调实战基于 HuggingFace Transformers 与 PEFT 的完整指南TimesFM 2.5 LoRA 参数高效微调实战基于 HuggingFace Transformers 与 PEFT 的完整指南 本指南系统讲解如何在当前仓人工智能基础模型大模型时序预测微调LeRobot 容器化部署完全指南基于 Docker 的 CPU/GPU 镜像选择、构建与训练实战LeRobot 容器化部署完全指南基于 Docker 的 CPU/GPU 镜像选择、构建与训练实战 本篇技术指南围绕 LeRobot 仓库 docker/ h人工智能机器学习深度学习机器人具身智能强化学习基于 Transformers 与 PEFT 的 LLaMA3-8B-Instruct LoRA 高效微调实战指南基于 Transformers 与 PEFT 的 LLaMA3 8B Instruct LoRA 高效微调实战指南 本指南以 Datawhale 开源项目《开源大模型人工智能教程本地部署微调上一篇try快捷键冲突解决常见终端工具的兼容性处理方案下一篇Android热修复终极指南10分钟掌握主流热修复方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

显卡驱动掉了别慌,从系统修复到Linux重装的全套方案 2026/9/20 14:16:41

显卡驱动掉了别慌,从系统修复到Linux重装的全套方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI Agent平台选型实战:从低代码到代码框架一次讲透 2026/9/20 14:16:41

AI Agent平台选型实战:从低代码到代码框架一次讲透

选AI Agent平台这件事,2025年问的人就很多,到了2026年,问题反而更难回答了。两年前提“AI Agent”,大家默认是在说某个大模型API怎么调;现在再提“AI Agent平台”,背后已经是一整套从模型、记忆、工具到工作…

阅读更多 →
工作流编排与原生多模态Agent:多模态任务的技术选型与实践 2026/9/20 14:16:41

工作流编排与原生多模态Agent:多模态任务的技术选型与实践

1. 两种方案背后的产品思路差异1.1 传统工作流编排:把复杂问题拆成流水线传统工作流编排的核心逻辑,一句话概括就是“分而治之”。它不是让一个模型从头到尾理解整个任务,而是把任务拆成多个原子节点,每个节点只做一件简单的事&am…

阅读更多 →
使用 Microsoft.Extensions.Hosting.Systemd 将 .NET 应用部署为 systemd 服务 2026/9/20 14:16:41

使用 Microsoft.Extensions.Hosting.Systemd 将 .NET 应用部署为 systemd 服务

使用 Microsoft.Extensions.Hosting.Systemd 将 .NET 应用部署为 systemd 服务 【免费下载链接】runtime .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps. 项目地址: https://gitcode.com/GitHub_Trending/runtime6/runtime Microsoft.Ext…

阅读更多 →
Apache SkyWalking 浏览器监控(Browser Agent)接入指南:Client JS 上报与 receiver-browser 配置详解 2026/9/20 14:16:41

Apache SkyWalking 浏览器监控(Browser Agent)接入指南:Client JS 上报与 receiver-browser 配置详解

可观测性后端微服务云原生 【免费下载链接】skywalking APM, Application Performance Monitoring System 项目地址: https://gitcode.com/gh_mirrors/sky/skywalking 点击查看 免费下载 浏览器端监控是 SkyWalking 前端可观测性体系的重要一环:通过客户…

阅读更多 →
S1000D转换工具包解析:从数据模块到PDF/IETP的开源实现 2026/9/20 14:13:40

S1000D转换工具包解析:从数据模块到PDF/IETP的开源实现

简介:S1000D Transformation Toolkit 是一款面向航空航天与国防工业的开源技术出版物处理工具,围绕 S1000D 国际标准,重点解决复杂技术文档的转换、发布与跨平台分发难题。工具集的核心功能包括数据转换、内容打包和格式输出:可把…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞