Lors de l'événement Google Cloud Next 2022 en octobre de l'année dernière, le projet OpenXLA a officiellement fait surface, un cadre d'IA open source promu par Google et des entreprises technologiques dont Alibaba, AMD, Arm, Amazon, Intel, NVIDIA et d'autres entreprises technologiques. La coopération s'engage à rassembler différents cadres d'apprentissage automatique pour permettre aux développeurs d'apprentissage automatique d'acquérir la capacité de choisir de manière proactive les cadres et le matériel.
Mercredi, Google a annoncé que le projet OpenXLA était officiellement open source.
Lien du projet : https://github.com /openxla/xla
OpenXLA accélère l'apprentissage automatique en créant un compilateur d'apprentissage automatique unifié qui fonctionne avec de nombreux cadres d'apprentissage automatique et plates-formes matérielles différents Livraison et fourniture d'applications une plus grande portabilité du code. Il s’agit d’un projet important pour la recherche et les applications de l’IA, et Jeff Dean en a également fait la promotion sur les réseaux sociaux.
Aujourd'hui, le développement et le déploiement du machine learning sont entravés par une infrastructure fragmentée. La plupart de ces infrastructures peuvent varier selon le framework, le matériel et le cas d'utilisation. Cet isolement limite la vitesse à laquelle les développeurs peuvent travailler et crée des obstacles à la portabilité, à l'efficacité et à la production des modèles.
Le 8 mars, Google et d'autres ont franchi une étape importante vers la suppression de ces barrières avec l'ouverture du projet OpenXLA, qui comprend les référentiels XLA, StableHLO et IREE. étape.
OpenXLA est un écosystème de compilateur ML open source développé conjointement par les leaders de l'industrie de l'IA/apprentissage automatique. Parmi les contributeurs figurent Alibaba, AWS, AMD, Apple, Arm, Cerebras, Google, Graphcore, Hugging Face, Intel, Meta et Nvidia. Il permet aux développeurs de compiler et d'optimiser des modèles à partir de tous les principaux frameworks d'apprentissage automatique pour une formation efficace et une utilisation sur une variété de matériels. Les développeurs utilisant OpenXLA peuvent observer des améliorations significatives en termes de temps de formation, de débit, de latence de service et, en fin de compte, de coûts de publication et de calcul.
Alors que la technologie de l'IA entre dans la phase pratique, les équipes de développement de nombreux secteurs utilisent l'apprentissage automatique pour répondre aux besoins réels -des défis mondiaux tels que la prévision et la prévention des maladies, les expériences d'apprentissage personnalisées et l'exploration de la physique des trous noirs.
Avec la croissance exponentielle du nombre de paramètres de modèle et la quantité de calcul requise pour les modèles d'apprentissage profond doublant tous les six mois, les développeurs cherchent à maximiser les performances et l'utilisation de l'infrastructure. Un grand nombre d'équipes exploitent une variété de modèles matériels, depuis les ASIC économes en énergie spécifiques à l'apprentissage automatique dans le centre de données jusqu'aux processeurs de pointe IA qui offrent des temps de réponse plus rapides. Par conséquent, afin d’améliorer l’efficacité, ces dispositifs matériels utilisent des algorithmes et des bibliothèques de logiciels personnalisés et uniques.
Mais d'un autre côté, s'il n'existe pas de compilateur universel pour relier les différents périphériques matériels aux multiples frameworks utilisés aujourd'hui (tels que TensorFlow, PyTorch), on le fera besoin Il faut beaucoup d’efforts pour exécuter efficacement l’apprentissage automatique. En pratique, les développeurs doivent optimiser manuellement les opérations de modèle pour chaque cible matérielle. Cela signifie que l’utilisation de bibliothèques de logiciels personnalisées ou l’écriture de code spécifique à un appareil nécessite une expertise dans le domaine.
Il s'agit d'un résultat paradoxal. L'utilisation d'une technologie spécialisée pour améliorer l'efficacité entraîne des chemins isolés et non généralisables entre les frameworks et le matériel, ce qui entraîne des coûts de maintenance élevés et, par conséquent, un leadership. à la dépendance vis-à-vis d'un fournisseur, ce qui ralentit la progression du développement de l'apprentissage automatique.
Le projet OpenXLA fournit un compilateur ML de pointe qui s'adapte à la complexité de l'infrastructure ML. Ses principaux piliers sont les performances, l’évolutivité, la portabilité, la flexibilité et la facilité d’utilisation. Avec OpenXLA, nous aspirons à réaliser le plus grand potentiel de l’IA dans le monde réel en accélérant le développement et la fourniture de l’IA.
OpenXLA a pour objectif de :
Les défis auxquels nous sommes confrontés aujourd'hui en matière d'infrastructure d'apprentissage automatique sont énormes, et aucune organisation ne peut les résoudre efficacement seule. La communauté OpenXLA rassemble des développeurs et des leaders de l'industrie opérant à différents niveaux de la pile d'IA (des frameworks aux compilateurs, en passant par les environnements d'exécution et les puces) et est donc parfaitement adaptée pour remédier à la fragmentation que nous observons dans l'espace ML.
En tant que projet open source, OpenXLA adhère aux principes suivants :
OpenXLA supprime les obstacles pour les développeurs de machine learning avec une chaîne d'outils modulaires prise en charge par tous les principaux frameworks via une interface de compilateur commune, tirant parti de la portabilité Standardise la représentation des modèles et fournit des compilateurs spécifiques au domaine avec de puissantes optimisations ciblées et spécifiques au matériel. La chaîne d'outils comprend XLA, StableHLO et IREE, qui exploitent tous MLIR : une infrastructure de compilateur qui permet aux modèles d'apprentissage automatique d'être représentés, optimisés et exécutés de manière cohérente sur le matériel.
Portée des cas d'utilisation de l'apprentissage automatique
L'utilisation actuelle d'OpenXLA couvre la gamme de cas d'utilisation de ML, notamment AlphaFold de DeepMind, GPT2 et Swin Transformer sur Alibaba Cloud Wait pour que le modèle soit entièrement formé et effectuez une formation LLM multimodale sur Amazon.com. Des clients tels que Waymo exploitent OpenXLA pour l'inférence en temps réel dans le véhicule. De plus, OpenXLA est utilisé pour optimiser les services Stable Diffusion sur les machines locales équipées d'AMD RDNA™ 3.
Meilleures performances, prêtes à l'emploi
OpenXLA permet aux développeurs d'accélérer facilement les performances des modèles sans écrire de code spécifique à l'appareil. Il offre des capacités globales d'optimisation du modèle, notamment la simplification des expressions algébriques, l'optimisation de la disposition des données en mémoire et l'amélioration de la planification pour réduire l'utilisation maximale de la mémoire et les frais de communication. La fusion avancée d'opérateurs et la génération de noyau contribuent à améliorer l'utilisation des appareils et à réduire les besoins en bande passante mémoire.
Adaptez facilement les charges de travail
Développer des algorithmes de parallélisation efficaces prend du temps et nécessite une expertise. Avec des fonctionnalités telles que GSPMD, les développeurs n'ont qu'à annoter un sous-ensemble de tenseurs clés, qui peuvent ensuite être utilisés par le compilateur pour générer automatiquement des calculs parallèles. Cela élimine les efforts importants requis pour partitionner et paralléliser efficacement les modèles sur plusieurs hôtes matériels et accélérateurs.
Portabilité et optionnalité
OpenXLA fournit une prise en charge prête à l'emploi pour une variété de périphériques matériels, notamment les GPU AMD et NVIDIA, les processeurs x86 et les architectures Arm, ainsi que les accélérateurs ML tels que Google TPU, AWS Trainium et Inferentia, Graphcore IPU, Cerebras Wafer-Scale Engine, et bien plus encore. OpenXLA prend également en charge TensorFlow, PyTorch et JAX via StableHLO, une couche portable utilisée comme format d'entrée pour OpenXLA.
Flexibilité
OpenXLA offre aux utilisateurs la possibilité d'ajuster manuellement les points chauds du modèle. Les mécanismes d'extension tels que les appels personnalisés permettent aux utilisateurs d'écrire des primitives d'apprentissage en profondeur dans CUDA, HIP, SYCL, Triton et d'autres langages du noyau pour tirer pleinement parti des fonctionnalités matérielles. StableHLO est l'un des frameworks ML et des compilateurs ML. Une couche portable entre les. De plus, il peut être sérialisé en bytecode MLIR pour fournir des garanties de compatibilité. Tous les principaux frameworks ML (JAX, PyTorch, TensorFlow) peuvent produire StableHLO. En 2023, Google prévoit de travailler en étroite collaboration avec l'équipe PyTorch pour réaliser l'intégration avec PyTorch version 2.0.
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!