La mission de NinjaTech AI est de rendre tout le monde plus productif en effectuant des tâches complexes et chronophages avec des agents d'intelligence artificielle (IA) rapides et abordables. Nous avons récemment lancé MyNinja.ai, l'un des premiers assistants personnels d'IA multi-agents au monde, à mener à bien notre mission. MyNinja.ai a été créé à partir de zéro à l'aide d'agents spécialisés capables d'effectuer des tâches en votre nom, notamment de planifier des réunions, de mener des recherches approfondies sur le Web, de générer du code et de vous aider à la rédaction. Ces agents peuvent décomposer des tâches complexes comportant plusieurs étapes en solutions ramifiées et sont capables d'évaluer les solutions générées de manière dynamique tout en tirant continuellement des enseignements des expériences passées. Toutes ces tâches sont accomplies de manière totalement autonome et asynchrone, ce qui vous permet de continuer votre journée pendant que Ninja travaille sur ces tâches en arrière-plan, et de vous impliquer lorsque votre contribution est requise.

Aucun grand modèle de langage (LLM) n'étant parfait pour chaque tâche, nous savions que la création d'un assistant personnel d'IA nécessiterait plusieurs LLM optimisés spécifiquement pour diverses tâches. Afin d'offrir la précision et les fonctionnalités nécessaires au plus grand plaisir de nos utilisateurs, nous savions également que nous aurions besoin que ces différents modèles fonctionnent ensemble en tandem. Enfin, nous avions besoin de méthodes évolutives et rentables pour former ces différents modèles, une entreprise qui a toujours été coûteuse pour la plupart des startups. Dans cet article, nous décrivons comment nous avons créé notre agent de productivité de pointe NinjalLM, l'épine dorsale de MyNinja.ai, en utilisant AWS Trainium chips.
Création d'un jeu de données
Nous avons compris très tôt que pour mener à bien notre mission qui consiste à effectuer des tâches pour le compte d'un utilisateur, nous avions besoin de plusieurs modèles optimisés pour des tâches spécifiques. Les exemples incluent nos modèles Deep Researcher, Deep Coder et Advisor. Après avoir testé les modèles open source disponibles, nous avons estimé que les fonctionnalités et les réponses prêtes à l'emploi étaient insuffisantes. L'ingénierie rapide ne suffisait pas à répondre à nos besoins. Plus précisément, lors de nos tests avec des modèles open source, nous voulions nous assurer que chaque modèle était optimisé pour un style d'invite React/Chain of Thought. De plus, nous voulions nous assurer que le modèle serait, une fois déployé dans le cadre d'un Génération augmentée de récupération (RAG), citez avec précision chaque source, ainsi que tout biais visant à dire « je ne sais pas » au lieu de générer de fausses réponses. À cette fin, nous avons choisi d'affiner les modèles pour les différentes tâches en aval.
Lors de la création de notre ensemble de données de formation, notre objectif était double : adapter chaque modèle à sa tâche et à sa personnalité en aval (chercheur, conseiller, codeur, etc.), et adapter les modèles pour suivre une structure de sortie spécifique. À cette fin, nous avons suivi le Approche de Lima pour le peaufiner. Nous avons utilisé un échantillon d'entraînement d'environ 20 millions de jetons, en nous concentrant sur le format et le ton de la sortie tout en utilisant un échantillon diversifié mais relativement petit. Pour construire notre ensemble de données de réglage supervisé, nous avons commencé par créer des tâches de départ initiales pour chaque modèle. À l'aide de ces tâches d'amorçage, nous avons généré un premier ensemble de données synthétiques à l'aide du modèle Llama 2 de Meta. Nous avons pu utiliser l'ensemble de données synthétiques pour effectuer une première série de réglages. Pour évaluer dans un premier temps les performances de ce modèle affiné, nous avons sollicité les commentaires des utilisateurs afin de créer de manière itérative d'autres échantillons. Nous avons également utilisé une série de critères de référence, internes et publics, pour évaluer les performances des modèles et avons continué à les itérer.
Mise au point sur Trainium
Nous avons choisi de commencer par les modèles Llama pour un modèle de base pré-entraîné pour plusieurs raisons : notamment les excellentes performances prêtes à l'emploi, la solide prise en charge de l'écosystème par diverses bibliothèques et la véritable licence open source et permissive. À l'époque, nous avions commencé avec Llama 2, en testant différentes tailles (7B, 13B et 70B). Pour la formation, nous avons choisi d'utiliser un cluster d'instances trn1.32xlarge afin de tirer parti des puces Trainium. Nous avons utilisé un cluster de 32 instances afin de paralléliser efficacement la formation. Nous avons également utilisé Cluster parallèle AWS pour gérer l'orchestration des clusters. En utilisant un cluster d'instances Trainium, chaque itération de réglage a pris moins de 3 heures, pour un coût inférieur à 1 000 dollars. Ce temps d'itération rapide et ce faible coût nous ont permis d'ajuster et de tester rapidement nos modèles et d'améliorer la précision de nos modèles. Pour atteindre les précisions décrites dans les sections suivantes, nous n'avons eu qu'à dépenser environ 30 000 dollars, ce qui nous permettrait d'économiser des centaines de milliers, voire des millions de dollars si nous devions nous entraîner sur des accélérateurs d'entraînement traditionnels.
Le schéma suivant illustre notre architecture de formation.

