FlagRelease 多芯片 GPU 部署流水线
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_e10c831c/flagrelease-entrance-flagos。
技能介绍
要解决什么问题
在多芯片 GPU 后端上跑 LLM,往往不是「装个 vLLM 就能 serve」:厂商 wheel、镜像源、glibc 与 Python 版本会影响 FlagTree 等插件能否装上;装完还要区分离线推理与服务模式是否可用;目标模型路径、张量并行度又决定了该用 full/base/none 哪套栈。手工在容器里试脚本、对日志,步骤多且容易在某一步 hang 住或 silently fail。
本技能是 FlagRelease Pipeline Orchestrator:在已知 Docker 工作容器(通常由 /gpu-container-setup 产出)上,按固定顺序调用四个可独立运行的子技能,并把每步结果写入 pipeline-state,最后汇总成一份可对比的结构化报告。
流水线如何工作
Step 0 确认容器名与运行状态,初始化状态 schema(详见 references/pipeline-state.md)。
Step 1 · install-stack:采集环境与镜像配置,按序安装五个包(FlagTree 通过 select_flagtree_wheel.py 选型),容器内跑 validate_packages.py。门控:若 vLLM 或插件未通过 gate_passed,流水线 STOP,报告安装失败。
Step 2 · env-verify:拉取/缓存 Qwen3-0.6B,在容器内执行离线推理与服务模式两阶段;错误按 error-classification.md 分层。致命错误终止,非致命记入状态后继续。
Step 3 · model-verify(交互):向用户索取模型路径等信息,复用同一套推理/服务脚本做 Run A/B,用 diff_analysis.py 对比并给出 recommended_stack(full/base/none)。若 Run A 失败(none),终止。
Step 4 · perf-test:按推荐栈启动 vllm serve,在容器内跑五套 benchmark profile,汇总指标表。
Step 5 编译最终报告:安装成败、基础栈是否可用、多卡栈哪一层失败、性能摘要、带 layer 分类的全部错误;总评 PASS / PARTIAL / FAIL。
设计约束包括:每步有 timeout、错误带 step/phase/layer/cause、脚本输出 JSON、网络失败时走 mirror;单步子失败不跳过无关步骤(门控失败除外)。
适用边界与注意点
- 前提是有 GPU 可访问、已装 PyTorch 的 Docker 容器,且容器名已知;本技能不负责造容器。
- 模型校验步骤必须用户提供模型路径,无法全自动猜路径。
- 子技能路径为相对引用(如
../install-stack/SKILL.md),需与仓库目录布局一致;单独只跑 orchestrator 而不具备子技能时会不完整。 - PARTIAL 表示降级栈可用或部分压测 profile 失败,需结合报告里的
recommended_stack与错误分类再决定是否上生产。
使用场景
- 多卡 GPU Docker 容器已就绪,需依次完成装栈、环境校验、指定模型路径的 model-verify 与 perf-test,并拿到 PASS/PARTIAL/FAIL 总评。
- 发布前在 worker 容器内验证五包安装与 `validate_packages.py` 门控;vLLM 或插件未过 gate 时需立刻 STOP 并输出安装层错误报告。
- 联调 FlagTree 与厂商 wheel 时,要用 Qwen3-0.6B 跑离线推理与服务模式两阶段,并按 error-classification 区分致命与非致命错误是否继续。
- 目标权重已确定路径与张量并行度,需要 Run A/B 对比、`recommended_stack` 建议及五套 benchmark 指标表供发布评审引用。
适合人员
- 负责 GPU worker 容器交付的平台工程师,需在已知容器名上跑通 FlagRelease 四步子技能并汇总 pipeline-state 报告。
- 维护多卡 vLLM serving 的推理 SRE,要把各 step/phase/layer 的错误结构化归档,避免手工翻容器日志。
- 芯片与框架联调工程师,在 direct 网络不可达时仍依赖 mirror 装栈,并需要 JSON 输出便于两次运行对比。
- 参与模型上线的发布值班同学,要在每步 timeout 约束下区分 PARTIAL(降级栈或部分 profile 失败)与 FAIL(Run A 或门控失败)。