À propos du déploiement de grands modèles de langage dans OCI

Déployer un grand modèle de langage (LLM) efficacement et à grande échelle est une tâche difficile et exigeante en ressources. Oracle Cloud Infrastructure (OCI) offre le GPU AMD Instinct™ MI300X dans l'offre sans système d'exploitation exécutant le modèle LLama2 70B.
vLLM est une bibliothèque rapide et facile à utiliser pour l'inférence et le service LLM. PagedAttention, qui est au cœur de vLLM, améliore l'efficacité du mécanisme Attention en le gérant en tant que mémoire virtuelle. Il améliore l'utilisation de la mémoire GPU, permet le traitement de séquences plus longues et prend en charge le travail dans les contraintes de ressources matérielles. En outre, vLLM permet la création continue de lots pour améliorer le débit et réduire la latence.

Dans ce livre de jeu de solution, vous apprendrez à déployer un LLM à l'aide des GPU AMD Instinct™ MI300X dans OCI.

Flux de travail de solution

Hugging Face est une plate-forme collaborative et un centre d'apprentissage automatique qui fournit des modèles d'IA préentraînés, des outils de développement et une infrastructure d'hébergement pour les applications d'IA, rendant l'apprentissage automatique avancé accessible aux développeurs du monde entier.

Le diagramme de flux de travail suivant montre comment les artefacts de modèle peuvent être extraits de la bibliothèque à code source libre GitHub Hugging Face et stockés dans le stockage d'objets OCI.


Les images créées à partir du modèle peuvent être stockées dans le registre OCI pour la gestion des images de modèle, le contrôle des versions et la gestion des accès sécurisés. La grappe améliorée d'Oracle Cloud Infrastructure Kubernetes Engine dans OCI avec une instance de GPU sans système d'exploitation AMD peut être lancée à l'aide d'une interface de ligne de commande ou de la console. Enfin, un point d'extrémité d'inférence de modèle peut être servi sécurisé sur le réseau ou Internet.

Voici la liste des composants de tierce partie :

  • GPU AMD Instinct™

    GPU MI300XAMD Instinct™ avec les instances de supergrappe AMD ROCm™ du service de calcul pour OCI appelées BM.GPU.MI300X.8. Les processeurs graphiques AMD Instinct MI300X et le logiciel ROCm alimentent les charges de travail d'IA OCI les plus critiques.

    Les capacités d'inférence des GPU MI300X d'AMD Instinct s'ajoutent à la vaste sélection d'instances sans système d'exploitation haute performance d'OCI pour supprimer les frais généraux du calcul virtualisé communément utilisé pour l'infrastructure d'IA.

  • Points d'extrémité d'inférence

    Inference Endpoints offre une solution de production sécurisée pour déployer facilement tous les modèles Transformers, Sentence-Transformers et Diffusers du Hub sur une infrastructure dédiée et autoscaling gérée par Inference Endpoints.

Voici la liste des composants OCI :

  • Région OCI

    Une région OCI est une zone géographique localisée qui contient un ou plusieurs centres de données, des domaines de disponibilité d'hébergement. Les régions sont indépendantes les unes des autres, et de grandes distances peuvent les séparer (à travers les pays ou même les continents).

  • Réseau en nuage virtuel et sous-réseau OCI

    Un réseau en nuage virtuel (VCN) est un réseau défini par logiciel personnalisable, configuré dans une région OCI. Comme les réseaux de centre de données traditionnels, les réseaux en nuage virtuels vous permettent de contrôler votre environnement de réseau. Un VCN peut disposer de plusieurs blocs de routage inter-domaine (CIDR) sans chevauchement que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, dont la portée peut concerner une région ou un domaine de disponibilité. Un sous-réseau est constitué d'un intervalle contigu d'adresses qui ne chevauchent pas les autres sous-réseaux dans le réseau en nuage virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Volumes par blocs OCI

    Avec Oracle Cloud Infrastructure Block Volumes, vous pouvez créer, attacher, connecter et déplacer des volumes de stockage et modifier la performance des volumes pour répondre à vos exigences en matière de stockage, de performance et d'applications. Une fois un volume attaché et connecté à une instance, vous pouvez l'utiliser comme un disque dur classique. Vous pouvez également déconnecter un volume et l'associer à une autre instance sans perdre de données.

  • Moteur Kubernetes pour OCI

    Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE) est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications conteneurisées dans le nuage. Vous spécifiez les ressources de calcul dont vos applications ont besoin et OKE les provisionne sur OCI dans une location existante. OKE utilise Kubernetes pour automatiser le déploiement, l'ajustement et la gestion des applications conteneurisées sur des grappes d'hôtes.

  • Service de stockage d'objets pour OCI

    Le service de stockage d'objets pour OCI donne accès à de grandes quantités de données structurées et non structurées de tous types, notamment des sauvegardes de base de données, des données analytiques et du contenu enrichi, comme des images et des vidéos. Vous pouvez stocker des données en toute sécurité directement à partir d'applications ou de la plate-forme en nuage. Vous pouvez adapter le stockage sans que la performance ou la fiabilité des services soit affectée.

    Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archives pour le stockage "à froid" que vous conservez pendant de longues périodes et auquel vous accédez rarement.

  • Service de registre pour OCI

    Oracle Cloud Infrastructure Registry est un service géré par Oracle qui vous permet de simplifier votre flux de travail, du développement à la production. Le service Registry facilite le stockage, le partage et la gestion d'artefacts de développement, tels que des images Docker.

Étapes préliminaires

Avant de commencer, assurez-vous de configurer les éléments suivants :

À propos des produits et des rôles requis

Cette solution nécessite les produits suivants :

  • Oracle Cloud Infrastructure Compute - Instance sans système d'exploitation avec GPU AMD
  • Service de stockage d'objets pour Oracle Cloud Infrastructure
  • Service de volumes par blocs pour Oracle Cloud Infrastructure
  • Oracle Cloud Infrastructure Kubernetes Engine
  • Oracle Cloud Infrastructure Registry

Ce sont les rôles nécessaires pour chaque produit.

Nom du service : Rôle Requis pour...
Politique Oracle Cloud Instance Launch Using Custom Image
  • Autorisez le groupe ImageUsers à inspecter instance-images dans le compartiment ABC.
  • Autorisez le groupe ImageUsers à {INSTANCE_IMAGE_READ} dans le compartiment ABC où target.image.id=''.
  • Autoriser le groupe ImageUsers à gérer les instances dans le compartiment ABC.
  • Autorisez le groupe ImageUsers à lire app-catalog-listing dans la location.
  • Autorisez le groupe ImageUsers à utiliser volume-family dans le compartiment ABC.
  • Autoriser le groupe ImageUsers à utiliser virtual-network-family dans le compartiment XYZ.
Politique Oracle Cloud Manage Kubernetes Cluster
  • Autoriser le groupe <group-name> à manage cluster-family dans <location>.
  • Autorisez le groupe acme-dev-team-pool-admins à utiliser cluster-node-pools dans <location>.
Pour créer une grappe OKE dans OCI, vous devez appartenir au groupe Administrators de la location ou appartenir à un groupe auquel une politique accorde l'autorisation CLUSTER_MANAGE.

Voir Configuration de politiques pour la création et le déploiement d'une grappe.

Politique Oracle Cloud working with Images from Registry
  • Autoriser le groupe acme-pullers à lire les référentiels de la location.
  • Autoriser le groupe acme-pushers à gérer les référentiels de la location.

Voir Produits, solutions et services Oracle pour obtenir ce dont vous avez besoin.