Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker

Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker

Cet article est co-écrit par Christopher Diaz, Sam Kinard, Jaime Hidalgo et Daniel Suarez de CCC Intelligent Solutions.

Dans cet article, nous expliquons comment Solutions intelligentes CCC (CCC) combiné Amazon Sage Maker avec d'autres services AWS pour créer une solution personnalisée capable d'héberger les types de modèles complexes d'intelligence artificielle (IA) envisagés. CCC est une plate-forme logicielle en tant que service (SaaS) de premier plan pour l'économie de l'assurance IARD de plusieurs billions de dollars qui alimente les opérations des assureurs, réparateurs, constructeurs automobiles, fournisseurs de pièces, prêteurs, etc. La technologie cloud CCC connecte plus de 30,000 XNUMX entreprises en numérisant les flux de travail, le commerce et les expériences client critiques. Leader de confiance dans l'IA, l'Internet des objets (IoT), l'expérience client et la gestion des réseaux et des flux de travail, CCC propose des innovations qui font avancer la vie des gens quand cela compte le plus.

Le défi

La CCC traite plus de 1 XNUMX milliards de dollars de transactions de réclamations chaque année. Alors que l'entreprise continue d'évoluer pour intégrer l'IA dans son catalogue de produits existants et nouveaux, cela nécessite des approches sophistiquées pour former et déployer des modèles d'ensemble d'apprentissage automatique (ML) multimodaux pour résoudre des besoins commerciaux complexes. Il s'agit d'une classe de modèles qui encapsulent des algorithmes exclusifs et une expertise du domaine que CCC a perfectionnée au fil des ans. Ces modèles devraient pouvoir ingérer de nouvelles couches de données nuancées et de règles client pour créer des résultats de prédiction uniques. Dans cet article de blog, nous découvrirons comment CCC a exploité l'hébergement Amazon SageMaker et d'autres services AWS pour déployer ou héberger plusieurs modèles multimodaux dans un pipeline d'inférence d'ensemble.

Comme illustré dans le diagramme suivant, un ensemble est un ensemble de deux modèles ou plus qui sont orchestrés pour s'exécuter de manière linéaire ou non linéaire afin de produire une prédiction unique. Lorsqu'ils sont empilés linéairement, les modèles individuels d'un ensemble peuvent être directement invoqués pour les prédictions et ultérieurement consolidés pour l'unification. Parfois, les modèles d'ensemble peuvent également être implémentés en tant que pipeline d'inférence en série.

Pour notre cas d'utilisation, le pipeline d'ensemble est strictement non linéaire, comme illustré dans le diagramme suivant. Les pipelines d'ensemble non linéaires sont théoriquement des graphes directement acycliques (DAG). Pour notre cas d'utilisation, ce pipeline DAG avait à la fois des modèles indépendants exécutés en parallèle (Services B, C) et d'autres modèles qui utilisent les prédictions des étapes précédentes (Service D).

Une pratique qui découle de la culture axée sur la recherche chez CCC est l'examen continu des technologies qui peuvent être exploitées pour apporter plus de valeur aux clients. Alors que CCC faisait face à ce défi d'ensemble, la direction a lancé une initiative de preuve de concept (POC) pour évaluer en profondeur les offres d'AWS afin de découvrir, en particulier, si Amazon SageMaker et d'autres outils AWS pouvaient gérer l'hébergement de modèles d'IA individuels dans des environnements complexes et non linéaires. ensembles.

Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Ensemble expliqué : Dans ce contexte, un ensemble est un groupe de 2 modèles d'IA ou plus qui fonctionnent ensemble pour produire 1 prédiction globale.

Les questions guidant la recherche

Amazon SageMaker peut-il être utilisé pour héberger des ensembles complexes de modèles d'IA qui fonctionnent ensemble pour fournir une prédiction globale ? Si tel est le cas, SageMaker peut-il offrir d'autres avantages prêts à l'emploi, tels qu'une automatisation, une fiabilité, une surveillance, une mise à l'échelle automatique et des mesures de réduction des coûts accrues ?

Trouver d'autres moyens de déployer les modèles d'IA de CCC en utilisant les avancées technologiques des fournisseurs de cloud permettra à CCC de commercialiser des solutions d'IA plus rapidement que ses concurrents. De plus, le fait d'avoir plus d'une architecture de déploiement offre une flexibilité lors de la recherche de l'équilibre entre les coûts et les performances en fonction des priorités de l'entreprise.

