tencent cloud

腾讯云 TI 平台

产品简介
产品概述
产品定价
客户价值
应用场景
购买指南
计费概述
购买方式
续费说明
欠费说明
安全合规
数据安全保护机制
监控、审计与日志
安全合规资质
快速入门
平台使用准备
操作指南
大模型广场
任务式建模
开发机
模型管理
模型评测
在线服务
资源组管理
数据源管理
Tikit
GPU 虚拟化
实践教程
LLM 部署及推理
LLM 训练及评测
内置训练镜像列表
自定义训练镜像规范
Angel 训练加速功能介绍
基于标签实现子用户间资源隔离
相关协议
TI Platform 隐私协议
TI Platform 数据处理和安全协议
开源软件信息
联系我们
文档腾讯云 TI 平台实践教程自定义训练镜像规范

自定义训练镜像规范

PDF
聚焦模式
字号
最后更新时间: 2025-05-09 15:58:20
若平台内置镜像不满足您的需求,您也可以使用自定义镜像创建训练任务和 Notebook 实例,以下是自定义镜像的 Dockerfile 示例:

基本镜像规范

若想要自定义镜像能在 任务式建模 启动训练任务,要求镜像安装 openssh-server 组件,示例如下:
# 基础镜像请自行修改
FROM ubuntu:20.04

# 安装 openssh-server
RUN apt-get update && apt-get install -y openssh-server && apt-get clean && mkdir -p /var/run/sshd
说明:
若基础镜像是 centos 系统的话,使用 yum/dnf 进行包管理,请自行调整安装命令。

Notebook 镜像规范

若想要自定义镜像能在 Notebook 启动实例,除了要满足上述基本镜像规范以外,还要求安装 JupyterLab 组件,并设置相应的 /opt/dl/run 启动脚本,示例如下:
# 基础镜像请自行修改
FROM ubuntu:20.04

# 安装 openssh-server
RUN apt-get update && apt-get install -y openssh-server && apt-get clean && mkdir -p /var/run/sshd

# 安装 python3、pip3
RUN apt-get update && apt-get install -y python3.8 python3.8-distutils curl && \\
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \\
python3.8 get-pip.py && rm -f get-pip.py

# 安装 jupyterlab
RUN pip3 install jupyterlab

# 配置 /opt/dl/run 启动脚本
RUN mkdir -p /opt/dl && echo "cd /home/tione/notebook && jupyter lab --allow-root --no-browser --ip=0.0.0.0 --port=8888 --notebook-dir=/home/tione/notebook --NotebookApp.allow_origin='*' --NotebookApp.token=''" > /opt/dl/run && chmod a+x /opt/dl/run
说明:
若基础镜像已经包含了对应的包,请自行跳过对应安装命令。
这里 /home/tione/notebook 是 Notebook 默认的磁盘挂载路径,镜像中是否有该路径不影响平台中使用。

完整自定义镜像 Dockerfile 示例

以下是一个基于 NVIDIA 的 PyTorch 镜像构建支持创建训练任务和 Notebook 实例的完整自定义镜像示例,推荐直接基于此示例制作自定义镜像:
# [推荐] 使用 NVIDIA 的 PyTorch 镜像作为基础镜像,以兼容较新的开源库和 GPU 卡类型
FROM nvcr.io/nvidia/pytorch:23.07-py3

# [推荐] 修改软件源(若在腾讯云使用推荐用内网源)
# [腾讯外网软件源] mirrors.tencent.com
# [腾讯云内网软件源] mirrors.tencentyun.com
ENV TENCENT_MIRRORS="mirrors.tencentyun.com"
RUN sed -i "s/archive.ubuntu.com/${TENCENT_MIRRORS}/g" /etc/apt/sources.list && \\
sed -i "s/security.ubuntu.com/${TENCENT_MIRRORS}/g" /etc/apt/sources.list && \\
pip config set global.index-url http://${TENCENT_MIRRORS}/pypi/simple && \\
pip config set global.no-cache-dir true && \\
pip config set global.trusted-host ${TENCENT_MIRRORS}

# [推荐] 若使用 NVIDIA 的 PyTorch 镜像,推荐删除默认的 NVIDIA 源,以加快 pip 包查询和安装速度
RUN rm /etc/xdg/pip/pip.conf /etc/pip.conf /root/.pip/pip.conf /root/.config/pip/pip.conf && pip config unset global.extra-index-url

# [基本镜像规范] 安装 openssh-server, notebook的ssh登录功能以及任务式建模均依赖openssh-server 组件
RUN apt-get update && apt-get install -y openssh-server && apt-get clean && mkdir -p /var/run/sshd

# [Notebook 镜像规范] 配置 /opt/dl/run 启动入口
RUN mkdir -p /opt/dl && echo "cd /home/tione/notebook && jupyter lab --allow-root --no-browser --ip=0.0.0.0 --port=8888 --notebook-dir=/home/tione/notebook --NotebookApp.allow_origin='*' --NotebookApp.token=''" > /opt/dl/run && chmod a+x /opt/dl/run

# [推荐] 使用tini作为entrypoint,方便回收僵尸进程
RUN apt-get update && apt-get install -y tini && apt-get clean
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]

# [可选 - 使用 HCC-GPU 实例时推荐安装] TCCL RDMA 通信优化
# (若使用 NVIDIA 的 PyTorch 镜像,需要删除 /opt/hpcx/nccl_rdma_sharp_plugin/lib 中预装的 NCCL 插件)
RUN wget https://taco-1251783334.cos.ap-shanghai.myqcloud.com/nccl/nccl-rdma-sharp-plugins_1.2_amd64.deb && \\
dpkg -i nccl-rdma-sharp-plugins_1.2_amd64.deb && rm -f nccl-rdma-sharp-plugins_1.2_amd64.deb && \\
rm -rf /opt/hpcx/nccl_rdma_sharp_plugin/lib/*

# [可选] 安装 Tikit (不含大数据组件)
RUN pip install tencentcloud-sdk-python==3.0.955 coscmd==1.8.6.31 && \\
pip install --no-dependencies -U tikit

# [自定义] 安装需要的依赖库
RUN pip3 install accelerate==0.21.0 bitsandbytes==0.40.2 datasets==2.14.1 deepspeed==0.10.0 evaluate==0.4.0 peft==0.4.0 protobuf==3.20.3 scipy==1.10.1 sentencepiece==0.1.99 transformers==4.31.0
说明:
推荐自定义镜像统一使用腾讯云的软件源,以支持更快的安装速度,上述示例已包含配置方法。若要配置其他软件源,可进一步参考:腾讯云软件源加速软件包下载和更新
若需要使用 HCC-GPU 型机型进行多机训练,推荐镜像安装 TCCL 插件以优化腾讯云星脉网络下的 RDMA 通信,上述示例已包含配置方法。若要使用别的安装方式,可进一步参考:GPU 型实例安装 TCCL 说明
推荐 Notebook 镜像中安装 Tikit 以方便地提交训练任务,上述示例已包含最简安装方法,若需要使用大数据组件要完整安装 Tikit,可进一步参考:Tikit 的安装与初始化
当前不支持训练镜像在 bashrc 等 bash 配置文件声明的变量。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