document-understanding
2023.10
false
UiPath logo, featuring letters U and I in white
Guide de l'utilisateur de Document Understanding
Automation CloudAutomation Cloud Public SectorAutomation SuiteStandalone
Last updated 11 nov. 2024

Déploiement de modèles hautement performants

À mesure que les modèles d’apprentissage automatique (ML) s’améliorent avec le temps, leurs besoins en ressources changent également. Pour de meilleures performances, il est important que lors du déploiement de modèles ML via AI Center, les compétences soient correctement dimensionnées par rapport au trafic qu’elles doivent gérer. Dans la plupart des cas, l’infrastructure est dimensionnée par rapport au nombre de pages par unité de temps (minute ou heure). Un document peut comporter une ou plusieurs pages.

Introduction aux performances du modèle ML

Pour déployer une infrastructure via AI Center, il y a quelques aspects importants à garder à l’esprit pour des performances optimales.

GPU

Un seul type d’infrastructure GPU est disponible. Ceci est mis en évidence par la case à cocher pour activer le GPU. Chaque compétence s’exécute sur une seule machine virtuelle (MV) ou un seul nœud disposant d’un GPU. Dans ce cas, le processeur et la mémoire ne sont pas pertinents, car la compétence peut utiliser toutes les ressources de processeur et de mémoire disponibles sur ces nœuds. Outre le débit, le GPU est beaucoup plus rapide. Pour cette raison, si la latence est critique, il est recommandé d’utiliser le GPU.

Processeur

Le processeur et la mémoire peuvent être fractionnés, ce qui signifie que plusieurs compétences ML peuvent s’exécuter sur le même nœud. Pour éviter toute perturbation d’une compétence voisine, chaque compétence ML est limitée à la quantité de mémoire et de processeur qu’elle peut consommer, selon le niveau sélectionné. Un processeur plus élevé entraîne un traitement plus rapide (pour une page), tandis qu’une mémoire plus élevée entraîne un plus grand nombre de documents pouvant être traités.

Nombre de répliques

Le nombre de répliques détermine le nombre de conteneurs utilisés pour répondre aux requêtes du modèle ML. Un nombre plus élevé entraîne une plus grande quantité de documents pouvant être traités en parallèle, sous réserve des limites de ce niveau particulier. Le nombre de répliques est directement lié au type d’infrastructure (nombre de processeurs par réplique, ou si vous utilisez un GPU), au sens où les répliques et la taille de l’infrastructure peuvent affecter directement le débit (pages/minute).

Remarque : plusieurs répliques multiplieront le débit.

Nombre de robots

Le nombre de robots a un impact sur le débit. Pour obtenir un débit efficace, le nombre de robots doit être dimensionné de manière à ne pas surcharger les compétences ML. Cela dépend de l’automatisation elle-même et doit être testé. En règle générale, vous pouvez utiliser un à trois robots comme point de départ pour chaque réplique que possède la compétence ML. Selon le temps de processus global (hors extracteur ML), le nombre de robots (ou le nombre de répliques) peut être supérieur ou inférieur.

Problèmes potentiels liés au dimensionnement de l’infrastructure

Si l’infrastructure n’est pas dimensionnée correctement, les modèles peuvent être soumis à une charge très élevée. Dans certains cas, cela peut entraîner un retour de demandes, un long délai de traitement, voire des échecs lors du traitement des documents.

Mémoire insuffisante

Une mémoire insuffisante est le plus souvent rencontrée dans les niveaux de processeur inférieurs (0,5 processeur ou 1 processeur). Si vous devez traiter une très grande charge utile (un ou plusieurs documents volumineux), cela peut entraîner une exception de mémoire insuffisante. Cela est lié à la taille du document en termes de pages et de densité de texte (quantité de texte par page). Étant donné que les exigences sont très spécifiques à chaque cas d’utilisation, il n’est pas possible de fournir des nombres exacts. Vous pouvez consulter les directives de la section Dimensionner correctement l’infrastructure (Sizing the infrastructure correctement) pour des informations plus détaillées. Si vous rencontrez une situation de mémoire insuffisante, il est recommandé de passer au niveau suivant.

Calcul insuffisant

Un calcul insuffisant fait référence à la fois au processeur et au GPU, bien qu’il soit plus couramment rencontré sur le processeur. Lorsque la compétence ML reçoit trop de pages par rapport à son débit disponible, les requêtes peuvent expirer (codes de statut 520 et 499), être renvoyées, ou même provoquer le plantage du modèle (codes de statut 503 et 500). Si vous rencontrez une situation de calcul insuffisante, nous vous recommandons de passer au niveau suivant, voire au niveau GPU.

Dimensionner correctement l’infrastructure

Directives générales

Cette section fournit des directives générales sur les performances des modèles selon chaque taille de compétence.