Sur la base de nos exigences, nous avons finalisé la liste de fonctionnalités suivante en tant que liste de contrôle pour une architecture de déploiement de niveau production :

  • Prise en charge d'ensembles complexes
  • Disponibilité garantie pour tous les composants
  • Mise à l'échelle automatique personnalisable pour les modèles d'IA déployés
  • Préservation des entrées et sorties du modèle AI
  • Métriques d'utilisation et journaux pour tous les composants
  • Mécanismes de réduction des coûts

La majorité des solutions d'IA de CCC reposant sur des modèles de vision par ordinateur, une nouvelle architecture était nécessaire pour prendre en charge les fichiers image et vidéo dont la résolution continue d'augmenter. Il y avait un fort besoin de concevoir et de mettre en œuvre cette architecture comme un modèle asynchrone.

Après des cycles de recherche et d'efforts initiaux d'analyse comparative, CCC a déterminé que SageMaker était parfaitement adapté pour répondre à la majorité de leurs exigences de production, en particulier la disponibilité garantie que SageMaker fournit pour la plupart de ses composants d'inférence. La fonctionnalité par défaut des points de terminaison d'inférence asynchrone Amazon SageMaker qui enregistre les entrées/sorties dans Amazon S3 simplifie la tâche de préservation des données générées à partir d'ensembles complexes. De plus, chaque modèle d'IA étant hébergé par son propre point de terminaison, la gestion des politiques de mise à l'échelle automatique au niveau du modèle ou du point de terminaison devient plus facile. En simplifiant la gestion, les équipes de développement peuvent consacrer plus de temps à l'ajustement des politiques de mise à l'échelle afin de minimiser le surprovisionnement des ressources de calcul.

Après avoir décidé de continuer à utiliser SageMaker comme composant central de l'architecture, nous avons également réalisé que SageMaker peut faire partie d'une architecture encore plus vaste, complétée par de nombreux autres services gérés par AWS sans serveur. Ce choix était nécessaire pour faciliter les besoins d'orchestration et d'observabilité d'ordre supérieur de cette architecture complexe.

Tout d'abord, pour supprimer les limitations de taille de charge utile et réduire considérablement le risque d'expiration lors de scénarios à fort trafic, CCC a implémenté une architecture qui exécute des prédictions de manière asynchrone à l'aide de Points de terminaison d'inférence asynchrone SageMaker couplé à d'autres services gérés par AWS en tant que blocs de construction de base. De plus, l'interface utilisateur du système suit le modèle de conception Fire-and-Forget. En d'autres termes, une fois qu'un utilisateur a téléchargé son entrée dans le système, il ne reste plus rien à faire. Ils seront informés lorsque la prédiction sera disponible. La figure ci-dessous illustre un aperçu de haut niveau de notre architecture événementielle asynchrone. Dans la prochaine section, plongeons en profondeur dans le flux d'exécution de l'architecture conçue.

Solution pas à pas

Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Étape 1

Un client fait une demande au AWS API Gateway point final. Le contenu de la demande contient le nom du service AI dont ils ont besoin d'une prédiction et la méthode de notification souhaitée.

Cette demande est transmise à un Lambda fonction appelée Nouvelle prédiction, dont les missions principales consistent à :

  • Vérifiez si le service demandé par le client est disponible.
  • Attribuez un ID de prédiction unique à la demande. Cet ID de prédiction peut être utilisé par l'utilisateur pour vérifier l'état de la prédiction tout au long du processus.
  • Générer un Amazon S3 URL pré-signée que l'utilisateur devra utiliser à l'étape suivante pour télécharger le contenu d'entrée de la demande de prédiction.
  • Créer une entrée dans Amazon DynamoDB avec les informations de la demande reçue.

La fonction Lambda renverra ensuite une réponse via le point de terminaison API Gateway avec un message qui inclut l'ID de prédiction attribué à la demande et l'URL pré-signée Amazon S3.

Étape 2

Le client télécharge en toute sécurité le contenu d'entrée de prédiction dans un compartiment S3 à l'aide de l'URL pré-signée générée à l'étape précédente. Le contenu d'entrée dépend du service d'IA et peut être composé d'images, de données tabulaires ou d'une combinaison des deux.

Étape 3

Le compartiment S3 est configuré pour déclencher un événement lorsque l'utilisateur télécharge le contenu d'entrée. Cette notification est envoyée à une file d'attente Amazon SQS et gérée par une fonction Lambda appelée Entrée de processusL’ Entrée de processus Lambda obtiendra les informations relatives à cet ID de prédiction auprès de DynamoDB pour obtenir le nom du service auquel la demande doit être adressée.

