Cette rubrique présente les méthodes courantes de stockage des modèles pour le déploiement d'applications d'inférence IA dans Function Compute. Elle compare également leurs avantages, leurs inconvénients et leurs cas d'usage respectifs.
Contexte
Pour plus d'informations sur les types de stockage pour les fonctions, consultez Sélectionner un type de stockage pour une fonction. Les deux types suivants conviennent au stockage de modèles pour les instances accélérées par GPU.
Vous pouvez également placer les fichiers de modèle directement dans l'image de conteneur utilisée par votre fonction.
Chaque méthode possède ses propres caractéristiques et cas d'utilisation. Sélectionnez celle qui correspond le mieux à vos besoins spécifiques, à votre environnement d'exécution et au flux de travail de votre équipe afin d'équilibrer efficacité et coûts.
Distribuer des modèles avec des images de conteneur
L'une des méthodes les plus simples consiste à regrouper les modèles entraînés et le code applicatif associé dans une même image de conteneur. Les fichiers de modèle sont ainsi distribués avec l'image de conteneur.
Avantages et inconvénients
Avantages :
Simplicité : une fois l'image créée, vous pouvez l'exécuter directement pour l'inférence sans configuration supplémentaire.
Cohérence : cette approche garantit que la version du modèle reste identique dans tous les environnements, ce qui évite les problèmes liés aux écarts de versions entre environnements.
Inconvénients :
Taille de l'image : les images peuvent devenir très volumineuses, en particulier pour les modèles de grande taille.
Mises à jour chronophages : chaque mise à jour du modèle nécessite de reconstruire et de redistribuer l'image, ce qui peut s'avérer long.
Description
Afin d'améliorer la vitesse de démarrage à froid des instances de fonction, la plateforme prétraite les images de conteneur. Si une image est trop volumineuse, elle risque de dépasser la limite de taille imposée par la plateforme. Cela peut également augmenter le temps nécessaire à l'accélération et au prétraitement de l'image.
Pour plus d'informations sur les limites de taille des images de la plateforme, consultez Quelle est la limite de taille pour les images GPU ?
Pour plus d'informations sur le prétraitement des images et l'état des fonctions, consultez État et invocation des fonctions pour les images personnalisées.
Cas d'usage
La taille du modèle est relativement faible, par exemple quelques centaines de mégaoctets.
Le modèle change peu fréquemment.
Si vos fichiers de modèle sont volumineux, mis à jour fréquemment ou font dépasser à l'image de conteneur la limite de taille de la plateforme, il est préférable de séparer le modèle de l'image.
Stocker des modèles dans File Storage NAS
Function Compute permet de monter un système de fichiers NAS dans un répertoire spécifié d'une instance de fonction. L'application peut ensuite charger les fichiers de modèle en accédant au répertoire du point de montage NAS.
Avantages et inconvénients
Avantages :
NAS offre une meilleure compatibilité applicative que Filesystem in Userspace (FUSE), car il fournit des interfaces de fichiers
POSIXplus complètes et matures.Capacité : NAS peut offrir une capacité de stockage à l'échelle du pétaoctet.
Inconvénients :
Dépendance au VPC : vous devez configurer l'accès VPC pour que les fonctions puissent accéder aux points de montage NAS. Cela implique de configurer des permissions sur plusieurs produits cloud. De plus, lors du démarrage à froid d'une instance de fonction, la plateforme a besoin de quelques secondes pour établir l'accès VPC pour cette instance.
Gestion de contenu limitée : un système de fichiers NAS doit être monté avant utilisation. Cette méthode exige donc la mise en place d'un flux de travail métier pour distribuer les fichiers de modèle vers l'instance NAS.
Absence de prise en charge des déploiements actif-actif ou multi-zones de disponibilité (AZ). Pour plus d'informations, consultez FAQ NAS.
Description
Dans les scénarios où de nombreux conteneurs démarrent et chargent des modèles simultanément, le goulot d'étranglement de la bande passante NAS est rapidement atteint. Cela augmente le temps de démarrage des instances et peut même provoquer des échecs de démarrage dus à des délais d'attente dépassés. Par exemple, un Horizontal Pod Autoscaler (HPA) planifié crée des snapshots GPU par lots, ou bien un pic de trafic déclenche la création de nombreuses instances élastiques accélérées par GPU.
Vous pouvez consulter la surveillance des performances NAS (débit en lecture) dans la console.
Il est possible d'augmenter le débit en lecture et en écriture de certains systèmes de fichiers NAS en augmentant leur capacité.
Si vous utilisez NAS pour stocker des fichiers de modèle, nous recommandons d'utiliser un système de fichiers NAS Performance. En effet, ce type de NAS offre une bande passante initiale élevée en lecture, d'environ 600 Mo/s. Pour plus d'informations, consultez Systèmes de fichiers NAS universels.
Cas d'usage
Des performances de démarrage rapides sont requises lors de l'utilisation d'instances élastiques accélérées par GPU dans Function Compute.
Stocker des modèles dans OSS
Function Compute permet de monter un bucket OSS dans un répertoire spécifié d'une instance de fonction. Les applications peuvent alors charger les modèles directement depuis le point de montage OSS.
Avantages
Bande passante : OSS dispose d'une limite de bande passante supérieure à celle de NAS, ce qui réduit les risques de contention de bande passante entre les instances de fonction. Pour plus d'informations, consultez Limites. Vous pouvez également activer l'Accélérateur OSS pour obtenir un débit plus élevé.
-
Multiples méthodes de gestion :
Fournit des canaux d'accès tels que la console et les API.
Propose divers outils de gestion de stockage objet disponibles localement. Pour plus d'informations, consultez Outils pour développeurs.
Vous pouvez utiliser la fonctionnalité de réplication interrégionale d'OSS pour la synchronisation et la gestion des modèles.
Configuration simple : contrairement à un système de fichiers NAS, le montage d'un bucket OSS sur une instance de fonction ne nécessite pas de connectivité VPC. Il est prêt à l'emploi immédiatement après la configuration.
Coût : si l'on compare uniquement la capacité et le débit, OSS est généralement plus rentable que NAS.
Description
Le montage OSS utilise le mécanisme de système de fichiers en mode utilisateur FUSE. Lorsqu'une application accède à un fichier sur un point de montage OSS, la plateforme convertit la demande d'accès en un appel API OSS pour accéder aux données. Par conséquent, le montage OSS présente les caractéristiques suivantes :
Il s'exécute en mode utilisateur et consomme le quota de ressources de l'instance de fonction, tel que le CPU, la mémoire et le stockage temporaire. Cette méthode convient donc mieux aux instances accélérées par GPU dotées de spécifications élevées.
L'accès aux données utilise l'API OSS. Son débit et sa latence sont limités par le service API OSS. Cela rend cette solution plus adaptée à l'accès d'un petit nombre de fichiers volumineux, comme c'est souvent le cas lors du chargement de modèles. Elle ne convient pas à l'accès à de nombreux petits fichiers.
-
Le montage OSS est mieux adapté aux lectures et écritures séquentielles qu'aux lectures et écritures aléatoires. Lors du chargement de fichiers volumineux, les lectures séquentielles tirent pleinement parti du mécanisme de prélecture du système de fichiers pour obtenir un meilleur débit réseau et une latence de chargement réduite.
Par exemple, avec les fichiers safetensors, l'utilisation d'une version optimisée pour les lectures séquentielles réduit considérablement le temps de chargement des fichiers de modèle depuis un point de montage OSS. Pour plus d'informations, consultez load_file : charger les tenseurs triés par leurs offsets.
Si vous ne pouvez pas modifier le schéma d'E/S de l'application, vous pouvez lire le fichier séquentiellement une première fois avant de le charger. Cela précharge le contenu dans le PageCache du système. L'application charge ensuite le fichier depuis le PageCache.
Cas d'usage
De nombreuses instances chargent des modèles en parallèle. Cela nécessite un débit de stockage plus élevé pour éviter la contention de bande passante entre les instances.
Un stockage redondant local ou un déploiement multirégion est requis.
Accès à un petit nombre de fichiers volumineux avec un schéma d'E/S en lecture séquentielle, typique des scénarios de chargement de modèles.
Synthèse
Élément de comparaison | Distribution avec image | Montage NAS | Montage OSS |
Taille du modèle |
| Aucune | Aucune |
Débit | Plus rapide |
|
|
Compatibilité | Bonne | Bonne |
|
Adaptabilité du schéma d'E/S | Bonne | Bonne | Convient aux scénarios de lecture et d'écriture séquentielles. Les lectures aléatoires doivent être converties en accès PageCache pour un meilleur débit. |
Méthode de gestion | Image de conteneur | Montage au sein d'un VPC avant utilisation. |
|
Multi-AZ | Pris en charge | Non pris en charge | Pris en charge |
Coût | Aucun frais supplémentaire | NAS est généralement légèrement plus coûteux qu'OSS. Reportez-vous aux règles de facturation actuelles pour chaque produit.
| |
Sur la base de cette comparaison, voici les pratiques recommandées pour le stockage des modèles sur les instances accélérées par GPU de Function Compute, en tenant compte des différents schémas d'utilisation, des volumes de démarrages simultanés de conteneurs et des besoins de gestion des modèles :
Si vous avez besoin d'une haute compatibilité avec les API de système de fichiers, ou si votre application utilise des lectures aléatoires et ne peut pas être modifiée pour accéder au PageCache mémoire, utilisez un système de fichiers NAS Performance.
Dans les scénarios où de nombreux conteneurs GPU démarrent simultanément, utilisez l'Accélérateur OSS pour éviter le goulot d'étranglement de bande passante unique de NAS.
Dans les scénarios de déploiement multirégion, utilisez OSS et l'Accélérateur OSS pour réduire la complexité de la gestion des modèles et de la synchronisation interrégionale.
Données de test
Les deux tests suivants analysent les différences de performances entre divers supports de stockage en comparant le temps nécessaire pour charger des fichiers dans différents scénarios. Un temps de chargement plus court indique de meilleures performances de stockage.
Méthode 1 : Temps de chargement des fichiers pour différents modèles
Ce test mesure le temps nécessaire pour charger des fichiers de poids de modèle safetensors depuis différents supports de stockage vers la mémoire GPU. Les résultats servent à comparer les performances des différentes méthodes de stockage pour divers modèles.
Environnement de test
Type d'instance : carte Ada, 8 cœurs, 64 Go de mémoire
Capacité de l'accélérateur OSS : 10 To, avec un débit maximal de 3 000 Mo/s
Spécifications NAS : système de fichiers NAS Performance, avec une capacité correspondant à un débit maximal de 600 Mo/s
Version de safetensors
0.5.3-
Le tableau suivant liste les modèles et leurs tailles utilisés dans ce test.
Modèle
Taille (Go)
Anything-v4.5-pruned-mergedVae.safetensors
3,97
Anything-v5.0-PRT-RE.safetensors
1,99
CounterfeitV30_v30.safetensors
3,95
Deliberate_v2.safetensors
1,99
DreamShaper_6_NoVae.safetensors
5,55
cetusMix_Coda2.safetensors
3,59
chilloutmix_NiPrunedFp32Fix.safetensors
3,97
flux1-dev.safetensors
22,2
revAnimated_v122.safetensors
5,13
sd_xl_base_1.0.safetensors
6,46
Résultats
Dans la figure suivante, l'axe vertical représente le temps de chargement et l'axe horizontal représente les différents modèles ainsi que les trois méthodes de stockage : ossfs,accel, ossfs et nas.
|
Couleur de la barre |
Méthode de stockage |
Caractéristique technique |
|
Bleu |
ossfs,accel |
Endpoint de l'accélérateur OSS |
|
Orange |
ossfs |
Endpoint OSS standard |
|
Gris |
nas |
Point de montage du système de fichiers NAS |

