Avec le développement de la technologie de l'IA, les technologies d'IA impliquées dans différentes entreprises deviennent de plus en plus diversifiées. Dans le même temps, le nombre de paramètres du modèle d'IA augmente de manière explosive d'année en année. surmonter les coûts de développement élevés et la forte dépendance au travail manuel auxquels est confrontée la mise en œuvre des algorithmes d'IA ? Des problèmes tels que l'instabilité des algorithmes et la longueur du cycle de mise en œuvre sont devenus des problèmes qui affligent les praticiens de l'intelligence artificielle. La « plateforme d'apprentissage automatique » est la méthode clé pour résoudre la pression de la mise en œuvre de l'IA. Aujourd'hui, je partagerai avec vous l'expérience pratique de Du Xiaoman dans la création de la plateforme d'apprentissage automatique ATLAS.
Tout d'abord, présentons le contexte, le processus de développement et la situation actuelle de la plateforme d'apprentissage automatique Du Xiaoman.
Du Xiaoman est une société de technologie financière. Les scénarios commerciaux internes de l'entreprise sont principalement divisés en trois aspects :
Étant donné que les technologies d'IA impliquées dans l'entreprise sont très diverses, la mise en œuvre d'algorithmes d'IA présente de grands défis.
Il existe un triangle impossible dans la mise en œuvre des algorithmes d'IA : il est difficile d'atteindre une efficacité élevée, un faible coût et une haute qualité de développement d'algorithmes à en même temps.
3. Processus de production d'algorithmes d'IA
La mise en œuvre des algorithmes d'IA est principalement divisée en quatre parties : la gestion des données, la formation des modèles, l'optimisation, le déploiement et la publication des algorithmes. La formation des modèles et l'optimisation des algorithmes sont un processus itératif.
À chaque étape du développement de l'algorithme, les exigences techniques pour les personnes impliquées dans cette étape varient considérablement :
Il ressort de la pile technologique requise à chaque étape qu'il est difficile pour un, deux ou trois techniciens de maîtriser pleinement toutes les technologies, et chaque étape impliquant un travail manuel entraînera un goulot d'étranglement instable. L’utilisation de plateformes d’apprentissage automatique peut résoudre ces deux problèmes.
Notre plateforme d'apprentissage automatique ATLAS parcourt l'ensemble du processus de production de l'IA, visant à remplacer la participation manuelle dans la mise en œuvre des algorithmes d'IA, à obtenir un résultat efficace et à faciliter l'algorithme d'IA. recherche et développement. Objectif d’amélioration de l’efficacité énergétique.及Aatlas implique les quatre plateformes suivantes :
Il existe également une relation itérative entre ces quatre plateformes. Les détails de conception et les processus de fonctionnement de ces plates-formes sont présentés ci-dessous.
5. ATLAS : Données et formationLa partie données et formation couvre la plateforme d'annotation, la plateforme de données et la plateforme de formation.
(1) Plateforme d'annotation
La plateforme d'annotation fournit principalement des données d'annotation pour l'entraînement des algorithmes d'IA. Depuis la naissance du deep learning, le modèle est devenu très complexe, ce qui constitue un goulot d'étranglement pour. l'efficacité de l'algorithme d'IA. L'accent s'est déplacé de la conception du modèle vers la qualité et la quantité des données, de sorte que la production efficace de données est un maillon crucial dans la mise en œuvre des algorithmes d'IA.
La plateforme d'annotation de données d'ATLAS dispose principalement de deux capacités et fonctionnalités : la couverture multi-scènes et l'annotation intelligente. (2) Plateforme de données La plateforme de données met principalement en œuvre une gouvernance des données à grande échelle. Elle peut prendre en compte la flexibilité pendant le processus de gouvernance et faire correspondre dynamiquement les échantillons. Sur la base de la sauvegarde de plus de 5 000 dimensions de caractéristiques de centaines de millions d'utilisateurs, une requête en ligne et en temps réel peut être réalisée. Les échantillons à correspondance dynamique peuvent répondre aux exigences de sélection d'échantillons et de sélection de données de différents scénarios. (3) Plateforme de formation La plateforme de formation est un outil très important, divisé en cinq couches : Notre déploiement adopte une architecture de type Serverless. La raison pour laquelle il est appelé Serverless-like est qu'il ne s'agit pas d'un service entièrement sans serveur. Étant donné que nos services ne sont pas orientés vers un large éventail de scénarios d'application généraux, mais uniquement vers des services de modèles en ligne, il n'est pas nécessaire d'envisager la compatibilité avec davantage de scénarios. La couche d'interface API fournit trois parties avec lesquelles le modèle entrera en contact : Pour les utilisateurs, seule la partie orange sur l'image est ce à quoi les utilisateurs doivent prêter attention. L'API fournie par la plateforme peut réduire les coûts de développement et est compatible avec presque tous les algorithmes. le marché. En utilisant l'API pour développer un modèle, le processus allant du développement à la mise en œuvre peut être complété en une journée, voire une demi-journée. En plus de cela, nous pouvons fournir une bonne garantie de stabilité, une bonne gestion du trafic et une gestion de la capacité de la plateforme grâce à la gestion de cluster. Ce qui suit montre les scénarios de deux itérations d'optimisation sur ATLAS. Par exemple, lors de la mise en œuvre d'un modèle OCR, certains cas problématiques se produiront après le déploiement de l'ancien modèle, et ces cas problématiques sont liés aux données d'annotation existantes Après la fusion, il devient un nouvel ensemble de données, puis l'ancien modèle est optimisé via le pipeline d'optimisation AutoML pour générer un nouveau modèle. Une fois le nouveau modèle déployé, le cycle se répète. Grâce à un tel cycle, le modèle peut maintenir une amélioration supplémentaire de 1 % de la précision. Étant donné que la précision du modèle OCR est très élevée, généralement supérieure à 95 %, 1 % constitue également une grande amélioration. Utilisez plutôt AutoML à processus complet pour les processus d'optimisation simples et répétitifs, utilisez AutoML comme optimisation auxiliaire pour les scénarios qui nécessitent une expérience d'expert et utilisez AutoML à processus complet AutoML Les résultats sont utilisés comme référence pour sélectionner le modèle optimal et le déployer en ligne. Dans notre entreprise, plus de 60 % des scénarios ont obtenu des améliorations de performances grâce à cette méthode d'optimisation, avec des effets d'amélioration allant de 1 % à 5 %. Présentons les technologies AutoML que nous utilisons et les améliorations que nous avons apportées. Tout d'abord, présentons les avantages d'AutoML par rapport à la modélisation experte traditionnelle. Les avantages d'AutoML sont divisés en trois aspects : Présentons les technologies couramment utilisées dans AutoML.
6. ATLAS : Le déploiement est en ligne
7. ATLAS : Itérations d'optimisation
2. Apprentissage automatique automatique
1. Modélisation experte et AutoML
2. Introduction à AutoML
Les technologies AutoML couramment utilisées comprennent trois aspects :
Les sections suivantes présentent respectivement ces trois aspects de la technologie.
3. Plateforme d'apprentissage automatique automatique : pipeline d'optimisation automatique
La première est la partie optimisation des super paramètres. En fait, dans notre pipeline d’optimisation automatique, l’ensemble du pipeline d’apprentissage automatique est utilisé comme cible de l’optimisation automatique, et pas seulement pour l’optimisation des hyperparamètres. Y compris l'ingénierie automatisée des fonctionnalités, la sélection de modèles, la formation de modèles et l'intégration automatique, etc., cela réduit la possibilité de surajustement par rapport à l'optimisation d'hyperparamètres individuels.
De plus, nous avons implémenté un framework AutoML appelé Genesis, qui est compatible avec les algorithmes d'IA traditionnels et les outils AutoML, et est convivial pour l'expansion. Il peut orthogonaliser les différents modules de fonctionnalités de la plate-forme les uns par rapport aux autres, afin qu'ils puissent interagir librement. combinaison entre eux pour obtenir un pipeline d’optimisation automatique plus flexible.
Notre système utilise également la méthode méta-apprentissage Ce qui suit présente la nécessité de la méthode de méta-apprentissage et l'application clé. scénarios.
(1) La nécessité du méta-apprentissage
Après avoir accumulé une grande quantité de données expérimentales, nous avons constaté que l'ensemble de données présente une agrégation évidente dans l'espace des méta-fonctionnalités, nous supposons donc que il est distribué dans l'espace des méta-fonctionnalités. Les solutions optimales pour les ensembles de données proches le seront également. Sur la base de cette hypothèse, nous avons utilisé les hyperparamètres des tâches historiques pour guider l'optimisation des paramètres de nouvelles tâches et avons constaté que la recherche d'hyperparamètres converge plus rapidement et que, avec un budget limité, l'effet de l'algorithme peut être amélioré de 1 % supplémentaire.
(2) Scénarios d'application
Dans les scénarios d'application Big Data, il est parfois nécessaire d'effectuer des modifications sur des ensembles de données existants Fusionner, par exemple, fusionner l'ensemble de données A et l'ensemble de données B pour générer un nouvel ensemble de données C. Si les hyperparamètres de l'ensemble de données A et de l'ensemble de données B sont utilisés comme démarrage à froid de l'ensemble de données C pour guider l'optimisation des hyperparamètres de l'ensemble de données C, d'une part, il peut verrouiller l'espace de recherche, et d'autre part, il peut obtenir des résultats d'optimisation des paramètres optimaux.
Dans le processus de développement réel, il est parfois nécessaire d'échantillonner l'ensemble de données, puis d'effectuer une optimisation des hyperparamètres sur l'ensemble de données échantillonné , car l'échantillonnage La distribution spatiale des méta-caractéristiques des données finales est proche des données d'origine, donc l'utilisation des hyper-paramètres de l'ensemble de données d'origine pour guider l'optimisation des hyper-paramètres des données échantillonnées peut améliorer l'efficacité de l'optimisation.
Le dernier est notre optimisation automatique pour les scénarios d'apprentissage profond. Il est divisé en deux aspects : l'optimisation des hyperparamètres et l'exploration du NAS :
Le goulot d'étranglement du développement du Deep Learning est le temps de formation, et une itération prend plusieurs heures pour plusieurs heures par jour, puis l'utilisation de l'optimisation bayésienne traditionnelle nécessite vingt ou trente itérations, et le temps de formation peut aller d'un mois à plusieurs mois. Par conséquent, nous utiliserons la méthode Hyperband pour fournir des graines pour l'optimisation bayésienne dans la partie optimisation des hyperparamètres d'apprentissage en profondeur afin d'accélérer le processus de recherche d'hyperparamètres. Sur cette base, nous utiliserons également les informations des données historiques pour optimiser le démarrage à froid et utiliserons des modèles alternatifs historiques pour l'intégration, ce qui permettra d'obtenir une solution optimale globale à une vitesse de convergence plus rapide que l'initialisation aléatoire.
Dans les scénarios de développement réels, différents scénarios de déploiement ont des exigences différentes en termes d'échelle et de performances temporelles du modèle. Deuxièmement, l'optimisation de la structure du réseau neuronal est une partie importante de l'optimisation du modèle dont nous avons besoin. pour exclure cette étape des interférences artificielles. Nous avons donc proposé cette méthode NAS one-shot basée sur l'intrication des poids. L'efficacité de la recherche peut atteindre plus de 3 fois celle de la méthode DARTS classique, et la quantité de paramètres et le coût de calcul du modèle de sous-réseau recherché sont contrôlables. être sélectionné dans la cible. De plus, nous prenons également en charge divers espaces tels que MobileNet et ResNet pour répondre aux différentes exigences des tâches CV.
Enfin, discutons des problèmes d'échelle et d'efficacité que nous avons rencontrés lors de la construction de la plateforme d'apprentissage automatique.
La raison pour laquelle nous nous concentrons sur les problèmes d'échelle et d'efficacité est que le deep learning est confronté à un conflit entre la taille du modèle et les exigences informatiques.
Il existe un consensus dans l'industrie selon lequel plus de paramètres de modèle signifient de meilleures performances du modèle. Il existe la loi de Moore suivante dans l'apprentissage profond :
Donc, la croissance rapide de informatique L'écart entre les exigences et les performances matérielles doit être comblé par l'optimisation.
La méthode d'optimisation la plus couramment utilisée est le parallélisme, comprenant le parallélisme des données, le parallélisme des modèles, etc. La technologie la plus couramment utilisée est la technologie parallèle de données.
La technologie parallèle de données de la plateforme ATLAS présente les caractéristiques suivantes :
Le parallélisme du modèle ATLAS est principalement divisé en deux aspects :
Certains modèles de réseau ont de très grands paramètres de couche entièrement connectés. Par exemple, l'échelle de classification d'arcFace peut atteindre des dizaines, des millions, voire des dizaines de millions. Une telle couche de connexion ne peut pas être couverte par une carte GPU. À l’heure actuelle, la technologie parallèle intra-couche doit être introduite et différents nœuds calculent différentes parties du même tenseur. La technologie parallèle inter-couches sera également utilisée, c'est-à-dire que les données des différentes couches du réseau sont calculées sur différents nœuds , et il n'y aura pas d'interface de calcul dépendant pour réduire l'IDLE (temps d'attente du GPU) pendant le calcul. En plus des données linéaires qui peuvent être décrites par des tenseurs, nous avons exploré la formation parallèle des données graphiques. Pour les données graphiques, qu'il s'agisse d'échantillonnage ou d'autres opérations, elles doivent traverser dynamiquement des nœuds, et les données graphiques sont généralement à très grande échelle. Nos données graphiques internes ont atteint des dizaines de milliards d'échelle, comme ça Le calcul des données graphiques est difficile à réaliser sur une seule machine. Le goulot d'étranglement du calcul distribué des données graphiques est la table de mappage. La complexité spatiale de la table de mappage traditionnelle est O(n). Par exemple, les données graphiques avec 1 milliard de points et 1 milliard d'arêtes occupent 160 Go. mémoire, formant un plafond d'échelle de formation distribué. Nous proposons une méthode avec une complexité spatiale de O (1). En réorganisant les identifiants des nœuds et des arêtes, seules les limites de mappage sont conservées, ce qui permet d'étendre arbitrairement l'échelle de la formation parallèle des graphes. En parallèle, nous avons également procédé à quelques optimisations en termes d'efficacité de la formation. Beaucoup de temps GPU est consommé dans la lecture des données, le GPU est vide, etc. Grâce à la formation pré-événement, à la surveillance et aux avertissements en cas d'événement, et analyse post-événement, le GPU peut être optimisé. L'utilisation moyenne a doublé. Nous utilisons également la technique de recalcul de rétropropagation. Pour certains modèles avec de très nombreux paramètres, lors du processus de propagation vers l'avant, nous ne sauvegardons pas les résultats de calcul de toutes les couches, mais conservons uniquement les points de contrôle de certains nœuds. Lors de la propagation vers l'arrière, les nœuds de paramètres vides sont recalculés à partir du point de contrôle. De cette manière, les ressources mémoire peuvent être réduites de plus de 50 % et l'efficacité de l'entraînement peut être améliorée de plus de 35 %. 4. Parallélisme des graphes
5. Efficacité de la formation
4. Résumé et réflexions
Enfin, parlons de l'expérience et des réflexions dans la construction d'une plateforme d'apprentissage automatique.
Nousnous avons résumé quelques expériences comme suit :
Parce que la mise en œuvre de notre algorithme d'IA implique tous les aspects de la technologie et du contenu, je Je ne peux pas Les étudiants de n'importe quel lien doivent comprendre la situation globale, nous devons donc avoir une plate-forme qui peut fournir ces capacités de base pour aider tout le monde à résoudre ces problèmes.
Parce que ce n'est que si l'application de l'automatisation ou d'AutoML est bien faite que ce sera plus efficace Libérer la productivité des experts en algorithmes, afin que les experts en algorithmes puissent réaliser des algorithmes plus approfondis ou développer des capacités pour augmenter la limite supérieure de l'apprentissage automatique.
A1 : Le framework AutoML open source le plus couramment utilisé est Optuna. J'ai également essayé Auto-Sklearn et AutoWeka. Ensuite, je recommande à tout le monde un site Web, automl.org, car en fait, il y a encore beaucoup de gens qui travaillent. Dans ce domaine, ce site Web est un site Web construit par plusieurs experts et professeurs dans le domaine d'AutoML. Il contient de nombreux supports d'apprentissage open source pour AutoML, auxquels tout le monde peut se référer. Le framework open source que nous recommandons est Optuna, que nous utilisons pour l'ajustement des paramètres, car son algorithme n'est pas seulement l'optimisation bayésienne la plus basique. Il s'agit d'un algorithme TPE, qui est plus adapté aux très grands paramètres. encore plus adapté à certains scénarios avec relativement peu de paramètres. Cependant, ma suggestion est que vous puissiez essayer différentes méthodes pour différents scénarios, car après plusieurs tentatives, vous pouvez avoir des opinions différentes sur les scénarios. Quelle méthode convient pour plus d'expérience.
A2 : Cela fait 3 ou 4 ans depuis la construction de notre plateforme de machine learning. Au début, nous avons d'abord résolu le problème du déploiement d'applications, puis avons commencé à développer nos capacités de production, telles que l'informatique et la formation. Si vous le construisez à partir de zéro, je vous suggère de vous référer d'abord à certains frameworks open source pour le construire, puis de voir quel type de problèmes vous rencontrerez dans vos scénarios commerciaux lors de l'utilisation, afin de clarifier l'orientation future du développement.
A3 : Il s'agit peut-être d'un problème d'optimisation d'algorithme plus spécifique, mais dans notre pipeline d'optimisation, nous nous entraînons via la méthode d'échantillonnage de cette manière, nos tâches peuvent voir l'ensemble de données sous plus d'angles ou d'aspects, puis. intégrer les meilleurs modèles formés après échantillonnage pour donner à notre modèle des capacités de généralisation plus fortes. C'est également une méthode très importante dans notre scénario.
A4 : Comme mentionné tout à l'heure, ce cycle de développement dure environ trois à quatre ans. Ensuite, en termes d’investissement en personnel, il y a actuellement six ou sept étudiants. Au début, ce nombre était encore inférieur.
A5 : Tout d'abord, le GPU virtualisé évoqué par cet étudiant doit faire référence à la segmentation et à l'isolement des ressources. Si nous construisons une plate-forme d'apprentissage automatique, la virtualisation du GPU devrait être une capacité nécessaire. Cela signifie que nous devons virtualiser les ressources afin d'obtenir une meilleure planification et allocation des ressources. Ensuite, sur cette base, nous pouvons également diviser la mémoire vidéo de notre GPU et ses ressources informatiques, puis allouer des blocs de ressources de différentes tailles à différentes tâches, mais nous ne nous entraînons pas réellement à l'utiliser à l'intérieur, car les tâches d'entraînement ont généralement des niveaux plus élevés. exigences en matière de puissance de calcul, et ce ne sera pas un scénario d'application avec une consommation de ressources moindre. Nous l'utiliserons dans des scénarios d'inférence. Au cours du processus de candidature proprement dit, nous avons constaté qu'il n'existe pas de bonne solution gratuite open source pour la technologie de virtualisation. Certains fournisseurs de services cloud proposent des solutions payantes. Nous utilisons donc une solution de multiplexage en temps partagé pour le déploiement, qui combine certaines tâches avec des tâches élevées. les exigences informatiques et certaines tâches nécessitant peu de calcul pour réaliser un multiplexage en temps partagé peuvent avoir pour effet d'augmenter la capacité dans une certaine mesure.
A6 : On peut se rapprocher d'un rapport d'accélération linéaire Si on le mesure nous-mêmes, il peut probablement atteindre un niveau de 80 à 90 quand il est meilleur. Bien sûr, si le nombre de nœuds est très important, une optimisation supplémentaire peut être nécessaire. Vous pouvez désormais publier des articles ou consulter des articles mentionnant que 32 ou 64 nœuds peuvent atteindre un taux d'accélération de 80 ou 90. Cela peut être nécessaire. optimisations plus spécialisées. Mais si nous sommes dans la plate-forme d'apprentissage automatique, nous devrons peut-être cibler un plus large éventail de scénarios. Dans les scénarios réels, la plupart des formations peuvent nécessiter 4 ou 8 cartes GPU, et jusqu'à 16 cartes GPU peuvent répondre aux exigences.
A7 : Dans la situation idéale de notre AutoML, les utilisateurs n'ont pas besoin de configurer de paramètres. Bien entendu, nous permettra aux utilisateurs d’ajuster ou de déterminer certains paramètres en fonction de leurs besoins. En termes de consommation de temps, pour tous nos scénarios AutoML, notre objectif est de terminer l'optimisation en une journée. Et en termes de puissance de calcul, s'il s'agit d'une modélisation générale de Big Data, comme les modèles d'arbres XGB, LGBM, etc., même une seule machine peut la gérer s'il s'agit d'une tâche GPU, cela dépend de l'échelle de la tâche GPU ; Fondamentalement, la formation AutoML peut être complétée avec 2 à 3 fois la puissance de calcul de l'échelle de formation d'origine.
A8 : Cette question a été évoquée tout à l'heure. Vous pouvez vous référer à Optuna, Auto-Sklearn et AutoWeka. Et je viens de mentionner le site automl.org. Il contient de nombreuses informations. Vous pouvez aller vous renseigner à ce sujet.
A9 : EasyDL appartient à Baidu et notre framework est entièrement auto-développé.
C'est tout pour le partage d'aujourd'hui, merci à tous.
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!