Il y a quelques années, nous nous demandions si nous verrions un jour une IA capable d’écrire un texte cohérent ou de produire une image. Aujourd’hui, nous disposons de centaines de modèles d’IA qui peuvent le faire de différentes manières, en quelques secondes seulement.

L’accessibilité de ces outils s’est également considérablement améliorée : auparavant, il était fastidieux d’installer toutes les dépendances nécessaires pour que TensorFlow fonctionne correctement, mais aujourd’hui, des outils tels qu’Anaconda, Docker, PyTorch, Transformers et Diffusers facilitent considérablement la prise en main. Désormais, nous pouvons facilement tester ces modèles dans notre navigateur sans avoir besoin d’un GPU ou d’une installation.

Dans mon ancien travail, mon équipe a commencé à s’intéresser à la manière dont l’IA pouvait améliorer notre travail. Elle a créé une feuille avec des idées potentielles pour l’intégration de l’IA dans son flux de travail.

Leur principale préoccupation était la confidentialité de leurs données : il faut faire attention à ce que l’on télécharge, surtout si cela contient des informations sensibles telles que des plans de projets futurs.

J’avais déjà travaillé avec l’IA par le passé, je me suis donc demandé où nous pourrions l’intégrer à l’aide d’outils auto-hébergés afin d’éviter tout risque de fuite de données confidentielles.

Auto-Complétion de Code#

Ma première idée a été l’auto-complétion de code, l’exemple le plus connu étant GitHub Copilot, un outil qui suggère des extraits de code en fonction du contexte, mais qui n’est pas open source.

Mon entreprise utilisait un ancien IDE C++ appelé CodeBlocks, un outil basique pour écrire du code C++, mais il manque de nombreuses fonctionnalités importantes telles qu’un linter, des outils de compilation ou toute capacité d’IA.

J’ai trouvé à la place le projet TabbyML. Il s’agit d’un outil auto-hébergé qui permet d’installer à la fois un modèle de chat tel que ChatGPT, mais aussi un modèle spécial de complétion de code tel que StarCoder. Il peut être très simple à installer avec Docker et peut être intégré dans n’importe quel IDE moderne tel que VSCode, l’IDE JetBrains ou même Eclipse.

Je l’ai essayé sur le petit GPU NVIDIA intégré de mon ordinateur de travail avec un StarCoder-3B, et cela a plus ou moins fonctionné. Il était capable de deviner certaines lignes que je voulais écrire, mais ce n’était pas très précis.

Le GPU de mon ordinateur de travail était bien trop petit pour charger quoi que ce soit d’intéressant. Je l’ai réessayé sur le GPU de mon université, un RTX 6000 Ada, et les résultats ont été bien meilleurs : j’ai pu essayer des modèles plus importants tels que StarCoder2-7B, CodeLlama-13B, DeepSeekCoder-6.7B, CodeGemma-7B, Qwen2.5-Coder-14B, mais celui qui m’a le plus impressionné est Codestral-22B, le plus grand modèle disponible chez Mistral.

Avec ce modèle, vous pouvez rédiger les commentaires et la documentation de votre code, et le modèle écrira toute la fonction à votre place. On dirait presque qu’il lit dans vos pensées !

Vous pouvez également lui poser une question sur le code, et il essaiera d’y répondre à partir des fichiers du référentiel. Cela pourrait être extrêmement utile pour initier de nouveaux développeurs à la base de code.

Même si vous devez toujours vérifier les résultats, cela m’a parfaitement aidé à écrire du code plus rapidement, et je n’ai pas ressenti le freinage de GitHub Copilot où tout ce que j’écrivais était envoyé vers le cloud.

Modèles de Chat#

Bien que TabbyML soit un excellent outil, il est particulièrement utile pour les développeurs dans un environnement IDE. Pour une utilisation plus générale, d’autres outils auto-hébergés tels que Ollama sont plus adaptés.

Ollama offre une interface de chat simple similaire à ChatGPT et facile à configurer et prend en charge un grand nombre de modèles.

J’ai pu essayer quelques petits modèles sur mon ordinateur de travail, tels que Gemma3-4B, mais il est assez difficile d’avoir une discussion cohérente et intéressante avec un modèle aussi petit. Ollama est destiné à être utilisé avec de meilleurs GPU, je l’ai donc également essayé sur le GPU de mon université avec de meilleurs modèles tels que CodeLlama-13B, DeepSeekCoder-16B et MistralSmall-24B.

Les résultats ont été beaucoup plus impressionnants, la conversation était beaucoup plus cohérente et le modèle était capable de mieux comprendre mes intentions. Ollama peut être configuré pour prendre en charge le téléchargement de documents grâce à un RAG, qui lui permet de répondre en fonction du contenu du document. Par exemple, j’avais une question sur un langage d’assemblage très spécifique que nous utilisions au travail et son compilateur, et cet outil a pu y répondre à partir du manuel que je lui ai fourni.