Premiers Pas avec Ollama

Introduction

Ollama est la façon la plus simple d'exécuter des Modèles de Langage Larges (LLM) localement. Pensez-y comme à "Docker pour les LLM" — il gère le téléchargement de modèles, le stockage et l'inférence avec une interface de ligne de commande propre. Pas de configuration complexe, pas de problèmes de dépendances — une commande pour installer, une commande pour commencer à discuter.

Dans ce module, vous apprendrez à :

  • Installer Ollama sur votre appareil Jetson
  • Télécharger et exécuter votre premier LLM
  • Explorer différents modèles et leurs capacités
  • Configurer une interface de chat web utilisant Open WebUI

ollama-banner

ollama-prompt

Pourquoi Ollama ?

FonctionnalitéDescription
Installation en une ligneCommande unique pour commencer
Gestion automatique des modèlesTélécharge et gère automatiquement les fichiers de modèle
Commandes simplesollama run nomdemonde pour commencer à discuter
REST APIServeur HTTP intégré pour l'intégration
Modèles multiplesExécuter différents modèles en parallèle
Compatible OpenAIAPI compatible avec l'interface OpenAI

Configuration Système Requise

Avant d'installer Ollama, assure-toi que ton appareil Jetson répond à ces exigences :

ExigenceMinimumRecommandé
JetPack5.1+6.0+
RAM8GB16GB+
Stockage10GB libre50GB+ (pour plusieurs modèles)
Swap8GB16GB

Premiers utilisateurs : Si tu n'as pas encore configuré d'espace swap sur ton Jetson, consulte Chapitre 3 : Configuration du Swap

Installation d'Ollama

Méthode 1 : Installation Directe (Recommandée)

Ouvre un terminal sur ton appareil Jetson et exécute :

bash
# Télécharger et installer Ollama
curl -fsSL https://ollama.com/install.sh | sh

Le script d'installation va :

  1. Détecter ton architecture système (ARM64)
  2. Télécharger le binaire Ollama approprié
  3. Configurer le service systemd
  4. Vérifier l'installation

Vérifier l'Installation

bash
# Vérifier la version d'Ollama
ollama --version

# Vérifier si le service est en cours d'exécution
systemctl status ollama

Ta Première Interaction LLM

Maintenant exécutons ton premier LLM. Ollama téléchargera automatiquement le modèle lors de la première exécution.

Tu peux trouver les modèles déployés supportés par Ollama ici. Sélectionne le modèle que tu souhaites déployer sur ton appareil.

Exécuter un Modèle

bash
# Par exemple
ollama run qwen3.5:2b

Une fois téléchargé, tu verras une invite de chat :

bash
What is NVIDIA Jetson?

Commandes de Chat Utiles

CommandeDescription
/?Afficher l'aide
/byeQuitter la conversation
Ctrl+DQuitter la conversation
/clearEffacer l'historique de conversation
/historyAfficher l'historique de conversation

Explorer Différents Modèles

Modèles de Langage Vision (Multimodal)

bash
# Qwen3.5 - Comprendre les images et le texte
ollama run qwen3.5:2b
#Tu peux spécifier une image et lui demander de décrire le contenu de l'image.
What can you see in /home/seeed/test.jpg

qwen_v

Utiliser l'API REST

Ollama exécute un serveur HTTP local sur le port 11434, facilitant l'intégration avec d'autres applications.

Envoyer une Requête de Chat

bash
# Génération de texte simple
curl http://localhost:11434/api/generate -d '{
  "model": "qwen3.5:2b",
  "prompt": "What is edge computing?",
  "stream": false
}'

curl_test

Intégration Python

python
import requests

def chat_with_ollama(prompt, model="qwen3.5:2b"):
    """Envoyer un prompt à Ollama et obtenir une réponse."""
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": model,
            "prompt": prompt,
            "stream": False
        }
    )
    return response.json()["response"]

# Exemple d'utilisation
response = chat_with_ollama("Write a simple Python function to calculate factorial")
print(response)

API Compatible OpenAI

bash
# installer le sdk openai
pip install openai

Ollama fournit un endpoint compatible OpenAI, te permettant d'utiliser les bibliothèques clientes OpenAI existantes :

python
from openai import OpenAI

# Se connecter à Ollama local
client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="not-needed"  # Ollama ne nécessite pas de clé API
)

response = client.chat.completions.create(
    model="qwen3.5:4b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain quantum computing in simple terms."}
    ]
)

print(response.choices[0].message.content)