Ce service peut être soit un modèle d'IA unique, auquel cas le Entrée de processus Lambda enverra une demande au point de terminaison SageMaker qui héberge ce modèle (étape 3-A), ou il peut s'agir d'un service AI d'ensemble, auquel cas le Entrée de processus Lambda adressera une demande à la machine d'état des fonctions d'étape qui héberge la logique d'ensemble (étape 3-B).

Dans l'une ou l'autre des options (modèle d'IA unique ou service d'IA d'ensemble), lorsque la prédiction finale est prête, elle sera stockée dans le compartiment S3 approprié et l'appelant sera averti via la méthode spécifiée à l'étape 1 (plus de détails sur les notifications à l'étape 4).

Étape 3-A

Si l'ID de prédiction est associé à un seul modèle d'IA, le Entrée de processus Lambda enverra une demande au point de terminaison SageMaker qui sert le modèle. Dans ce système, deux types de terminaux SageMaker sont pris en charge :

  • asynchrones: Les Entrée de processus Lambda envoie la demande au point de terminaison asynchrone SageMaker. La réponse immédiate inclut l'emplacement S3 où SageMaker enregistrera la sortie de prédiction. Cette demande est asynchrone, suit le modèle fire-and-forget, et ne bloque pas le flux d'exécution de la fonction Lambda.
  • Mesures synchrones: Les Entrée de processus Lambda envoie la demande au point de terminaison synchrone SageMaker. Puisqu'il s'agit d'une demande synchrone, Process Input attend la réponse et, une fois obtenue, la stocke dans S3 de la même manière que les points de terminaison asynchrones SageMaker le feraient.

Dans les deux cas (points de terminaison synchrones ou asynchrones), la prédiction est traitée de manière équivalente, en stockant la sortie dans un compartiment S3. Lorsque le point de terminaison SageMaker asynchrone termine une prédiction, un événement Amazon SNS est déclenché. Ce comportement est également répliqué pour les points de terminaison synchrones avec une logique supplémentaire dans la fonction Lambda.

Étape 3-B

Si l'ID de prédiction est associé à un ensemble AI, le Entrée de processus Lambda enverra la demande à la fonction d'étape associée à cet ensemble AI. Comme mentionné ci-dessus, un AI Ensemble est une architecture basée sur un groupe de modèles d'IA travaillant ensemble pour générer une prédiction globale unique. L'orchestration d'un ensemble AI se fait par une fonction pas à pas.

La fonction d'étape a une étape par service AI qui comprend l'ensemble. Chaque étape appellera une fonction Lambda qui préparera l'entrée de son service AI correspondant en utilisant différentes combinaisons du contenu de sortie des appels de service AI précédents des étapes précédentes. Il passe ensuite un appel à chaque service d'IA qui, dans ce contexte, peut être un modèle d'IA unique ou un autre ensemble d'IA.

La même fonction Lambda, appelée GetTransformCall utilisé pour gérer les prédictions intermédiaires d'un AI Ensemble est utilisé tout au long de la fonction d'étape, mais avec des paramètres d'entrée différents pour chaque étape. Cette entrée inclut le nom du service AI à appeler. Il inclut également la définition de mappage pour construire l'entrée pour le service AI spécifié. Cela se fait à l'aide d'une syntaxe personnalisée que Lambda peut décoder, qui, en résumé, est un dictionnaire JSON dans lequel les valeurs doivent être remplacées par le contenu des prédictions AI précédentes. Lambda téléchargera ces prédictions précédentes à partir d'Amazon S3.

A chaque étape, le GetTransformCall Lambda lit à partir d'Amazon S3 les sorties précédentes qui sont nécessaires pour créer l'entrée du service AI spécifié. Il invoquera alors le Nouvelle prédiction Code Lambda précédemment utilisé à l'étape 1 et fournissez le nom du service, la méthode de rappel (« fonction d'étape ») et le jeton nécessaires pour le rappel dans la charge utile de la demande, qui est ensuite enregistrée dans DynamoDB en tant que nouvel enregistrement de prédiction. Lambda stocke également l'entrée créée de cette étape dans un compartiment S3. Selon qu'il s'agit d'un modèle d'IA unique ou d'un ensemble d'IA, Lambda envoie une demande à un point de terminaison SageMaker ou à une fonction d'étape différente qui gère un ensemble d'IA qui dépend de l'ensemble parent.

