Ollama

Dans cet article, nous allons voir comment installer Ollama, explorer différents modèles et leurs usages, et expliquer des concepts clés comme le nombre de paramètres et la quantification.

ollama

J’utilise depuis peu Ollama dans le cadre de mon travail, mais j’ai récemment décidé de l’installer et de le configurer sur mon ordinateur perso.

Mon objectif est simple : Faire tourner une IA  sans dépendre d’Internet. Ollama est une solution simple et puissante pour installer et utiliser des modèles d’IA localement.

Dans cet article, nous allons voir comment installer Ollama, explorer différents modèles et leurs usages, et expliquer des concepts clés comme le nombre de paramètres et la quantification.

1. Qu’est-ce qu’Ollama ?

Ollama est un projet cofondé par Michael Chiang et Jeffrey Morgan, dans le but de rendre l’IA générative plus accessible, tout en gardant le contrôle local sur les données et les performances. Elle utilise des Large Language Models (LLMs). Ce sont des modèles entraînés sur d’énormes volumes de textes dont leur objectif est de comprendre et générer du langage naturel. Ils peuvent répondre à des questions, rédiger des textes, traduire, résumer, coder, et bien plus encore.

Ollama utilise ces LLMs pour permettre aux utilisateurs de bénéficier de la puissance de l’IA générative, mais en local. Cela signifie que tout le traitement se fait directement sur ton ordinateur, sans passer par des serveurs externes. C’est un vrai plus pour la confidentialité, la réactivité et la maîtrise des ressources, en tout cas c’est mon avis.

2. Installation d’Ollama

Perso je suis sous Windows mais je pense que la procédure est quasi identique sur Unix.

Prérequis

  • Matériel : Un PC avec au moins 8 Go de RAM (16 Go ou plus recommandé) et une carte graphique (GPU) si possible pour accélérer les calculs.
  • Espace disque : Quelques Go libres (les modèles varient de 1 Go à 20 Go+).

Étapes d’installation

  1. Télécharge Ollama sur le site officiel : ollama.com
  2. Installe-le !
  3. Vérifie l’installation :
    ollama --version

    Si une version s’affiche, c’est bon !

3. Comment choisir le modèle à utiliser ?

  • LLaMA (3, 7B, 13B) : Conversation générale. Ex : ollama run llama3
  • Mistral (7B) : Polyvalent, créatif. Ex : ollama run mistral
  • Codestral : Génération de code. Ex : ollama run codestral
  • Gemma : Léger, parfait pour PC modestes. Ex : ollama run gemma

Conseil : Si vous débutez, commencez avec un modèle 7B, perso j’utilise Codestral en ce moment.

Pourquoi j’ai choisi Codestral ?

  • Usage : Il est optimisé pour aider dans la génération de code, ce qui en fait un excellent choix pour des tâches liées au développement, notamment pour des langages comme HTML, CSS, JavaScript,…

  • Exemple d’utilisation : Dans le cadre du dev de mon jeu Forge des âges, je peut par exemple directement depuis vcode lui demander des conseils pour la mise en place de mécaniques de jeu spécifiques ou des idées pour faire évoluer le gameplay, en plus de coder des éléments visuels et interactifs.

C:\Users\François>ollama show codestral
Model
architecture llama
parameters 22.2B
context length 32768
embedding length 6144
quantization Q4_0

1. Model : Ça indique qu’on parle d’un modèle.

2. Architecture llama : Codestral est basé sur l’architecture « LLaMA » (Large Language Model Meta AI), une famille de modèles conçue pour être efficace et performante. 

3. Parameters 22.2B : J’utilise un modèle costaud, normalement mon PC ne supporte pas plus de 7B de paramètre mais graçe à la quantification ça passe !

4. Context length 32768 : La « longueur de contexte » est le nombre maximum de tokens (mots ou bouts de mots) que le modèle peut prendre en compte en une seule fois. Ici, 32 768 tokens, c’est énorme ! À titre de comparaison, beaucoup de modèles comme Gpt sont limités à 4 096 ou 8 192 tokens par conversation.

5. Embedding length 6144 : Plus ce nombre est grand, plus le modèle peut capturer des nuances subtiles dans le langage. En gros il est assez précis dans sa compréhension.

6. Quantization Q4_0 : Signifie qu’il utilise une quantisation sur 4 bits (au lieu des 16 ou 32 bits d’origine).

