From 9d460af21a1bbd4244fa83c95899ff389c4e3e38 Mon Sep 17 00:00:00 2001 From: yuchengen Date: Tue, 26 May 2026 20:45:04 +0800 Subject: [PATCH 1/2] feat: add LlaMA-factory 0.9.2/0.9.3/0.9.4 container image for OC9 --- frameworks/LLaMA-Factory/0.9.2/Dockerfile | 108 ++++++++++ frameworks/LLaMA-Factory/0.9.2/README.md | 186 ++++++++++++++++++ frameworks/LLaMA-Factory/0.9.2/build.conf | 4 + frameworks/LLaMA-Factory/0.9.2/test.sh | 113 +++++++++++ .../LLaMA-Factory/0.9.2/test_result.png | Bin 0 -> 144345 bytes frameworks/LLaMA-Factory/0.9.3/Dockerfile | 105 ++++++++++ frameworks/LLaMA-Factory/0.9.3/README.md | 186 ++++++++++++++++++ frameworks/LLaMA-Factory/0.9.3/build.conf | 4 + frameworks/LLaMA-Factory/0.9.3/test.sh | 113 +++++++++++ .../LLaMA-Factory/0.9.3/test_result.png | Bin 0 -> 89638 bytes frameworks/LLaMA-Factory/0.9.4/Dockerfile | 106 ++++++++++ frameworks/LLaMA-Factory/0.9.4/README.md | 186 ++++++++++++++++++ frameworks/LLaMA-Factory/0.9.4/build.conf | 4 + frameworks/LLaMA-Factory/0.9.4/test.sh | 113 +++++++++++ .../LLaMA-Factory/0.9.4/test_result.png | Bin 0 -> 84172 bytes 15 files changed, 1228 insertions(+) create mode 100644 frameworks/LLaMA-Factory/0.9.2/Dockerfile create mode 100644 frameworks/LLaMA-Factory/0.9.2/README.md create mode 100644 frameworks/LLaMA-Factory/0.9.2/build.conf create mode 100644 frameworks/LLaMA-Factory/0.9.2/test.sh create mode 100644 frameworks/LLaMA-Factory/0.9.2/test_result.png create mode 100644 frameworks/LLaMA-Factory/0.9.3/Dockerfile create mode 100644 frameworks/LLaMA-Factory/0.9.3/README.md create mode 100644 frameworks/LLaMA-Factory/0.9.3/build.conf create mode 100644 frameworks/LLaMA-Factory/0.9.3/test.sh create mode 100644 frameworks/LLaMA-Factory/0.9.3/test_result.png create mode 100644 frameworks/LLaMA-Factory/0.9.4/Dockerfile create mode 100644 frameworks/LLaMA-Factory/0.9.4/README.md create mode 100644 frameworks/LLaMA-Factory/0.9.4/build.conf create mode 100644 frameworks/LLaMA-Factory/0.9.4/test.sh create mode 100644 frameworks/LLaMA-Factory/0.9.4/test_result.png diff --git a/frameworks/LLaMA-Factory/0.9.2/Dockerfile b/frameworks/LLaMA-Factory/0.9.2/Dockerfile new file mode 100644 index 0000000..08f6939 --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.2/Dockerfile @@ -0,0 +1,108 @@ +FROM opencloudos/opencloudos9-cuda-devel:12.8 + +LABEL maintainer="stronking 363133710@qq.com" +LABEL org.opencontainers.image.source="https://gitee.com/OpenCloudOS/ai-agent-container" +LABEL org.opencontainers.image.description="LLaMA-Factory 0.9.2 on OpenCloudOS 9 with Python 3.11, CUDA 12.8" +ARG LLAMAFACTORY_VERSION=0.9.2 +ARG VLLM_VERSION=0.7.0 +ENV NVIDIA_VISIBLE_DEVICES=all \ + TZ=Asia/Shanghai \ + LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PYTHONUNBUFFERED=1 \ + PIP_NO_CACHE_DIR=1 \ + CUDA_HOME=/usr/local/cuda \ + PATH=/opt/venv/bin:/usr/local/cuda/bin:$PATH \ + LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH:-} \ + HF_HOME=/data/huggingface \ + MODE=webui \ + WEBUI_PORT=7860 \ + API_PORT=8000 \ + API_CONFIG=/workspace/config/api.yaml + + +WORKDIR /workspace + + +RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ + pip install --upgrade pip setuptools wheel virtualenv + +RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ + pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 + +# 安装指定版本 LLaMA-Factory 和 vLLM +RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ + pip install "llamafactory[torch,metrics]==${LLAMAFACTORY_VERSION}" \ + && pip install deepspeed vllm==${VLLM_VERSION} \ + && pip install --force-reinstall \ + "pydantic==2.10.6" \ + "fastapi==0.112.4" \ + "starlette==0.37.2" \ + "gradio==4.44.1" \ + "gradio_client==1.3.0" \ + "huggingface-hub>=0.26.0,<1.0" + +RUN mkdir -p /workspace/config /data/huggingface /data/models /data/datasets /data/outputs + +RUN cat > /usr/local/bin/start-llamafactory.sh <<'EOF' +#!/usr/bin/env bash +set -e + +echo "MODE=${MODE}" +echo "LLAMAFACTORY_VERSION=$(python -c 'import llamafactory; print(getattr(llamafactory, "__version__", "unknown"))')" +echo "WEBUI_PORT=${WEBUI_PORT}" +echo "API_PORT=${API_PORT}" +echo "API_CONFIG=${API_CONFIG}" + +case "${MODE}" in + webui) + exec llamafactory-cli webui \ + --host 0.0.0.0 \ + --port "${WEBUI_PORT}" + ;; + + api) + if [ ! -f "${API_CONFIG}" ]; then + echo "ERROR: API_CONFIG not found: ${API_CONFIG}" + exit 1 + fi + + exec llamafactory-cli api "${API_CONFIG}" \ + api_host=0.0.0.0 \ + api_port="${API_PORT}" + ;; + + all) + llamafactory-cli webui \ + --host 0.0.0.0 \ + --port "${WEBUI_PORT}" & + + if [ ! -f "${API_CONFIG}" ]; then + echo "ERROR: MODE=all 需要 API_CONFIG: ${API_CONFIG}" + exit 1 + fi + + exec llamafactory-cli api "${API_CONFIG}" \ + api_host=0.0.0.0 \ + api_port="${API_PORT}" + ;; + + bash) + exec /bin/bash + ;; + + *) + echo "Unsupported MODE: ${MODE}" + echo "可选:webui | api | all | bash" + exit 1 + ;; +esac +EOF + +RUN chmod +x /usr/local/bin/start-llamafactory.sh + +EXPOSE 7860 8000 + +VOLUME ["/workspace", "/data/huggingface", "/data/models", "/data/datasets", "/data/outputs"] + +CMD ["/usr/local/bin/start-llamafactory.sh"] \ No newline at end of file diff --git a/frameworks/LLaMA-Factory/0.9.2/README.md b/frameworks/LLaMA-Factory/0.9.2/README.md new file mode 100644 index 0000000..d8df94f --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.2/README.md @@ -0,0 +1,186 @@ +# LLaMA-Factory on OpenCloudOS 9 + +## 基本信息 + +- **框架名称**:LLaMA-Factory +- **框架版本**:v0.9.2 +- **基础镜像**:opencloudos/opencloudos9-cuda-devel:12.8 +- **Python 版本**:3.11 +- **CUDA 版本**:12.8 + +## 功能说明 + +该镜像基于 OpenCloudOS 9 与 CUDA 12.8 构建,集成: + +- LLaMA-Factory +- Web UI(Gradio) +- OpenAI-compatible API +- PyTorch CUDA 12.8 +- DeepSpeed +- vLLM + +支持: + +- LoRA / QLoRA 微调 +- SFT / DPO / PPO 等训练方式 +- HuggingFace 模型加载 +- 多 GPU 训练与推理 +- OpenAI 风格接口服务 + +--- + +## 构建镜像 + +```bash +DOCKER_BUILDKIT=1 docker build \ + --build-arg LLAMAFACTORY_VERSION=0.9.2 \ + -t oc9-llamafactory:0.9.2 . + +``` + +## 查看版本 +```bash +docker run --rm \ + oc9-llamafactory:0.9.2 \ + python -c "import llamafactory; print(llamafactory.__version__)" +``` + +## 启动Web UI + +```bash +docker run -it --rm \ + --gpus all \ + --ipc=host \ + -p 7860:7860 \ + -v ./workspace:/workspace \ + -v ./data:/data \ + -e MODE=webui \ + oc9-llamafactory:0.9.2 +``` +启动后访问地址: +```aiignore +http://localhost:7860 +``` + +## 启动 API 服务 + +### 准备API配置文件 +```bash +mkdir -p workspace/config +``` +#### 示例 + +```yaml +model_name_or_path: /data/models/Qwen/Qwen2.5-7B-Instruct +template: qwen +infer_backend: vllm +finetuning_type: lora +``` + +### 启动命令 + +```bash +docker run -it --rm \ + --gpus all \ + --ipc=host \ + -p 8000:8000 \ + -v ./workspace:/workspace \ + -v ./data:/data \ + -e MODE=api \ + -e API_CONFIG=/workspace/config/api.yaml \ + oc9-llamafactory:0.9.2 +``` + +### 访问API地址 + +~~~ +http://localhost:8000 +~~~ + +## 同时启动 Web UI 与 API + +```bash +docker run -it --rm \ + --gpus all \ + --ipc=host \ + -p 7860:7860 \ + -p 8000:8000 \ + -v ./workspace:/workspace \ + -v ./data:/data \ + -e MODE=all \ + -e API_CONFIG=/workspace/config/api.yaml \ + oc9-llamafactory:0.9.2 +``` + +## 目录说明 + +| 容器目录 | 说明 | +| ------------------- | -------------- | +| `/workspace` | 工作目录 | +| `/workspace/config` | API 配置文件 | +| `/data/models` | 模型目录 | +| `/data/datasets` | 数据集目录 | +| `/data/outputs` | 训练输出目录 | +| `/data/huggingface` | HuggingFace 缓存 | + + +## 环境变量 + +| 变量名 | 默认值 | 说明 | +| ------------ | ---------------------------- | ----------------------- | +| `MODE` | `webui` | 启动模式:webui/api/all/bash | +| `WEBUI_PORT` | `7860` | Web UI 端口 | +| `API_PORT` | `8000` | API 端口 | +| `API_CONFIG` | `/workspace/config/api.yaml` | API 配置文件 | + +## 使用示例 + +### 进入容器 + +```bash +docker run -it --rm \ + --gpus all \ + oc9-llamafactory:0.9.2 \ + bash +``` + +查看GPU信息: + +```bash +nvidia-smi +``` + +启动命令行训练: + +```bash +llamafactory-cli train examples/train_lora/qwen_lora_sft.yaml +``` + +--- + +## 已知问题 + +* vLLM 对 CUDA / PyTorch / 驱动版本较敏感 +* 首次启动会下载 HuggingFace 模型,耗时较长 +* DeepSpeed 在部分驱动版本上可能需要额外 NCCL 配置 +* CUDA 12.8 需宿主机 NVIDIA Driver >= 550 + +--- + +## 推荐宿主机环境 + +| 项目 | 建议 | +| ------------------------ | -------- | +| Docker | >= 24 | +| NVIDIA Driver | >= 550 | +| NVIDIA Container Toolkit | 已安装 | +| GPU 显存 | >= 24GB | +| 磁盘空间 | >= 100GB | + +--- + +## 参考项目 + +* [https://github.com/hiyouga/LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory) +* [https://hub.docker.com/r/hiyouga/llamafactory](https://hub.docker.com/r/hiyouga/llamafactory) + diff --git a/frameworks/LLaMA-Factory/0.9.2/build.conf b/frameworks/LLaMA-Factory/0.9.2/build.conf new file mode 100644 index 0000000..f469e11 --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.2/build.conf @@ -0,0 +1,4 @@ +# LLaMA-Factory 0.9.2 on OpenCloudOS 9 (GPU) +IMAGE_NAME=oc9-llama-factory +IMAGE_TAG=0.9.2 +GPU_TEST=true \ No newline at end of file diff --git a/frameworks/LLaMA-Factory/0.9.2/test.sh b/frameworks/LLaMA-Factory/0.9.2/test.sh new file mode 100644 index 0000000..d560636 --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.2/test.sh @@ -0,0 +1,113 @@ +#!/bin/bash +set -e + +IMAGE="${1:?ERROR: 缺少镜像参数。用法: bash test.sh }" + +echo "=== LLaMA-Factory 镜像功能测试 ===" +echo "测试镜像: ${IMAGE}" +echo + +run_test() { + local name="$1" + shift + + echo "${name}..." + if "$@"; then + echo "✓ 通过" + echo + else + echo "✗ 失败" + exit 1 + fi +} + +# 1. 验证 nvidia-smi +run_test "检查 nvidia-smi" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc 'nvidia-smi | head -n 10' + +# 2. 验证 nvcc +run_test "检查 nvcc --version" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc 'nvcc --version | head -n 5' + +# 3. 验证 CUDA / PyTorch +run_test "检查 PyTorch CUDA" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import torch +assert torch.cuda.is_available(), 'CUDA not available' +print('torch:', torch.__version__) +print('cuda:', torch.version.cuda) +print('gpu:', torch.cuda.get_device_name(0)) +" + +# 4. 验证 LLaMA-Factory import +run_test "检查 LLaMA-Factory import" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import llamafactory +print('llamafactory:', getattr(llamafactory, '__version__', 'unknown')) +" + +# 5. 验证 llamafactory-cli +run_test "检查 llamafactory-cli version" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + llamafactory-cli version + +# 6. 验证 Web UI 是否能启动 +run_test "检查 Web UI 启动" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc ' +set -e + +LOG=/tmp/llamafactory-webui.log + +llamafactory-cli webui > "$LOG" 2>&1 & +PID=$! + +cleanup() { + kill "$PID" >/dev/null 2>&1 || true +} +trap cleanup EXIT + +for i in $(seq 1 40); do + if grep -q "Running on local URL" "$LOG"; then + cat "$LOG" + exit 0 + fi + + if ! kill -0 "$PID" >/dev/null 2>&1; then + cat "$LOG" + exit 1 + fi + + sleep 1 +done + +cat "$LOG" +exit 1 +' + +# 7. 验证 API 命令 +run_test "检查 API 命令" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc 'llamafactory-cli api --help | head -n 5' + +# 8. 验证 vLLM import +run_test "检查 vLLM import" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import vllm +print('vllm:', vllm.__version__) +" + +# 9. 验证核心推理依赖 transformers +run_test "检查 Transformers import" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import transformers +print('transformers:', transformers.__version__) +" + +echo "=== 所有测试通过 ===" \ No newline at end of file diff --git a/frameworks/LLaMA-Factory/0.9.2/test_result.png b/frameworks/LLaMA-Factory/0.9.2/test_result.png new file mode 100644 index 0000000000000000000000000000000000000000..e5e08b489fd0ee32ddea0b4bbf61f515149567dc GIT binary patch literal 144345 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 MCL /usr/local/bin/start-llamafactory.sh <<'EOF' +#!/usr/bin/env bash +set -e + +echo "MODE=${MODE}" +echo "LLAMAFACTORY_VERSION=$(python -c 'import llamafactory; print(getattr(llamafactory, "__version__", "unknown"))')" +echo "WEBUI_PORT=${WEBUI_PORT}" +echo "API_PORT=${API_PORT}" +echo "API_CONFIG=${API_CONFIG}" + +case "${MODE}" in + webui) + exec llamafactory-cli webui \ + --host 0.0.0.0 \ + --port "${WEBUI_PORT}" + ;; + + api) + if [ ! -f "${API_CONFIG}" ]; then + echo "ERROR: API_CONFIG not found: ${API_CONFIG}" + exit 1 + fi + + exec llamafactory-cli api "${API_CONFIG}" \ + api_host=0.0.0.0 \ + api_port="${API_PORT}" + ;; + + all) + llamafactory-cli webui \ + --host 0.0.0.0 \ + --port "${WEBUI_PORT}" & + + if [ ! -f "${API_CONFIG}" ]; then + echo "ERROR: MODE=all 需要 API_CONFIG: ${API_CONFIG}" + exit 1 + fi + + exec llamafactory-cli api "${API_CONFIG}" \ + api_host=0.0.0.0 \ + api_port="${API_PORT}" + ;; + + bash) + exec /bin/bash + ;; + + *) + echo "Unsupported MODE: ${MODE}" + echo "可选:webui | api | all | bash" + exit 1 + ;; +esac +EOF + +RUN chmod +x /usr/local/bin/start-llamafactory.sh + +EXPOSE 7860 8000 + +VOLUME ["/workspace", "/data/huggingface", "/data/models", "/data/datasets", "/data/outputs"] + +CMD ["/usr/local/bin/start-llamafactory.sh"] \ No newline at end of file diff --git a/frameworks/LLaMA-Factory/0.9.3/README.md b/frameworks/LLaMA-Factory/0.9.3/README.md new file mode 100644 index 0000000..701cbe0 --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.3/README.md @@ -0,0 +1,186 @@ +# LLaMA-Factory on OpenCloudOS 9 + +## 基本信息 + +- **框架名称**:LLaMA-Factory +- **框架版本**:v0.9.3 +- **基础镜像**:opencloudos/opencloudos9-cuda-devel:12.8 +- **Python 版本**:3.11 +- **CUDA 版本**:12.8 + +## 功能说明 + +该镜像基于 OpenCloudOS 9 与 CUDA 12.8 构建,集成: + +- LLaMA-Factory +- Web UI(Gradio) +- OpenAI-compatible API +- PyTorch CUDA 12.8 +- DeepSpeed +- vLLM + +支持: + +- LoRA / QLoRA 微调 +- SFT / DPO / PPO 等训练方式 +- HuggingFace 模型加载 +- 多 GPU 训练与推理 +- OpenAI 风格接口服务 + +--- + +## 构建镜像 + +```bash +DOCKER_BUILDKIT=1 docker build \ + --build-arg LLAMAFACTORY_VERSION=0.9.3 \ + -t oc9-llamafactory:0.9.3 . + +``` + +## 查看版本 +```bash +docker run --rm \ + oc9-llamafactory:0.9.3 \ + python -c "import llamafactory; print(llamafactory.__version__)" +``` + +## 启动Web UI + +```bash +docker run -it --rm \ + --gpus all \ + --ipc=host \ + -p 7860:7860 \ + -v ./workspace:/workspace \ + -v ./data:/data \ + -e MODE=webui \ + oc9-llamafactory:0.9.3 +``` +启动后访问地址: +```aiignore +http://localhost:7860 +``` + +## 启动 API 服务 + +### 准备API配置文件 +```bash +mkdir -p workspace/config +``` +#### 示例 + +```yaml +model_name_or_path: /data/models/Qwen/Qwen2.5-7B-Instruct +template: qwen +infer_backend: vllm +finetuning_type: lora +``` + +### 启动命令 + +```bash +docker run -it --rm \ + --gpus all \ + --ipc=host \ + -p 8000:8000 \ + -v ./workspace:/workspace \ + -v ./data:/data \ + -e MODE=api \ + -e API_CONFIG=/workspace/config/api.yaml \ + oc9-llamafactory:0.9.3 +``` + +### 访问API地址 + +~~~ +http://localhost:8000 +~~~ + +## 同时启动 Web UI 与 API + +```bash +docker run -it --rm \ + --gpus all \ + --ipc=host \ + -p 7860:7860 \ + -p 8000:8000 \ + -v ./workspace:/workspace \ + -v ./data:/data \ + -e MODE=all \ + -e API_CONFIG=/workspace/config/api.yaml \ + oc9-llamafactory:0.9.3 +``` + +## 目录说明 + +| 容器目录 | 说明 | +| ------------------- | -------------- | +| `/workspace` | 工作目录 | +| `/workspace/config` | API 配置文件 | +| `/data/models` | 模型目录 | +| `/data/datasets` | 数据集目录 | +| `/data/outputs` | 训练输出目录 | +| `/data/huggingface` | HuggingFace 缓存 | + + +## 环境变量 + +| 变量名 | 默认值 | 说明 | +| ------------ | ---------------------------- | ----------------------- | +| `MODE` | `webui` | 启动模式:webui/api/all/bash | +| `WEBUI_PORT` | `7860` | Web UI 端口 | +| `API_PORT` | `8000` | API 端口 | +| `API_CONFIG` | `/workspace/config/api.yaml` | API 配置文件 | + +## 使用示例 + +### 进入容器 + +```bash +docker run -it --rm \ + --gpus all \ + oc9-llamafactory:0.9.3 \ + bash +``` + +查看GPU信息: + +```bash +nvidia-smi +``` + +启动命令行训练: + +```bash +llamafactory-cli train examples/train_lora/qwen_lora_sft.yaml +``` + +--- + +## 已知问题 + +* vLLM 对 CUDA / PyTorch / 驱动版本较敏感 +* 首次启动会下载 HuggingFace 模型,耗时较长 +* DeepSpeed 在部分驱动版本上可能需要额外 NCCL 配置 +* CUDA 12.8 需宿主机 NVIDIA Driver >= 550 + +--- + +## 推荐宿主机环境 + +| 项目 | 建议 | +| ------------------------ | -------- | +| Docker | >= 24 | +| NVIDIA Driver | >= 550 | +| NVIDIA Container Toolkit | 已安装 | +| GPU 显存 | >= 24GB | +| 磁盘空间 | >= 100GB | + +--- + +## 参考项目 + +* [https://github.com/hiyouga/LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory) +* [https://hub.docker.com/r/hiyouga/llamafactory](https://hub.docker.com/r/hiyouga/llamafactory) + diff --git a/frameworks/LLaMA-Factory/0.9.3/build.conf b/frameworks/LLaMA-Factory/0.9.3/build.conf new file mode 100644 index 0000000..9383c2c --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.3/build.conf @@ -0,0 +1,4 @@ +# LLaMA-Factory 0.9.3 on OpenCloudOS 9 (GPU) +IMAGE_NAME=oc9-llama-factory +IMAGE_TAG=0.9.3 +GPU_TEST=true \ No newline at end of file diff --git a/frameworks/LLaMA-Factory/0.9.3/test.sh b/frameworks/LLaMA-Factory/0.9.3/test.sh new file mode 100644 index 0000000..d560636 --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.3/test.sh @@ -0,0 +1,113 @@ +#!/bin/bash +set -e + +IMAGE="${1:?ERROR: 缺少镜像参数。用法: bash test.sh }" + +echo "=== LLaMA-Factory 镜像功能测试 ===" +echo "测试镜像: ${IMAGE}" +echo + +run_test() { + local name="$1" + shift + + echo "${name}..." + if "$@"; then + echo "✓ 通过" + echo + else + echo "✗ 失败" + exit 1 + fi +} + +# 1. 验证 nvidia-smi +run_test "检查 nvidia-smi" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc 'nvidia-smi | head -n 10' + +# 2. 验证 nvcc +run_test "检查 nvcc --version" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc 'nvcc --version | head -n 5' + +# 3. 验证 CUDA / PyTorch +run_test "检查 PyTorch CUDA" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import torch +assert torch.cuda.is_available(), 'CUDA not available' +print('torch:', torch.__version__) +print('cuda:', torch.version.cuda) +print('gpu:', torch.cuda.get_device_name(0)) +" + +# 4. 验证 LLaMA-Factory import +run_test "检查 LLaMA-Factory import" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import llamafactory +print('llamafactory:', getattr(llamafactory, '__version__', 'unknown')) +" + +# 5. 验证 llamafactory-cli +run_test "检查 llamafactory-cli version" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + llamafactory-cli version + +# 6. 验证 Web UI 是否能启动 +run_test "检查 Web UI 启动" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc ' +set -e + +LOG=/tmp/llamafactory-webui.log + +llamafactory-cli webui > "$LOG" 2>&1 & +PID=$! + +cleanup() { + kill "$PID" >/dev/null 2>&1 || true +} +trap cleanup EXIT + +for i in $(seq 1 40); do + if grep -q "Running on local URL" "$LOG"; then + cat "$LOG" + exit 0 + fi + + if ! kill -0 "$PID" >/dev/null 2>&1; then + cat "$LOG" + exit 1 + fi + + sleep 1 +done + +cat "$LOG" +exit 1 +' + +# 7. 验证 API 命令 +run_test "检查 API 命令" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc 'llamafactory-cli api --help | head -n 5' + +# 8. 验证 vLLM import +run_test "检查 vLLM import" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import vllm +print('vllm:', vllm.__version__) +" + +# 9. 验证核心推理依赖 transformers +run_test "检查 Transformers import" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import transformers +print('transformers:', transformers.__version__) +" + +echo "=== 所有测试通过 ===" \ No newline at end of file diff --git a/frameworks/LLaMA-Factory/0.9.3/test_result.png b/frameworks/LLaMA-Factory/0.9.3/test_result.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc41e76e26bb1e814941a67800abb1309131b38 GIT binary patch literal 89638 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 KyukJYXHK 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 Ktl;ejpZ@_o9~z|q literal 0 HcmV?d00001 diff --git a/frameworks/LLaMA-Factory/0.9.4/Dockerfile b/frameworks/LLaMA-Factory/0.9.4/Dockerfile new file mode 100644 index 0000000..2084571 --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.4/Dockerfile @@ -0,0 +1,106 @@ +FROM opencloudos/opencloudos9-cuda-devel:12.8 + +LABEL maintainer="stronking 363133710@qq.com" +LABEL org.opencontainers.image.source="https://gitee.com/OpenCloudOS/ai-agent-container" +LABEL org.opencontainers.image.description="LLaMA-Factory on OpenCloudOS 9 with Python 3.11, CUDA 12.8" + +ARG VLLM_VERSION=0.10.2 +ARG TORCH_INDEX_URL=https://download.pytorch.org/whl/cu128 +ARG LLAMAFACTORY_VERSION=0.9.4 + + +ENV NVIDIA_VISIBLE_DEVICES=all \ + TZ=Asia/Shanghai \ + LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PYTHONUNBUFFERED=1 \ + PIP_NO_CACHE_DIR=1 \ + CUDA_HOME=/usr/local/cuda \ + PATH=/opt/venv/bin:/usr/local/cuda/bin:$PATH \ + LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH:-} \ + HF_HOME=/data/huggingface \ + MODE=webui \ + WEBUI_PORT=7860 \ + API_PORT=8000 \ + API_CONFIG=/workspace/config/api.yaml + +WORKDIR /workspace + +RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ + pip install --upgrade pip setuptools wheel virtualenv + +# PyTorch CUDA 12.8 +RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ + pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 \ + --index-url https://download.pytorch.org/whl/cu128 + +# 安装指定版本 LLaMA-Factory 和vLLM +RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ + pip install "llamafactory[torch,metrics]==${LLAMAFACTORY_VERSION}" \ + && pip install deepspeed vllm==${VLLM_VERSION} \ + && pip install gradio==5.50.0 gradio_client==1.14.0 + +RUN mkdir -p /workspace/config /data/huggingface /data/models /data/datasets /data/outputs + +RUN cat > /usr/local/bin/start-llamafactory.sh <<'EOF' +#!/usr/bin/env bash +set -e + +echo "MODE=${MODE}" +echo "LLAMAFACTORY_VERSION=$(python -c 'import llamafactory; print(getattr(llamafactory, "__version__", "unknown"))')" +echo "WEBUI_PORT=${WEBUI_PORT}" +echo "API_PORT=${API_PORT}" +echo "API_CONFIG=${API_CONFIG}" + +case "${MODE}" in + webui) + exec llamafactory-cli webui \ + --host 0.0.0.0 \ + --port "${WEBUI_PORT}" + ;; + + api) + if [ ! -f "${API_CONFIG}" ]; then + echo "ERROR: API_CONFIG not found: ${API_CONFIG}" + exit 1 + fi + + exec llamafactory-cli api "${API_CONFIG}" \ + api_host=0.0.0.0 \ + api_port="${API_PORT}" + ;; + + all) + llamafactory-cli webui \ + --host 0.0.0.0 \ + --port "${WEBUI_PORT}" & + + if [ ! -f "${API_CONFIG}" ]; then + echo "ERROR: MODE=all 需要 API_CONFIG: ${API_CONFIG}" + exit 1 + fi + + exec llamafactory-cli api "${API_CONFIG}" \ + api_host=0.0.0.0 \ + api_port="${API_PORT}" + ;; + + bash) + exec /bin/bash + ;; + + *) + echo "Unsupported MODE: ${MODE}" + echo "可选:webui | api | all | bash" + exit 1 + ;; +esac +EOF + +RUN chmod +x /usr/local/bin/start-llamafactory.sh + +EXPOSE 7860 8000 + +VOLUME ["/workspace", "/data/huggingface", "/data/models", "/data/datasets", "/data/outputs"] + +CMD ["/usr/local/bin/start-llamafactory.sh"] \ No newline at end of file diff --git a/frameworks/LLaMA-Factory/0.9.4/README.md b/frameworks/LLaMA-Factory/0.9.4/README.md new file mode 100644 index 0000000..71e8951 --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.4/README.md @@ -0,0 +1,186 @@ +# LLaMA-Factory on OpenCloudOS 9 + +## 基本信息 + +- **框架名称**:LLaMA-Factory +- **框架版本**:v0.9.4 +- **基础镜像**:opencloudos/opencloudos9-cuda-devel:12.8 +- **Python 版本**:3.11 +- **CUDA 版本**:12.8 + +## 功能说明 + +该镜像基于 OpenCloudOS 9 与 CUDA 12.8 构建,集成: + +- LLaMA-Factory +- Web UI(Gradio) +- OpenAI-compatible API +- PyTorch CUDA 12.8 +- DeepSpeed +- vLLM + +支持: + +- LoRA / QLoRA 微调 +- SFT / DPO / PPO 等训练方式 +- HuggingFace 模型加载 +- 多 GPU 训练与推理 +- OpenAI 风格接口服务 + +--- + +## 构建镜像 + +```bash +DOCKER_BUILDKIT=1 docker build \ + --build-arg LLAMAFACTORY_VERSION=0.9.4 \ + -t oc9-llamafactory:0.9.4 . + +``` + +## 查看版本 +```bash +docker run --rm \ + oc9-llamafactory:0.9.4 \ + python -c "import llamafactory; print(llamafactory.__version__)" +``` + +## 启动Web UI + +```bash +docker run -it --rm \ + --gpus all \ + --ipc=host \ + -p 7860:7860 \ + -v ./workspace:/workspace \ + -v ./data:/data \ + -e MODE=webui \ + oc9-llamafactory:0.9.4 +``` +启动后访问地址: +```aiignore +http://localhost:7860 +``` + +## 启动 API 服务 + +### 准备API配置文件 +```bash +mkdir -p workspace/config +``` +#### 示例 + +```yaml +model_name_or_path: /data/models/Qwen/Qwen2.5-7B-Instruct +template: qwen +infer_backend: vllm +finetuning_type: lora +``` + +### 启动命令 + +```bash +docker run -it --rm \ + --gpus all \ + --ipc=host \ + -p 8000:8000 \ + -v ./workspace:/workspace \ + -v ./data:/data \ + -e MODE=api \ + -e API_CONFIG=/workspace/config/api.yaml \ + oc9-llamafactory:0.9.4 +``` + +### 访问API地址 + +~~~ +http://localhost:8000 +~~~ + +## 同时启动 Web UI 与 API + +```bash +docker run -it --rm \ + --gpus all \ + --ipc=host \ + -p 7860:7860 \ + -p 8000:8000 \ + -v ./workspace:/workspace \ + -v ./data:/data \ + -e MODE=all \ + -e API_CONFIG=/workspace/config/api.yaml \ + oc9-llamafactory:0.9.4 +``` + +## 目录说明 + +| 容器目录 | 说明 | +| ------------------- | -------------- | +| `/workspace` | 工作目录 | +| `/workspace/config` | API 配置文件 | +| `/data/models` | 模型目录 | +| `/data/datasets` | 数据集目录 | +| `/data/outputs` | 训练输出目录 | +| `/data/huggingface` | HuggingFace 缓存 | + + +## 环境变量 + +| 变量名 | 默认值 | 说明 | +| ------------ | ---------------------------- | ----------------------- | +| `MODE` | `webui` | 启动模式:webui/api/all/bash | +| `WEBUI_PORT` | `7860` | Web UI 端口 | +| `API_PORT` | `8000` | API 端口 | +| `API_CONFIG` | `/workspace/config/api.yaml` | API 配置文件 | + +## 使用示例 + +### 进入容器 + +```bash +docker run -it --rm \ + --gpus all \ + oc9-llamafactory:0.9.4 \ + bash +``` + +查看GPU信息: + +```bash +nvidia-smi +``` + +启动命令行训练: + +```bash +llamafactory-cli train examples/train_lora/qwen_lora_sft.yaml +``` + +--- + +## 已知问题 + +* vLLM 对 CUDA / PyTorch / 驱动版本较敏感 +* 首次启动会下载 HuggingFace 模型,耗时较长 +* DeepSpeed 在部分驱动版本上可能需要额外 NCCL 配置 +* CUDA 12.8 需宿主机 NVIDIA Driver >= 550 + +--- + +## 推荐宿主机环境 + +| 项目 | 建议 | +| ------------------------ | -------- | +| Docker | >= 24 | +| NVIDIA Driver | >= 550 | +| NVIDIA Container Toolkit | 已安装 | +| GPU 显存 | >= 24GB | +| 磁盘空间 | >= 100GB | + +--- + +## 参考项目 + +* [https://github.com/hiyouga/LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory) +* [https://hub.docker.com/r/hiyouga/llamafactory](https://hub.docker.com/r/hiyouga/llamafactory) + diff --git a/frameworks/LLaMA-Factory/0.9.4/build.conf b/frameworks/LLaMA-Factory/0.9.4/build.conf new file mode 100644 index 0000000..33710cc --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.4/build.conf @@ -0,0 +1,4 @@ +# LLaMA-Factory 0.9.4 on OpenCloudOS 9 (GPU) +IMAGE_NAME=oc9-llama-factory +IMAGE_TAG=0.9.4 +GPU_TEST=true \ No newline at end of file diff --git a/frameworks/LLaMA-Factory/0.9.4/test.sh b/frameworks/LLaMA-Factory/0.9.4/test.sh new file mode 100644 index 0000000..d560636 --- /dev/null +++ b/frameworks/LLaMA-Factory/0.9.4/test.sh @@ -0,0 +1,113 @@ +#!/bin/bash +set -e + +IMAGE="${1:?ERROR: 缺少镜像参数。用法: bash test.sh }" + +echo "=== LLaMA-Factory 镜像功能测试 ===" +echo "测试镜像: ${IMAGE}" +echo + +run_test() { + local name="$1" + shift + + echo "${name}..." + if "$@"; then + echo "✓ 通过" + echo + else + echo "✗ 失败" + exit 1 + fi +} + +# 1. 验证 nvidia-smi +run_test "检查 nvidia-smi" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc 'nvidia-smi | head -n 10' + +# 2. 验证 nvcc +run_test "检查 nvcc --version" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc 'nvcc --version | head -n 5' + +# 3. 验证 CUDA / PyTorch +run_test "检查 PyTorch CUDA" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import torch +assert torch.cuda.is_available(), 'CUDA not available' +print('torch:', torch.__version__) +print('cuda:', torch.version.cuda) +print('gpu:', torch.cuda.get_device_name(0)) +" + +# 4. 验证 LLaMA-Factory import +run_test "检查 LLaMA-Factory import" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import llamafactory +print('llamafactory:', getattr(llamafactory, '__version__', 'unknown')) +" + +# 5. 验证 llamafactory-cli +run_test "检查 llamafactory-cli version" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + llamafactory-cli version + +# 6. 验证 Web UI 是否能启动 +run_test "检查 Web UI 启动" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc ' +set -e + +LOG=/tmp/llamafactory-webui.log + +llamafactory-cli webui > "$LOG" 2>&1 & +PID=$! + +cleanup() { + kill "$PID" >/dev/null 2>&1 || true +} +trap cleanup EXIT + +for i in $(seq 1 40); do + if grep -q "Running on local URL" "$LOG"; then + cat "$LOG" + exit 0 + fi + + if ! kill -0 "$PID" >/dev/null 2>&1; then + cat "$LOG" + exit 1 + fi + + sleep 1 +done + +cat "$LOG" +exit 1 +' + +# 7. 验证 API 命令 +run_test "检查 API 命令" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + bash -lc 'llamafactory-cli api --help | head -n 5' + +# 8. 验证 vLLM import +run_test "检查 vLLM import" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import vllm +print('vllm:', vllm.__version__) +" + +# 9. 验证核心推理依赖 transformers +run_test "检查 Transformers import" \ + docker run --rm --gpus all -e MODE=bash "$IMAGE" \ + python3 -c " +import transformers +print('transformers:', transformers.__version__) +" + +echo "=== 所有测试通过 ===" \ No newline at end of file diff --git a/frameworks/LLaMA-Factory/0.9.4/test_result.png b/frameworks/LLaMA-Factory/0.9.4/test_result.png new file mode 100644 index 0000000000000000000000000000000000000000..948788ba9020dbf99d86cf1505c878a5a5703ad2 GIT binary patch literal 84172 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 tanPOv-pBX0)XkwZlQaJ}MeCo3$A%PLb Date: Thu, 28 May 2026 17:30:50 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E5=9B=BA=E5=AE=9Adeepspeed=20?= =?UTF-8?q?=E7=9A=84=E7=89=88=E6=9C=AC=E3=80=82=E5=87=8F=E5=B0=91=E5=87=8F?= =?UTF-8?q?=E5=B0=91=E4=BE=9B=E5=BA=94=E9=93=BE=E6=BC=82=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frameworks/LLaMA-Factory/0.9.2/Dockerfile | 2 +- frameworks/LLaMA-Factory/0.9.3/Dockerfile | 2 +- frameworks/LLaMA-Factory/0.9.4/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/LLaMA-Factory/0.9.2/Dockerfile b/frameworks/LLaMA-Factory/0.9.2/Dockerfile index 08f6939..6c98ef4 100644 --- a/frameworks/LLaMA-Factory/0.9.2/Dockerfile +++ b/frameworks/LLaMA-Factory/0.9.2/Dockerfile @@ -33,7 +33,7 @@ RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ # 安装指定版本 LLaMA-Factory 和 vLLM RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ pip install "llamafactory[torch,metrics]==${LLAMAFACTORY_VERSION}" \ - && pip install deepspeed vllm==${VLLM_VERSION} \ + && pip install deepspeed==0.15.4 vllm==${VLLM_VERSION} \ && pip install --force-reinstall \ "pydantic==2.10.6" \ "fastapi==0.112.4" \ diff --git a/frameworks/LLaMA-Factory/0.9.3/Dockerfile b/frameworks/LLaMA-Factory/0.9.3/Dockerfile index fed9d90..6d07023 100644 --- a/frameworks/LLaMA-Factory/0.9.3/Dockerfile +++ b/frameworks/LLaMA-Factory/0.9.3/Dockerfile @@ -35,7 +35,7 @@ RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ # 安装指定版本 LLaMA-Factory 和 vLLM RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ pip install "llamafactory[torch,metrics]==${LLAMAFACTORY_VERSION}" \ - && pip install deepspeed vllm==${VLLM_VERSION} \ + && pip install deepspeed==0.16.1 vllm==${VLLM_VERSION} \ && pip install gradio==5.31.0 gradio_client==1.10.1 diff --git a/frameworks/LLaMA-Factory/0.9.4/Dockerfile b/frameworks/LLaMA-Factory/0.9.4/Dockerfile index 2084571..f65ea6c 100644 --- a/frameworks/LLaMA-Factory/0.9.4/Dockerfile +++ b/frameworks/LLaMA-Factory/0.9.4/Dockerfile @@ -37,7 +37,7 @@ RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ # 安装指定版本 LLaMA-Factory 和vLLM RUN --mount=type=cache,id=pip-cache-opencloudos9-cu128,target=/root/.cache/pip \ pip install "llamafactory[torch,metrics]==${LLAMAFACTORY_VERSION}" \ - && pip install deepspeed vllm==${VLLM_VERSION} \ + && pip install deepspeed==0.16.4 vllm==${VLLM_VERSION} \ && pip install gradio==5.50.0 gradio_client==1.14.0 RUN mkdir -p /workspace/config /data/huggingface /data/models /data/datasets /data/outputs -- Gitee