Une fois la demande effectuée, la fonction d'étape entre dans un état d'attente jusqu'à ce qu'elle reçoive le jeton de rappel indiquant qu'elle peut passer à l'étape suivante. L'action d'envoi d'un jeton de rappel est effectuée par une fonction Lambda appelée Notifications (plus de détails à l'étape 4) lorsque la prédiction intermédiaire est prête. Ce processus est répété pour chaque étape définie dans la fonction échelon jusqu'à ce que la prédiction finale soit prête.

Étape 4

Lorsqu'une prédiction est prête et stockée dans le compartiment S3, une notification SNS est déclenchée. Cet événement peut être déclenché de différentes manières selon le flux :

  1. Automatiquement lorsqu'un point de terminaison asynchrone SageMaker termine une prédiction.
  2. Comme la toute dernière étape de la fonction step.
  3. By Entrée de processus or GetTransformCall Lambda lorsqu'un point de terminaison SageMaker synchrone a renvoyé une prédiction.

Pour B et C, nous créons un message SNS similaire à celui que A envoie automatiquement.

Une fonction Lambda appelée notifications est abonnée à cette rubrique SNS. Les notifications Lambda obtiendront les informations relatives à l'ID de prédiction de DynamoDB, mettront à jour l'entrée avec la valeur de statut sur « terminé » ou « erreur », et effectueront l'action nécessaire en fonction du mode de rappel enregistré dans l'enregistrement de la base de données.

Si cette prédiction est une prédiction intermédiaire d'un ensemble AI, comme décrit à l'étape 3-B, le mode de rappel associé à cette prédiction sera "fonction d'étape" et l'enregistrement de base de données aura un jeton de rappel associé à l'étape spécifique dans le fonction pas à pas. Les notifications Lambda appellera l'API AWS Step Functions à l'aide de la méthode « SendTaskSuccess » ou « SendTaskFailure ». Cela permettra à la fonction d'étape de passer à l'étape suivante ou de quitter.

Si la prédiction est la sortie finale de la fonction d'étape et que le mode de rappel est « Webhook » [ou e-mail, courtiers de messages (Kafka), etc.], les notifications Lambda informeront le client de la manière spécifiée. À tout moment, l'utilisateur peut demander le statut de sa prédiction. La demande doit inclure l'ID de prédiction qui a été attribué à l'étape 1 et pointer vers l'URL correcte dans API Gateway pour acheminer la demande vers la fonction Lambda appelée résultats.

Les résultats Lambda enverra une demande à DynamoDB, obtenant le statut de la demande et renvoyant les informations à l'utilisateur. Si le statut de la prédiction est erreur, les détails pertinents sur l'échec seront inclus dans la réponse. Si l'état de la prédiction est succès, une URL pré-signée S3 sera renvoyée pour permettre à l'utilisateur de télécharger le contenu de prédiction.

Résultats

Les résultats préliminaires des tests de performance sont prometteurs et appuient la décision de CCC d'étendre la mise en œuvre de cette nouvelle architecture de déploiement.

Observations notables :

  • Les tests révèlent la force du traitement des requêtes par lots ou simultanées avec un débit élevé et un taux d'échec de 0 % dans les scénarios de trafic élevé.
  • Les files d'attente de messages offrent une stabilité au sein du système lors d'afflux soudains de demandes jusqu'à ce que les déclencheurs de mise à l'échelle puissent provisionner des ressources de calcul supplémentaires. Lorsque le trafic a été multiplié par 3, la latence moyenne des requêtes n'a augmenté que de 5 %.
  • Le prix de la stabilité est une latence accrue en raison de la surcharge de communication entre les différents composants du système. Lorsque le trafic utilisateur est supérieur au seuil de référence, la latence supplémentaire peut être partiellement atténuée en fournissant davantage de ressources de calcul si les performances sont plus prioritaires que les coûts.
  • Les points de terminaison d'inférence asynchrone de SageMaker permettent de réduire le nombre d'instances à zéro tout en gardant le point de terminaison actif pour recevoir des requêtes. Cette fonctionnalité permet aux déploiements de continuer à s'exécuter sans encourir de coûts de calcul et d'évoluer à partir de zéro si nécessaire dans deux scénarios : les déploiements de services utilisés dans des environnements de test inférieurs et ceux qui ont un trafic minimal sans nécessiter de traitement immédiat.

Conclusion

