Démarrage rapide des exemples Jetson

Introduction

Le dépôt jetson-examples de Seeed Studios fournit des exemples d'IA pré-construits et prêts à exécuter pour les appareils NVIDIA Jetson. Au lieu de passer des heures à configurer des environnements et des dépendances, vous pouvez déployer des modèles d'IA complexes avec une seule commande en utilisant des conteneurs Docker.

Ce module vous montre comment utiliser l'outil CLI jetson-examples pour déployer rapidement des LLMs et d'autres modèles d'IA sur votre appareil Jetson.

jetson-examples

Qu'est-ce que jetson-examples ?

jetson-examples est un outil en ligne de commande qui :

  • Fournit un déploiement en une ligne pour les modèles d'IA populaires
  • Utilise des conteneurs Docker pour des environnements isolés et reproductibles
  • Inclut des configurations pré-optimisées pour le matériel Jetson
  • Supporte plusieurs frameworks : PyTorch, TensorRT, Ollama, et plus
FonctionnalitéDescription
Installation facileInstaller avec pip3 install jetson-examples
Exécution en une commandereComputer run pour déployer
Basé sur DockerEnvironnements cohérents sur tous les appareils
Auto-configurationPré-réglé pour les performances Jetson
Mises à jour régulièresNouveaux exemples ajoutés régulièrement

Installation

Installer l'outil CLI

bash
# Installer jetson-examples via pip
pip3 install jetson-examples

# Vérifier l'installation
reComputer --help

Alternative : Configuration manuelle de Docker

Si vous préférez le contrôle manuel :

bash
# Installer Docker (si pas déjà installé)
sudo apt-get update
sudo apt-get install -y docker.io

# Ajouter l'utilisateur au groupe docker (nécessite déconnexion/reconnexion)
sudo usermod -aG docker $USER

# Vérifier Docker
docker --version

jetson-examples-install

Exemples de LLM disponibles

Voici les exemples liés aux LLM disponibles dans le dépôt jetson-examples :

LLMs texte seul

ExempleTypeTaille du modèleCommande
llama3Texte (LLM)Modèle 4.9GBreComputer run llama3
gemma4Texte (LLM)Modèle 2.5GBreComputer run gemma4
qwen3.5-4bTexte (LLM)Modèle 2.5GBreComputer run qwen3.5-4b
qwen3.6-35bTexte (LLM)Modèle 28GBreComputer run qwen3.6-35b
nemotron-3-nanoTexte (LLM)Modèle 24.5GBreComputer run nemotron-3-nano
text-generation-webuiTexte (LLM)Modèle 3.9GBreComputer run text-generation-webui

Modèles vision-langage (VLM)

ExempleTypeTaille du modèleCommande
llava-v1.5VLMModèle 13GBreComputer run llava-v1.5-7b
llava-v1.6VLMModèle 13GBreComputer run llava-v1.6-vicuna-7b
live-vlm-webuiVLMModèle 13GBreComputer run live-vlm-webui
gemma4VLMModèle 2.5GBreComputer run gemma4

Audio et parole

ExempleTypeTaille du modèleCommande
whisperASR (Parole vers texte)Modèle 1.5GBreComputer run whisper
parler-ttsTTS (Texte vers parole)Image 6.9GBreComputer run parler-tts

Serveur d'inférence

ExempleTypeTaille du modèleCommande
ollamaServeur d'inférenceImage 10.5GBreComputer run ollama

Pour commencer

Exemple 1 : Exécuter Ollama

La façon la plus rapide de commencer avec les LLMs sur Jetson :

bash
# Déployer Ollama avec Docker
reComputer run ollama

Une fois en cours d'exécution, vous pouvez télécharger et exécuter des modèles :

bash
# Entrer dans le conteneur Docker
docker exec -it ollama bash

# Télécharger et exécuter un modèle
ollama run llama3.2:3b

Exemple 2 : Exécuter un modèle vision-langage

bash
# Déployer LLaVA pour la compréhension d'images
reComputer run llava-v1.5-7b

Cela configure un modèle capable de comprendre et de décrire des images.

Exemple 3 : Déployer Text Generation WebUI

Pour une interface web complète pour interagir avec les LLMs :

bash
# Déployer text-generation-webui (Oobabooga)
reComputer run text-generation-webui

Accédez à l'interface web à http://localhost:5000.

Exemple 4 : Déployer Whisper pour la reconnaissance vocale

bash
# Déployer OpenAI Whisper pour la transcription vocale
reComputer run whisper

Exemple pratique : Construire un chatbot

Mettons tout en place pour créer un chatbot simple en utilisant jetson-examples :

Étape 1 : Déployer Ollama

bash
reComputer run ollama

Étape 2 : Télécharger un modèle

bash
# Vérifier les conteneurs en cours d'exécution
docker ps

