diff --git a/README.md b/README.md index 83fb311..ec2fcbd 100644 --- a/README.md +++ b/README.md @@ -122,8 +122,8 @@ GPUS=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 \ EXTRA_DOCKER_ARGS="-v /mnt/disk1:/data:ro" ./run.sh /path/to/model EXTRA_ARGS="--max-model-len 8192" ./run.sh /path/to/model -# 已有镜像,不重新构建 -BUILD=0 IMAGE=registry.example.com/llama4-bi150:v1.0.0 ./run.sh /path/to/model +# 已有镜像,不重新构建(把 换成第 5.1 节的实际地址) +BUILD=0 IMAGE= ./run.sh /path/to/model # 只打印 docker run 命令 DRY_RUN=1 ./run.sh /path/to/model @@ -248,18 +248,92 @@ python3 detect_model.py /mnt/disk0/models/LLM-Research/Llama-4-Maverick-17B-128E 触发方式: ```bash -git tag v1.0.0 -git push origin v1.0.0 +git tag v0.1.3 +git push origin v0.1.3 ``` +已发布:`v0.1.0`(取消)、`v0.1.1`(取消)、`v0.1.2`(run #3 成功)。 + CI 会: 1. 在 `amd64-ubuntu-24.04` runner 上 clone 仓库; 2. 校验 `task_info.env`; 3. `docker build`; -4. 推送 `${DOCKER_REGISTRY}/${DOCKER_USERNAME}/llama-4-bi150:v1.0.0`; +4. 推送 `${DOCKER_REGISTRY}/${DOCKER_USERNAME}/llama-4-bi150:`; 5. 调 ModelHub `image-verify` 接口提交审核。 +### 5.1 已发布的 CI 镜像 + +| 标签 | Digest | 压缩大小 | 推送时间 | +|---|---|---:|---| +| `v0.1.2` | `sha256:42dc1d3fe60ca9d311b4ceb3dc9d0d4eef3ff5cdad560e63635fe75c6121602f` | 10.39 GiB | 2026-10-26 12:04 UTC | + +```text +harbor.4pd.io/modelhubxc/xiejiahao/llama-4-bi150:v0.1.2 +``` + +拉取(需要 Harbor 凭据 `DOCKER_USERNAME` / `DOCKER_PASSWORD`): + +```bash +docker login harbor.4pd.io -u modelhubxc +docker pull harbor.4pd.io/modelhubxc/xiejiahao/llama-4-bi150:v0.1.2 +``` + +### 5.2 用 CI 镜像启动服务 + +镜像不声明 `ENTRYPOINT`,`--entrypoint` 必须显式给。以下命令可直接粘贴。 + +**Llama-4-Scout-17B-16E(TP8/PP1,8 卡,8091)** + +```bash +docker run -d --name llama4-scout \ + --entrypoint /usr/local/bin/llama4-entrypoint.sh \ + --workdir /opt/llama4 \ + --privileged --pid host --network host --ipc host \ + -v /dev:/dev \ + -v /mnt/disk0/models/LLM-Research/Llama-4-Scout-17B-16E-Instruct:/models/llama4:ro \ + --ulimit memlock=-1 --ulimit stack=67108864 \ + -e CUDA_VISIBLE_DEVICES=8,9,10,11,12,13,14,15 \ + -e MODEL_PATH=/models/llama4 \ + -e AUTO_DETECT=1 \ + -e PYTHONUNBUFFERED=1 \ + --restart unless-stopped \ + harbor.4pd.io/modelhubxc/xiejiahao/llama-4-bi150:v0.1.2 +``` + +**Llama-4-Maverick-17B-128E-Instruct-FP8(TP8/PP2,16 卡,8092)** + +```bash +docker run -d --name llama4-maverick \ + --entrypoint /usr/local/bin/llama4-entrypoint.sh \ + --workdir /opt/llama4 \ + --privileged --pid host --network host --ipc host \ + -v /dev:/dev \ + -v /mnt/disk0/models/LLM-Research/Llama-4-Maverick-17B-128E-Instruct-FP8:/models/llama4:ro \ + --ulimit memlock=-1 --ulimit stack=67108864 \ + -e CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 \ + -e MODEL_PATH=/models/llama4 \ + -e AUTO_DETECT=1 \ + -e PYTHONUNBUFFERED=1 \ + --restart unless-stopped \ + harbor.4pd.io/modelhubxc/xiejiahao/llama-4-bi150:v0.1.2 +``` + +两个变体共用挂载点 `/models/llama4`,靠 `config.json` 的 `num_local_experts` 区分;TP/PP、端口、served name 不用传,入口脚本会自动判定(见 2.1 节)。 + +Maverick 占用全部 16 张卡,与其它模型互斥;Scout 只占 8 张,可以和其它小模型共存,此时需改 `-e CUDA_VISIBLE_DEVICES` 避免重叠。 + +**注意**:`--network host` 下不要写 `-p`,端口映射会被丢弃;要换对外端口就传 `-e PORT=`。 + +### 5.3 用 run.sh 启动 CI 镜像 + +```bash +BUILD=0 IMAGE=harbor.4pd.io/modelhubxc/xiejiahao/llama-4-bi150:v0.1.2 \ + ./run.sh /mnt/disk0/models/LLM-Research/Llama-4-Scout-17B-16E-Instruct + +./verify.sh --model-dir /mnt/disk0/models/LLM-Research/Llama-4-Scout-17B-16E-Instruct +``` + `task_info.env`: ```bash @@ -281,7 +355,7 @@ FIXED_TOKEN 注意事项: -- 当前仓库默认没有打 tag,所以推送代码不会自动构建;需要手动推送 `v*` 标签才会触发。 +- 推送代码不会自动构建;需要手动推送 `v*` 标签才会触发。 - Runner 必须能拉取 `registry.iluvatar.com.cn:10443` 的基础镜像;如果该仓库需要登录,请在 runner 上预登录,或自行给 workflow 增加基础镜像 registry 的 login step。 - CI 只负责构建和推送,不负责 GPU / 模型挂载;GPU 和挂载通过 `run.sh` 或 `docker compose` 设置。 - CI 构建机不需要 GPU,但需要足够的磁盘空间。 @@ -297,3 +371,12 @@ FIXED_TOKEN - `--privileged --pid host -v /dev:/dev` 是 Iluvatar 运行时要求;只给 `/dev/iluvatar*` 可能报 `cudaGetDeviceCount() ... Error 1001`。 - 模型目录只读挂载,容器不会修改宿主机模型文件。 - 统一镜像首次使用时,建议 Scout 和 Maverick 都各跑一次 `verify.sh`;尤其是 Scout,因为镜像里也包含 FP8 MoE 补丁,需要确认共享的 `fused_moe.py` 修改没有影响 BF16 路径。 + +--- + +## 7. 变更记录 + +| 日期 | 变更 | +|---|---| +| 2026-10-26 | CI `v0.1.2` 发布成功(digest `42dc1d3f…`,10.39 GiB) | +| 2026-10-28 | 补录 CI 镜像 digest 与 Scout / Maverick 的完整 `docker run` 命令(§5.1–5.3);修正 README 中的示例镜像地址和标签 |