Article

Coder avec l'IA : Ollama, Continue et DeepSeek Coder v2, les Nouvelles Révolutions du Pair Programming

Ces outils ne rivalisent pas seulement avec des solutions comme GitHub Copilot pomper à bloc avec GPT-4o ou autres models propriétaires; ils sont peut être mieux

Contexte :

Nous vivons certainement l’une des périodes les plus intéressentes dans l’informatique depuis l’avènement de l’internet.

Les modèles LLM (Large Langage Model) sont de plus en plus évolués, capables de comprendre et de générer du contenu textuel, image, audio, vidéo de manière cohérente et convaincante.
Ces modèles sont entrainés et compréssés avec beaucoup de données (près que toute la connaissance humaine numérisée).

C’est un grand changement dans notre manière d’interagir et utiliser les ordinateurs, telephones et autres objets connectés.

Tout ça pour dire que ça va changer beaucoup de choses dans notre quotidien et dans notre manière de travailler, elle remplacera beaucoup de métiers, mais en créera aussi beaucoup d’autre comme ça été le cas de la machine à Vapeur, l’électricité, l’internet ainsi que d’autres inventions humaines à travers son évolution 🌎

Dans le milieu du développement de logiciels, on peut s’en servir comme pair-programmeur (coéquipier comme au Tenis à 2), mentor, coach, …

Open-AI a été le pionnier en sortant leur model GPT-3.5 en Novembren 2022, plusieurs autres modèles gratuits comme payants ont suivi.
Microsoft en collaboration avec OpenAI a sorti Github Copilot est un outil de pair-programming qui vous aide dans vos tâches de development à l’interieur de votre IDE (vscode, jetbrains …).

Pendant une année durant sa beta teste, elle était gratuite pour tout le monde, rendu payante 10$ USD/mois.

Objectif :

Sur cet article, nous allons voir comment exécuter quelques models open-source en local avec le Ollama et comment utiliser continue pour servir de pair-programmeur dans un IDE de votre choix (vscode ou jetbrains idea …).

C’est quoi un LLM ?

Un grand modèle de langage (LLM pour Large Language Model) est un modèle d’apprentissage automatique capable de comprendre et générer des textes. Ils opèrent en analysant des volumes massifs de données de langage. source cloudflare

C’est quoi Ollama ?

Ollama est un est projet open-source qui permet d’exécuter les models de langage de LLM (Large Langage Model) en local. Il supporte beaucoup de models comme Llama, Mistral, Gemma, DeepSeek, Phi … voir la liste complète ici.

Très simple à installer et disponible sur le docker hub ainsi que sur les trois principaux OS (Windows, MacOS et Linux).

C’est quoi Continue ?

Continue est plugin ou extension pour IDE qui s’interface avec Ollama ou tout autres agents du genre pour fournir des fonctionnalités d’assistant ou copilot dans votre environnement de développement.
Il est disponible pour VSCode et JetBrains IDE.

Je lui ai découvert sur cet podcast de Bret Fisher avec comme invité le cocréateur de Continue voir la version vidéo avec démo ici

Dans cet article, nous allons voir l’intégration Continue avec deux models open-source (local via Ollama et disponible sur internet) entrainé spécialement pour générer du code :

C’est modèles spécialisés en génération de code et d’assistance aux développements donc plus légère que leurs homologues généralistes.

Chaque modèle se présente avec différents tags pour le nombre de paramètres sur lequel il a été entrainé et plus celui-ci est gros plus, plus sa taille est grande et plus il est performant.

Choisir celui qui correspond avec les ressources de votre machine ou la rapidité de votre internet.

  • Codestral un modèle open-source de la société française Mistral AI.
    • Ce modèle est particulièrement bon pour mes activités de coding perso, de devops et homelab
    • Il n’est pas en local par contre, il est hébergé quelque part dans les serveurs de Mistral AI
    • Il est sous la nouvelle licence Mistral AI Non-Production License, gratuit pour des travaux d’apprentissages et de recherche.
    • Créer un compte sur Mistral puis rechercher codestral pour récuperer le token d’authentification, voir son intégration avec continue ici :
  • DeepSeek Coder V2 un modèle open-source de la société chinoise DeepSeek .
    • Ce modèle est très bon pour générer du code, mais il est très gourmand en ressources.
    • La plus légère version 16b pèse 8.9GB
    • Disponible sur Ollama
  • Qwen2.5-coder,
    • si vous êtes contraint par les resources disponible, internet ou même matérielles, celui-ci peut-être un bon model pour tester l’utilisation d’Ollama et Continue
    • Son modèle de 1.5B pèse moins de 1GB
    • Disponible sur Ollama

