随着大语言模型技术的普及,企业对推理过程中的数据安全问题日益关注。本文将介绍如何基于阿里云异构机密计算实例及Confidential AI方案(以下简称CAI),快速构建安全的大语言模型推理环境。
阿里云异构机密计算实例(gn8v-tee)在CPU TDX机密计算实例的基础上,额外将GPU引入到TEE(Trusted Execution Environment)中,可以保护CPU和GPU之间的数据传输及GPU中的数据计算。结合阿里云KMS服务作为密钥存储后端,并在ACK集群内部署Trustee远程证明服务,经过简单配置后,您的推理服务无需修改即可无缝实现机密计算的安全推理保护。该方案旨在帮助您在阿里云上迅速构建安全的大语言模型推理环境,从而为您的业务提供支持。 重要 当前异构机密计算实例处于邀测状态,如需使用,请联系您的客户经理。 上述方案的整体架构如下图所示。 该步骤包括下载模型、加密模型和上传模型三个环节。由于模型文件较大,整个过程耗时较长。 说明 如果您希望快速体验此方案,可以使用我们为您准备的加密模型文件进行试用。选择我们已加密的模型文件后,您将能够跳过该步骤。直接进行步骤二:搭建Trustee远程证明服务。点击下方以获取加密模型文件信息。 在模型正式上云部署之前,您需要先对模型进行加密,然后将其上传到云存储。解密模型的密钥将由远程证明服务控制的KMS(密钥管理服务)负责托管。请在本地或可信环境中执行模型的加密操作。以部署Qwen2.5-3B-Instruct大模型为例,基于本地环境Alibaba Cloud Linux 3.2104 LTS 64(可访问公网),提供如下指导。 说明 如果您已经拥有自己的模型,请跳过本章节,直接进入2.加密模型章节。 以使用modelscope工具下载Qwen2.5-3B-Instruct模型为例,在终端中执行如下命令下载模型。 成功执行命令后,模型将被下载到 目前支持如下两种加密方式,本方案以Gocryptfs为例。 Gocryptfs:基于AES256-GCM,符合开源Gocryptfs标准的加密模式。 Sam:阿里云可信AI模型加密格式,保护模型机密性和License内容不被篡改和非法使用。 执行Gocryptfs加密 执行Sam加密 安装用于加密模型的工具Gocryptfs (目前只支持使用默认参数进行加密的Gocryptfs v2.4.0 版本)。您可以选择以下任意一种方式进行安装: (推荐)方式一:直接下载预编译binary 方式二:编译安装Gocryptfs 创建Gocryptfs密钥文件,作为模型加密的密钥。在后续步骤中,您需要将该密钥上传到远程证明服务(Trustee)进行托管。 在本方案中,使用 使用已创建的密钥对模型进行加密。 配置明文模型的路径。 说明 在此处配置您刚才下载的明文模型所在路径,如果您有其他模型,请将其替换为目标模型的实际路径。 使用Gocryptfs对模型目录树进行加密。 加密完成后,模型将以密文形式存储在 您需要准备一个与即将部署的异构实例相同地域的OSS Bucket,并将加密模型上传到阿里云OSS对象存储,以便后续从异构实例拉取并部署。 以对象存储OSS为例,请参考控制台快速入门创建一个存储空间(Bucket)和一个名为 远程证明服务是由用户管理的验证服务,负责对模型及推理服务的运行环境进行验证。仅在确认异构模型部署环境的可信度符合预期条件时,才会注入模型解密密钥以实现模型的解密挂载。 您可以使用阿里云ACK Serverless部署远程证明服务,以验证模型部署环境和推理环境。同时,借助阿里云KMS为模型解密密钥提供专业的安全保障。具体操作步骤如下: 重要 ACK集群的地域不必与异构部署服务的目标地域相同。 阿里云KMS实例必须和准备部署的阿里云Trustee远程证明服务所在的ACK集群处于相同地域。 在创建KMS实例和ACK集群之前,请先创建专有网络和2个交换机。具体操作,请参见创建和管理专有网络。 前往密钥管理服务控制台,在左侧导航栏选择 ,然后在软件密钥管理页签创建并启动实例。在启动实例时,请选择与ACK集群相同的专有网络。具体操作,请参见购买和启用KMS实例。 等待大约10分钟,即可启动完毕。 实例启动完成后,在左侧导航栏选择密钥管理页面为该实例创建一个用户主密钥。具体操作,请参见步骤一:创建软件密钥。 在左侧导航栏选择接入点页面为该实例创建应用接入点。其中作用域选择已创建的KMS实例。更多配置说明,请参见方式一:快速创建。 应用接入点创建成功后,浏览器会自动下载ClientKey***.zip文件,该zip文件解压后包含: 应用身份凭证内容(ClientKeyContent):文件名默认为 凭证口令(ClientKeyPassword):文件名默认为 在基础信息区域,单击实例CA证书后的下载,导出KMS实例的公钥证书文件 集群配置:配置以下参数,完成后单击下一步:组件配置。 关键配置 描述 专有网络 选择使用已有,并勾选为专有网络配置SNAT,否则无法拉取Trustee镜像。 交换机 请确保在已有专有网络中创建至少两个虚拟交换机,否则无法暴露公网ALB。 组件配置:配置以下参数,完成后单击下一步:确认配置。 关键配置 描述 服务发现 选择CoreNDS。 Ingress 选择ALB Ingress,ALB云原生网关实例来源选择新建,并选择两个虚拟交换机。 确认配置:确认配置信息和使用须知,然后单击创建集群。 集群创建成功后,安装csi-provisioner(托管)组件。具体操作,请参见管理组件。 首先通过公网或内网连接集群。具体操作,请参见连接集群。 将已下载的KMS实例的应用身份凭证( 说明 执行代码中第一条安装插件命令( 返回结果示例为: 在连接ACK Serverless集群的环境中执行如下命令,来获取Trustee的访问地址。 返回结果示例为 在连接ACK Serverless集群的环境中执行以下命令,测试Trustee服务的连通性。 若Trustee服务运行状态正常,预期输出如下: Trustee托管的模型解密密钥实际上存储在KMS中,只有在远程证明服务验证目标环境后,密钥才能被访问。 前往密钥管理服务控制台,在左侧导航栏选择 ,然后在通用凭据页签,单击创建凭据。其中关键配置说明如下: 凭据名称:自定义凭据名称,用于索引该密钥,例如 设置凭据值:填写加密模型时使用的密钥。例如 加密主密钥:选择上述步骤创建的主密钥。 在控制台创建具备异构机密计算特性的实例步骤与创建普通实例类似,但需要注意一些特定选项。以下步骤将为您详细介绍如何使用包含异构机密计算环境和CAI环境的云市场镜像,创建异构机密计算实例。关于异构机密计算环境的更多信息,请参见构建异构机密计算环境。 前往实例购买页。 选择自定义购买页签。 选择付费类型、地域、实例规格、镜像等配置。 各配置项详细说明如下: 配置项名称 配置项说明 实例规格族 必须选择gn8v-tee实例规格族中的如下两种规格之一: 重要 当前异构机密计算实例处于邀测状态,如需使用,请联系您的客户经理。 镜像 单击云市场镜像页签,输入 说明 关于该镜像的更多信息,请参见Alibaba Cloud Linux 3.2104 LTS 64位单卡Confidential AI镜像。您可以在镜像介绍页面完成异构机密计算实例的创建。 系统盘 系统盘容量建议选择不低于1 TiB,具体大小应根据您需要运行的模型文件大小进行合理评估。一般建议容量大于模型大小的两倍。请您根据实际情况进行设置。 ecs.gn8v-tee.4xlarge ecs.gn8v-tee.6xlarge 在最终创建实例前,请在页面右侧检查实例的整体配置并配置使用时长等选项,确保符合您的要求。 阅读并签署《云服务器ECS服务条款》等服务协议(若已签署,则无需重复签署,请以页面提示为准),然后单击确认下单。 在实例创建过程中,请您耐心等待。您可前往控制台的实例列表页面查看实例的状态,当实例状态变为运行中时,表示实例创建完成。 在部署过程中,实例需要访问存储模型密文的OSS bucket,并访问Trustee获得模型解密密钥,因此需要配置实例对相关OSS和Trustee的访问权限。 登录OSS管理控制台。 单击Bucket 列表,然后单击目标Bucket名称。 在左侧导航栏,选择 。 在Bucket 授权策略页签,单击新增授权,在新增授权页面中,为异构机密计算实例的公网IP增加 单击确定。 前往阿里云ALB负载均衡控制台,创建访问控制策略组,并将访问Trustee权限的地址/地址段添加为IP条目。具体操作,请参见访问控制。 其中,需要添加的地址或地址段如下: 部署异构服务时绑定的专有网络的公网IP地址。 推理客户端的出口IP地址。 使用如下命令获得集群上Trustee实例使用的ALB负载均衡实例ID。 预期输出如下结果: 在阿里云ALB负载均衡控制台左侧导航栏,选择 ,在集群所在地域下搜索上一步获得的ALB实例,并单击实例ID进入实例详情页面。然后在页面最下方实例属性区域,单击关闭配置修改保护。 切换到监听页面,单击目标监听实例访问控制列下的启用,并配置白名单为上述步骤创建的访问控制策略组。 在异构机密计算实例中部署vLLM大模型推理服务,您可以通过 远程连接异构实例,具体操作,请参见使用Workbench终端连接登录Linux实例(SSH)。 运行如下命令,以打开 按 输入 通过docker部署推理服务 通过docker compose部署推理服务 您需要通过上一步中配置的文件,启动CAI服务,用于完成对加密模型的解密。这将会在host环境中 运行如下命令,以启动CAI服务。 回显结果示例如下,说明CAI服务启动成功。 查看解密后的模型文件 如需查看解密后的模型文件,您可以运行如下命令。 回显结果示例如下,说明模型文件解密成功。 运行如下命令,启动vLLM推理服务。 回显信息示例如下,说明推理服务启动成功。 为了访问机密计算实例中的推理服务,您需要准备一个客户端环境,并安装可信网关客户端(Trusted Network Gateway)。下面演示将一台普通的ECS实例作为客户端,访问异构实例中部署的vLLM推理服务的步骤。 本文中,客户端环境需通过异构机密计算实例的公网IP来访问实例中部署的推理服务,因此必须为异构机密计算实例所在的安全组添加客户端的放行规则,以允许客户端环境访问异构机密计算实例。同时,在与服务端建立安全信道的过程中,需依赖Trustee对异构机密计算实例进行远程证明。因此,还需在Trustee的访问控制中添加客户端环境的公网IP地址。具体操作如下。 为异构机密计算实例所属安全组添加客户端的放行规则。具体操作,请参见管理安全组规则。 在Trustee的访问控制中添加客户端环境的公网IP地址。 因为在步骤四:配置异构实例对OSS和Trustee的访问权限中已经创建了访问控制策略组并加入了白名单,所以此时不需要新建访问控制策略组,只需将客户端公网IP加入访问控制策略组中即可。 可信网关 (Trusted Network Gateway,TNG) 是针对机密计算场景设计的网络组件。它可作为一个守护进程,负责建立安全通信信道,对进出机密实例的网络流量请求进行透明加解密,实现端到端的数据安全。此外,它允许您在无需修改已有应用程序的同时,根据自己的需求灵活地控制流量的加密和解密过程。 部署可信网关客户端。 通过docker部署 通过二进制文件部署 在客户端实例中安装Docker,具体操作,请参见安装Docker。 运行如下命令,使用Docker部署可信网关客户端。 重要 注意:用户需要根据前面部署的Trustee服务,对应修改 部署成功后,可信网关客户端将保持在前台运行,并在 您可以通过如下两种方式为客户端实例上的进程配置HTTP代理服务。 按照协议类型配置代理 为所有协议配置代理 通过在客户端环境中运行 为客户端实例重新打开一个终端窗口。 运行如下命令,访问推理服务。 说明 回显结果示例如下,表示客户端通过curl命令发出的请求能够被可信网关客户端加密,再通过安全信道发送。最终成功访问异构中部署的大模型服务。 您需要将下述命令中的 下述命令在执行 关于如何构建异构机密计算环境,请参见构建异构机密计算环境。背景说明
方案架构
操作步骤
步骤一:准备加密的模型数据
1.下载模型
pip3 install modelscope importlib-metadata
modelscope download --model Qwen/Qwen2.5-3B-Instruct
~/.cache/modelscope/hub/models/Qwen/Qwen2.5-3B-Instruct/
目录下。2.加密模型
# 下载预编译Gocryptfs压缩包wget https://github.jobcher.com/gh/https://github.com/rfjakob/gocryptfs/releases/download/v2.4.0/gocryptfs_v2.4.0_linux-static_amd64.tar.gz# 解压并安装tar xf gocryptfs_v2.4.0_linux-static_amd64.tar.gz
sudo install -m 0755 ./gocryptfs /usr/local/bin
alibaba@1688
作为加密模型使用的密钥,密钥内容将存储在cachefs-password
文件中。您也可以自定义密钥。cat << EOF > ~/cachefs-password
alibaba@1688
EOF
PLAINTEXT_MODEL_PATH=~/.cache/modelscope/hub/models/Qwen/Qwen2.5-3B-Instruct/
./cipher
目录中。mkdir -p ~/mountcd ~/mountmkdir -p cipher plain# 安装Gocryptfs运行时依赖sudo yum install -y fuse# initialize gocryptfscat ~/cachefs-password | gocryptfs -init cipher# mount to plaincat ~/cachefs-password | gocryptfs cipher plain# move AI model to ~/mount/plaincp -r ${PLAINTEXT_MODEL_PATH} ~/mount/plain
3.上传模型
qwen-encrypted
的目录(例如oss://examplebucket/qwen-encrypted/
),然后使用ossutil工具将加密模型上传到该目录(您也可以使用自己的方法上传加密模型),以供推理服务挂载。以Sam加密为例,密文模型上传后的结果如下图所示。若采用Gocryptfs加密方式,模型文件的密文文件名将全部变成加密后的乱码。步骤二:搭建Trustee远程证明服务
1.创建一台阿里云KMS实例作为密钥存储后端
clientKey_****.json
。clientKey_****_Password.txt
。PrivateKmsCA_***.pem
。2.创建ACK服务集群并安装csi-provisioner组件
3.在ACK集群中部署Trustee远程证明服务
clientKey_****.json
)、凭证口令(clientKey_****_Password.txt
)和CA证书(PrivateKmsCA_***.pem
),上传到连接ACK Serverless集群的环境中,并执行以下命令部署Trustee远程证明服务,使用阿里云KMS作为密钥存储后端。# 安装插件helm plugin install https://github.com/AliyunContainerService/helm-acr
helm repo add trustee acr://trustee-chart.cn-hangzhou.cr.aliyuncs.com/trustee/trustee
helm repo updateexport DEPLOY_RELEASE_NAME=trusteeexport DEPLOY_NAMESPACE=defaultexport TRUSTEE_CHART_VERSION=1.0.0# 设置ACK集群所在的地域信息,比如cn-hangzhouexport REGION_ID=cn-hangzhou# 刚才导出的KMS实例相关信息 # 替换为您的KMS实例IDexport KMS_INSTANCE_ID=kst-hzz66a0*******e16pckc# 替换为您的KMS实例应用身份凭证所在路径 export KMS_CLIENT_KEY_FILE=/path/to/clientKey_KAAP.***.json# 替换为您的KMS实例凭证口令所在路径 export KMS_PASSWORD_FILE=/path/to/clientKey_KAAP.***_Password.txt# 替换为您的KMS实例CA证书所在路径export KMS_CERT_FILE=/path/to/PrivateKmsCA_kst-***.pem
helm install ${DEPLOY_RELEASE_NAME} trustee/trustee \
--version ${TRUSTEE_CHART_VERSION} \
--set regionId=${REGION_ID} \
--set kbs.aliyunKms.enabled=true \
--set kbs.aliyunKms.kmsIntanceId=${KMS_INSTANCE_ID} \
--set-file kbs.aliyunKms.clientKey=${KMS_CLIENT_KEY_FILE} \
--set-file kbs.aliyunKms.password=${KMS_PASSWORD_FILE} \
--set-file kbs.aliyunKms.certPem=${KMS_CERT_FILE} \
--namespace ${DEPLOY_NAMESPACE}
helm plugin install...
)可能需要较长时间。如果安装失败,可以先通过helm plugin uninstall cm-push
命令卸载该插件,然后重新执行插件安装命令。NAME: trustee
LAST DEPLOYED: Tue Feb 25 18:55:33 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
export TRUSTEE_URL=http://$(kubectl get AlbConfig alb -o jsonpath='{.status.loadBalancer.dnsname}')/${DEPLOY_RELEASE_NAME}echo ${TRUSTEE_URL}
http://alb-ppams74szbwg2f****.cn-shanghai.alb.aliyuncsslb.com/trustee
。cat << EOF | curl -k -X POST ${TRUSTEE_URL}/kbs/v0/auth -H 'Content-Type: application/json' -d @-
{
"version":"0.1.0",
"tee": "tdx",
"extra-params": "foo"
}
EOF
{"nonce":"PIDUjUxQdBMIXz***********IEysXFfUKgSwk=","extra-params":""}
4.创建凭据来存储模型解密密钥
model-decryption-key
。alibaba@1688
,您的密钥以实际为准。步骤三:创建异构机密计算实例
Confidential AI
进行搜索,选择Alibaba Cloud Linux 3.2104 LTS 64位单卡Confidential AI
镜像。步骤四:配置异构实例对OSS和Trustee的访问权限
1.配置异构实例对OSS的访问权限
Bucket
授权。2.配置实例对Trustee的访问权限
kubectl get ing --namespace ${DEPLOY_NAMESPACE} kbs-ingress -o jsonpath='{.status.loadBalancer.ingress[0].hostname}' | cut -d'.' -f1 | sed 's/[^a-zA-Z0-9-]//g'
alb-llcdzbw0qivhk0****
步骤五:在异构机密计算实例中部署vLLM大模型推理服务
docker
或者docker compose
两种方式来完成部署。具体操作步骤如下:1.准备配置文件
~/cai.env
配置文件。vi ~/cai.env
i
键进入插入模式,将准备好的配置信息粘贴到配置文件中。# Trustee服务urlTRUSTEE_URL="http://alb-xxxxxxxxx.cn-beijing.alb.aliyuncsslb.com/xxxx/"# Trustee上配置的policy名称,用于模型密钥获取、多节点模型共享时的RA过程TRUSTEE_POLICY="default"# Trustee上配置的模型解密密钥对应的resource id,对应的在下面小节中填写解密密钥KBS URI时将写作kbs:///default/aliyun/model-decryption-key。这里对于凭据名称<凭据名称>,对应的KBS URI是kbs:///default/aliyun/<凭据名称>MODEL_KEY_ID="kbs:///default/aliyun/model-decryption-key"# 加密模式使用的加密方法,取值为"gocryptfs"或"sam",默认值为"gocryptfs"MODEL_ENCRYPTION_METHOD="gocryptfs"# 存放在阿里云OSS上的模型密文路径,格式为"${bucket}:/${path}"MODEL_OSS_BUCKET_PATH="bucket_name:/path_of_model_ciphertext"# 存放模型密文的OSS URLMODEL_OSS_ENDPOINT="https://oss-cn-beijing-internal.aliyuncs.com"# 用于访问OSS bucket的access keyMODEL_OSS_ACCESS_KEY_ID="<oss access key id>"# 用于访问OSS bucket的access key secretMODEL_OSS_SECRET_ACCESS_KEY="<oss access key secret>"# 用于访问OSS bucket的session token,仅在通过STS凭据访问OSS时需要MODEL_OSS_SESSION_TOKEN=# 加入的模型P2P共享群组中节点的IP(可选。需指定群组中至少一个节点的IP,如不指定该项则或指定空值,表示禁用模型共享)# MODEL_SHARING_PEER="172.30.xxx.xxx 172.30.xxx.xxx"# 业务部署模型推理服务使用的端口号,该端口上的通信将被透明加密保护MODEL_SERVICE_PORT=8080# 解密后模型明文的挂载位置,模型推理服务可以从该路径加载模型MODEL_MOUNT_POINT=/tmp/model
:wq
并按下回车键
,保存并退出编辑器。2.部署推理服务
使用配置文件启动CAI服务
MODEL_MOUNT_POINT
指定的路径/tmp/model
处挂载解密后的明文模型数据,您的推理服务程序(如vLLM)可以从该路径加载模型。cd ~
docker compose -f /opt/alibaba/cai-docker/docker-compose.yml --env-file ./cai.env up -d --wait
[+] Running 5/5
✔ Container cai-docker-oss-1 Healthy 44.7s
✔ Container cai-docker-attestation-agent-1 Healthy 44.7s
✔ Container cai-docker-tng-1 Healthy 44.7s
✔ Container cai-docker-confidential-data-hub-1 Healthy 44.7s
✔ Container cai-docker-cachefs-1 Healthy
ls -la -R /tmp/model
docker run --rm \
--net host \
-v /tmp/model:/tmp/model \
--gpus all \
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/llm-inference:vllm0.5.4-deepgpu-llm24.7-pytorch2.4.0-cuda12.4-ubuntu22.04 \
python3 -m vllm.entrypoints.openai.api_server --model=/tmp/model --trust-remote-code --port 8080
Loading safetensors checkpoint shards: 0% Completed | 0/2 [00:00<?, ?it/s]
Loading safetensors checkpoint shards: 50% Completed | 1/2 [00:01<00:01, 1.07s/it]
Loading safetensors checkpoint shards: 100% Completed | 2/2 [00:01<00:00, 1.21it/s]
Loading safetensors checkpoint shards: 100% Completed | 2/2 [00:01<00:00, 1.16it/s]
INFO 03-04 07:49:06 model_runner.py:732] Loading model weights took 5.7915 GB
INFO 03-04 07:49:08 gpu_executor.py:102] # GPU blocks: 139032, # CPU blocks: 7281
INFO 03-04 07:49:08 model_runner.py:1024] Capturing the model for CUDA graphs. This may lead to unexpected consequences if the model is not static. To run the model in eager mode, set 'enforce_eager=True' or use '--enforce-eager' in the CLI.
INFO 03-04 07:49:08 model_runner.py:1028] CUDA graphs can take additional 1~3 GiB memory per GPU. If you are running out of memory, consider decreasing `gpu_memory_utilization` or enforcing eager mode. You can also reduce the `max_num_seqs` as needed to decrease memory usage.
INFO 03-04 07:49:18 model_runner.py:1225] Graph capturing finished in 9 secs.
WARNING 03-04 07:49:18 serving_embedding.py:171] embedding_mode is False. Embedding API will not work.
INFO 03-04 07:49:18 launcher.py:14] Available routes are:
INFO 03-04 07:49:18 launcher.py:22] Route: /openapi.json, Methods: HEAD, GET
INFO 03-04 07:49:18 launcher.py:22] Route: /docs, Methods: HEAD, GET
INFO 03-04 07:49:18 launcher.py:22] Route: /docs/oauth2-redirect, Methods: HEAD, GET
INFO 03-04 07:49:18 launcher.py:22] Route: /redoc, Methods: HEAD, GET
INFO 03-04 07:49:18 launcher.py:22] Route: /health, Methods: GET
INFO 03-04 07:49:18 launcher.py:22] Route: /tokenize, Methods: POST
INFO 03-04 07:49:18 launcher.py:22] Route: /detokenize, Methods: POST
INFO 03-04 07:49:18 launcher.py:22] Route: /v1/models, Methods: GET
INFO 03-04 07:49:18 launcher.py:22] Route: /version, Methods: GET
INFO 03-04 07:49:18 launcher.py:22] Route: /v1/chat/completions, Methods: POST
INFO 03-04 07:49:18 launcher.py:22] Route: /v1/completions, Methods: POST
INFO 03-04 07:49:18 launcher.py:22] Route: /v1/embeddings, Methods: POST
INFO: Started server process [1]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
步骤六:访问异构机密计算实例中的推理服务
1.配置客户端环境对异构机密计算实例和Trustee的访问权限
2.为客户端实例部署可信网关客户端
as_addr
字段的值为${trsutee_url}/as/
。docker run --rm \
--network=host \
confidential-ai-registry.cn-shanghai.cr.aliyuncs.com/product/tng:2.2.1 \
tng launch --config-content '
{
"add_ingress": [
{
"http_proxy": {
"proxy_listen": {
"host": "127.0.0.1",
"port": 41000
}
},
"verify": {
"as_addr": "http://alb-xxxxxxxxxxxxxxxxxx.cn-shanghai.alb.aliyuncsslb.com/cai-test/as/",
"policy_ids": [
"default"
]
}
}
]
}
'
3.为客户端实例上的进程配置HTTP代理服务
127.0.0.1:41000
上创建了一个基于HTTP CONNECT协议的HTTP代理服务。将应用程序接入该代理,流量将被可信网关客户端加密处理并通过可信信道发送给vLLM服务。export http_proxy=http://127.0.0.1:41000
export https_proxy=http://127.0.0.1:41000
export ftp_proxy=http://127.0.0.1:41000
export rsync_proxy=http://127.0.0.1:41000
4.通过客户端实例访问推理服务
curl
命令访问异构机密计算实例中的推理服务。env all_proxy='http://127.0.0.1:41000/' \
curl http://<异构机密计算实例公网IP>:8080/v1/completions \
-X POST \
-H "Content-Type: application/json" \
-d '{"model": "/tmp/model", "prompt": "Do you know the book Traction by Gino Wickman", "temperature": 0.0, "best_of": 1, "max_tokens": 132, "stream": false}'
<异构机密计算实例公网IP>
替换为步骤三:创建异构机密计算实例中创建的异构机密计算实例公网IP。curl
命令之前设置了环境变量all_proxy='http://127.0.0.1:41000/'
,从而使得curl
命令发出的请求能够通过可信网关客户端进行加密,并通过安全信道发送。常见问题
相关文档