在ACS上使用PPU PIP服务
本文为您介绍如何在ACS上使用PTG提供的PPU PIP服务和阿里云提供的PPU PIP服务。PTG提供的PPU PIP服务:使用前需申请鉴权账号和密码。软件包安装需通过公网进行,并在安装时显式提供账密信息。阿里云提供的PPU PIP服务:支持免密使用,且可在 VPC 内使用(Pod 无需连接公网)。使用前需完成必要的配置工作。两者在 PIP 软件的种类、数量及命名等方面完全一致。您可以根据实际需求选择适合的服务。
在ACS产品使用阿里云提供的PPU PIP服务
场景说明
支持VPC内使用PIP服务,您的ACS PPU Pod可不通公网,满足合规和网络管控的需求。
您只需要设置一个PIP源,可以一站式安装XPU和CPU的PIP软件包。
软件包安装不需要您手动显式鉴权操作(对齐社区使用体验)。
所有ACS的PPU您都可以使用,使用之前需要做必要的配置工作。
与PTG提供的PPU PIP服务的异同
使用PTG提供的PPU PIP服务 | 使用阿里云提供的PPU PIP服务 | |
PIP源 Index URL | 形如 | 形如 详细Index URL信息和对应规则,请参见阿里云提供PPU PIP服务Index URL。 |
PIP源鉴权 | 需要显式鉴权(按需申请) | 免鉴权(配置后可用) |
使用范围 | 已申请账号密码的用户 | 全部ACS PPU用户(需要配置开启) |
访问途径 | 互联网访问 | 互联网访问、VPC内访问 |
使用前配置环节 | 不需要额外配置 | 需要进行一些前置的配置步骤 |
软件包使用 | 软件包命名、软件包数量、安装方式无差异 | 软件包命名、软件包数量、安装方式无差异(仅需替换PIP源Index URL) |
说明 | 后续可能会取消服务 |
使用方式
开通PPU PIP免密授权
前置步骤:通过PPU阿里云网站查询官方提供的PPU-PIP包清单,只有这个列表中提供的软件包才可以安装,列表中找不到的CUDA相关的PIP软件包,建议您通过编译安装的方式安装,详细操作步骤,请参见自行编译PIP软件包。
资源和费用:PPU PIP免鉴权功能会在集群中部署
ack-pod-identity-webhook无状态工作负载(3副本),每个Pod系统资源消耗(resources.requests)为:CPU: 100m、Memory: 100Mi。您对这3个Pod有权访问使用,使用的资源按照ACS计费说明进行计费。为确保PIP免密功能的正常运行,请不要移除该工作负载。
ACS(PPU实例)的PIP免密服务是按照集群维度授权的,您可以在ACS产品控制台,通过集群列表找到需要使用PIP服务的集群,点击集群名称进入集群信息页面,在基本信息选项卡中找到安全与审计面板,按照系统指引开启PIP 免密授权。
说明每添加一个PIP 免密授权,会生成一个集群命名空间维度的Service Account,对应命名空间内所有 Pod 均可使用。若其他存量命名空间或者新增命名空间的 Pod 也有此需求,则需要再次添加授权。
通过点击添加授权,选择欲添加的命名空间,可以查看是否已经添加成功,以及(如果存在)存量的Service Account。
PIP 免密授权的底层实现方案请参考通过RRSA配置ServiceAccount的RAM权限实现Pod权限隔离。
请务必生成授权URL,并在新浏览器页面完成后续的授权操作。

需要您记录ACS集群的Service Account名称,后续的配置步骤会引用该名称。