VLM trouve des objets dans l'image

bash
pip install ollama
git clone https://github.com/Seeed-Projects/reComputer-Jetson-for-Beginners
cd reComputer-Jetson-for-Beginners/5-Offline-Large-Model-Development/code
python vlm_object_detector.py

attends une minute et tu peux voir le résultat dans le dossier img

vlm_find_obj

Configurer Open WebUI

Open WebUI (anciennement Ollama WebUI) fournit une interface de type ChatGPT pour interagir avec tes modèles locaux.

Installation via Docker

bash
# Télécharger l'image Open WebUI
docker pull ghcr.io/open-webui/open-webui:main

# Créer le répertoire de données
sudo mkdir -p /opt/seeed/open-webui/data

# Exécuter le conteneur
docker run -d \
  --restart always \
  --name open-webui \
  --network host \
  -v /opt/seeed/open-webui/data:/app/backend/data \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  ghcr.io/open-webui/open-webui:main

# Vérifier l'état du conteneur
docker logs -f open-webui

Accéder à Open WebUI

Une fois le conteneur en cours d'exécution :

  1. Ouvre un navigateur sur ton Jetson (ou un autre appareil sur le même réseau)
  2. Navigue vers http://localhost:8080 (ou http://<jetson-ip>:8080)
  3. Crée un compte administrateur lors du premier accès
  4. Sélectionne ton modèle dans le menu déroulant et commence à discuter !

web_ui

Fonctionnalités d'Open WebUI

  • Gestion des Modèles : Basculer entre différents modèles Ollama
  • Historique de Conversation : Sauvegarder et rechercher dans les historiques de chat
  • Support Multi-utilisateur : Créer des comptes pour différents utilisateurs
  • Support RAG : Téléverser et discuter avec des documents
  • Génération d'Images : Intégrer avec des modèles de génération d'images
  • Système de Plugins : Étendre les fonctionnalités avec les plugins communautaires

Conseils pour Meilleures Performances

  1. Utilise des tailles de modèle appropriées : Commence avec des modèles 1B-3B sur Jetson Orin Nano
  2. Augmente l'espace swap : Ajoute plus de swap pour les modèles plus grands
  3. Ferme les applications inutiles : Libère la mémoire GPU
  4. Utilise des modèles quantisés : Les modèles GGUF quantisés (Q4_K_M) offrent le meilleur compromis vitesse/qualité
  5. Surveille la température : Jetson peut se régulateur thermiquement sous charge soutenue — assure une bonne réfrigération

Problèmes Courants et Solutions

Problème 1 : Échec du Téléchargement du Modèle

Problème : Error: pull model manifest: Get https://registry.ollama.ai/...

Solution :

bash
# Vérifier la connexion internet
ping google.com

# Réessayer avec sortie détaillée
OLLAMA_DEBUG=1 ollama pull llama3.2:3b

Problème 2 : Plus de Mémoire

Problème : Error: model requires more system memory (8.0 GiB) than is available (6.0 GiB)

Solution :

bash
# Vérifier la mémoire disponible
free -h

# Augmenter le swap (si pas encore configuré)
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Utiliser un modèle plus petit
ollama run qwen3.5:2b

Problème 3 : Temps de Réponse Lents

Problème : Génération de tokens très lente (< 5 tokens/seconde)

Solution :

bash
# Utiliser un modèle plus petit
ollama run qwen3.5:0.8b

# Réduire la fenêtre de contexte
ollama run qwen3.5:0.8b --num-ctx 2048

# S'assurer que le GPU est utilisé (vérifier nvidia-smi pendant l'inférence)

Problème 4 : Le Service Ollama Ne Démarre Pas

Problème : System has not been booted with systemd as init system

Solution (pour environnements Docker) :

bash
# Démarrer Ollama manuellement
ollama serve &

# Ou exécuter en arrière-plan
nohup ollama serve > ollama.log 2>&1 &

Exercice de Pratique

Complete ces étapes pour vérifier ta configuration :

  1. Installer Ollama et vérifier l'installation
  2. Exécuter un modèle : ollama run qwen3.5:2b
  3. Avoir une conversation : Demande-lui à propos des plateformes Jetson
  4. Essayer un modèle différent : Basculer vers qwen3:4b
  5. Utiliser l'API : Envoyer une requête via curl
  6. Optionnel : Configurer Open WebUI et y accéder depuis un navigateur

Références


Suivant : Continue vers Module 5.3 : Exécuter des LLM avec llama.cpp pour explorer l'inférence LLM légère !