Conclusion du test
Débit : l'avantage principal d'OSS sur NAS réside dans ses performances de débit. Les données de test montrent que le débit en lecture d'un Endpoint OSS standard atteint souvent 600 Mo/s ou plus.
Impact des lectures aléatoires : pour certains fichiers, comme le relativement volumineux flux1-dev.safetensors et le plus petit revAnimated_v122.safetensors, le temps de chargement avec OSS standard est nettement plus long qu'avec l'accélérateur OSS et NAS. Cela s'explique par le fait que la plateforme optimise les lectures aléatoires pour l'accélérateur OSS, et que NAS affiche des performances plus prévisibles qu'OSS standard dans les scénarios de lecture aléatoire.
Méthode 2 : Temps de chargement des fichiers sous différents niveaux de concurrence
Ce test utilise le modèle volumineux de 22,2 Go flux1-dev.safetensors pour tester la distribution de la latence lors du chargement du fichier dans la mémoire GPU sous des niveaux de concurrence de 4, 8 et 16.
Environnement de test
Type d'instance : Ada.3, 8 cœurs, 64 Go de mémoire
Capacité de l'accélérateur OSS : 80 To, avec un débit maximal de 24 000 Mo/s
Spécifications NAS : système de fichiers NAS Performance, avec une capacité correspondant à un débit maximal de 600 Mo/s
Version de safetensors
0.5.3
Résultats
La figure 1 présente les temps de chargement maximum, moyen et médian pour différentes méthodes de stockage, notamment ossfs,accel,N, ossfs,N et nas,N, sous différents niveaux de concurrence. N indique le nombre minimal d'instances.
|
Méthode de stockage |
Caractéristique technique |
|
ossfs,accel,N |
Endpoint de l'accélérateur OSS |
|
ossfs,N |
Endpoint OSS standard |
|
nas,N |
Point de montage du système de fichiers NAS |
|
Couleur de la barre |
Valeur représentée |
|
Bleu |
Temps moyen |
|
Orange |
Temps médian |
|
Gris |
Temps maximum |

La figure 2 montre l'écart type pour différentes méthodes de stockage, notamment ossfs,accel,N, ossfs,N et nas,N, sous différents niveaux de concurrence. N indique le nombre minimal d'instances.

Conclusion du test
Débit : l'avantage principal d'OSS sur NAS réside dans les performances de débit, et l'avantage de l'accélérateur OSS est encore plus marqué. Le débit d'OSS standard dépasse souvent 600 Mo/s, tandis que celui de l'accélérateur OSS peut atteindre la valeur attendue (voir Figure 1).
Stabilité : dans les scénarios à forte concurrence, OSS standard offre une latence moyenne de chargement inférieure à celle de NAS, mais ses performances sont moins régulières, comme l'indique un écart type plus élevé. Dans ce cas, le débit de NAS est plus prévisible que celui d'OSS standard (voir Figure 2).
Remarque : les E/S aléatoires générées lors du chargement de différents fichiers safetensors varient. Cela a un impact plus significatif sur les temps de chargement des modèles depuis un point de montage OSS standard que depuis un point de montage NAS.