Important : les calculs fournis dans cette section sont destinés à être utilisés uniquement à titre de directives générales et ne doivent pas être interprétés comme des spécifications exactes. Les résultats de performance peuvent varier et sont influencés par différents facteurs tels que la taille du document, le nombre de pages et le modèle spécifique utilisé.
Remarque : chaque génération de modèles (2022.10, 2023.4, ou 2023.10) se comporte différemment par rapport aux ressources requises et au débit. À mesure que les modèles s’améliorent en termes de précision, cela peut également avoir un impact sur les performances et nécessiter plus de ressources.
Table 1. Extracteur 2022.10
NiveauNombre maximum de pages/documentDébit prévu (pages/heure)AI Units/heure
0,5 processeur/2 Go de mémoire25300-6001
1 processeur/4 Go de mémoire50400-8002
2 processeurs/8 Go de mémoire100600-10004
4 processeurs/16 Go de mémoire100800-12008
6 processeurs/24 Go de mémoire100900-130012
GPU200-2501350-160020
Table 2. Extracteur 2023.4
NiveauNombre maximum de pages/documentDébit prévu (pages/heure)AI Units/heure
0,5 processeur/2 Go de mémoire2540-1001
1 processeur/4 Go de mémoire5070-1402
2 processeurs/8 Go de mémoire75120-2204
4 processeurs/16 Go de mémoire100200-3008
6 processeurs/24 Go de mémoire100250-40012
GPU200-2501400-220020
Table 3. Extracteurs 2023.7 et 2023.10
NiveauNombre maximum de pages/documentDébit prévu (pages/heure)AI Units/heure
0,5 processeur/2 Go de mémoire2560-2001
1 processeur/4 Go de mémoire50120-2402
2 processeurs/8 Go de mémoire75200-2804
4 processeurs/16 Go de mémoire100250-4008
6 processeurs/24 Go de mémoire100350-50012
GPU200-2501000-200020

Le débit attendu est exprimé pour chaque réplique, en page/heure, et un débit minimum et maximum attendu, en fonction du document lui-même. La compétence ML doit être dimensionnée pour le débit le plus élevé attendu (pic), et non pour le débit moyen sur une journée, une semaine ou un mois.

Remarque : lors du dimensionnement de l’infrastructure, assurez-vous de commencer par le document le plus volumineux que la compétence doit gérer et le débit attendu.

Exemples

Exemple 1

La compétence ML doit traiter les éléments suivants à l’aide d’un extracteur 2023.10 :
  • Documents contenant un maximum de cinq pages.
  • Un pic maximum de 300 pages par heure.

Étant donné que le débit est inférieur et que la taille du document est petite, un GPU n’est pas nécessaire dans cet exemple. Deux à quatre répliques du niveau 0,5 CPU ou 1 CPU sont suffisantes.

Exemple 2

La compétence ML doit traiter les éléments suivants à l’aide d’un extracteur 2023.4 :
  • Documents contenant 80 pages maximum.
  • Un pic maximum de 900 pages par heure.

Pour cet exemple, trois répliques du niveau 4 du processeur ou un seul niveau du GPU sont suffisants.

Remarque : une réplique unique n’a pas une haute disponibilité, il est donc toujours recommandé d’utiliser au moins deux répliques pour les workflows de production critiques.

Exemple 3

La compétence ML doit traiter les éléments suivants à l’aide d’un extracteur 2023.10 :
  • Documents contenant 50 pages maximum.
  • Un pic maximum de 3 000 pages par heure.
Il y a deux façons de répondre à cette exigence :
  • Utiliser 3 répliques de GPU.
  • Utilisez 12 à 15 répliques du niveau 4 ou 6 processeurs.

Les deux options ont une haute disponibilité car il y a plus de deux répliques pour la compétence ML.

Dimensionner l’infrastructure pour une réplique

Vous pouvez consulter les tableaux de la section Directives générales pour connaître le débit attendu à partir d’une seule réplique d’extraction, en fonction de la version du modèle et du niveau.

Remarque : pour atteindre un potentiel de débit maximal, vous devez maintenir le réplica d’extraction à charge constante.
Afin de s’assurer que la réplique soit continuellement opérationnelle, les critères suivants doivent être remplis :
  • Idéalement, il doit y avoir un temps d’inactivité minimum entre le moment où la réplique envoie la réponse à une requête et le moment où la réplique reçoit les données de la requête suivante.
  • La réplique ne doit pas être surchargée. Les requêtes sont traitées les unes après les autres (de façon sérielle). Cela signifie qu’il y aura toujours une requête active en cours de traitement et une file d’attente de requêtes en attente. Si cette file d’attente contient trop d’éléments, la réplique rejettera les nouvelles demandes entrantes et affichera un code de statut 429 (too many requests) HTTP.

