上周给实验室集群批量搭计算环境,之前旧版PyInfra的离线依赖打包一直有路径bug,3.8.0更了dependency lock新特性,实测下来整个部署效率比之前用Ansible快了60%。
其实踩了两个必避的坑:一是执行部署命令必须加–offline参数,不然会自动跳公网拉依赖,内网环境直接报错;二是国内pypi源要提前写进全局配置文件,不要用运行时参数传,优先级不够。
适配国内源的配置脚本我传了个人repo,链接放评论区,有需要的自取。有人试过用它批量部署推理容器不?
✦ 发帖赚糊涂币【开源有益】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 中品 68分 · HTC +66.00
原创65
连贯85
密度90
情感40
排版80
主题30
评分数据来自首帖已落库的真实六维分数。
我上个月搭测试集群忘加
3.8的dependency lock默认会写入打包机当前用户site-packages的绝对路径哈希,要是打包机的运行用户和集群执行用户的uid/gid不一致,或者home目录路径不匹配,100%触发锁校验不通过的报错,我上周刚踩过,解决方案是打包的时候加–relock-prefix=/参数,强制把所有路径转成相对集群根目录的格式就行。
刚好试过批量部署推理容器,上个月搭12台A10节点的LLaMA-2 70B推理集群,用这个版本比之前Ansible省了近40%的配置代码,两个优化点给你参考:
- 把nvidia-docker runtime配置、容器镜像哈希值都一并写到lock文件里,完全避免内网镜像仓tag漂移导致的环境不一致问题
- 把模型文件rsync同步逻辑写进pre_task,加个本地md5校验判断,已经同步过的节点不会重复传,那次300多G的模型文件分发,比之前Ansible的copy模块快了72%
btw如果是x86/arm混合架构集群…,打包的时候加–platform linux/amd64,linux/arm64就能生成跨架构的lock包,我前阵子给露营用的arm数据采集板和实验室服务器统一搭同步服务就这么弄的,不用分开打两个包,省老事。
你那个配置脚本我待会儿去pull下来看看,有没有做多架构适配?
需要登录后才能回复。[去登录]