
hiyouga/pytorch本镜像是一个预配置的基础Docker镜像,集成了PyTorch深度学习框架与Flash Attention高性能注意力机制库。旨在为Transformer架构模型(如LLM、BERT、GPT等)的开发、训练及推理提供标准化运行环境,简化依赖配置流程并优化计算效率。
bash# 基础版本(CPU+GPU通用) docker pull pytorch-flash-attention:latest # 指定版本(推荐生产环境使用) docker pull pytorch-flash-attention:2.0-cuda11.7
bashdocker login [私有仓库地址] docker pull [私有仓库地址]/pytorch-flash-attention:latest
bashdocker run -it --rm \ --gpus all \ # 启用所有GPU(需NVIDIA Docker运行时支持) -v /本地代码目录:/app \ # 挂载本地代码 -w /app \ # 设置工作目录 -e CUDA_VISIBLE_DEVICES=0,1 \ # 指定可用GPU pytorch-flash-attention:latest \ bash
bashdocker run -d \ --name transformer-training \ --gpus '"device=0"' \ # 指定使用第1块GPU -v /本地数据目录:/data \ -v /本地模型输出目录:/output \ -e PYTHONPATH=/app \ pytorch-flash-attention:latest \ python /app/train.py \ --data-path /data/train_data \ --output-path /output/model_checkpoint \ --epochs 10
yamlversion: '3.8' services: torch-training: image: pytorch-flash-attention:2.0-cuda11.7 container_name: llm-training runtime: nvidia deploy: resources: reservations: devices: - driver: nvidia count: 2 # 使用2块GPU capabilities: [gpu] volumes: - ./code:/app - ./dataset:/data - ./checkpoints:/models - ./logs:/var/log/training environment: - CUDA_VISIBLE_DEVICES=0,1 - PYTHONPATH=/app:/app/utils - MODEL_MAX_SEQ_LEN=2048 working_dir: /app command: > sh -c "python -m torch.distributed.launch --nproc_per_node=2 train.py --data-path /data/llm_corpus --save-dir /models --log-dir /var/log/training" ports: - "6006:6006" # TensorBoard端口映射
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
CUDA_VISIBLE_DEVICES | 指定容器内可见GPU设备ID(如"0"、"0,1"),设为"-1"禁用GPU | "all" |
PYTHONPATH | Python模块搜索路径,用于导入自定义代码 | "/app" |
FLASH_ATTENTION_BACKEND | 指定Flash Attention后端实现("flash"或"pytorch") | "flash" |
MAX_BATCH_SIZE | 默认批处理大小限制 | 32 |
MODEL_CACHE_DIR | 模型权重缓存目录 | "/root/.cache/huggingface/hub" |
PYTHONDONTWRITEBYTECODE | 禁止生成.pyc文件(减少磁盘I/O) | "1" |
bash# 完整数据挂载命令 docker run -it \ -v $(pwd)/code:/app \ # 代码目录 -v $(pwd)/dataset:/data \ # 数据集目录 -v $(pwd)/models:/models \ # 模型权重目录 -v $(pwd)/logs:/logs \ # 日志目录 -v $(pwd)/cache:/cache \ # 缓存目录 pytorch-flash-attention:latest
bash# 创建持久化数据卷 docker volume create torch-training-data docker volume create torch-model-cache # 使用数据卷启动容器 docker run -it \ -v torch-training-data:/data \ -v torch-model-cache:/root/.cache \ pytorch-flash-attention:latest
基于本镜像扩展功能的Dockerfile示例:
dockerfileFROM pytorch-flash-attention:2.0-cuda11.7 # 安装额外依赖 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 添加项目代码 COPY ./src /app/src COPY ./scripts /app/scripts # 配置非root用户 RUN useradd -m appuser USER appuser WORKDIR /app # 设置默认启动命令 CMD ["python", "/app/scripts/start_service.py"]
构建命令:
bashdocker build -t custom-torch-flash-app:v1 .
2.0-cuda11.7)而非latest可避免版本兼容性问题--memory和--cpus参数限制容器资源使用USER指令在Dockerfile中配置/var/run/nvidia-smi实现容器内GPU监控:-v /var/run/nvidia-smi:/var/run/nvidia-smimanifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务