VLM / Qwen3.5

Qwen3.5 4B

Cette image VLM publiée combine le modèle de langage Qwen3.5 4B avec son encodeur visuel RKNN et une API multimodale compatible avec OpenAI.

23 téléchargements
Taille
3.81GB

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

Pour commencer

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:rk3576-w4a16-g128

Détails du modèle

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.

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.