Document the published CI image and its docker run commands
This commit is contained in:
95
README.md
95
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
|
||||
# 已有镜像,不重新构建(把 <ci-image> 换成第 5.1 节的实际地址)
|
||||
BUILD=0 IMAGE=<ci-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:<tag>`;
|
||||
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=<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 中的示例镜像地址和标签 |
|
||||
|
||||
Reference in New Issue
Block a user