Tout savoir sur le LLM Granite et Watsonx, la plateforme d'intelligence artificielle d'IBM
Où en est IBM, leader incontesté de l'intelligence artificielle entre la fin des années 40 et les années 2000. A-t-il développé des LLMs et que propose-t-il aux entreprises ?
Alors que l'actualité est saturée par des nouveautés sur l'intelligence artificielle depuis 2022, la voix d'IBM en la matière est relativement peu audible.
Et, pourtant, IBM a mis à jour sa plateforme d'IA historique, Watson qui a été rebaptisé WatsonX.
WatsonX est à la fois une plateforme technique multiservice et, une marque utilisée pour plusieurs produits différents comme le Copilot de Microsoft l'est pour désigner le chabtot de Microsoft, l'outil de génération d'image, l'assistant Word, l'assistant d'analyse de données de Powerbuilder ou l'assistant qui permet de rédiger des compte-rendus de réunions Teams.
IBM watsonx est une plateforme qui permet de
- développer des applications reposant sur l'intelligence au sens très large et sur la data science
- les passer en production y compris à une très grande échelle
Attention, WatsonX a fait une large place à l'IA générative (les technologies similaires à celles de ChatGPT), mais permet plus généralement de développer des applications reposant sur le machine learning et le deep learning (dont fait partie l'intelligence artificielle générative et les LLMs, en particulier).
L'offre WatsonX est, en partie, comparable à celle de Google Cloud ou d'Azure.
Les composants principaux de Watsonx
WatsonX se compose de trois modules principaux
Watsonx.ai
Watson.ai est un studio d'IA qui permet aux utilisateurs d'entraîner des modèles, de valider, de régler et de déployer facilement des modèles de fondation et des modèles d'apprentissage automatique. Ce composant est comparable à l'offre du français Dataiku.
Watsonx.ai donne accès aux modèles propriétaires d'IBM (Granite), à Mistral Large, ainsi qu'à des modèles open-source tels que Llama 3 de Meta.
Modèles propriétaires d'IBM: Granite
- IBM propose une série de modèles de fondation appelés "Granite", disponibles en différentes tailles (3B, 13B paramètres). Ce sont, donc, des petits LLMs qui ne soutiennent pas la comparaison avec ChatGPT ou Claude. En revanche, ils sont suffisants pour créer des applications spécialisées dans un domaine particulier et entraînées sur les données d'une entreprise. Autre avantages: ils sont moins gourmands en énergie et puissance de calcul.
- Ces modèles sont, donc, optimisables pour des tâches spécifiques comme la génération de code, l'analyse de texte, et la création de contenu.
- Par exemple, le modèle Granite pour la génération de code est entraîné sur plus de 1,5 trillion de tokens de code source.
Mistral Large
Mistral Large est l'un des modèles de Mistral AI, spécialisé dans les tâches de type génération de texte, compréhension de documents volumineux grâce à sa fenêtre contextuelle de 32 000 tokens/jetons, programmation et calculs mathématiques. Il peut être utilisé pour développer des applications telles que les chatbots, la création de contenu ou l'automatisation de tâches.
Llama 3
- IBM a annoncé l'intégration de Llama 3 (7B et 70B) dans watsonx.ai en mai 2024.
- Les utilisateurs peuvent accéder à ces modèles via l'interface de prompt engineering de watsonx.ai.
- Llama 3 est particulièrement performant pour des tâches de traitement du langage naturel et de génération de texte.
Fonctionnalités spécifiques
- Watsonx.ai permet le fine-tuning de ces modèles avec un minimum de 1000 exemples de données d'entreprise.
- La plateforme offre des outils pour optimiser le prompt engineering pour rendre plus efficaces les requêtes
- Les utilisateurs peuvent comparer les performances des différents modèles (IBM et open source) sur leurs tâches spécifiques.
Complémentarité entre les modèles Granite d'IBM et Llama
- Granite peut être utilisé pour analyser des contrats juridiques, puis Llama 3 peut générer des résumés en langage naturel.
- Un développeur peut utiliser le modèle de code Granite pour la génération de code Java, puis Llama 3 pour expliquer ce code en langage naturel.
Watsonx.data
Watson.data est un dataswarehouse. Un datawarehouse, ou entrepôt de données en français, est une infrastructure centralisée conçue pour stocker, gérer et analyser de grandes quantités de données provenant de diverses sources au sein d'une organisation. Certaines applications d'IA nécessitant de jouer avec de grandes quantités de données, un module datawarehouse est souvent nécessaire.
Watsonx.governance
Ce composant vise à sécuriser les applications d'IA et le process de gestion des applications:
- Collecte et documente automatiquement les détails des modèles de fondation utilisés.
- Fournit des outils pour évaluer et gérer les risques associés aux modèles d'IA.
- Aide à rendre les processus d'IA plus transparents et explicables.
- Facilite le respect des réglementations et des normes en matière d'IA.
- Permet de suivre l'utilisation et les performances des modèles d'IA au fil du temps.
- Gère qui peut accéder et utiliser les différents modèles et fonctionnalités d'IA.
IBM propose aussi une série "d'assistants IA" dédiés à diverses fonctions commerciales telles que le service client, les RH et le développement de code.
Voici quelques exemples concrets :
- Service client :
- Watsonx Assistant : Un chatbot avancé qui peut gérer les requêtes des clients 24/7, répondre aux questions fréquentes, et escalader les problèmes complexes aux agents humains.
- Peut être intégré dans divers canaux comme le site web, les applications mobiles, ou les plateformes de messagerie.
- Ressources Humaines (RH) :
- Watsonx pour RH : Peut aider à la présélection des CV, à la planification des entretiens, et à répondre aux questions fréquentes des employés sur les politiques de l'entreprise.
- Capable d'assister dans la rédaction de descriptions de poste et l'analyse des tendances en matière de rétention des employés.
- Développement de code :
- Watsonx Code Assistant : Aide les développeurs en générant du code, en suggérant des corrections, et en expliquant des portions de code complexes.
- Spécifiquement, il existe des versions pour Java (watsonx Code Assistant for Enterprise Java Applications) et pour les systèmes mainframe (watsonx Code Assistant for Z).
- Analyse de données
- Marketing : création de contenu, l'analyse des tendances du marché, et la personnalisation des campagnes marketing.
- Support technique
Ces assistants IA sont conçus pour être facilement intégrés dans les flux de travail existants des entreprises. Ils utilisent les capacités d'IA générative et de traitement du langage naturel de watsonx pour fournir des réponses contextuelles et pertinentes, tout en s'améliorant continuellement grâce à l'apprentissage automatique.
C'est la version officielle d'IBM.
Attention, il est nécessaire que des experts techniques "paramètrent" et entraînent ces assistants pour qu'ils atteignent un niveau de performance acceptable en entreprise.
Il est possible de développer des applications reposant sur les LLMs proposés, en y intégrant du fine-tuning du RAG.
Le RAG (Retrieval-Augmented Generation) est l'une des techniques qui permet de faire en sorte que les chatbots ou applications développées intègrent des informations issues de la base de données de l'entreprise.
Watsonx.ai propose une implémentation spécifique de RAG, permettant de générer des réponses précises basées sur une base de connaissances
Composants du RAG WatsonX
- Une base de connaissances qui peut être constituée de divers types de documents (HTML, PDF, etc.).
- Un extracteur qui peut utiliser différentes technologies, comme un index vectoriel Elasticsearch.
- Un générateur qui eut employer n'importe quel modèle disponible dans watsonx.ai, selon les besoins spécifiques
- Il est possible d'utiliser des frameworks comme LangChain pour implémenter des solutions RAG plus avancées
Processus du RAG Watsonx
- Une fonction Python interroge l'index pour rechercher des informations pertinentes.
- Le modèle de base est ensuite utilisé pour générer une réponse.
- Un mécanisme de vérification s'assure que la réponse ne contient pas de contenu halluciné (erreurs)