Après avoir établi nos pipelines de réglage basés sur Trainium, nous avons pu affiner et affiner nos modèles grâce aux bibliothèques de formation Neuron Distributed. Cela a été exceptionnellement utile et opportun, car avant le lancement de MyNinja.ai, les modèles Llama 3 de Meta ont été publiés. Llama 3 et Llama 2 partagent une architecture similaire, ce qui nous a permis de passer rapidement au nouveau modèle. Cette rapidité de commutation nous a permis de tirer parti des gains inhérents à la précision du modèle, de procéder très rapidement à une nouvelle série de réglages avec les poids du Llama 3 et de préparer le lancement.
Évaluation du modèle
L'évaluation du modèle avait deux objectifs : évaluer la capacité du modèle à répondre aux questions des utilisateurs et évaluer la capacité du système à répondre aux questions à l'aide des sources fournies, car il s'agit de l'interface principale de notre assistant personnel d'IA. Nous avons sélectionné le Hot Pot QA et Questions naturelles (NQ) Open ensembles de données, qui conviennent tous deux bien en raison de leurs ensembles de données de référence ouverts avec des classements publics.
Nous avons calculé la précision en faisant correspondre la réponse du modèle à la réponse attendue, en utilisant les 10 meilleurs passages extraits d'un corpus Wikipedia. Nous avons effectué le filtrage et le classement du contenu en utilisant Colbert Tv 2, un modèle de récupération basé sur BERT. Nous avons atteint des précisions de 62,22 % sur l'ensemble de données NQ Open et de 58,84 % sur HotPotQA en utilisant notre modèle Llama 3 RAG amélioré, démontrant des améliorations notables par rapport aux autres modèles de référence. La figure suivante résume nos résultats.

Travaux futurs
Pour l'avenir, nous travaillons sur plusieurs développements afin de continuer à améliorer les performances et l'expérience utilisateur de notre modèle. Tout d'abord, nous avons l'intention d'utiliser ORPO pour peaufiner nos modèles. ORPO combine le réglage fin traditionnel avec l'alignement des préférences, tout en utilisant un seul jeu de données d'alignement des préférences pour les deux. Nous pensons que cela nous permettra de mieux aligner les modèles afin d'obtenir de meilleurs résultats pour les utilisateurs.
De plus, nous avons l'intention de créer un modèle d'ensemble personnalisé à partir des différents modèles que nous avons peaufinés jusqu'à présent. Inspirés par les architectures de modèles Mixture of Expert (MoE), nous avons l'intention d'introduire une couche de routage dans nos différents modèles. Nous pensons que cela simplifiera radicalement notre architecture de service de modèles et de mise à l'échelle, tout en préservant la qualité des diverses tâches que nos utilisateurs attendent de notre assistant personnel d'IA.
Conclusion
Créer des agents d'IA de nouvelle génération pour rendre tout le monde plus productif est la voie empruntée par NinjaTech AI pour réaliser sa mission. Pour démocratiser l'accès à cette technologie transformatrice, il est essentiel d'avoir accès à des capacités de calcul puissantes, à des modèles open source et à un écosystème d'outils qui rendent la formation de chaque nouvel agent abordable et rapide. Les puces d'IA spécialement conçues d'AWS, l'accès aux meilleurs modèles open source et son architecture de formation rendent cela possible.
Pour en savoir plus sur la façon dont nous avons développé l'IA personnelle multi-agents de NinjaTech AI, vous pouvez lire notre livre blanc. Vous pouvez également essayer ces agents d'IA gratuitement sur MyNinja.ai.
À propos des auteurs

Arash Sadrieh est le cofondateur et directeur scientifique de Ninjatech.ai. Arash a cofondé Ninjatech.ai dans le but de rendre tout le monde plus productif en s'occupant de tâches fastidieuses avec des agents d'IA. Cette vision a été façonnée au cours de son mandat de scientifique appliqué senior chez AWS, où il a dirigé des initiatives de recherche clés qui ont considérablement amélioré l'efficacité de l'infrastructure en six ans, ce qui lui a valu de nombreux brevets pour l'optimisation de l'infrastructure de base. Sa formation universitaire comprend un doctorat en modélisation et simulation informatiques, avec des collaborations avec des institutions réputées telles que l'université d'Oxford, l'université de Sydney et le CSIRO. Avant de rejoindre l'industrie, Arash a effectué un stage de recherche postdoctoral marqué par des publications dans des revues à fort impact, notamment Nature Communications.

Tahir Azim est ingénieur logiciel chez NinjaTech. Tahir se concentre sur les plateformes de formation et d'inférence basées sur Inf2 et Trn1 de NinjaTech, sa passerelle unifiée pour accéder à ces plateformes et ses compétences de recherche basées sur RAG. Il a précédemment travaillé chez Amazon en tant qu'ingénieur logiciel senior, où il a développé des systèmes pilotés par les données pour une utilisation optimale de l'infrastructure Internet Edge mondiale d'Amazon, tout en réduisant les coûts, la congestion et la latence. Avant de rejoindre l'industrie, Tahir a obtenu une maîtrise et un doctorat en informatique à l'université de Stanford, a enseigné pendant trois ans en tant que professeur assistant au NUST (Pakistan) et a effectué un post-doctorat sur les systèmes d'analyse rapide des données à l'EPFL. Tahir est l'auteur de plusieurs publications présentées lors de conférences de haut niveau telles que VLDB, USENIX ATC, MobiCom et MobiHoc.

Tengfei Xue est scientifique appliquée chez NinjaTech AI. Ses recherches actuelles portent sur le traitement du langage naturel et l'apprentissage multimodal, en particulier à l'aide de grands modèles de langage et de grands modèles multimodaux. Tengfei a terminé ses études de doctorat à la faculté d'informatique de l'université de Sydney, où il s'est concentré sur l'apprentissage profond pour les soins de santé en utilisant diverses modalités. Il a également été doctorant invité au Laboratoire de mathématiques en imagerie (LMI) de l'université de Harvard, où il a travaillé sur la vision par ordinateur 3D pour les données géométriques complexes.



