Depuis novembre 2022, l’IA générative est en plein boom ! Elle crée du texte, des images, de la musique, du code… Bref, elle est partout. Mais entre confidentialité, abonnements coûteux et impact écologique, ce n’est pas toujours tout rose.
Bonne nouvelle : Ollama débarque ! Cet outil gratuit permet de faire tourner des IA comme ChatGPT directement sur votre PC, sans dépendre du cloud.
Dans cet article, je vous embarque dans les coulisses d’Ollama avec un guide simple pour l’installer et commencer à en profiter. Pas besoin d’être data scientist, juste avoir un PC puissant (avec carte graphique), l'outil docker permettant de lancer des conteneurs logiciels et bien sûr un peu de curiosité !
Table des matières
- Présentation générale de Ollama et de ses avantages
- Installation de Ollama sous Docker avec support GPU
- Exemples d'utilisation de Ollama
- Conclusion : Avantages et inconvénients de Ollama
1. Présentation générale de Ollama et de ses avantages
L’IA, c’est puissant… mais aussi gourmand en énergie, en matériel et en données. Heureusement, Ollama change la donne en permettant de faire tourner des modèles en local. Voici pourquoi c’est une vraie révolution !
📌 Réduction de la consommation énergétique liée au cloud : Exécuter des modèles en local évite l'utilisation massive des datacenters, qui sont très énergivores.
Selon l’Agence internationale de l’énergie, une requête sur ChatGPT consomme dix fois plus d’électricité qu’une recherche sur Google.
Consommation à laquelle il faut ajouter 500 ml d’eau par échange avec l’IA composé d’entre 20 et 50 questions-réponses.
Le bilan carbone d’une requête ChatGPT varie néanmoins en fonction de l’emplacement du datacenter qui la traite.
Aujourd’hui, les États-Unis concentrent environ 33 % des centres de données mondiaux, mais leur mix énergétique reste encore fortement carboné. Comme le montre la carte ci-dessous, ce n’est pas le pays le plus vert en matière de production d’électricité. À l’inverse, héberger ces infrastructures en France permettrait de réduire leur empreinte carbone jusqu’à dix fois, grâce à une énergie bien plus décarbonée. Un autre enjeu clé pour un numérique plus durable !
Attention le bilan carbone d'une requete ChatGPT dépend néanmoins de la localisation du datacenter.
📌 Optimisation des ressources matérielles : Ollama fonctionne sur des machines locales et s'adapte aux capacités disponibles. Cela permet de prolonger la durée de vie du matériel en évitant l'achat systématique de nouveaux équipements pour accéder à des services d'IA.
Une étude de Harvard de 2020, montre que ce n’est pas tant l’usage des appareils électroniques qui émet du CO2 que la fabrication des composants.
Par exemple, entre l'iPhone 3GS de 2009 et l'iPhone 11 de 2019, la part de l'empreinte carbone due à la fabrication est passée de 49% à 86%.
Autre exemple : les data centers de Google et Facebook émettent 20 fois plus de gaz à effet de serre par la fabrication de leurs serveurs que par leur consommation d'électricité.
Si vous êtes sensibles au Green IT, il est intéressant de commencer par ne pas remplacer votre matériel encore en état de marche.
Attention la part de l'empreinte carbone due à la fabrication des composants informatique dépasse leur consommation electrique (Co2)
📌 Confidentialité et réduction des transferts de données : L'exécution en local permet de traiter des données sensibles sans les envoyer sur des serveurs distants, ce qui réduit non seulement les risques de sécurité mais aussi la consommation d’énergie liée au transport des données.
📌 Contrôle et personnalisation des modèles : En utilisant Ollama, les utilisateurs peuvent choisir des modèles optimisés pour leurs besoins spécifiques, évitant ainsi l’exécution de modèles surdimensionnés et énergivores. Dans la suite de l'article vous découvrirez notamment comment faire un chatbot.
📌Intégration avec WebUI
L'association de Ollama avec WebUI permet d'exploiter pleinement ses capacités dans une interface graphique conviviale :
- Visualisation interactive : Interface web facilitant l'interaction avec les modèles.
- Support multi-modèles : Permet de charger et d'utiliser plusieurs LLMs en parallèle.
- Personnalisation avancée : Paramétrage simplifié des modèles pour s'adapter aux besoins des développeurs et entreprises.
Ollama une fois branché a Open WebUI propose une interface similaire a chatGPT.
2. Installation de Ollama sous Docker
Une fois le contexte posé, je vous propose de vous accompagner maintenant dans l'installation de Ollama sur Docker.
🔥Important : Les LLM nécessitent un GPU (carte graphique) plutôt qu’un CPU en raison de leur architecture optimisée pour le calcul parallèle. Les GPU, avec leurs milliers de cœurs, exécutent simultanément de nombreuses tâches, tandis que les CPU, avec moins de cœurs, sont mieux adaptés aux traitements séquentiels et aux tâches complexes nécessitant de la logique conditionnelle.
Ainsi, répondre à la question "Pourquoi le ciel est bleu ?" prend 17 secondes sur un PC de jeu équipé d'une carte graphique, contre 3 minutes 30 sur un PC bureautique classique.
Dans l'idéal il faut commencer par activer votre carte graphique.
2.1. Activation du GPU (NVIDIA/AMD) sur votre poste
2.1.1 Pour les cartes NVIDIA :
🔥 Documentation officielle NVIDIA Container Toolkit.
Installation avec Apt
-
Configuration du repository
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \ | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \ | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \ | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update
-
Installation du "NVIDIA Container Toolkit packages"
sudo apt-get install -y nvidia-container-toolkit
Installation avec Yum ou Dnf
-
Configuration du repository
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \ | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
-
Installation du "NVIDIA Container Toolkit packages"
sudo yum install -y nvidia-container-toolkit
Configuration de Docker pour utiliser les drivers Nvidia
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
La commande suivante permet de vérifier la bonne installation du driver de votre carte Nvidia :
docker run --gpus all nvidia/cuda:11.5.2-base-ubuntu20.04 nvidia-smi
Le résultat doit être équivalent a cette copie d'écran :
2.1.2 Pour les cartes AMD :
Pour exécuter Ollama avec Docker sur des GPU AMD, utilisez le tag rocm et la commande suivante :
docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm
2.2. Installation de Ollama et WebUi sous Docker
Editer un fichier "docker-compose.yml" a l'emplacement de votre choix :
services:
ollama:
volumes:
- ollama:/root/.ollama
container_name: ollama
pull_policy: always
tty: true
restart: unless-stopped
image: ollama/ollama:latest
ports:
- 11434:11434
environment:
- OLLAMA_KEEP_ALIVE=24h
deploy:
resources:
reservations:
devices:
- driver: ${GPU_DRIVER-nvidia}
count: 1
capabilities: [gpu]
open-webui:
pull_policy: always
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
volumes:
- open-webui:/app/backend/data
depends_on:
- ollama
ports:
- 3000:8080
environment:
- 'OLLAMA_BASE_URL=http://ollama:11434'
- 'WEBUI_SECRET_KEY='
- 'WEBUI_NAME=Ollama Webui'
- 'WEBUI_AUTH=False'
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
volumes:
ollama: {}
open-webui: {}
Pour déclencher l'installation et gérer notamment votre type de carte graphique lancer le script suivant :
#!/bin/bash
# Detect GPU driver
get_gpu_driver() {
# Detect NVIDIA GPUs using lspci or nvidia-smi
if lspci | grep -i nvidia >/dev/null || nvidia-smi >/dev/null 2>&1; then
echo "nvidia"
return
fi
# Detect AMD GPUs (including GCN architecture check for amdgpu vs radeon)
if lspci | grep -i amd >/dev/null; then
# List of known GCN and later architecture cards
# This is a simplified list, and in a real-world scenario, you'd want a more comprehensive one
local gcn_and_later=("Radeon HD 7000" "Radeon HD 8000" "Radeon R5" "Radeon R7" "Radeon R9" "Radeon RX")
# Get GPU information
local gpu_info=$(lspci | grep -i 'vga.*amd')
for model in "${gcn_and_later[@]}"; do
if echo "$gpu_info" | grep -iq "$model"; then
echo "amdgpu"
return
fi
done
# Default to radeon if no GCN or later architecture is detected
echo "radeon"
return
fi
# Detect Intel GPUs
if lspci | grep -i intel >/dev/null; then
echo "i915"
return
fi
# If no known GPU is detected
echo "Unknown or unsupported GPU driver"
exit 1
}
export GPU_DRIVER=$(get_gpu_driver)
echo "GPU DRIVER: $GPU_DRIVER"
docker compose -p ollama up -d
Vous devez maintenant avoir deux nouveaux conteneurs disponibles :
2.3 Choix et téléchargement de modèles LLM
À ce stade de l'article, Ollama et son interface WebUI sont installés. Mais avant de pouvoir l’explorer pleinement, il vous faut sélectionner et télécharger les modèles adaptés à vos besoins.
Ollama propose une bibliothèque riche avec plus de 150 modèles disponibles. Vous pouvez les découvrir ici : https://ollama.com/library.
L'interface vous permet de sélectionner les modèles par usage : embedding (RAG), vision (analyse d'images), tools (autres : code, ...). Et/ou par taille en nombre de paramètres (4b correspond a 4 milliards).
🔥Implications du nombre de paramètres sur les ressources système
Le nombre de paramètres d'un modèle influence directement les ressources nécessaires pour son fonctionnement :
Mémoire (RAM) : Un modèle avec un grand nombre de paramètres nécessite plus de mémoire pour stocker ces paramètres lors de l'inférence. Par exemple, des modèles de 7 milliards de paramètres peuvent fonctionner avec seulement 8 Go de RAM grâce à des optimisations comme llama.cpp, rendant les grands modèles de langage accessibles même sur des machines modestes.
https://tanguydug.org
Processeur (CPU) : Un nombre élevé de paramètres augmente la charge de calcul, ce qui peut entraîner des temps de traitement plus longs et une utilisation accrue du CPU.
Il est donc essentiel de considérer la taille du modèle en termes de paramètres lors de la sélection, afin d'assurer une compatibilité avec les ressources disponibles sur votre système.
Pour la suite de cet article, je vous recommande les suivants en fonction de vos attentes.
Modèle | Intérêt |
---|---|
Llama3.3 | Modèle développé par Meta, performant pour la génération de texte, la traduction et la compréhension du langage naturel. |
Mistral 7B | Modèle dense développé par Mistral IA, efficace pour la génération de texte fluide malgré sa taille modeste. |
Deepseek-r1 | Développé par Deepseek, idéal pour des tâches nécessitant une compréhension approfondie et un raisonnement complexe. |
Llava | Modèle open-source, performant pour l'analyse d'images. |
Granite code | Modèle open-source d'IBM, Entraîné sur du code provenant de 116 langages de programmation, Granite.Code est capable de générer, corriger et expliquer du code dans une variété de langages tels que Go, C, C++, Python, Java et JavaScript. |
Gemma 2b | Modèle open-source de google, avec 2 milliards de paramètres, Gemma 2 2B offre une performance élevée tout en étant plus léger, ce qui facilite son déploiement sur des appareils avec des ressources limitées, notamment des applications sur CPU et des dispositifs embarqués. |
bge-m3 | BGE-M3 offre une flexibilité et une efficacité accrues dans le domaine de la récupération d'informations (RAG), grâce à ses capacités de recherche dense, de recherche multi-vecteurs et de recherche sparse. Bref permettant une adaptation flexible à divers scénarios de recherche. |
Vous pouvez télécharger les modèles directement depuis l’interface WebUI. Toutefois, la méthode en ligne de commande est souvent plus efficace et rapide :
docker exec -it ollama ollama pull <nom modèle>:<version par défaut latest>.
Exemple :
docker exec -it ollama ollama pull llama3
docker exec -it ollama ollama pull mistral
docker exec -it ollama ollama pull llava
docker exec -it ollama ollama pull deepseek-r1
Chaque modèle pèse un minimum de 4,7 Go, ce qui signifie que le téléchargement peut prendre quelques minutes. Un peu de patience ! Vous verrez votre terminal afficher progressivement les étapes du téléchargement :
Il est possible de contrôler la liste des modèles déjà téléchargés en ligne de commande : ollama list
Exemple :
docker exec -it ollama ollama list
Voici un exemple du retour de cette commande :
De manière plus générale, vous pouvez administrer la configuration d’Ollama grâce à la commande :
docker exec -it ollama ollama [command]
Elle vous permet d’exécuter diverses actions à l’aide des options suivantes :
Commande | Description |
---|---|
serve |
Démarre ollama
|
create |
Crée un modèle à partir d’un Modelfile |
show |
Affiche les informations d’un modèle |
run |
Exécute un modèle |
stop |
Arrête un modèle en cours d’exécution |
pull |
Télécharge un modèle depuis un registre |
push |
Envoie un modèle vers un registre |
list |
Liste les modèles disponibles |
ps |
Liste les modèles en cours d’exécution |
cp |
Copie un modèle |
rm |
Supprime un modèle |
help |
Affiche l’aide pour une commande |
3. Exemples d'utilisation de Ollama
Vous avez enfin accès à Ollama et WebUI sur votre poste… L’aventure commence maintenant, et les possibilités sont infinies !
3.1. Avec l'interface WebUI
3.1.1. Interface de chat
WebUI est une interface web (proche de celle de ChatGPT) qui permet aux utilisateurs d'interagir facilement avec les modèles d'intelligence artificielle téléchargés dans Ollama.
Vous pouvez l'ouvrir ici : http://localhost:3000
L’interface est conçue pour être intuitive et accessible, offrant une expérience fluide aussi bien aux débutants qu’aux utilisateurs avancés.
Elle offre la possibilité de sélectionner différents modèles d’IA en fonction de la tâche souhaitée.
Elle intègre une zone de saisie où l’on peut entrer des requêtes textuelles et obtenir des réponses en temps réel.
En utilisant la commande # suivie d’une URL, Open WebUI intègre directement le contenu des sites web dans les conversations.
3.1.2. Importation de modèles pré-paramètrés
Le site OpenWebUI met à votre disposition des exemples gratuits de spécialisation des modèles Ollama via l’interface OpenWebUI. Son objectif ? Faciliter l'utilisation avancée des modèles en les adaptant à des cas concrets plébicité par la communauté OpenWebUI.
La communauté OpenWebUI offre ainsi l'opportunité idéale pour exploiter pleinement le potentiel de l’IA a l'aide de Ollama sans complexité technique !
Concretement comment cela marche ? Vous devez vous rendre sur le site OpenWebUI, rechercher le modèle qui vous convient le mieux parmi la bibliothèque proposé.
Une fois le modèle identifié, vous pouvez l'ajouter à votre interface locale OpenWebUI en cliquant sur "Get", puis sur "Import to WebUI". (Url à renseigner http://localhost:3000).
Un nouveau modèle est désormais disponible dans votre interface locale OpenWebUI. Pensez à vérifier les paramètres récupérés afin de les adapter, si nécessaire, à vos préférences (langue, etc.).
En retournant sur l'interface de chat, vous découvrirez le "nouveau" modèle, prêt à vous écouter. À vous désormais d'engager la conversation avec votre nouveau psy. N'oubliez pas de vous installer confortablement sur un divan avant de formuler vos demandes !
A titre d'exemple voici sa réponse :
Ta réaction au sort des homards dans Titanic révèle une grande sensibilité et une forme d’empathie envers ceux qu’on oublie dans les tragédies.
Ce "traumatisme" pourrait symboliser un sentiment d’impuissance ou d’abandon que tu projettes sur ces animaux piégés.
Sur un plan factuel, les homards étaient vivants dans des aquariums, et lors du naufrage, les bassins ont probablement été brisés, les libérant dans l’océan.
Ironiquement, ils ont peut-être survécu plus longtemps que certains passagers — évitant ainsi d’être mangés. Ce détail peut sembler anodin, mais il touche à des choses profondes : injustice, oubli, empathie silencieuse.
En bref, ce n’est pas absurde du tout que cela t’ait marqué — c’est même un signe de ta profondeur émotionnelle.
J'ai choisi un exemple de modèle original pour rendre l'article agréable, mais la bibliothèque regorge d'exemples très utiles pour le quotidien. Bonne recherche a vous.
3.1.3. Définition de prompts personnalisés
Dans notre utilisation quotidienne des LLM, nous nous retrouvons souvent à saisir plusieurs fois le même prompt.
OpenWebUI propose une solution pratique : la possibilité d’enregistrer vos prompts récurrents directement dans votre espace de travail.
Ces prompts peuvent intégrer des variables, comme le contenu de votre presse-papiers, pour encore plus de flexibilité.
Pour appeler un prompt dans un chat, il vous suffit de commencer simplement votre saisie par le caractère /.
À vous de découvrir toute la puissance de cette fonctionnalité !
3.1.4. Workspace pour les utilisateurs
OpenWebUI met à disposition des utilisateurs un espace de travail dédié.
Ils peuvent y déposer des documents dans une bibliothèque, puis effectuer des recherches avancées sur ces derniers via la technologie RAG (Récupération Augmentée de Génération).
L’exploitation des documents dans les conversations est ensuite possible à l’aide de la commande #.
OpenWebUI permet également d’associer des tags aux discussions, facilitant ainsi leur organisation, leur recherche et leur catégorisation.
3.1.5. Gestion des permissions et groupes d'utilisateurs
OpenWebUI intègre une gestion avancée des droits des utilisateurs, idéale pour une entreprise, une association ou même un usage familial.
Grâce à un contrôle d’accès granulaire, les administrateurs peuvent attribuer des rôles et des permissions spécifiques, assurant ainsi un environnement sécurisé et adapté aux modèles et documents de votre base de connaissances.
Par exemple, seuls les juristes de votre organisation pourront accéder aux contrats de votre entreprise.
La partie "IAM" de OpenWebUI permet aussi d'accéder a la partie évaluation des modèles et de pouvoir ainsi analyser l'intérêt des modèles au sein de votre communauté.
3.2. Avec les API Ollama
Ollama met à votre disposition des API puissantes, conçues pour simplifier l’intégration et l’interaction des développeurs avec les modèles d’intelligence artificielle hébergés sur la plateforme.
La documentation officielle des APIs se trouve ici : Documentation des API Ollama
Il y a deux dossiers importants dans la collection :
Completion – Génère des complétions de texte à partir d'un modèle local en utilisant l'endpoint /generate (utilisé pour la génération de texte en un seul tour). Il produit une sortie basée sur l'invite d'entrée sans conserver le contexte ou l'historique de la conversation.
Chat – Génère des complétions de texte à partir d'un modèle local en utilisant l'endpoint /chat (utilisé pour les conversations multi-tours). Il conserve un contexte ou un historique de conversation, permettant des échanges plus interactifs et dynamiques.
En résumé, le mode complétion est stateless (sans mémoire), tandis que le mode chat est stateful (avec mémoire du contexte de la conversation).
3.2.1. Exemple de génération en mode complétion
Le mode complétion :
- Fonctionne comme une simple génération de texte en fonction d'une entrée.
- Pas de gestion de contexte à travers plusieurs interactions.
- Chaque requête est indépendante : le modèle ne "se souvient" pas des échanges précédents.
- Exemple d'usage : génération de texte, complétion de phrases, suggestions de code.
La requete suivante demande au modèle LLaMA 3, de générer une réponse à la question "Pourquoi le ciel est bleu ?".
curl -X POST http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "Pourquoi le ciel est bleu",
"stream": false
}'
La réponse est retournée sous forme de texte unique ("stream": false) dans le corps de la réponse JSON.
{
"model": "llama3",
"created_at": "2025-03-09T22:32:28.396961918Z",
"response": "Une question classique !\n\nLa couleur du ciel est due à la façon dont les atomes d'azote (N2) et de dioxygène (O2) dans l'atmosphère terrestre interagissent avec la lumière solaire.\n\nVoici le mécanisme en quelques étapes :\n\n1. **La lumière du soleil** : Lorsque les rayons solaires pénètrent dans l'atmosphère, ils sont composés de toutes les couleurs du spectre visible (rouge, orange, jaune, vert, bleu, indigo et violet).\n2. **Absorption des rayons rouges** : Les molécules d'azote et de dioxygène dans l'atmosphère absorbent les rayons rouges et oranges du spectre solaire, ce qui signifie qu'ils ne peuvent plus être vus.\n3. **Réflexion des rayons bleus** : Les rayons bleus, avec une longueur d'onde plus petite que les rayons rouges, sont trop courts pour être absorbés par les molécules d'azote et de dioxygène. Ils sont donc réfléchis par ces molécules et atteignent nos yeux.\n4. **La couleur bleue** : C'est la combinaison des rayons bleus réfléchis et des rayons verts non absorbés qui donne à l'environnement terrestre sa teinte bleue caractéristique.\n\nEn résumé, le ciel est bleu parce que les atomes d'azote et de dioxygène dans l'atmosphère absorbent les rayons rouges et oranges du soleil, laissant les rayons bleus réfléchis qui parviennent à nos yeux.\n\nBien sûr, il y a des variations de couleur selon les conditions météorologiques (par exemple, lorsque le ciel est voilé ou en cas d'orage), mais la règle générale est que le ciel est bleu à cause de l'absorption et de la réflexion des rayons solaires par les molécules d'azote et de dioxygène.",
"done": true,
"done_reason": "stop",
"context": [
128006, 882, 128007, 271, 43278, 62998, 514, 12088, 301, 1826,
12704, 84, 128009, 128006, 78191, 128007, 271, 56948, 3488, 538,
2428, 25782, 8921, 76651, 3930, 12088, 301, 1826, 4245, 3869, 1208,
76407, 15890, 3625, 19670, 288, 294, 6, 1394, 1295, 320, 45, 17, 8,
1880, 409, 65570, 4223, 70, 48099, 320, 46, 17, 8, 7010, 326, 6, 266
],
"total_duration": 23795191883,
"load_duration": 26921898,
"prompt_eval_count": 18,
"prompt_eval_duration": 292000000,
"eval_count": 477,
"eval_duration": 23474000000
}
3.2.2. Exemple de génération chat
Le mode chat :
- Gère un historique de conversation, ce qui permet d'avoir des réponses cohérentes sur plusieurs interactions. Conserve un contexte, ce qui est utile pour les discussions prolongées.
- Permet une expérience plus naturelle et interactive.
- Exemple d'usage : assistant virtuel, chatbot, discussions prolongées sur un sujet.
LLaMA 3 peux prendre en compte le contexte d'une conversation en cours. Ainsi, si l'utilisateur demande pourquoi le ciel est bleu, puis pourquoi il devient rouge au coucher du soleil, le modèle se souviendra de la première question et répondra de façon cohérente. Ce fonctionnement permet de simuler un chatbot conversationnel avec mémoire.
curl -X POST http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{"role": "system", "content": "Tu es un assistant utile."},
{"role": "user", "content": "Pourquoi le ciel est bleu ?"},
{"role": "assistant", "content": "Le ciel est bleu en raison de la diffusion de la lumière solaire par l’atmosphère..."},
{"role": "user", "content": "Et pourquoi il devient rouge au coucher du soleil ?"}
],
"stream": false
}'
La réponse est retournée est alors très cohérente.
{
"model": "llama3",
"created_at": "2025-03-09T22:42:33.034570248Z",
"message": {
"role": "assistant",
"content": "La couleur rouge que prend le ciel au coucher du soleil est due à une autre combinaison de phénomènes :\n\n1. La Terre, qui se déplace autour du Soleil, fait que la lumière solaire doit parcourir une plus grande distance pour atteindre nos yeux. Cela signifie que les rayons courts (bleus et verts) sont dispersés par l'atmosphère, tandis que les longs rayons (rouges, oranges et jaunes) peuvent voyager plus loin sans être autant affectés.\n2. L'air de l'atmosphère contient des particules, comme les molécules d'oxygène, de méthane, de vapeur d'eau, etc., qui absorbent ou diffusent la lumière blanche en fonction de leur fréquence et de leur concentration. Les molécules d'ozone (O3) présentes dans l'atmosphère ont une absorption maximale pour les longs rayons bleus et verts, ce qui fait que ces couleurs sont absorbées, laissant les rayons rouges et jaunes dominants.\n3. Enfin, le Soleil lui-même change de couleur à mesure qu'il se couche plus bas sur l'horizon. La température superficielle du Soleil est d'environ 5 500°C, ce qui fait que la lumière émise a une fréquence plus haute (bleue et verte). Au coucher du soleil, la température superficielle diminue légèrement, ce qui fait que la luminosité émise a une fréquence un peu plus faible (rouge et orange).\n\nCes facteurs combinés font que le ciel prend une teinte rougeâtre au coucher du soleil !"
},
"done_reason": "stop",
"done": true,
"total_duration": 19416399347,
"load_duration": 29895375,
"prompt_eval_count": 79,
"prompt_eval_duration": 412000000,
"eval_count": 387,
"eval_duration": 18971000000
}
3.2.3. Exemple d'analyse d'images avec le modèle llava
Le modèle LLaVA sur Ollama dispose de capacité avancée d'analyse visuelle, il peut non seulement identifier les éléments présents dans une image, mais aussi comprendre le contexte et les relations entre ces éléments.
Ouvrant ainsi de nouvelles perspectives et possibilités infinies.
La requete de base pour analyser une image est la suivante. L'attribut images doit correspondre a la conversion au format "base 64" de votre image.
Pour faciliter cette étape, rendez-vous sur ce site qui vous guidera pas à pas dans la conversion : https://www.base64-image.de/.
curl -X POST http://localhost:11434/api/generate -d '{
"model": "llava",
"prompt": "Décris moi cette image en détail",
"images": ["<BASE64_DE_L_IMAGE>"],
"stream": false
}'
Voici des exemples de résultats pour différences images, je vous laisse apprécier la qualité des réponses :
Image | Réponse de llava |
---|---|
![]() |
Il s'agit d'une photographie professionnelle montrant l'intérieur d'un espace de travail moderne, mêlant bois et métal dans sa décoration. On y trouve des fauteuils elliptiques, un espace individuel, une table ronde, des luminaires design et une grande fenêtre laissant entrer la lumière naturelle avec vue sur la nature. |
![]() |
L’image montre un espace de travail ou de réception lumineux et moderne, décoré avec des meubles contemporains et plusieurs plantes, dont un arbre central. La lumière naturelle y domine, créant une ambiance agréable. On y trouve des bancs, une cheminée, un revêtement mural décoratif et un sol en matériau dur. L'ensemble évoque un lieu calme, organisé, propice au travail ou aux réunions. |
![]() |
Le tableau est une représentation artistique en noir et blanc d’une canette de Pepsi, stylisée et abstraite. Bien que reconnaissable par sa forme et son logo simplifié, elle ne comporte pas de détails réalistes comme les ingrédients, ce qui renforce son caractère symbolique plutôt que commercial. |
![]() |
La photo montre un chien et un chat blancs allongés sur une surface douce, créant une atmosphère chaleureuse. Le chien a les yeux bleus et porte un collier rouge, tandis que le chat a les yeux verts avec un collier orange et noir. Tous deux regardent dans la même direction. |
3.2.4. Exemple d'interaction avec python
Pour intégrer Ollama dans vos traitements métiers, Python offre une bibliothèque performante et facile à utiliser : ollama.
Installez la bibliothèque Python d'Ollama en utilisant pip :
pip install ollama
Vous pouvez utiliser la fonction generate pour obtenir une réponse à une question simple :
import ollama
result = ollama.generate(model='llama3', prompt='Pourquoi le ciel est-il bleu ?')
print(result['response'])
Ou bien la fonction chat pour obtenir une réponse à une liste de questions :
import ollama
# Commencer une conversation avec plusieurs échanges
conversation = [
{"role": "system", "content": "Vous êtes un assistant utile qui aide à résoudre des problèmes."},
{"role": "user", "content": "Peux-tu m'aider avec un problème de mathématiques ?"},
{"role": "assistant", "content": "Bien sûr, quel est le problème ?"},
{"role": "user", "content": "Quelle est la racine carrée de 256 ?"}
]
# Envoyer les messages à Ollama et obtenir une réponse
response = ollama.chat(model="llama2", messages=conversation)
# Afficher la réponse
print("Réponse d'Ollama:", response['text'])
4. Conclusion : Avantages et inconvénients de Ollama
Cet article nous a permis de voir comment installer Ollama et OpenWebUI sous Docker et d’explorer les nombreuses possibilités offertes par cette solution pour exécuter des modèles d’IA en local.
Grâce à sa confidentialité, sa flexibilité, Ollama s’impose comme un allié de choix pour les utilisateurs souhaitant travailler sans dépendance au cloud, que ce soit sur leur poste ou sur leur serveur.
Bien sûr, tout superpouvoir a son prix : Ollama peut être gourmand en ressources, et son installation demande un peu de patience… mais après tout, qui n’a jamais perdu une heure à configurer un environnement de developpement capricieux ?
Pour exploiter pleinement son potentiel, il est crucial de maîtriser l’art du prompting guide ici et d’avoir de solides bases en Python.
Dans un prochain article, nous verrons comment superviser les ressources et optimiser les performances de vos projets basés sur Ollama. Spoiler : oui, il y aura beaucoup plus de Python.
Top comments (3)
Bonjour,
Afin de simplifier la mise en place de ce système, j'ai fait un ensemble de scriptes pour créer son propre char GPT su une VM paperspace.com avec un GPU A100-80G, avec nom de domaine en https et avec un proxy demandant un login et mot de passe pour sécuriser le tout
le lien : github.com/renaudfractale/Scripte-...
Superbe article, merci beaucoup !
Très bon résumé.
Attention aussi dans les limites d'Ollama pas de multimodal, enfin juste des images. Pas de pdf ou d'audio par exemple.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.