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.
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.
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-w8a8Dé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
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
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
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
curl http://localhost:8001/health
curl http://localhost:8001/docs
curl http://localhost:8001/redocRequête multimodale OpenAI
Le serveur accepte une image par requête. Utilisez une URL HTTP(S) publique ou une URL de données base64.
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 :
data:image/jpeg;base64,<base64-encoded-image>Requête multimodale en streaming
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 :
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=vlmet 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.