4. Liste plus complètes des modèles disponibles

  • OLMo 2 (7B et 13B paramètres) :
    Modèles entraînés sur jusqu’à 5 000 milliards de tokens, compétitifs avec des modèles de taille équivalente, parfaits pour des benchmarks en anglais.
  • SmolLM2 (135M, 360M et 1.7B paramètres) :
    Modèles compacts adaptés aux tâches nécessitant une empreinte mémoire réduite, tout en offrant des performances raisonnables.
  • CodeGemma (2B et 7B paramètres) :
    Modèles légers et puissants pour effectuer des tâches liées au code, telles que la complétion de code, la génération de code, et plus.
  • Dolphin-Mixtral (8x7B et 8x22B paramètres) :
    Modèles non censurés, optimisés pour des tâches de codage avec des performances exceptionnelles.
  • Phi-2 (2.7B paramètres) :
    Modèle de langage développé par Microsoft Research, performant en raisonnement et compréhension du langage.
  • WizardLM2 (7B et 8x22B paramètres) :
    Modèle de Microsoft AI pour des tâches complexes de conversation, multilingues et de raisonnement.
  • Dolphin-Mistral (7B paramètres) :
    Version non censurée basée sur Mistral, mise à jour en version 2.8, excellente pour les tâches de codage.
  • Dolphin-Llama3 (8B et 70B paramètres) :
    Nouveau modèle basé sur Llama 3, adapté aux tâches variées en instruction, conversation et codage.
  • Orca-Mini (3B à 70B paramètres) :
    Modèle polyvalent adapté aux matériels d’entrée de gamme.
  • Qwen2.5 (0.5B à 72B paramètres) :
    Modèle pré-entraîné sur le dernier jeu de données à grande échelle d’Alibaba, avec un support multilingue et jusqu’à 128K tokens.
  • Qwen2.5-Coder :
    Modèle spécifique au code, avec des améliorations pour la génération et la correction de code.
  • Llama 3.1 (8B, 70B et 405B paramètres) :
    Modèle de pointe de Meta, disponible en tailles de 8B, 70B et 405B paramètres.
  • Mistral (7B paramètres) :
    Modèle de 7B paramètres, mis à jour en version 0.3 pour des performances améliorées.
  • LLaVA-Llama3 (8B paramètres) :
    Modèle LLaVA affiné à partir de Llama 3 Instruct pour de meilleures performances sur plusieurs benchmarks.

5. Qu’est-ce que le Nombre de Paramètres ?

Le nombre de paramètres d’un modèle d’IA représente sa taille et sa complexité. Il s’agit du nombre de « règles » ou de « connexions » qu’un modèle a apprises lors de son entraînement.

Ces paramètres influencent directement la performance du modèle, ainsi que les ressources matérielles nécessaires pour l’exécuter.

  • 2B (2 milliards de paramètres) : Ces modèles sont compacts, rapides à exécuter, mais moins performants en termes de précision. Idéaux pour des tâches simples ou sur des machines avec des ressources limitées.

  • 7B (7 milliards de paramètres) : Ce modèle est un bon compromis entre performance et consommation de ressources. Il peut tourner sur la plupart des ordinateurs modernes, offrant une bonne précision sans nécessiter des ressources excessives. 

  • 13B et plus (13 milliards de paramètres et au-delà) : Ces modèles sont très puissants et peuvent générer des réponses plus complexes et plus précises. Cependant, ils nécessitent beaucoup de mémoire et une puissance de calcul importante.

6. La Quantification, c’est quoi ?

C’est est une technique utilisée pour réduire la taille des modèles d’IA en ajustant la précision des paramètres. Normalement, les paramètres d’un modèle sont stockés en utilisant une haute précision, souvent 32 bits par paramètre. Cependant, avec la quantification, cette précision est réduite à une valeur plus faible, comme 4 bits ou 8 bits. Cela permet de diminuer l’espace de mémoire nécessaire pour stocker le modèle, tout en maintenant des performances relativement proches de celles d’un modèle non quantifié.

  • Avantages : Moins de RAM, plus rapide.
  • Inconvénients : Légère perte de précision.

Exemple : Un 7B peut passer de 14 Go à 4 Go avec quantification en 4-bit.

7. Dépannage et Conseils

  • Hors ligne : Assurez-vous que le modèle est bien téléchargé.
  • Lent ? : Vérifiez l’usage GPU, essayez un modèle plus petit.
  • Personnalisation : Vous pouvez créer vos propres prompts. Je ferais surement un article dédié.
  • Pour toutes autres question, le plus simple et d’aller voir directement la documentation officielle d’Ollama.