Pierre Mallinjoud
Expert technique, ingénieur bioinformatique, développeur web et base de données
Je suis un développeur web et base de données, passionné de science. Cela m’a conduit à étudier la génomique et les statistiques afin de travailler dans la recherche en biologie. Aujourd’hui, je m’intéresse également à l’IA et à la blockchain, que j’explore à travers plusieurs projets personnels.
Expérience chez EnyoPharma
Chez EnyoPharma, j’ai travaillé en tant qu’ingénieur en bioinformatique au sein de l’équipe R&D, en collaboration étroite avec des biologistes sur les interactions protéine-protéine entre l’humain et les virus. Les biologistes effectuaient une curation manuelle des publications scientifiques pour extraire ces interactions.
Pour soutenir ce travail, j’ai développé deux applications full-stack :
- Drakkar : Une base de données et une interface web permettant aux biologistes d’annoter manuellement les interactions protéine-protéine via des formulaires riches, stockées dans une base PostgreSQL.
- Vinland : Une version plus petite et en lecture seule de Drakkar, offrant une interface web publique pour interroger les interactions protéine-protéine et visualiser les réseaux d’interactions.
Les deux applications reposent sur la même stack technologique :
- Une base de données PostgreSQL
- Un backend PHP développé sur mesure
- Un frontend React
- Une conteneurisation avec Docker
J’ai également développé des scripts Perl pour générer la base de données Vinland à partir de Drakkar. Ce travail et les données produites ont servi de base à un article scientifique publié.
Meyniel-Schicklin L, Amaudrut J, Mallinjoud P, et al. Viruses traverse the human proteome through peptide interfaces that can be biomimetically leveraged for drug discovery. Proc Natl Acad Sci U S A. 2024;121(5):e2308776121. doi:10.1073/pnas.2308776121
- https://vinland.network
- https://github.com/enyopharma/drakkar-web
- https://github.com/enyopharma/vinland-web
- https://github.com/enyopharma/vinland-scripts
Expérience au CRCL
Au CRCL (Centre de Recherche en Cancérologie de Lyon), j’ai conçu une base de données répertoriant les événements d’épissage alternatif des génomes humain et souris. Pour cela, je suis parti des séquences d’ARN messager disponibles dans GenBank, que j’ai alignées sur les génomes de référence humain et souris.
J’ai ensuite mappé les sondes des puces Affymetrix exon array sur cette annotation. Cela m’a permis de créer une autre base de données recensant les données d’expression différentielle des événements d’épissage issues de nombreuses expériences, à la fois publiques et internes au laboratoire.
Ce travail a contribué à une publication scientifique et est accessible en ligne à l’adresse suivante : FASTERDB.
Mallinjoud P, Villemin JP, Mortada H, et al. Endothelial, epithelial, and fibroblast cells exhibit specific splicing programs independently of their tissue of origin. Genome Res. 2014;24(3):511-521. doi:10.1101/gr.162933.113
Fine-tuning d'ESM3 pour la biologie générative
Dans le cadre de mon exploration de l’IA générative appliquée à la biologie, j’ai entrepris la création de Mímir, un modèle de génération de peptides liants, en fine-tunant ESM3, un modèle de langage de protéines de 1,4 milliard de paramètres. L’objectif était d’entraîner le modèle à générer de nouvelles séquences liantes en se basant sur la structure 3D de protéines cibles.
Plutôt que de m’appuyer sur des tutoriels basiques, j’ai développé une pipeline de fine-tuning complète et sur-mesure. Cela a impliqué le déploiement et l’entraînement du modèle de bout en bout sur une infrastructure cloud (GPU H100 via Lightning AI). J’ai dû relever des défis d’ingénierie majeurs pour faire tenir un modèle de cette taille en mémoire, en implémentant des techniques telles que l’optimiseur AdamW 8-bit, le gradient checkpointing, Flash Attention et le bucket batching dynamique.
Au-delà de l’aspect technique, ce projet m’a permis de comprendre en profondeur le fonctionnement interne d’ESM3. J’ai appris à manipuler ses entrées multi-pistes (séquence, coordonnées 3D, accessibilité au solvant), à comprendre comment l’attention géométrique traite les relations spatiales, et à concevoir une fonction de perte (loss) personnalisée pour le “masked language modeling”. Même si le modèle n’a pas totalement atteint l’objectif de “transfer learning” à cause de la complexité de représentation des structures 3D multi-domaines, mener à bien ce processus - de la préparation des données à l’exécution dans le cloud et l’analyse post-mortem - m’a apporté une expérience pratique inestimable de l’entraînement des “Large Language Models”.
Le projet, incluant son document de conception et un post-mortem détaillé, est disponible sur son dépôt GitHub.
Fine tuning d'un modèle de classification binaire
Dans le cadre de mon exploration de l’IA, j’ai entrepris un projet personnel afin d’apprendre à fine-tuner un modèle. J’ai utilisé un jeu de données d’environ 80 000 abstracts de publications scientifiques annotés manuellement lors de mon travail chez EnyoPharma. Chaque abstract est étiqueté selon qu’il provient ou non d’une publication décrivant des interactions protéine-protéine. Je pense que ce jeu de données constitue un excellent cas d’application réel pour s’entraîner au fine-tuning.
Pour mener cette étude, j’ai utilisé la bibliothèque Hugging Face afin de fine-tuner un modèle préentraîné en classificateur binaire. L’objectif n’est pas de produire un modèle parfait mais d’explorer l’ensemble du processus de fine-tuning, de comprendre chaque étape et d’étudier des solutions pour améliorer le modèle.
L’étude est documentée dans son dépôt GitHub et les notebooks Jupyter.
Pipeline RAG en ligne de commande pour sites web
Je développe RAG-URL, un pipeline en ligne de commande qui transforme un site web en base de connaissance interrogeable via un agent conversationnel.
C’est un projet personnel visant à explorer chaque étape d’un système RAG agentique : depuis l’extraction du contenu jusqu’à la recherche sémantique et la génération de réponses avec un LLM.
Le pipeline comprend quatre étapes :
- Scrape : Exploration du site et extraction du contenu en Markdown nettoyé
- Chunk : Segmentation sémantique avec un modèle Gemini
- Embed : Vectorisation avec Gemini et stockage dans LanceDB
- Agent : Agent interactif en ligne de commande, construit avec PydanticAI, interrogeant la base via Gemini
Le système repose entièrement sur les modèles Gemini et n’est pas extensible pour l’instant.
Framework conversationnel multi-agents
Je développe MC Architecture (Master of Ceremony), un framework expérimental qui permet à plusieurs agents IA de participer à des conversations de groupe naturelles, avec un tour de parole fluide et contextuel.
Contrairement aux systèmes multi-agents traditionnels, pilotés par un contrôleur central, MC Architecture adopte une approche plus organique : les agents prennent la parole à tour de rôle en fonction du contexte partagé - comme dans une discussion d’équipe où chacun suit l’historique complet, mais un seul parle à la fois.
Le framework est entièrement agnostique vis-à-vis des agents et des modèles, et fonctionne comme une couche légère au-dessus de n’importe quelle bibliothèque d’IA. J’ai notamment intégré PydanticAI, avec une sélection intelligente des intervenants pour assurer la cohérence du dialogue.
Initialement conçu pour la narration créative et les simulations interactives, ce cadre montre aussi un réel potentiel pour des scénarios de résolution collaborative, où la fluidité du dialogue et la conscience du contexte sont essentielles.
Ce projet reste une expérimentation ouverte, axée sur la coordination conversationnelle plutôt que sur des structures de contrôle rigides.