集群开通PIP免密授权之后,在这个集群内相应的命名空间中使用DinD Pod、Buildah Pod、普通PPU Pod都已经具备了PIP免密的基本条件。可以根据您的具体使用场景选取并执行后续步骤。
使用PPU PIP服务
容器开发环境(如DinD、Buildah)
YAML文件添加PIP免密授权字段。
修改ACS PPU用户容器镜像开发实践中创建DinD Pod/Buildah Pod的YAML文件,添加
spec.serviceAccountName字段。
根据使用的场景,进行环境设置并使用PIP服务。
使用DinD的场景
在启动内层PPU容器的时候要挂载免鉴权必要的环境变量和文件。
# 使用PTG提供的PIP服务 id=$(docker run --network host -tid --privileged {ppu-image-uri} bash) # 将上述启动容器的命令改造成如下的形式:增加4个ALIBABA_CLOUD*的环境变量和1个文件挂载 # 使用阿里云提供的PIP服务 id=$(docker run --network host -tid --privileged \ -e ALIBABA_CLOUD_OIDC_PROVIDER_ARN=$ALIBABA_CLOUD_OIDC_PROVIDER_ARN \ -e ALIBABA_CLOUD_ROLE_ARN=$ALIBABA_CLOUD_ROLE_ARN \ -e ALIBABA_CLOUD_OIDC_TOKEN_FILE=$ALIBABA_CLOUD_OIDC_TOKEN_FILE \ -e ALIBABA_CLOUD_STS_ENDPOINT=$ALIBABA_CLOUD_STS_ENDPOINT \ -v /var/run/secrets/ack.alibabacloud.com/rrsa-tokens/:/var/run/secrets/ack.alibabacloud.com/rrsa-tokens/ \ {ppu-image-uri} bash)内部PPU容器内安装免密插件,然后就可以免密使用PIP服务了(与PTG提供的PIP服务相比安装指令只需要替换Index URL,其他方面无区别)。
# 其他Linux软件包安装步骤省略 # 只示意使用阿里云提供的PIP软件安装相关的步骤 ## 1. 首先安装免密插件aiext-pypi-plugin pip install aiext-pypi-plugin -i http://mirrors.cloud.aliyuncs.com/aiext-pypi/aiext-pypi-plugin/simple --trusted-host mirrors.cloud.aliyuncs.com ## 2. 然后就可以正常免密安装相关pip wheel包,比如: pip install torch==2.5.1 vllm==0.7.3 -i https://aiext-pypi.mirrors.aliyuncs.com/pg1-pip/ubuntu_cu123/simple/ ## 3. PIP安完成后建议清理环境。 pip uninstall -y aiext-pypi-plugin rm ~/.netrc # 按需清理,或者编辑文件仅删除machine aiext-pypi.mirrors.aliyuncs.com相关内容
使用Buildah场景
对Dockerfile做必要的修改,安装免密插件,然后就可以免密使用PIP服务了(与PTG提供的PIP服务相比安装指令只需要替换Index URL,其他方面无区别)。
# 如果使用ACS提供的标准镜像 FROM egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/{image:tag} # 其他Dockerfile步骤省略 # 只示意使用阿里云提供的PIP软件安装相关的步骤 ## 1. 设置免密相关Env ARG ALIBABA_CLOUD_STS_ENDPOINT ARG ALIBABA_CLOUD_OIDC_PROVIDER_ARN ARG ALIBABA_CLOUD_ROLE_ARN ENV ALIBABA_CLOUD_STS_ENDPOINT=${ALIBABA_CLOUD_STS_ENDPOINT} ENV ALIBABA_CLOUD_OIDC_PROVIDER_ARN=${ALIBABA_CLOUD_OIDC_PROVIDER_ARN} ENV ALIBABA_CLOUD_ROLE_ARN=${ALIBABA_CLOUD_ROLE_ARN} ENV ALIBABA_CLOUD_OIDC_TOKEN_FILE=/mount/rrsa-tokens/token ## 2. 安装免密插件aiext-pypi-plugin,安装插件限制(暂不支持以python -m pip执行请求) RUN pip install aiext-pypi-plugin -i http://mirrors.cloud.aliyuncs.com/aiext-pypi/aiext-pypi-plugin/simple --trusted-host mirrors.cloud.aliyuncs.com ## 3. 每一条pip install前都要增加--mount选项,比如: RUN --mount=type=bind,source=/var/run/secrets/ack.alibabacloud.com/rrsa-tokens,target=/mount/rrsa-tokens \ pip install torch==2.5.1 -i https://aiext-pypi.mirrors.aliyuncs.com/pg1-pip/ubuntu_cu123/simple/ RUN --mount=type=bind,source=/var/run/secrets/ack.alibabacloud.com/rrsa-tokens,target=/mount/rrsa-tokens \ pip install vllm==0.7.3 -i https://aiext-pypi.mirrors.aliyuncs.com/pg1-pip/ubuntu_cu123/simple/ ## 4. PIP安完成后建议清理环境 RUN pip uninstall -y aiext-pypi-pluginBuildah Pod中
buildah build命令添加3个ALIBABA_CLOUD*环境变量,改造如下:# 使用PTG提供的PIP服务 buildah --storage-driver=overlay build --no-cache -t test:v1 . # 改造为如下形式,添加4个ALIBABA_CLOUD*的构建参数: # 使用阿里云提供的PIP服务 buildah --storage-driver=overlay build --no-cache \ --build-arg ALIBABA_CLOUD_OIDC_PROVIDER_ARN=$ALIBABA_CLOUD_OIDC_PROVIDER_ARN \ --build-arg ALIBABA_CLOUD_ROLE_ARN=$ALIBABA_CLOUD_ROLE_ARN \ --build-arg ALIBABA_CLOUD_STS_ENDPOINT=$ALIBABA_CLOUD_STS_ENDPOINT \ -t demo:v1 .
普通PPU容器环境
您可以查询和获取ACS容器镜像版本发布记录中的AI容器镜像直接启动PPU容器,该容器适用于一次性任务环境。任务完成后,容器Pod将自动退出,且不支持保存对容器环境的修改。
YAML文件添加PIP免密授权字段。
改造创建PPU Pod的YAML文件,添加
spec.serviceAccountName字段。
在普通PPU容器内完成环境设置并使用PIP服务。
# 1. 首先安装免密插件aiext-pypi-plugin,安装插件限制(暂不支持以python -m pip执行请求) pip install aiext-pypi-plugin -i http://mirrors.cloud.aliyuncs.com/aiext-pypi/aiext-pypi-plugin/simple --trusted-host mirrors.cloud.aliyuncs.com # 2. 然后就可以正常免密安装相关pip wheel包,比如: pip install torch==2.5.1 vllm==0.7.3 -i https://aiext-pypi.mirrors.aliyuncs.com/pg1-pip/ubuntu_cu123/simple/
阿里云提供PPU PIP服务Index URL
阿里云提供PPU PIP服务的Index URL与PTG提供PPU PIP服务的Index URL是一一映射的,映射规则如下表所示。
两种不同的Index URL提供的软件包的内容完全相同。
阿里云提供PPU PIP服务Index URL | PTG提供PPU PIP服务的Index URL | |
OS绑定的Index URL (<=v1.5.3) | 格式: 举例:
| 格式: 举例:
|
OS Free模式Index URL (v1.6.x引入) | 格式: 举例:
| 格式: 举例:
|
OS/CUDA Free模式Index URL (v1.7.x引入) | 固定为: | 固定为: |
在ACS产品使用PTG提供的PPU PIP服务
场景说明
只支持以公网方式访问PTG提供PIP服务。
使用之前需要向您的PDSA申请PIP源访问的鉴权信息。
PPU PIP简介
PPU PIP源提供适用于PPU产品的框架、基于PPU SDK重编译的开源库,方便您快速搭建生产环境。如果您需要的包不在PPU PIP源范畴内默认会从官方Pypi源拉取软件包。
PPU-PIP包清单会按照月度更新,优化版本的安装包为修改过代码并针对PPU做过性能优化的库、框架安装包,社区版本的安装包为在PPU SDK上编译的开源库、框架安装包。
PPU PIP命名规则
1.5.3及以下版本PPU PIP源Index URL命名规则
1.5.3及以下版本PPU PIP源的Python Package Index Base URL的命名规则为:{index-prefix}_{os}_{cuda}_{index-suffix},其中字段的含义如下:
Index URL构成 | 取值 | 说明 |
index-perfix部分 | 固定为 | |
os部分 | 枚举值: | ACS场景只有Ubuntu的镜像 |
cuda部分 | 枚举值: | |
index-suffix部分 | 固定为 |
完整的Python Package Index Base URL举例如下:
https://art-pub.eng.t-head.cn/artifactory/api/pypi/ptgai-pypi_ppu_ubuntu_cu126_index/simple/
https://art-pub.eng.t-head.cn/artifactory/api/pypi/ptgai-pypi_ppu_ubuntu_cu124_index/simple/
1.6.x引入的OS Free模式Index URL
1.6.x引入的OS Free模式 PPU PIP源的Python Package Index Base URL的命名规则为:{os-free-index-prefix}{cuda}{os-free-index-suffix},其中字段的含义如下:
OS Free Index URL构成 | 取值 |
os-free-index-prefix部分 | 固定为 |
cuda部分 | 枚举值: |
os-free-index-suffix部分 | 固定为 |
OS Free模式的PIP软件包可以兼容不同的 OS 版本,在源地址中不需要指定特定的 OS。
新的OS Free模式的PIP软件包仍然支持通过之前的OS绑定模式(v1.5.3及以下版本)的Index URL安装。
完整的OS Free Python Package Index Base URL举例如下:
https://art-pub.eng.t-head.cn/artifactory/api/pypi/cu128_index/simple/
https://art-pub.eng.t-head.cn/artifactory/api/pypi/cu126_index/simple/
1.7.x引入的OS/CUDA Free模式Index URL
1.7.x引入的OS/CUDA Free模式 PPU PIP源的Python Package Index Base URL的命名固定为:
https://art-pub.eng.t-head.cn/artifactory/api/pypi/pypi_index/simple/OS/CUDA Free模式的PIP软件包在安装过程中会自动识别环境中的OS、CUDA、Torch、Python的版本并匹配合适的安装包。
新的OS/CUDA Free模式的PIP软件包仍然支持通过之前的OS Free模式(v1.6.x引入)、OS绑定模式(v1.5.3及以下版本)的Index URL安装。
PPU PIP软件包安装指导
以flash-attn==2.4.3+ppu1.5.2.ce为例说明PPU PIP软件包安装指令命名规则:
字段组成部分 | 2.4.3 | +ppu1.5.2 | .ce |
字段说明 | 软件版本 | 发布版本 | ce/oe字段
|
flash-attn==2.4.3+ppu1.5.2.ce软件包的软件版本、发布版本、ce/oe字段等可以省略,因此理论上您有四种方式安装该软件。
您需要根据PIP List上公布的具体清单和版本信息来选择,并不是每一种组合都能找到具体的软件包。
pip install flash-attn==2.4.3+ppu1.5.2.ce
pip install flash-attn==2.4.3+ppu1.5.2 # ce/oe字段缺省:默认安装的是“优化版”的包,如果没有则安装“社区版”的包
## 推荐使用如下两种
pip install flash-attn==2.4.3 # 发布版本缺省:默认安装PIP源上该版本的最新编译的版本
pip install flash-attn # 软件版本缺省:默认安装一个最新版本使用示例
完整的PIP软件包安装示例如下:
pip install sglang==0.4.6.post1+ppu1.5.1 -i https://art-pub.eng.t-head.cn/artifactory/api/pypi/ptgai-pypi_ppu_ubuntu_cu126_index/simple/
pip install vllm==0.6.6.post1+ppu1.5.1 -i https://art-pub.eng.t-head.cn/artifactory/api/pypi/ptgai-pypi_ppu_ubuntu_cu126_index/simple/
pip install mmdet3d==1.4.0 -i https://art-pub.eng.t-head.cn/artifactory/api/pypi/ptgai-pypi_ppu_ubuntu_cu126_index/simple/如果您是在ACS产品使用阿里云提供的PPU PIP服务,以上安装指令您仅需替换Index URL为https://aiext-pypi.mirrors.aliyuncs.com/pg1-pip/ubuntu_cu126/simple/即可。
常见问题解决
如遇到以下PIP源hash值错误,请使用--no-cache指令解决。

