Déployez et appelez un grand modèle de langage (LLM) chiffré dans l'environnement d'inférence chiffrée sécurisé de PAI-EAS sur Platform for AI (PAI). Le modèle est chiffré et téléchargé pour être utilisé au sein d'un environnement de confiance. Lors du déploiement, le service d'attestation à distance (Trustee) vérifie la fiabilité de l'environnement d'exécution, puis libère la clé de déchiffrement qui permet de déchiffrer et de monter le modèle. Trusted Network Gateway (TNG) peut chiffrer de manière transparente le trafic d'inférence. Ces couches de protection garantissent la sécurité de vos données et de votre modèle tout au long de leur cycle de vie. Cette solution convient aux charges de travail traitant des données sensibles soumises à des exigences de sécurité strictes, telles que les services financiers, le secteur public et les applications d'entreprise.
Fonctionnement
PAI-CC (PAI Confidential Computing) est le service d'inférence PAI-EAS dédié aux charges de travail de calcul confidentiel. Il s'appuie sur un service d'inférence Elastic Algorithm Service (EAS) standard et protège l'inférence de modèle de bout en bout grâce aux fonctionnalités suivantes :
CPU TEE (environnement d'exécution de confiance Intel TDX) : Le processus d'inférence s'exécute dans un domaine de confiance isolé par le matériel Intel TDX. Le chargement du modèle, la tokenisation, la logique de planification et le cache KV ont tous lieu à l'intérieur de l'enclave sur le CPU, de sorte que ni l'hôte ni la plateforme cloud ne peuvent lire le texte en clair.
GPU TEE (GPU confidentiel) : Le GPU fait partie de l'environnement d'exécution de confiance (TEE). Le TEE protège le transfert des poids du modèle du CPU vers le GPU, ainsi que le calcul de l'attention, la multiplication matricielle et le cache KV à l'intérieur du GPU. L'interconnexion CPU-GPU est chiffrée.
Stockage de modèle chiffré : Le modèle est chiffré avec gocryptfs (AES256-GCM), stocké dans Object Storage Service (OSS) et transféré vers l'instance sous forme de texte chiffré. La clé de déchiffrement n'est injectée dans le TEE qu'après la réussite de l'attestation à distance, puis le modèle est déchiffré et monté. La clé n'est jamais écrite sur le disque et ne quitte jamais le TEE.
Attestation à distance : Avant le déploiement et avant le démarrage de l'inférence, Trustee vérifie la signature matérielle du TEE, la mesure du firmware et la configuration d'exécution de l'instance. La clé de déchiffrement du modèle n'est libérée qu'après la réussite de cette vérification.
Mesure d'intégrité du modèle (verity) : Facultatif. Cette fonctionnalité génère un hachage racine d'arbre Merkle pour les fichiers de modèle et le vérifie lors du déploiement, ce qui empêche la falsification ou le remplacement du modèle pendant l'exécution.
Trafic d'inférence chiffré (protection de la passerelle TNG) : Facultatif. TNG chiffre de manière transparente les requêtes et les réponses entre le client et le service d'inférence, protégeant ainsi les données d'inférence de bout en bout. Les clés sont négociées lors de la poignée de main d'attestation à distance et chaque requête d'inférence utilise une clé unique pour empêcher l'écoute clandestine et la falsification sur le chemin réseau.
Installer le client pai-cc-tools
pai-cc-tools regroupe les commandes de mesure, de chiffrement, de téléchargement et d'inférence confidentielle des modèles. Installez le client avant de commencer :
curl -fsSL https://conf-ai.oss-cn-beijing.aliyuncs.com/pai-cc/pai-cc-tools-20260924-3599a46.tar.gz | tar -xz -C /opt && ln -sf /opt/pai-cc-tools/pai-cc /usr/local/bin/pai-cc
La commande pai-cc est alors disponible.
Étape 1 : Préparer un modèle chiffré
Cette étape comporte trois parties : mesurer le modèle (facultatif), chiffrer le modèle et télécharger le modèle. Les fichiers de modèle étant volumineux, ce processus peut prendre beaucoup de temps.
Pour tester rapidement cette solution, utilisez le fichier de modèle chiffré fourni dans le tableau suivant. Ignorez les parties de mesure, de chiffrement et de téléchargement de cette étape et passez directement à Étape 2 : Configurer le service d'attestation à distance Trustee.
Ajoutez la valeur de référence du tableau précédent à la politique d'attestation à distance à l'étape 2 pour vérifier le modèle chargé par votre service lors du déploiement. Pour utiliser votre propre modèle, suivez les parties ci-dessous. Cette rubrique utilise le modèle Qwen3,8-27B à titre d'exemple.
1. Mesurer le modèle (facultatif)
La mesure du modèle génère une valeur de référence pour le répertoire du modèle. Lors du déploiement, le service utilise cette valeur pour vérifier que le modèle chargé et le point de contrôle d'exécution n'ont pas été falsifiés. Exécutez cette partie si vous devez vérifier un modèle chargé depuis une source distante et protéger le point de contrôle d'exécution contre toute falsification. Mesurez le modèle avant de le chiffrer.
# Pull online from ModelScope or use a local directory
DIR=$(pai-cc model measure --modelscope Qwen/Qwen3.8-27B --hash-output /tmp/qwen-root.hash)
echo "Path of the measured model: ${DIR}"
La valeur de référence est écrite dans le fichier spécifié par
--hash-output. Notez cette valeur. Vous pourrez l'utiliser ultérieurement comme valeur de référence pour l'attestation à distance.
2. Chiffrer le modèle
L'inférence chiffrée PAI-EAS utilise Gocryptfs, une méthode de chiffrement basée sur AES256-GCM conforme à la norme open source gocryptfs.
pai-cc model encrypt effectue le chiffrement. Cette solution utilise la clé 0Bn4Q1wwY9fN3P tout au long du processus. Vous fournissez cette clé.
-
(Facultatif) Pour chiffrer le modèle mesuré :
CIPHER=$(pai-cc model encrypt --model "$DIR" --method gocryptfs --key 0Bn4Q1wwY9fN3P) echo "Path of the measured and encrypted model: ${CIPHER}" -
Pour chiffrer le modèle sans le mesurer au préalable :
CIPHER=$(pai-cc model encrypt --modelscope Qwen/Qwen3.8-27B --method gocryptfs --key 0Bn4Q1wwY9fN3P) echo "Path of the encrypted model: ${CIPHER}"
3. Télécharger le modèle
Téléchargez le répertoire de texte chiffré vers un bucket OSS situé dans la même région que l'instance de déploiement. pai-cc model upload encapsule ossutil, effectue un téléchargement à plat du texte chiffré et vérifie le nombre de fichiers.
URI=$(pai-cc model upload --cipher "$CIPHER" --bucket <your-bucket> --prefix qwen3.8-27b-gocryptfs)
La commande écrit l'URI
oss://<your-bucket>/qwen3.8-27b-gocryptfs/dans la sortie standard. Utilisez ce chemin pour la configuration du montage de stockage à l'étape 3.
Étape 2 : Configurer le service d'attestation à distance Trustee
Vous gérez le service d'attestation à distance, qui vérifie l'environnement d'exécution du modèle et du service d'inférence. La clé de déchiffrement du modèle n'est injectée que lorsque l'environnement de déploiement répond à vos exigences de confiance. La clé permet ensuite de déchiffrer et de monter le modèle. Cette solution déploie Trustee sur Elastic Compute Service (ECS).
-
Préparez une instance ECS standard avec une adresse IP publique et sélectionnez Alibaba Cloud Linux 3.2104 LTS 64 bits comme système d'exploitation. Exécutez toutes les commandes suivantes sur cette instance.
Pour répondre aux exigences de sécurité les plus strictes, vous pouvez également déployer Trustee dans un centre de données sur site ou sur un serveur local. Connectez-le au VPC sur le cloud via un circuit Express Connect ou un VPN. Cela permet de garder la racine de confiance entièrement sous votre contrôle.
-
Connectez-vous à l'instance, puis installez et démarrez Trustee à partir du dépôt yum :
yum install -y trustee-1.10.0Trustee démarre automatiquement et écoute par défaut sur le port 8081. Son endpoint est
http://<trustee-ip>:8081/api. Configurez HTTPS pour Trustee dans les environnements de production. -
Importez la clé de déchiffrement du modèle dans Trustee. Cette solution utilise la clé
0Bn4Q1wwY9fN3P. Vous fournissez cette clé. Lorsque vous écrivez la clé, utilisezecho -npour omettre le saut de ligne final afin que la valeur corresponde octet par octet à la clé de chiffrement :sudo mkdir -p /opt/trustee/kbs/repository/default/aliyun/ sudo sh -c 'echo -n "0Bn4Q1wwY9fN3P" > /opt/trustee/kbs/repository/default/aliyun/model-decryption-key'Après cette étape, l'ID de clé dans Trustee est
kbs:///default/aliyun/model-decryption-key, qui correspond à la valeur dedecryption_keydans la configuration de l'étape 3. -
Configurez la politique d'attestation à distance. Le fichier de politique est
/opt/trustee/attestation-service/policies/opa/default.rego. Trustee vérifie chaque réplica de l'instance PAI-CC et décide s'il doit libérer la clé. -
Redémarrez Trustee :
sudo systemctl restart trustee
Étape 3 : Créer un service PAI-CC
Créez un groupe de ressources Lingjun et achetez des nœuds. Suivez les instructions de la rubrique Créer un groupe de ressources et acheter des ressources Lingjun pour créer le groupe de ressources dans la région Chine (Pékin) et acheter des instances du type d'instance
ml.gu8tef.8.46xlarge.cc. Ce type d'instance est en aperçu sur invitation. Contactez votre gestionnaire de compte Alibaba Cloud pour demander l'accès.Créez un Virtual Private Cloud (VPC) dans la région Chine (Pékin), créez un vSwitch dans la zone beijing-i, puis créez un groupe de sécurité dans le VPC. Ce VPC héberge les conteneurs confidentiels qui exécutent l'inférence pour l'instance PAI-CC que vous créerez ultérieurement. Configurez la fonctionnalité SNAT d'une passerelle NAT Internet pour le VPC et associez une Elastic IP Address (EIP). Les instances disposent ainsi d'un accès au réseau public pour extraire le texte chiffré du modèle et atteindre Trustee. Pour plus d'informations, consultez la rubrique Passerelle NAT Internet.
Configurez le réseau de l'instance exécutant Trustee afin que l'instance PAI-CC puisse atteindre Trustee via le réseau public. Ajoutez une règle entrante au groupe de sécurité de l'instance ECS Trustee pour autoriser le trafic sur le port 8081 (TCP personnalisé). Définissez la source sur l'adresse IP de sortie SNAT que vous avez configurée pour le VPC.
Créez un quota de ressources. Suivez les instructions de la rubrique Créer un quota de ressources : pour Source Type, sélectionnez Lingjun resource group, puis sélectionnez le groupe de ressources Lingjun que vous avez créé, ainsi que ses nœuds ou types d'instances. Pour VPC, sélectionnez le VPC que vous avez créé. Pour Associate Workspace, sélectionnez un espace de travail PAI. Le quota de ressources est alloué à cet espace de travail. Si vous n'avez pas encore créé d'espace de travail, suivez les instructions de la rubrique Créer et gérer des espaces de travail pour en créer un.
Connectez-vous à la console PAI. En haut de la page, sélectionnez la région. À droite, sélectionnez l'espace de travail. Cliquez ensuite sur Elastic Algorithm Service (EAS). Dans l'onglet Inference Service, cliquez sur Deploy Service. Dans la section Custom Model Deployment, cliquez sur Custom Deployment.
-
Configurez les paramètres clés suivants. Pour plus d'informations sur les autres paramètres, consultez la rubrique Déploiement personnalisé.
Paramètre
Description
Informations sur les ressources
Type de ressource
Sélectionnez Resource Quota, puis sélectionnez le quota de ressources Lingjun que vous avez créé.
Déploiement
Pour GPU (Number of GPUs), spécifiez
1. Pour CPU (Number of Cores), spécifiez20. Pour Memory (GB), spécifiez200. Ajustez ces valeurs en fonction de votre modèle et de la manière dont vous déployez le service.Réplicas
Spécifiez
8. Ajustez cette valeur en fonction de vos paramètres de Déploiement.Informations sur l'environnement
Méthode de déploiement
Sélectionnez Image-based Deployment.
Configuration de l'image
Sélectionnez une image d'exécution. Dans cet exemple, sélectionnez Alibaba Cloud Image > vllm 0.25.0-gpu.
Montage de stockage
Sélectionnez OSS. Définissez Uri sur
oss://conf-ai/qwen3,8-27b-gocryptfs/(le chemin du texte chiffré que vous avez téléchargé à l'étape 1) et définissez Mount Path sur/mnt/model/. Utilisez un montage en lecture seule.Commande à exécuter
vllm serve /mnt/model/ --host 0.0.0.0 --port 8000 --served-model-name "Qwen3,8-27B". Le chemin du modèle/mnt/model/doit correspondre au Mount Path OSS que vous avez spécifié.Numéro de port
8000.
Informations réseau
VPC
Sélectionnez le VPC et le vSwitch que vous avez créés.
Nom du groupe de sécurité
Sélectionnez le groupe de sécurité que vous avez créé.
Fonctionnalités
Version du pilote GPU
Utilisez
570.148.08-open. Si vous ne pouvez pas sélectionner ce champ, modifiez directement la configuration JSON.La principale différence entre PAI-CC et un service EAS standard réside dans le calcul confidentiel. Lorsque vous créez un service PAI-CC, activez également Configure Secure Encryption Environment et configurez les options suivantes. Après avoir activé cette option, le service d'inférence s'exécute dans un environnement de calcul confidentiel protégé à la fois par le CPU TEE et le GPU TEE. Pendant l'inférence, les poids du modèle, le cache KV et tous les calculs intermédiaires restent à l'intérieur du TEE et aucun texte en clair n'est exposé à l'hôte. Lors du déploiement, le modèle n'est déchiffré et monté qu'après la réussite de l'attestation à distance. TNG chiffre ensuite le trafic d'inférence.

Élément de configuration
Valeur
Méthode de chiffrement
Gocryptfs (identique à
--methodà l'étape 1)Configurer l'environnement de chiffrement sécurisé
Activé
Chiffrement des données d'exécution
Activé
Protection de la passerelle TNG
Activé (TNG chiffre le trafic d'inférence)
Mesure du modèle
Activé (si vous avez mesuré le modèle à l'étape 1)
Adresse du service de gestion de la confiance du système
http://<trustee-ip>:8081/api(l'endpoint du service Trustee que vous avez déployé)KBS URI de la clé de déchiffrement
kbs:///default/aliyun/model-decryption-keyL'exemple suivant montre la configuration JSON résultante :
Après avoir configuré les paramètres, cliquez sur Deploy. Lorsque service status indique Running, le service est déployé.
Étape 4 : Exécuter une inférence confidentielle
TNG chiffre le trafic entre le client et le service d'inférence. L'inférence s'exécute dans l'environnement de calcul confidentiel fourni par Intel TDX et le GPU TEE. Vos requêtes et réponses, y compris les réponses en streaming, sont chiffrées pendant le transit.
Votre client envoie des requêtes d'inférence via le client TNG. Les méthodes d'accès suivantes sont disponibles. Choisissez celle qui correspond à votre cas d'utilisation.
|
Méthode d'accès |
Comment l'obtenir |
|
Passerelle proxy (proxy HTTP / proxy SOCKS5 / proxy transparent) |
Téléchargez les binaires ou les conteneurs depuis le dépôt GitHub. Consultez la documentation et les exemples |
|
SDK Python |
|
|
SDK Go |
|
|
SDK JS |
|
Pour simplifier ces exemples, pai-cc-tools encapsule les appels TNG du tableau précédent.
1. Afficher l'endpoint du service
Dans l'onglet Inference Service, cliquez sur le nom de votre service pour ouvrir la page Overview. Dans la section Basic Information, cliquez sur View Endpoint Information.

Notez l'endpoint du service et le jeton pour les commandes pai-cc secure qui suivent.
2. Exécuter une inférence confidentielle unique
pai-cc secure run télécharge et configure automatiquement les composants TNG requis. La passerelle chiffre de manière transparente chaque requête d'inférence envoyée par la commande curl :
pai-cc secure run -- \
curl -sS -X POST http://<service-url>/v1/chat/completions \
-H "Authorization: <your-token>" -H "Content-Type: application/json" \
-d '{"model":"Qwen3.8-27B","messages":[{"role":"user","content":"Hello"}],"max_tokens":100,"stream":false}'
Tout ce qui suit -- constitue la commande originale complète, y compris l'URL et l'en-tête Authorization. Sortie réelle :
{"id":"chatcmpl-b1df6ef135765608","object":"chat.completion","created":1790173748,"model":"Qwen3.8-27B","choices":[{"index":0,"message":{"role":"assistant","content":"The user said \"Hello\" - a simple greeting. I should respond warmly and concisely, offering to help.\n```\n\n\nHello! How can I help you today?","refusal":null,"annotations":null,"audio":null,"function_call":null,"reasoning":null},"logprobs":null,"finish_reason":"stop","stop_reason":null,"token_ids":null,"routed_experts":null}],"service_tier":null,"system_fingerprint":"vllm-0.25.0-fb7f4d0a","usage":{"prompt_tokens":53,"total_tokens":90,"completion_tokens":37,"prompt_tokens_details":null},"prompt_logprobs":null,"prompt_token_ids":null,"prompt_text":null,"kv_transfer_params":null,"metrics":null}
3. Vérifier la compatibilité du SDK
Exécutez la commande suivante pour vérifier que tous les SDK clients TNG peuvent effectuer des appels confidentiels à ce service d'inférence. La commande couvre le mode proxy, l'injection de processus, le SDK Python, le SDK Go et le SDK JS.
pai-cc secure test \
--endpoint http://<service-url>/v1/chat/completions \
--token <your-token> --builtin-as -m all
── tng-launch ──────────────────────────────────
PASS tng-launch
── tng-exec ──────────────────────────────────
PASS tng-exec
── python-sdk ──────────────────────────────────
PASS python-sdk
── go-sdk ──────────────────────────────────
PASS go-sdk
── js-sdk ──────────────────────────────────
PASS js-sdk
summary: 5 passed, 0 failed, 0 skipped