Skip to content

2024

Comment sont construits les assistants conversationnels ? ChatGPT, Claude, Mistral

Aujourd'hui, on plonge dans les coulisses des grands modèles de langage (LLM). Vous êtes-vous déjà demandé comment ces modèles arrivent à répondre avec autant de fluidité ? Quand on parle de ChatGPT, techniquement c'est le résultat d'un modèle OpenAI après avoir fait une série d'entraînements. La réponse tient en trois étapes-clés :
1. Le pré-entraînement sur des montagnes de données,
2. Le fine-tuning pour spécialiser le modèle, et
3. L’apprentissage par renforcement avec feedback humain (RLHF).

Dans cet article, je retrace les principales étapes avec vous. Un petit billet de blog pour clore l'année 2024. On ne fera pas de MLOPS aujourd'hui, promis :)

Comprendre les Transformers dans l’IA Générative

Quand on parle d’IA aujourd’hui, les Transformers reviennent souvent dans la conversation. Pourquoi ? Parce qu’ils ont révolutionné la façon dont on traite le texte. Avec leur mécanisme d’attention, ils sont capables d’aller vite, de traiter les mots dans leur contexte et surtout de produire des résultats impressionnants dans des domaines comme la traduction, la génération de texte, et bien plus encore.

Dans cet article, on va décortiquer les architectures principales des Transformers : l’Encodeur-Décodeur, l’Autoregressif et quelques variantes importantes. Alors, installe-toi bien, on plonge dans le vif du sujet. 😉

Adieu OCR, Place aux LLM Multimodaux pour l'Extraction des Informations dans les Documents

Les formats comme PDF, Word ou PowerPoint sont omniprésents pour le partage de documents, mais dès qu’il s’agit d’extraire des données structurées ou de gérer des contenus complexes, c’est une toute autre histoire.

Ceux qui se sont déjà aventurés dans ces tâches connaissent la frustration des outils traditionnels comme PDFium, pypdf ou textract. Bien que pratiques pour des besoins basiques, ces solutions montrent vite leurs limites face aux documents denses, aux tableaux imbriqués, ou au texte qui se chevauche.

Mais les temps changent. Avec l’arrivée des LLM multimodaux, les choses s'améliorent drastiquement. Ces modèles permettent non seulement de traiter des fichiers comme des PDF, PPTX ou Word, qu’ils soient purement textuels ou visuels, mais offrent également la possibilité de personnaliser l’extraction. Par exemple, vous pouvez demander un formatage précis des données extraites.

Dans cet article, je vous propose de découvrir comment les LLM multimodaux révolutionnent cette tâche autrefois laborieuse, en rendant les processus non seulement plus simples mais aussi plus abordables. Allons-y !

Construire et publier son propre package Open Source Python

Quand on débute avec Python pour l’analyse de données, on commence souvent par installer des packages comme NumPy ou Pandas après avoir configuré Python. Au fil du temps, lorsqu’on gère plusieurs projets, on se retrouve avec une "boîte à outils" composée de fonctions récurrentes que l’on transporte de projet en projet.

Mais, au lieu de copier et coller du code, pourquoi ne pas structurer ce travail dans un package Python ? Cela facilite le partage et l’utilisation, que ce soit par vos collègues ou la communauté.

Je me souviens qu’à l’époque où j’étais en école d’ingénieur, chaque fois que j’installais un package avec pip install, je me demandais comment il était possible de créer ces outils accessibles à tous. Voir les informations d’un package avec une commande comme pip show me fascinait (image en bas). alt text C’est cette curiosité qui m’a poussé à explorer le fonctionnement interne des packages Python et à apprendre comment les concevoir moi-même.

Le Jour où Git m’a Sauvé

On a tous une anecdote avec Git, non ? Celle où on se dit que ce petit outil, discret mais essentiel, nous a évité une catastrophe. Eh bien, laisse-moi te raconter la mienne.

C’était une journée normale de boulot. Après avoir bossé sur un package sur de l'IAGen que je développais depuis un bon moment, j’ai fait mon commit du jour juste avant de plier bagage et de rentrer chez moi. Rien d’anormal jusque-là. Mais le lendemain matin, pris d’une envie soudaine de nettoyage, j’ai décidé de faire du tri dans mon workspace. Le zèle, c’est bien… jusqu’à ce que tu réalises que tu viens de supprimer par mégarde tout le répertoire de ton package IAGen en développement. Oui, tout.

Auto ML et Interprétabilité avec FLAML et SHAP