Le point clé à retenir lorsque vous dimensionnez l’infrastructure pour une seule réplique consiste à s’assurer que la charge de travail soit équilibrée. Si la charge de travail est trop légère, la réplique restera inactive ; si elle est trop importante, des tâches commenceront à être rejetées.

Déterminer le nombre de répliques nécessaires

Pour déterminer le nombre de répliques requises, vous devez effectuer les opérations suivantes :
  • Identifiez la période pertinente où les répliques sont les plus actives. Par exemple, vous devez identifier l’heure d’activité la plus importante, et non un pic d’une minute ni une plage de 12 heures. Après avoir identifié cette période, évaluez la demande (nombre de pages ou de requêtes) pendant cette période.
  • Divisez l’estimation par le débit par réplique, tel que décrit dans la section Dimensionner l’infrastructure pour une réplique.
  • Par mesure de sécurité, ajoutez un peu de capacité en plus.

Veuillez noter que l’utilisation de la période où l’activité est la plus importante peut conduire à des ressources supérieures au besoin lorsque la demande est nettement plus faible. Pour résoudre ce problème, vous pouvez augmenter ou réduire manuellement la taille d’un déploiement en fonction de la demande. Cela peut être utile s’il existe un intervalle d’une heure où l’activité est très importante nécessitant 10 répliques, suivi de 23 heures d’activité plus faible pour lesquelles seules 2 répliques sont nécessaires. Cela peut conduire à un laps de temps important où les ressources du système sont supérieures aux besoins.

Mesurer la demande et l’approvisionnement : pages ou requêtes

Le nombre de pages et la densité de ces pages constituent des facteurs clés. En effet, le nombre de pages est plus pertinent que le nombre de requêtes. Cependant, sur le plan pratique, les requêtes sont plus faciles à compter.

Conseil : vous pouvez utiliser des données de l’historique pour faciliter la conversion. Pour une compétence particulière disposant d’un historique enregistré, vous pouvez vérifier la télémétrie de comptage afin d’identifier la distribution du nombre de pages pour les requêtes adressées à cette compétence. Par exemple, si une compétence a principalement reçu des documents de deux ou trois pages au cours du dernier mois, vous pouvez évaluer la tendance future à environ 2,5 pages par document.

Déterminer si un déploiement dispose de ressources suffisantes

Lorsque vous souhaitez déterminer si un déploiement dispose de ressources suffisantes, l’utilisation du processeur n’est pas pertinente, dans la mesure où chaque réplique va maximiser l’utilisation du processeur et du processeur graphique lors du traitement d’une requête, indépendamment de la file des requêtes en attente.

Le temps écoulé d’un bout à l’autre du processus est le facteur le plus important : c’est la somme entre le temps d’attente et le temps de traitement réel.

Par exemple, si vous avez choisi un plan avec un débit d’environ 900 pages/heure ou d’environ 4 secondes/page, et que vous envoyez des documents de 5 pages, cela devrait prendre environ 30 secondes par document.

Vous pouvez ensuite calculer un temps d’attente d’environ 10 secondes. Cela signifie qu’il y aura un temps d’attente (ce qui signifie que la requête n’est pas instantanément prise en compte par la réplique, car celle-ci est occupée à traiter les requêtes préexistantes). Cela a également indiqué que ce temps d’attente était d’environ 10 secondes.

Si la différence entre la durée de bout en bout réelle (la durée mesurée) et la durée de bout en bout attendue (estimée en fonction du niveau de votre plan) est supérieure à zéro, cela signifie que la réplique fonctionne en continu. Par ailleurs, si le temps d’attente augmente à mesure que la demande augmente, il est clair que le déploiement est soumis à une pression importante. Enfin, tous les codes de statut 429 (nombre de requêtes trop important) sont un signe de ressources insuffisantes par rapport aux besoins.

Déterminer si les paramètres d'un déploiement sont supérieurs aux besoins

Les sections précédentes peuvent aider à déterminer si le déploiement est efficacement alimenté, mais nous vous recommandons de suivre les étapes suivantes pour une analyse détaillée de votre déploiement :
  • Identifiez la période où l’activité est la plus importante. Pour les besoins de notre exemple, imaginons que la durée soit d’une heure ou 3600 secondes.
  • Prenons le nombre actuel de répliques : imaginons qu’il soit de 10. Cela donne 36 000 « secondes-répliques » (concept similaire à « heure-personne »).
  • Calculez la durée totale des demandes (somme des heures de bout en bout). Supposons que cette somme soit 10 000 secondes.
Dans cet exemple, étant donné que 10 000 est inférieur à 36 000, cela signifie que votre infrastructure actuelle est supérieure à vos besoins. Vous pouvez essayer de réduire le déploiement à huit répliques et surveiller les performances : si tout fonctionne correctement, vous pouvez réduire à six répliques. Réévaluez les performances à chaque ajustement.

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Uipath Logo White
Confiance et sécurité
© 2005-2024 UiPath Tous droits réservés.