Installation

Vous pouvez installer ollama en utilisant des outils de conteneurisation comme docker / podman ou l’installer directement sur votre système d’exploitation.

  • Docker ou Podman : voir les instructions ici
  • Système d’exploitation : Télécharger ici

Pour installer continue en fonction que vous soyez sur vscode ou les IDE de jetbrains :

  • vscode : ouvrez l’appliction -> puis Extensions -> rechercher Continue -> Install
  • Intellij :
    • Intellij Idea -> puis Settings -> puis Pluggins -> rechercher Continue -> Install

Utilisation :

Dans cet exemple, j’ai opté pour la séconde, si vous l’utiliser quotidiennement comme moi, assurez-vous q’Ollamase lance au démarrage de votre système. Quand Ollama est démarré, vous verrez sur votre barre des tâches une icône représentation l’animal Lama.

Teste avec petit modèle :

Nous allons tester que tout est fonctionnel avec cet model qwen2.5-coder:1.5b <1024MB :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ollama run qwen2.5-coder:1.5b
pulling manifest
pulling 29d8c98fa6b0... 100% ▕█████████████████████████████▏ 986 MB
pulling 66b9ea09bd5b... 100% ▕█████████████████████████████▏   68 B
pulling e94a8ecb9327... 100% ▕█████████████████████████████▏ 1.6 KB
pulling 832dd9e00a68... 100% ▕█████████████████████████████▏  11 KB
pulling 152cb442202b... 100% ▕█████████████████████████████▏  487 B
verifying sha256 digest
writing manifest
success
>>> Qui est Linus Torvalds ?
Linus Torvalds est un informaticien et chef de projet fondamental de la Linux, l'une des versions les plus importantes de la famille d'operating systèmes Unix et GNU/Linux.
Il acontribué significativement à la conception, la programmation et la diffusion de Linux. 
Linus Torvalds est connu pour son travail sur le développement de l'architecture Linux et pour ses contributions cruciales au système d'exploitation Linux.

Quand vous avez une sortie pareille à votre prompt, ça veut dire que vous êtes prêt pour la suite, ctrl/cmd + D pour sortir.

Pour apprendre plus sur la command ollam, execute ollama help:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
ollama help

Large language model runner

Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  stop        Stop a running model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  ps          List running models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

Use "ollama [command] --help" for more information about a command.

Configurer continue avec deepSeek-coder-v2 :

Continue génère un dossier .continue dans le dossier d’utilisateur plus de détail ici, ouvrer le dossier puis éditer le fichier ~/.continue/config.json.

Ci-dessous, j’utilise ici le model de deePseek-coder-v2 avec 16 Milliards de paramètres, si vous optez pour un autre modèle plus léger adapter la config.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "models": [
    {
      "title": "DeepSeek Coder V2",
      "model": "deepseek-coder-v2",
      "provider": "ollama"
    }
  ],
  "tabAutocompleteModel": {
     "title": "DeepSeek Coder V2",
     "model": "deepseek-coder-v2",
     "provider": "ollama"
  }
}

Enregistrer les et retournez dans votre IDE :

  • vscode: Cliquer sur l’icône de continue parmi les extensions installées
    • Ouvrez un de vos projets et commencé à coder, avec la section Tab Autocomplete Model configurer dans ~/.continue/config.json, vous devriez voir une suggestion automatique comme sur l’image ci-dessous :

Les alternatives :

  • Continue : Il existe une alternative avec laquel on peut utiliser codestral de manière gratuite qui s’appel Tabnine
  • Ollalma : l’une des alternative est Lm Studio

Réferences :

This post is licensed under CC BY 4.0 by the author.