# Entrer dans le conteneur Ollama
docker exec -it ollama ollama pull llama3.2:3b

Étape 3 : Tester via l'API

bash
# Tester l'API de chat
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2:3b",
  "messages": [
    {"role": "user", "content": "What can you help me with?"}
  ],
  "stream": false
}'

Étape 4 : Intégration Python

python
import requests

def chat_with_model(user_message, model="llama3.2:3b"):
    response = requests.post(
        "http://localhost:11434/api/chat",
        json={
            "model": model,
            "messages": [{"role": "user", "content": user_message}],
            "stream": False
        }
    )
    return response.json()["message"]["content"]

# Chat interactif
while True:
    user_input = input("You: ")
    if user_input.lower() in ['quit', 'exit', 'q']:
        break
    response = chat_with_model(user_input)
    print(f"AI: {response}\n")

Gérer les conteneurs

Commandes Docker courantes

bash
# Lister les conteneurs en cours d'exécution
docker ps

# Lister tous les conteneurs (y compris arrêtés)
docker ps -a

# Voir les logs du conteneur
docker logs <container-name>

# Arrêter un conteneur
docker stop <container-name>

# Redémarrer un conteneur
docker restart <container-name>

# Supprimer un conteneur
docker rm <container-name>

# Entrer dans un conteneur en cours d'exécution
docker exec -it <container-name> bash

Surveillance des ressources

bash
# Surveiller l'utilisation des ressources des conteneurs
docker stats

# Vérifier l'utilisation du disque
docker system df

Personnaliser les déploiements

Variables d'environnement

De nombreux exemples supportent la configuration via des variables d'environnement :

bash
# Exemple : Définir les paramètres du modèle pour Ollama
docker run -d \
  --name ollama \
  --gpus all \
  -e OLLAMA_HOST=0.0.0.0:11434 \
  -p 11434:11434 \
  ollama/ollama:latest

Montages de volumes

Persister les données entre les redémarrages de conteneurs :

bash
# Monter un répertoire local pour le stockage des modèles
docker run -d \
  --name ollama \
  --gpus all \
  -v /path/to/models:/root/.ollama \
  -p 11434:11434 \
  ollama/ollama:latest

Configuration réseau

Accéder aux services depuis d'autres appareils sur votre réseau :

bash
# Lier à toutes les interfaces (pas seulement localhost)
docker run -d \
  --name ollama \
  --gpus all \
  -p 0.0.0.0:11434:11434 \
  ollama/ollama:latest

Conseils de performance

1. Utiliser le passthrough GPU

Toujours s'assurer que Docker a accès au GPU :

bash
# Vérifier l'accès GPU dans le conteneur
docker exec -it <container-name> nvidia-smi

2. Allouer la mémoire appropriée

bash
# Limiter la mémoire du conteneur (optionnel, pour les configurations multi-conteneurs)
docker run -d \
  --name ollama \
  --gpus all \
  --memory=12g \
  --memory-swap=16g \
  ollama/ollama:latest

3. Utiliser le stockage SSD

Les modèles se chargent plus rapidement depuis un SSD que depuis une carte SD ou eMMC.

Problèmes courants et solutions

Problème 1 : Permission Docker refusée

Problème : Got permission denied while trying to connect to the Docker daemon socket

Solution :

bash
# Ajouter l'utilisateur au groupe docker
sudo usermod -aG docker $USER

# Se déconnecter et se reconnecter pour que les changements prennent effet
# Ou exécuter dans la session actuelle :
newgrp docker

Problème 2 : Le conteneur ne démarre pas

Problème : Le conteneur s'arrête immédiatement après le démarrage

Solution :

bash
# Vérifier les logs du conteneur pour les erreurs
docker logs <container-name>

# Vérifier les ressources disponibles
free -h
df -h
nvidia-smi

Dépôts et projets d'exemples

Explorez ces exemples du dépôt jetson-examples :

llama-factory

Affiner les LLMs sur votre appareil Jetson :

bash
reComputer run llama-factory

Taille du modèle/données : 13.5GB

live-vlm-webui

Interface de modèle vision-langage en temps réel :

bash
reComputer run live-vlm-webui

Fonctionnalités : Traitement de flux de caméra en direct avec compréhension IA

deep-live-cam

Échange et traitement de visages en temps réel :

bash
reComputer run deep-live-cam

Exercice pratique

  1. Installer l'outil jetson-examples
  2. Déployer Ollama et exécuter llama3.2:3b
  3. Déployer LLaVA pour la compréhension d'images
  4. Créer un script Python qui interagit avec le modèle déployé
  5. Configurer Open WebUI pour une interface graphique
  6. Explorer d'autres exemples dans le dépôt

Références


Suivant : Continuez vers Module 5.6 : Construction d'un pipeline ASR + LLM + TTS pour créer un assistant vocal complet !