VLM / Qwen3.5

Qwen3.5 4B

reComputer RK3588

Un modèle vision-langage Qwen3.5 4B optimisé pour RKLLM/RKNN, destiné à la compréhension d’images et à la génération de texte sur les cartes reComputer RK.

123 téléchargements
Taille
5.17GB

Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.

Pour commencer

Armbian 26.8.7 Gnome ou version ultérieure avec OTA overlayroot : Configurez le stockage de Docker avant de lancer des conteneurs pour éviter les erreurs de montage overlay.

Déployer
sudo docker run --rm -d \
  --name recomputer-rk-vlm \
  --privileged \
  -p 8001:8001 \
  -v /dev:/dev \
  -e MODEL_KIND=vlm \
  -e LOG_LEVEL=warning \
  ghcr.io/seeed-projects/recomputer-rk-llm/vlm/qwen3.5-4b:rk3588-w8a8

Détails du modèle

Armbian 26.8.7 Gnome ou version ultérieure avec OTA overlayroot : Configurez le stockage de Docker avant de lancer des conteneurs pour éviter les erreurs de montage overlay.

Déploiement de VLM sur reComputer RK

Ce guide commun s’applique à chaque VLM répertorié dans le catalogue, y compris Qwen3.5. Chaque image VLM publiée contient un modèle de langage RKLLM correspondant et un encodeur de vision RKNN pour la carte et la quantification sélectionnées.

L’environnement upstream actuel utilise RKLLM v1.3.1 et le runtime RKNN / Toolkit Lite 2 v2.5.0. Les définitions de modèles nouvelles ou mises à jour doivent être compilées et publiées avant que leurs tags puissent être téléchargés. Compilez d’abord l’image d’environnement, puis recompilez les images des modèles sélectionnés ; consultez le dépôt upstream et le guide de déploiement VLM.

Profils de modèles et aperçu de Gemma 4

Les images des modèles fournissent leurs paramètres de runtime correspondants. Qwen2.5-VL et Qwen3-VL utilisent VLM_IMAGE_SIZE=448. Gemma 4 utilise VLM_MODEL_FAMILY=gemma4, VLM_IMAGE_SIZE=480 et RKLLM_EMBED_FLASH=1, et inclut un encodeur audio. Pour des artefacts personnalisés, suivez la définition de modèle upstream correspondante plutôt que de mélanger des profils de modèles ou des fichiers d’encodeur.

Gemma 4 peut accepter une partie de contenu input_audio au format WAV base64 via le même point de terminaison chat completions. Les déploiements personnalisés de Gemma 4 doivent charger l’encodeur audio correspondant via AUDIO_MODEL_FILE ou AUDIO_MODEL_PATH ; consultez le guide de déploiement VLM upstream pour la configuration.

Format des images publiées

text
ghcr.io/seeed-projects/recomputer-rk-llm/vlm/<model-id>:<platform>-<quantization>

Les images W4A16-G128 sont généralement réservées au RK3576. Les entrées VLM pour RK3588 utilisent W8A8.

Prérequis

  • reComputer RK3576 ou RK3588 exécutant une image Linux 64 bits
  • Docker et Docker Buildx installés
  • Accès au NPU via /dev
  • Port 8001 disponible sur la carte

Les images VLM utilisent l’API compatible OpenAI et ne fournissent pas de chat interactif dans le terminal.

Exécuter un VLM publié

Remplacez <model-id> et <quantization> par les valeurs de l’entrée de catalogue sélectionnée.

RK3576

bash
sudo docker run --rm -d \
  --name recomputer-rk-vlm \
  --privileged \
  -p 8001:8001 \
  -v /dev:/dev \
  -e MODEL_KIND=vlm \
  -e LOG_LEVEL=warning \
  ghcr.io/seeed-projects/recomputer-rk-llm/vlm/<model-id>:rk3576-<quantization>

RK3588

bash
sudo docker run --rm -d \
  --name recomputer-rk-vlm \
  --privileged \
  -p 8001:8001 \
  -v /dev:/dev \
  -e MODEL_KIND=vlm \
  -e LOG_LEVEL=warning \
  ghcr.io/seeed-projects/recomputer-rk-llm/vlm/<model-id>:rk3588-w8a8

État de fonctionnement et documentation de l’API

bash
curl http://localhost:8001/health
curl http://localhost:8001/docs
curl http://localhost:8001/redoc

Requête multimodale OpenAI

Le serveur accepte une image par requête. Utilisez une URL HTTP(S) publique ou une URL de données base64.

bash
curl -X POST http://localhost:8001/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "rkllm-vision",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "Describe this image in detail."},
        {"type": "image_url", "image_url": {"url": "https://example.com/your-image.jpg"}}
      ]
    }],
    "stream": false
  }'

Pour une image locale, placez une URL de données dans image_url.url :

text
data:image/jpeg;base64,<base64-encoded-image>

Requête multimodale en streaming

bash
curl -N -X POST http://localhost:8001/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "rkllm-vision",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "List the objects visible in this image."},
        {"type": "image_url", "image_url": {"url": "https://example.com/your-image.jpg"}}
      ]
    }],
    "stream": true
  }'

Client Python :

python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8001/v1", api_key="dummy-key")
response = client.chat.completions.create(
    model="rkllm-vision",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Describe this image."},
            {"type": "image_url", "image_url": {"url": "https://example.com/your-image.jpg"}},
        ],
    }],
    max_tokens=128,
)
print(response.choices[0].message.content)

Cherry Studio

Configurez un fournisseur personnalisé compatible OpenAI :

  • Hôte de l’API : http://<board-ip>:8001/v1
  • Clé API : une valeur quelconque, telle que rkllm-local
  • Modèle : rkllm-vision

Joignez une image après avoir sélectionné le fournisseur.

Dépannage

  • Ne mélangez pas les artefacts du modèle de langage et de l’encodeur de vision provenant de cartes ou de tags différents.
  • Si le serveur signale l’absence d’un modèle de vision, vérifiez MODEL_KIND=vlm et le tag de l’image publiée.
  • Consultez la sortie de démarrage avec sudo docker logs recomputer-rk-vlm.

Entrées et sorties

Entrée : une image et une invite textuelle. Sortie : texte généré à partir du contenu de l’image via une API compatible avec OpenAI.