En machine learning, construire des modèles performants ne suffit plus : l'interprétabilité est devenue indispensable, surtout dans des domaines réglementés. Comprendre les décisions de nos modèles est essentiel pour une IA de confiance, un des axes majeurs de l'IA Act de l'Union Européenne.

Cependant, allier performance et transparence prend du temps, surtout lorsque l’on doit optimiser les hyperparamètres et choisir les bons algorithmes. C’est là que FLAML (Fast Lightweight AutoML) entre en scène pour rendre ce processus fluide en automatisant la recherche de modèles et de paramètres optimaux.

Utilisation d'alias - gestions des variables d'environnement -Windows terminal

Dans cet article, je vais partager avec vous quelques astuces qui peuvent grandement améliorer votre efficacité en développement : l'utilisation d'alias, la gestion des variables d'environnement, et l'usage du nouveau terminal de Windows. En tant que développeur ou data scientist, vous savez que de nombreuses tâches répétitives peuvent devenir sources de frustration. Par exemple, répéter sans cesse export LLM_KEY="macle" pour que votre code récupère la clé via os.getenv() peut vite devenir fastidieux.

Voyons comment créer un fichier d'environnement pour centraliser les variables nécessaires et un alias pour accéder rapidement à ce répertoire et exécuter votre script.

Encodage efficace des variables catégorielles pour du ML

Les variables catégorielles, on les croise partout dans nos datasets, mais les algorithmes de machine learning, eux, préfèrent les chiffres. Dans ce billet, nous allons explorer plusieurs techniques d'encodage pour transformer ces variables, le tout agrémenté d'explications claires, de formulations mathématiques, et quelques exemples pratiques. Nous aborderons aussi les avantages et les limites de chaque technique, que ce soit les "Classic Encoders", le "Contrast Encoder", ou les "Bayesian Encoders".

Faites du Dask plutôt que du Spark si vous avez juste de grosses tables de données

Dans le monde actuel des données, traiter de grands volumes nécessite des solutions performantes et évolutives. Le calcul distribué permet de gérer efficacement ces données en les répartissant sur plusieurs machines/cores/workers (selon votre cas). Cependant, toutes les entreprises n'ont pas besoin d'une infrastructure lourde et coûteuse telle qu'un cluster Spark. Dask, un framework Python, est une alternative légère et flexible, particulièrement adaptée aux environnements déjà basés sur Python.

Apache Arrow pour l'optimisation du traitement des données

La gestion des données en mémoire ressemble parfois à un tatonnement. Les data engineers, scientists et analysts se retrouvent souvent à jongler entre différents formats de données, calculs intensifs et besoins de performance. Jusqu’à récemment, nous étions limités par des outils et formats conçus pour des volumes et des vitesses bien inférieurs à ceux d’aujourd'hui. C’est là qu’Apache Arrow entre en scène, tel un champion prêt à transformer ce marathon en un sprint maîtrisé. Dans ce billet de blog, on ne va parler que de données. Comment python gère les dataframes en backend?

Faire tourner son chatbot avec une interface équivalente à ChatGPT grâce à OpenWebUI

L'ère des assistants conversationnels est en pleine expansion, et grâce à des outils comme OpenWebUI, il est désormais possible de créer son propre UI conversationnel avec des fonctionnalités similaires à celles de ChatGPT sans beaucoup d'effort. On suppose que vous avez déjà un chatbot qui fonctionne correctement et que vous souhaitez une meilleure interface utilisateur. Cet article vous guidera dans la mise en place de cette UI.

Évaluer les Capacités des LLMs : les benchmarks

Les modèles de langage (LLMs) ont réalisé des avancées spectaculaires dans des tâches variées, telles que la rédaction, la conversation, et la programmation. Pour évaluer et comparer efficacement leur intelligence, divers benchmarks sont utilisés, mesurant des capacités allant des connaissances académiques (comme MMLU) au raisonnement complexe (GPQA), en passant par des compétences spécifiques telles que les mathématiques de base (GSM8K) ou la génération de code (HumanEval).

IA générative : une Évolution plutôt que Révolution

Aujourd’hui, on plonge dans l’univers fascinant de l’IA générative. On va retracer les grandes étapes qui ont marqué son évolution. Pas de panique, on ne va pas s’embourber dans une liste exhaustive – on va plutôt se concentrer sur les moments clés qui ont façonné l’IA telle qu’on la connaît aujourd'hui. J’avais depuis un moment envie de faire le point sur les avancées dans ce domaine, mais avec le rythme effréné des innovations, je ne savais pas comment illustrer cela jusqu'à ce que je tombe sur les travaux de l'Innovation Makers Alliance.

