Déploiement du modèle Youtu-VL-4B-Instruct pour la question-réponse sur images

Obtenir rapidement des réponses à partir d'images complexes, extraire du texte de captures d'écran ou simplement demander l'interprétation d'une photo : les modèles de langage visuels rendent ces tâches accessibles. Le modèle Youtu-VL-4B-Instruct, développé par le laboratoire Tencent YouTu, se distingue par sa légèreté (4 milliards de paramètres) et sa facilité de déploiement via une image container préconfigurée. Ce guide technique détaille la mise en place et l'utilisation de ce modèle multimodal.

Configuration requise

Avant le déploiement, vérifiez la compatibilité matérielle. Le modèle requiert un GPU NVIDIA avec une mémoire vidéo suffisante.

Composant Minimum Recommandé
GPU NVIDIA, VRAM ≥ 16 Go (ex. RTX 4080 16G) RTX 4090 24 Go ou A100 40 Go
Mémoire RAM ≥ 16 Go ≥ 32 Go
Environnement CUDA Version 12.x 12.4 ou supérieure
Espace disque ≥ 20 Go ≥ 30 Go

L'installation de Python, CUDA ou le téléchargement manuel des poids du modèle sont inutiles grâce à l'image container fournie, qui encapsule l'ensemble des dépendances.

Lancement du service

Après avoir démarré l'instance à partir de l'image container, le service d'inférence se lance automatiquement via le gestionnaire de processus Supervisord. L'interface web et l'API sont accessibles sur le port 7860 par défaut.

Pour gérer le service manuellement, utilisez les commandes Supervisord suivantes dans le terminal de l'instance :

# Vérifier l'état du service
supervisorctl status

# Redémarrer le service (en cas d'anomalie)
supervisorctl restart youtu-vl-inference

# Arrêter le service pour libérer les ressources
supervisorctl stop youtu-vl-inference

# Démarrer le service
supervisorctl start youtu-vl-inference

Utilisation via l'interface web

L'interface graphique, accessible via http://<IP_SERVEUR>:7860, propose une zone de conversation. Pour analyser une image :

  1. Chargez l'image dans la zone dédiée.
  2. Saisissez une question en langage naturel dans le champ de texte.
  3. Envoyez la requête pour obtenir une réponse détaillée.

Exemples de requêtes :

  • "Décris le contenu de cette photo."
  • "Quels animaux sont présents sur l'image ?"
  • "Quelle est la tendance illustrée par ce graphique ?"

Le paramètre "Temperature" influence la créativité des réponses. Une valeur basse (ex. 0.1) produit des réponses prévisibles, tandis qu'une valeur élevée (ex. 0.8) favorise des réponses plus variées mais potentiellement moins précises.

Intégration via l'API

L'API compatible avec le format OpenAI permet une intégration programmatique. La requête doit systématiquement inclure un message système.

Exemple de requête texte via curl

curl -X POST http://localhost:7860/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "youtu-vl-4b",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Présente-toi brièvement."}
    ],
    "max_tokens": 512
  }'

Exemple d'appel visuel en Python

import base64
import requests

def query_image(image_path, question):
    # Encodage de l'image en base64
    with open(image_path, "rb") as file:
        image_data = base64.b64encode(file.read()).decode("utf-8")
    
    # Construction de la requête
    payload = {
        "model": "youtu-vl-4b",
        "messages": [
            {"role": "system", "content": "You are a helpful assistant."},
            {
                "role": "user",
                "content": [
                    {
                        "type": "image_url",
                        "image_url": {"url": f"data:image/jpeg;base64,{image_data}"}
                    },
                    {"type": "text", "text": question}
                ]
            }
        ],
        "max_tokens": 1024
    }
    
    # Envoi de la requête
    response = requests.post(
        "http://localhost:7860/v1/chat/completions",
        json=payload,
        timeout=180
    )
    
    return response.json()["choices"][0]["message"]["content"]

# Utilisation
response = query_image("photo.jpg", "Décris cette scène en détail.")
print(response)

Fonctionnalités avancées

Le modèle prend en charge des tâches de vision par ordinateur spécialisées via des instructions spécifiques :

  • Localisation d'objets : Fournir les coordonnées de délimitation d'une entité décrite dans l'image.
  • Détection d'objets : Identifier et localiser tous les objets présents dans la scène.

Résolution des problèmes courants

Service inaccessible : Vérifiez l'état du service avec supervisorctl status, puis l'écoute du port 7860 (netstat -tlnp | grep 7860). Contrôlez les règles du pare-feu.

Temps de réponse élevé : Réduisez la résolution de l'image envoyée. Vérifiez la charge de la mémoire GPU (nvidia-smi). Des questions complexes ou des généra longues augmentent la latence.

Réponses incohérentes : Assurez-vous que la requête inclut un message système. Vérifiez le format de l'image encodée (préfixe data:image/jpeg;base64,...).

Étiquettes: Youtu-VL-4B Modèle de langage visuel Déploiement container API multimodale Traitement d'image

Publié le 15 juin à 05h44