Comme observé au cours du processus POC, la conception innovante créée conjointement par CCC et AWS fournit une base solide pour l'utilisation d'Amazon SageMaker avec d'autres services gérés AWS pour héberger des ensembles d'IA multimodaux complexes et orchestrer des pipelines d'inférence de manière efficace et transparente. En tirant parti des fonctionnalités prêtes à l'emploi d'Amazon SageMaker, telles que l'inférence asynchrone, CCC a davantage d'opportunités de se concentrer sur des tâches critiques spécialisées. Dans l'esprit de la culture axée sur la recherche de CCC, cette nouvelle architecture continuera d'évoluer à mesure que CCC ouvre la voie, aux côtés d'AWS, en libérant de puissantes nouvelles solutions d'IA pour les clients.

Pour connaître la procédure détaillée de création, d'appel et de surveillance des points de terminaison d'inférence asynchrone, reportez-vous au Documentation, qui contient également un exemple de cahier pour vous aider à démarrer. Pour obtenir des informations sur les prix, visitez Tarification d'Amazon SageMaker.

Pour des exemples d'utilisation de l'inférence asynchrone avec des données non structurées telles que la vision par ordinateur et le traitement du langage naturel (TAL), reportez-vous à Exécutez l'inférence de vision par ordinateur sur de grandes vidéos avec les points de terminaison asynchrones Amazon SageMaker ainsi que Améliorez la recherche de grande valeur avec les points de terminaison d'inférence asynchrone Hugging Face et Amazon SageMaker, Respectivement.


À propos des auteurs

Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Christophe Diaz est ingénieur principal en R&D chez CCC Intelligent Solutions. En tant que membre de l'équipe R&D, il a travaillé sur une variété de projets allant de l'outillage ETL au développement Web backend, en collaborant avec des chercheurs pour former des modèles d'IA sur des systèmes distribués et en facilitant la fourniture de nouveaux services d'IA entre les équipes de recherche et d'exploitation. Il s'est récemment concentré sur la recherche de solutions d'outils cloud pour améliorer divers aspects du cycle de vie du développement du modèle d'IA de l'entreprise. Pendant son temps libre, il aime essayer de nouveaux restaurants dans sa ville natale de Chicago et collectionner autant de sets LEGO que sa maison peut en contenir. Christopher a obtenu son baccalauréat ès sciences en informatique de la Northeastern Illinois University.

Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Gagnant du prix Emmy Sam Kinard est directeur principal du génie logiciel chez CCC Intelligent Solutions. Basé à Austin, au Texas, il dirige l'équipe d'exécution de l'IA, qui est chargée de servir les produits d'IA de CCC à haute disponibilité et à grande échelle. Pendant son temps libre, Sam aime être privé de sommeil à cause de ses deux merveilleux enfants. Sam est titulaire d'un baccalauréat ès sciences en informatique et d'un baccalauréat ès sciences en mathématiques de l'Université du Texas à Austin.

Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Jaime Hidalgo est ingénieur principal des systèmes chez CCC Intelligent Solutions. Avant de rejoindre l'équipe de recherche sur l'IA, il a dirigé la migration mondiale de l'entreprise vers l'architecture de microservices, concevant, construisant et automatisant l'infrastructure dans AWS pour prendre en charge le déploiement de produits et services cloud. Actuellement, il construit et prend en charge un cluster de centres de données sur site conçu pour la formation à l'IA et conçoit et construit également des solutions cloud pour l'avenir de la recherche et du déploiement de l'IA de l'entreprise.

Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Daniel Suarez est ingénieur en science des données chez CCC Intelligent Solutions. En tant que membre de l'équipe d'ingénierie de l'IA, il travaille sur l'automatisation et la préparation de modèles d'IA dans la production, l'évaluation et le suivi des métriques et d'autres aspects des opérations de ML. Daniel est titulaire d'une maîtrise en informatique de l'Illinois Institute of Technology et d'une maîtrise et d'une licence en ingénierie des télécommunications de l'Universidad Politecnica de Madrid.

Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Arunprasath Shankar est architecte principal de solutions spécialisées en IA/ML chez AWS, aidant les clients mondiaux à faire évoluer leurs solutions d'IA de manière efficace et efficiente dans le cloud. Dans ses temps libres, Arun aime regarder des films de science-fiction et écouter de la musique classique.

Comment CCC Intelligent Solutions a créé une approche personnalisée pour héberger des modèles d'IA complexes à l'aide d'Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Justin McWhirter est gestionnaire d'architectes de solutions chez AWS. Il travaille avec une équipe d'architectes de solutions incroyables qui aident les clients à vivre une expérience positive lors de l'adoption de la plate-forme AWS. Lorsqu'il n'est pas au travail, Justin aime jouer à des jeux vidéo avec ses deux garçons, jouer au hockey sur glace et faire du tout-terrain dans sa Jeep.

Horodatage:

Plus de Apprentissage automatique AWS