# 如遇到pip源hash值错误,请添加--no-cache指令
pip install --no-cache-dir torch==2.1.2+ppu1.5.2
# 也可以清除当前系统中全部pip缓存再行安装
pip cache purge
pip install torch==2.1.2+ppu1.5.2附录
使用和修改PIP配置文件
“阿里云提供的PIP服务”和“PTG提供的PIP服务”这两种服务的pip.config配置文件的配置不同,请按需使用。
在25.07(包括)之前版本AI容器镜像内使用PIP服务
由于在25.07(包括)之前版本AI容器镜像中内置了PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple/环境变量,在默认使用情况下会屏蔽pip.config配置文件中的新设置,以下为注意事项:
如果您省略
-i <index-url>选项运行pip install命令,环境变量会屏蔽pip.config配置文件中的设置导致使用错误的Index URL。为确保正常使用“阿里云提供的PIP服务”和“PTG提供的PIP服务”,您需要运行unset PIP_INDEX_URL或export PIP_INDEX_URL=命令禁用该环境变量。如果您显式指定
-i <index-url>选项运行pip install命令则不受影响。
使用“阿里云提供的PIP服务”
阿里云提供的PIP服务支持一站式安装PPU相关的CUDA PIP软件包和Pypi社区的非CUDA的PIP软件包(使用之前您需要参考前序章节完成“ACS PIP免密”设置),即只需要一个PIP源就可以一站式安装所有的PIP软件包。
以下为“阿里云提供的PIP服务”的推荐配置文件,可替换镜像原来默认的配置文件。使用该配置文件您在安装PIP软件包的时候可以不用添加-i <index-url>选项。
以下配置文件中的<cuda-version>需要根据您具体使用的容器镜像的cuda版本(可通过nvcc --version命令查询)进行配置,合法的值包括cu126、cu124、cu123等。
[global]
index-url = https://aiext-pypi.mirrors.aliyuncs.com/pg1-pip/ubuntu_<cuda-version>/simple/
# eg: index-url = https://aiext-pypi.mirrors.aliyuncs.com/pg1-pip/ubuntu_cu126/simple/
[install]
trusted-host = aiext-pypi.mirrors.aliyuncs.com使用“PTG提供的PIP服务”
PTG提供的PIP服务支持一站式安装PPU相关的CUDA PIP软件包和Pypi社区的非CUDA的PIP软件包(使用之前需要向对接的PDSA同学获取“PTG PIP服务”的账密),即只需要一个PIP源就可以一站式安装所有的PIP软件包。
以下为“PTG提供的PIP服务”的推荐配置文件,可替换镜像原来默认的配置文件。使用该配置文件在安装PIP软件包的时候可以不用添加-i <index-url>选项。
以下配置文件中的<cuda-version>需要根据您具体使用的容器镜像的cuda版本(可通过nvcc --version命令查询)进行配置,合法的值包括cu126、cu124、cu123等。
[global]
index-url = https://art-pub.eng.t-head.cn/artifactory/api/pypi/ptgai-pypi_ppu_ubuntu_<cuda-version>_index/simple/
# eg: index-url = https://art-pub.eng.t-head.cn/artifactory/api/pypi/ptgai-pypi_ppu_ubuntu_cu126_index/simple/
[install]
trusted-host = art-pub.eng.t-head.cn mirrors.cloud.aliyuncs.com在25.08(包括)之后版本AI容器镜像内使用PIP服务
在25.08(包括)之后版本AI容器镜像内已经内置了“阿里云提供的PIP服务”和“PTG提供的PIP服务”的配置文件,可根据具体使用情形动态修改软连接来启用不同的PIP服务配置。
# 在25.08(包括)之后版本AI容器镜像内使用“阿里云提供的PIP服务” (镜像内默认配置,可以不用操作)
## 如果您是从“PTG提供的PIP服务”切换到“阿里云提供的PIP服务”,则需要先移除pip.config软链接 (rm ~/.pip/pip.config)
ln -s ~/.pip/pip.config.aiext-pypi ~/.pip/pip.config
# 在25.08(包括)之后版本AI容器镜像内使用“PTG提供的PIP服务”
ln -s ~/.pip/pip.config.art-pub ~/.pip/pip.config配置.netrc文件简化手动输入账密问题
在使用“PTG提供的PIP服务”时需要在安装每个PIP软件包时都手动输入PTG PIP账密(提前向对接PDSA获取),使用上很不方便,可考虑使用.netrc自动化身份验证方案来简化这个过程。
# PIP .netrc
cat > ~/.netrc << EOF
machine art-pub.eng.t-head.cn
login <pip-username>
password <pip-passwd>
EOF25.07(包括)之前版本的AI容器镜像混合使用了mirrors.cloud.aliyuncs.com(不需要账密,便于安装非CUDA的PIP软件包)和art-pub.eng.t-head.cn(需要账密,可以安装涉及CUDA的PPU版本的PIP软件包)两个源,您可以沿用原来的使用方式,或者参考本文修改为推荐的使用方式。
25.08(包括)之后版本的AI容器镜像内置了2个版本的
pip.config配置文件,您可以根据您使用的具体的PIP服务的情形自行切换配置文件。
由于~/.netrc文件包含了明文的登录用户名和密码,请确保~/.netrc 文件的权限为600(即只有您可以读写该文件),同时在镜像开发场景使用PIP服务之后建议您删除该文件。