Tests for data scientists

Parlons de tests pour data scientists - MLOPS

Dans cet article, je vais partager avec vous une pratique qui a transformé ma carrière de data scientist end-to-end : tester son code. C'est une étape cruciale dans l'adoption des bonnes pratiques MLOps, mais qui est souvent négligée par beaucoup de data scientists. Je vais explorer les raisons pour lesquelles les tests sont souvent peu utilisés dans ce domaine et comment vous pouvez intégrer des tests efficaces dans le workflow de vos projets de data science. Vous trouverez également un tutoriel pratique pour vous aider à démarrer, en utilisant des outils comme pytest, beartype, pandera, unittest, ou pydantic.

MLflow & best practices

Dans un projet de machine learning, gérer les expérimentations et les modèles peut rapidement devenir un casse-tête. Imaginez : l'équipe s'agrandit, les exigences fusent de toutes parts… et là, votre chef de projet débarque avec une demande spéciale : "Dis, tu te souviens de ce modèle super performant qu'on a testé en avril ? On aimerait le comparer avec nos résultats actuels."À ce moment précis, à moins d'avoir une mémoire digne d'un éléphant, vous vous retrouvez à naviguer frénétiquement dans des fichiers Excel. Entre nous, c'est le genre de situation où l'on se dit : "Pourquoi je n’ai pas tout noté quelque part de façon plus propre ?!"C’est justement là qu’MLflow entre en scène.

CI/CD pour les Data Scientists : Quand le Code Se Met à Danser

La collaboration entre data scientists et développeurs peut parfois ressembler à une partie de ping-pong chaotique : chacun fait rebondir des idées et des bouts de code, mais rien ne semble vraiment s'assembler correctement. Heureusement, il existe une solution pour rendre cette danse collaborative plus harmonieuse : la CI/CD (Continuous Integration/Continuous Deployment). Oui, même pour les data scientists ! Alors, prenez vos notebooks, ajustez vos lunettes, et découvrons comment transformer cette pagaille en une symphonie bien orchestrée :)

All things start with git

Git, GitLab et GitHub pour le CI/CD

Dans cet article, nous allons explorer comment Git, GitLab, et GitHub sont utilisés pour implémenter des pipelines CI/CD (Intégration Continue et Déploiement Continu). Ces outils sont devenus essentiels pour automatiser et gérer les processus de développement logiciel. Comment vous pouvez les utiliser pour améliorer votre flux de travail.

Faire son Blog avec MkDocs et github actions

Dans ce billet de blog, j'essayerai de retracer créer et déployer un blog en utilisant MkDocs, un outil qui facilite la création de belles documentations grâce à des fichiers markdown. Nous allons couvrir chaque étape pour t'aider à mettre ton blog en ligne.

Ce dont tu as besoin
  1. Compte GitHub : Tu auras besoin d’un compte GitHub pour stocker et déployer ton blog.
  2. Connaissances de Base : Une familiarité avec GitHub, Docker et quelques bases de la ligne de commande sera utile.

Iam for eks

Understanding IAM Roles and Users in AWS with a Practical Example: Running an Application on EKS

AWS Identity and Access Management (IAM) is a cornerstone of security and access control in AWS environments. IAM allows you to manage users, groups, and roles, and to specify their permissions to access AWS resources. In this article, we will explore the differences between IAM roles and IAM users, provide a practical scenario of deploying an application on Amazon EKS (Elastic Kubernetes Service), and clarify how IAM roles relate to specific AWS console options.

Setup emr

Comment Créer et Configurer un Cluster EMR on EC2

Créer un cluster EMR (Elastic MapReduce) sur EC2 peut sembler complexe, surtout si vous vous lancez pour la première fois. Dans cet article, je vais vous guider à travers chaque étape, depuis la création des rôles jusqu’à la connexion à JupyterHub via un tunnel SSH. Ce guide est conçu pour vous fournir des explications claires et détaillées afin que vous puissiez configurer votre cluster sans difficulté. Nous nous concentrerons spécifiquement sur EMR sur EC2. La petite histoire est que j'ai passé des heures à expliquer cela à plusieurs étudiants intéressés par EMR. J'ai donc décidé de rédiger cet article pour aider un plus grand nombre de personnes à comprendre et à configurer un cluster EMR de manière efficace.