Traducteur | Zhu Xianzhong
Critique | Sun Shujuan
Introduction
Nous sommes dans l'âge d'or de l'intelligence artificielle. L’adoption de solutions d’intelligence artificielle rend les entreprises plus créatives, compétitives et réactives. Le modèle Software-as-a-Service (SaaS), associé aux progrès de la technologie cloud, a rendu le processus de production et de consommation de logiciels de plus en plus mature.
C'est un fait commun que la plupart des organisations préfèrent « acheter » une technologie d'IA prête à l'emploi plutôt que de « construire » la leur. Ainsi, les fournisseurs SaaS, tels que Salesforce, SAP, Oracle, etc., ont successivement introduit des fonctions de plateforme d'intelligence artificielle et construit un modèle d'intelligence artificielle en tant que service (AI-as-a-Service, AIaaS). En effet, cette tendance de développement permet aux entreprises d’adopter plus facilement des solutions d’intelligence artificielle.
La technologie de test joue un rôle essentiel dans l'assurance qualité (AQ) en général et dans l'adoption de plateformes d'intelligence artificielle en particulier. De plus, les tests deviennent très complexes lors de l'adoption d'une plateforme d'IA, pour les raisons suivantes :
- Tester l'IA nécessite des processus de test intelligents, des ressources cloud virtualisées, des compétences professionnelles et des outils d'IA.
- Bien que les fournisseurs de plates-formes d'intelligence artificielle publient fréquemment différentes versions, la vitesse de test doit être aussi rapide que possible.
- Les produits d’intelligence artificielle manquent souvent de transparence et ne peuvent être expliqués, ils sont donc difficiles à convaincre ;
- Non seulement les produits d'intelligence artificielle, la qualité du modèle de formation et la qualité des données sont également tout aussi importantes. Cependant, certaines méthodes de test traditionnelles pour valider les ressources cloud, les algorithmes, les interfaces et les configurations utilisateur sont généralement inefficaces. De cette manière, les tests d’apprentissage, de raisonnement, de perception, de fonctionnement, etc. deviennent tout aussi importants.
Par exemple, dans un modèle de solution d'IA plug-and-play, la logique d'IA est fournie par l'éditeur de logiciel. Les programmeurs en tant que consommateurs sont responsables de la création de l'interface, de la fourniture de données pour entraîner la logique, de l'entraînement de la logique dans le contexte de la solution et de l'extension de l'expérience à l'utilisateur final.
Tout d'abord, comme les tests traditionnels, nous devons tester les données, les algorithmes, les intégrations et l'expérience utilisateur. Deuxièmement, afin de tester l'adéquation fonctionnelle de la solution, le modèle formé doit être validé, ce qui étendra les tests à l'inférence, à la planification, à l'apprentissage, etc. Troisièmement, des méthodes de validation des algorithmes d’IA eux-mêmes devraient être développées. Enfin, les outils pouvant être utilisés par la logique de l'IA, tels que la recherche, l'optimisation, les probabilités, etc., devraient également être inclus dans la vérification fonctionnelle. Cet article présentera une perspective pratique sur les cadres de tests d'intelligence artificielle.
Nécessité fondamentale des solutions AI Platform : tests continus
La maturité en matière d'assurance qualité obtenue grâce à un degré élevé d'automatisation est essentielle à l'adoption des plateformes d'IA. À mesure que les entreprises modernisent leur infrastructure et leurs méthodes d’ingénierie, les cycles de publication sont susceptibles de devenir plus courts et plus automatisés. Les techniques d’intégration continue (CI) se sont révélées efficaces. Lorsque le code est connecté plusieurs fois par jour puis recompilé, il génère plusieurs boucles de rétroaction QA. Par conséquent, pour appliquer avec succès l’IC, l’automatisation du processus de création et de déploiement est cruciale. L'automatisation est le fondement de l'IC, et l'automatisation des tests rend possible la livraison continue (CD). En bref, le CD est piloté par CI. Le développement de modèles agiles et DevOps a accéléré la boucle de rétroaction entre le développement et les tests, institutionnalisant les tests continus (CT), le développement continu et la livraison continue.
Dans les entreprises, les données, les applications, les infrastructures, etc. sont en constante évolution. Dans le même temps, les fournisseurs SaaS continuent de mettre à niveau leurs produits d’IA pour améliorer l’expérience utilisateur et l’efficacité du développement. Dans cette situation dynamique, il est crucial d'établir un écosystème de tests continu ; un tel environnement de test entièrement automatisé peut non seulement valider l'évolution des actifs informatiques de l'entreprise, mais également valider les versions changeantes du produit d'IA.
En résumé, les facteurs suivants doivent être pris en compte pour établir un bon écosystème CT :
- Migrez les scripts de tests automatisés vers des outils de contrôle de version d'entreprise. La base de code d'automatisation, tout comme la base de code de l'application, doit résider dans un référentiel de contrôle de version. De cette manière, il sera efficace de combiner les actifs de test avec les actifs d’application et de données.
- Il est prévu d'intégrer la suite d'automatisation avec des outils de déploiement de génération de code/données pour prendre en charge une exécution et un reporting centralisés. Il est important d’aligner les builds de code/données avec leurs suites d’automatisation respectives. Bien entendu, un déploiement automatisé basé sur des outils est absolument nécessaire à chaque build pour éviter toute intervention humaine.
- Divisez la suite d'automatisation en plusieurs couches de test pour obtenir un retour plus rapide à chaque point de contrôle. Par exemple, les contrôles de santé de l'IA peuvent vérifier qu'un service est sain après le déploiement de modifications dans les interfaces et les structures de données. Les tests de fumée IA peuvent vérifier que les fonctions critiques du système fonctionnent correctement et sont exemptes de défauts de colmatage.
- La portée des tests doit également couvrir le modèle de formation. Les tests d’IA doivent également tester des modèles entraînés démontrant si la solution apprend les instructions données, à la fois supervisées et non supervisées. Il est crucial de reproduire plusieurs fois le même scénario pour vérifier si la réponse correspond à la formation donnée. De même, il est crucial de mettre en place un processus pour former des solutions aux échecs, exceptions, erreurs, etc. dans le cadre des tests. Si la gestion des exceptions est soigneusement étudiée, une tolérance aux pannes peut être intégrée.
- Planifier la gestion de la formation/apprentissage de l'intelligence artificielle tout au long du cycle de la solution IA. Les paramètres liés à la tomodensitométrie devraient permettre de poursuivre l’apprentissage du test à la production, réduisant ainsi les inquiétudes concernant l’apprentissage par transfert.
- Optimisation grâce à la régression intelligente. Si la durée du cycle d'exécution de la régression d'ensemble est significativement plus longue, CT doit diviser un sous-ensemble au moment de l'exécution en fonction des zones gravement affectées afin de fournir un retour d'information dans un délai raisonnable. Utilisez efficacement les algorithmes de ML pour créer des modèles probabilistes afin de sélectionner des tests de régression cohérents avec des versions de code et de données spécifiques, contribuant ainsi à optimiser efficacement l'utilisation des ressources cloud et à accélérer les tests.
- Planifiez toujours des tests de régression complets sur une base régulière. Ces travaux peuvent être programmés la nuit ou le week-end, selon leur cohérence avec la fréquence récurrente des chantiers. Il s’agit du feedback ultime de l’écosystème CT, dont l’objectif est de minimiser le temps de feedback en exécutant des threads ou des machines qui s’exécutent en parallèle.
Lors des tests sans intervention humaine, les problèmes, les erreurs et toute anomalie d'algorithme deviennent une source de découverte pour les solutions d'IA. De même, l’utilisation réelle et les préférences des utilisateurs lors des tests deviennent également une source de formation et doivent se poursuivre en production.
Garantir que les données des solutions AIaaS peuvent être extraites
La qualité des données est le critère de succès le plus important dans les solutions d'intelligence artificielle. Les données utiles existent à la fois à l’intérieur et à l’extérieur de l’entreprise. La capacité d'extraire des données utiles et de les transmettre au moteur d'IA est l'une des exigences d'un développement de qualité. Extraire, transformer et charger (ETL) est un terme traditionnel qui fait référence à un pipeline de données qui collecte des données provenant de diverses sources, les transforme en fonction de règles métier et les charge dans un magasin de données cible. Le domaine de l'ETL s'est développé vers l'intégration d'informations d'entreprise (EII), l'intégration d'applications d'entreprise (EAI) et la plateforme d'intégration cloud d'entreprise en tant que service (iPaaS). Quels que soient les progrès technologiques, le besoin de garantir les données ne fera que devenir plus important. L'assurance des données doit couvrir les activités de tests fonctionnels telles que la vérification du processus Map Reduction, la vérification de la logique de transformation, la vérification des données, la vérification du stockage des données, etc. En outre, l’assurance des données doit également aborder les aspects non fonctionnels des performances, du basculement et de la sécurité des données.
Les données structurées sont plus faciles à gérer, tandis que les données non structurées provenant de l'extérieur de l'entreprise doivent être manipulées avec prudence. Les principes du traitement de flux aident à préparer les données en mouvement plus tôt ; c'est-à-dire que grâce au traitement basé sur les événements, les données sont traitées dès qu'elles sont générées ou reçues à partir de sites Web, d'applications externes, d'appareils mobiles, de capteurs et d'autres sources. De plus, il est absolument nécessaire de vérifier la qualité en établissant des contrôles de qualité.
Les plateformes de messagerie telles que Twitter, Instagram et WhatsApp sont toutes des sources de données populaires. Lorsqu'ils utilisent ces données, ils connectent des applications, des services et des appareils sur diverses technologies via un cadre de messagerie basé sur le cloud. Les techniques d'apprentissage profond permettent aux ordinateurs d'apprendre de ces charges de données. Certaines de ces données nécessitent l’aide de solutions de réseaux neuronaux pour résoudre des problèmes complexes de traitement du signal et de reconnaissance de formes, allant de la transcription de la parole à la transcription de texte, de la reconnaissance de l’écriture manuscrite à la reconnaissance faciale et bien d’autres domaines. Par conséquent, les contrôles de qualité nécessaires devraient être établis pour tester les données de ces plateformes.
Voici quelques éléments auxquels vous devez prêter attention lors de la conception d'un projet d'assurance qualité basé sur l'IA.
- Portes de qualité automatisées : des algorithmes de ML peuvent être mis en œuvre pour déterminer si les données « réussissent » en fonction de critères historiques et perceptuels.
- Prédire les causes sources : classer ou identifier les causes sources des défauts de données permet non seulement d'éviter de futures erreurs, mais contribue également à améliorer continuellement la qualité des données. Grâce à des modèles et des corrélations, les équipes de test peuvent mettre en œuvre des algorithmes de ML pour retracer les défauts jusqu'à leur source. Cela permet d'automatiser les tests correctifs et la correction avant que les données ne passent à l'étape suivante pour l'auto-test et l'auto-réparation.
- Tirez parti de la surveillance pré-consciente : les algorithmes de ML peuvent rechercher des symptômes et des erreurs de codage associées dans les modèles de données, tels qu'une utilisation élevée de la mémoire, des menaces potentielles pouvant provoquer des pannes, etc., aidant ainsi les équipes à mettre en œuvre automatiquement des mesures correctives. Par exemple, le moteur d'IA peut accélérer automatiquement les processus parallèles pour optimiser la consommation du serveur.
-
Failover : Les algorithmes ML peuvent détecter les échecs et récupérer automatiquement pour poursuivre le traitement, avec la possibilité d'enregistrer les échecs pour l'apprentissage.
Garantir les algorithmes d'intelligence artificielle dans les solutions AIaaS
Lorsque la structure interne du système logiciel est connue, le développement et les tests sont simples. Cependant, dans les solutions de plateforme d'IA, l'IA et le ML sont moins « explicables », c'est-à-dire que le mappage entrée/sortie est le seul élément connu, et les développeurs ne peuvent souvent pas voir ou comprendre les mécanismes de la fonctionnalité d'IA sous-jacente (par exemple, la prédiction). Bien que les tests traditionnels en boîte noire aident à résoudre le problème de mappage entrées/sorties, lorsque la transparence fait défaut, les humains auront du mal à faire confiance au modèle de test. Bien entendu, une solution de plateforme d'IA est une boîte noire ; il existe des techniques d'IA uniques qui peuvent aider à vérifier la fonctionnalité d'un programme d'IA de cette manière, les tests ne sont pas seulement une question de mappage d'entrées et de sorties ; Pour des considérations de conception, certaines techniques de test boîte noire basées sur l'IA incluent :
- Les contrôles prédictifs postérieurs (PPC) simulent des données répliquées sous un modèle ajusté, puis les comparent aux données observées. Ainsi, les tests peuvent utiliser des prédictions a posteriori pour « rechercher des différences systématiques entre les données réelles et simulées ».
- Algorithme génétique pour optimiser les cas de test. L'un des défis liés à la génération de scénarios de test consiste à trouver un ensemble de données qui, lorsqu'elles sont utilisées comme entrées dans le logiciel testé, permettent d'obtenir la couverture la plus élevée. Si ce problème est résolu, les cas de test peuvent être optimisés. Il existe des algorithmes de recherche heuristique adaptatifs qui simulent les comportements de base exécutés dans les processus évolutifs naturels, tels que la sélection, le croisement et la mutation. Lors de l'utilisation de la recherche heuristique pour générer des cas de test, les informations de retour sur l'application de test sont utilisées pour déterminer si les données de test répondent aux exigences du test. Le mécanisme de rétroaction peut ajuster progressivement les données de test jusqu'à ce que les exigences du test soient satisfaites.
- Réseau de neurones pour la génération automatique de cas de test. Ce sont des systèmes cellulaires physiques capables d’acquérir, de stocker et de traiter des connaissances empiriques. Ils imitent le cerveau humain pour effectuer des tâches d’apprentissage. La technologie d'apprentissage des réseaux neuronaux est utilisée pour générer automatiquement des cas de test. Dans ce modèle, le réseau de neurones est formé sur un ensemble de cas de tests appliqués à la version originale du produit AI Platform. La formation réseau cible uniquement les entrées et sorties du système. Le réseau formé peut ensuite être utilisé comme un oracle artificiel pour évaluer l'exactitude du résultat produit par les nouvelles versions potentiellement boguées du produit de la plateforme d'IA.
- Logique floue pour la sélection de tests de régression basés sur un modèle. Bien que ces méthodes soient utiles dans les projets qui utilisent déjà des méthodes de développement pilotées par les modèles, l'un des principaux obstacles réside dans le fait que les modèles sont souvent créés à un niveau d'abstraction élevé. Ils ne disposent pas des informations nécessaires pour établir des liens de traçabilité entre les traces d'exécution liées à la couverture dans les modèles et les scénarios de test au niveau du code. Les méthodes basées sur la logique floue peuvent être utilisées pour affiner automatiquement les modèles abstraits afin de produire des modèles détaillés permettant l'identification des liens de traçabilité. Ce processus introduit un certain degré d’incertitude – une incertitude qui peut être résolue en appliquant une logique floue basée sur le raffinement. La logique de cette approche est de classer les cas de test en cas retestables en fonction de leur exactitude probabiliste associée à l'algorithme de raffinement utilisé.
Pour des informations plus détaillées sur cette partie des connaissances, veuillez vous référer à "Tests en boîte noire des modèles d'apprentissage automatique".
Assurer l'intégration et les interfaces dans les solutions AIaaS
Toutes les solutions SaaS, y compris les solutions AIaaS, sont livrées avec un ensemble de services web prédéfinis. Les applications d'entreprise et autres ressources intelligentes peuvent interagir avec ces services pour atteindre les résultats promis. Aujourd'hui, les services Web ont évolué jusqu'à un niveau qui assure l'indépendance de la plate-forme, c'est-à-dire l'interopérabilité. Cette flexibilité accrue permet à la plupart des services Web d'être utilisés par différents systèmes. Bien entendu, la complexité de ces interfaces nécessite également une augmentation correspondante des niveaux de test. Par exemple, dans un environnement CI/CD, il devient une tâche critique de vérifier la compatibilité de ces interfaces dans chaque package d'application construit.
Actuellement, le principal défi dans ce domaine est de mettre en œuvre des services web virtualisés et de vérifier le flux de données entre la solution AI Platform et l'application ou l'interface IoT. En résumé, les principales raisons pour lesquelles les tests d'interface/service Web sont compliqués incluent :
- Il n'y a pas d'interface utilisateur testable à moins qu'elle ne soit déjà intégrée à une autre source qui n'est peut-être pas encore prête à être testée.
- Tous les éléments définis dans ces services nécessitent une validation, quelle que soit l'application qui les utilise ou la fréquence à laquelle ils sont utilisés.
- Les paramètres de sécurité de base du service doivent être vérifiés.
- Connectez-vous aux services via différents protocoles de communication.
- L'appel simultané de plusieurs canaux d'un service peut entraîner des problèmes de performances et d'évolutivité.
Par conséquent, tester la couche d'interface est particulièrement nécessaire :
- Simuler le comportement d'un composant ou d'une application. La complexité des interfaces des applications d’IA avec les humains, les machines et les logiciels doit être simulée dans les tests d’IA pour garantir l’exactitude, l’exhaustivité, la cohérence et la rapidité.
- Vérifiez l'utilisation de code non standard. L'utilisation de bibliothèques open source et l'adoption d'applications réelles peuvent introduire du code et des données non standard dans l'environnement informatique de l'entreprise. Par conséquent, tout cela doit être vérifié.
Garantir l'expérience utilisateur dans les solutions AIaaS
Dans la nouvelle réalité sociale où les gens travaillent et vivent principalement à distance, l'expérience client est devenue une nécessité pour le succès d'une entreprise. Il s’agit d’un objectif plus vaste du programme d’intelligence artificielle. Les tests non fonctionnels sont un phénomène éprouvé qui offre des expériences client significatives en validant des propriétés telles que les performances, la sécurité et l'accessibilité. En général, les technologies de nouvelle génération augmentent la complexité de l’assurance de l’expérience.
Voici quelques considérations de conception importantes pour garantir l'expérience utilisateur tout au long du cadre de test d'IA.
- Concevoir pour l'expérience, pas tester l'expérience. Les stratégies d’IA d’entreprise doivent commencer du point de vue de l’utilisateur final. Il est important de s’assurer que l’équipe de test représente de vrais clients. Impliquer le client dès le début de la conception facilite non seulement la conception, mais permet également de gagner la confiance du client dès le début.
- Atteignez l'agilité et l'automatisation en créant des modèles d'optimisation des tests. Les problèmes d’expérience utilisateur doivent être pris en compte dès la phase « essaim » du cycle de test, car les tests précoces de l’expérience utilisateur aideront à réaliser un cycle de développement optimisé pour les tests de construction.
- Une sécurité continue avec des méthodes agiles est essentielle. Demandez à l'équipe de sécurité de l'entreprise de faire partie d'une équipe agile qui : 1) possède et valide le modèle de menace de l'organisation pendant la période de test « en essaim » 2) évalue les vulnérabilités structurelles sur toutes les interfaces multicanales que l'architecture de la solution SaaS d'IA peut avoir ( du point de vue d’un hacker hypothétique).
- La vitesse est essentielle. Les propriétés des données d'IA, telles que le volume, la vitesse, la diversité et la variabilité, nécessitent un prétraitement, un traitement parallèle/distribué et/ou un traitement de flux. Les tests de performances aideront à optimiser la conception du traitement distribué, ce qui est nécessaire pour la vitesse que les utilisateurs attendent du système.
- Les nuances des tests de texte et de parole sont également importantes. De nombreuses enquêtes indiquent que l’IA conversationnelle reste en tête des priorités des entreprises. À mesure que de nouvelles technologies telles que la réalité augmentée, la réalité virtuelle et l’intelligence artificielle de pointe continuent d’émerger, des exigences telles que le test du texte, de la parole et du traitement du langage naturel devraient toutes pouvoir être satisfaites.
- La simulation permet de tester les limites. L’examen des scénarios utilisateur est la base de l’assurance de l’expérience. En ce qui concerne l'IA, tester les anomalies, les erreurs et les violations aidera à prédire le comportement du système, ce qui à son tour nous aidera à valider le niveau de tolérance aux erreurs/fautes des applications d'IA.
- Confiance, transparence et diversité. Valider la confiance des utilisateurs d'entreprise dans les résultats de l'IA, vérifier la transparence des sources de données et des algorithmes, exiger la transparence pour cibler la réduction des risques et accroître la confiance dans l'IA, garantir la diversité des sources de données et des utilisateurs/testeurs pour examiner l'éthique de l'IA et son exactitude, tous ces éléments sont critique. Pour ce faire, les testeurs doivent non seulement améliorer leurs connaissances du domaine, mais également comprendre le savoir-faire technique en matière de données, d'algorithmes et de processus d'intégration dans l'informatique des grandes entreprises.
Conclusion
En bref, les tests continus sont une exigence fondamentale pour chaque entreprise souhaitant adopter des solutions de plateforme d'intelligence artificielle. Par conséquent, nous devrions adopter une approche modulaire pour améliorer la conception des données, les algorithmes, les activités d’intégration et d’assurance de l’expérience. Cela nous aidera à créer un écosystème de tests continus afin que l'informatique de l'entreprise puisse être prête à accepter des changements fréquents dans les composants d'IA internes et externes.
Présentation du traducteur
Zhu Xianzhong, rédacteur en chef de la communauté 51CTO, blogueur expert 51CTO, conférencier, professeur d'informatique dans une université de Weifang et vétéran de l'industrie de la programmation indépendante. Au début, il s'est concentré sur diverses technologies Microsoft (compilé trois livres techniques liés à ASP.NET AJX et Cocos 2d-X. Au cours des dix dernières années, il s'est consacré au monde open source (familier avec les logiciels complets populaires). technologie de développement Web de pile) et découvert OneNet/AliOS+Arduino/ESP32/Raspberry Pi et d'autres technologies de développement IoT et Scala+Hadoop+Spark+Flink et d'autres technologies de développement Big Data.
Titre original : Quality Engineering Design for AI Platform Adoption, auteur : Anbu Muppidathi
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!