VLM / Qwen2.5-VL
Qwen2.5-VL 3B
reComputer RK3588
Ein kompaktes und zugleich leistungsstarkes Vision-Language-Modell Qwen2.5-VL 3B, das für effiziente Schlussfolgerungen und Bereitstellung optimiert ist.
Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.
Erste Schritte
Armbian 26.8.7 Gnome oder neuer mit OTA overlayroot: Konfigurieren Sie den Docker-Speicher vor dem Starten von Containern um Overlay-Mount-Fehler zu vermeiden.
sudo docker run --rm -d \
--name recomputer-rk-vlm \
--privileged \
-p 8001:8001 \
-v /dev:/dev \
-e MODEL_KIND=vlm \
ghcr.io/seeed-projects/recomputer-rk-llm/vlm/qwen2.5-vl-3b-instruct:rk3588-w8a8Modelldetails
Armbian 26.8.7 Gnome oder neuer mit OTA overlayroot: Konfigurieren Sie den Docker-Speicher vor dem Starten von Containern um Overlay-Mount-Fehler zu vermeiden.
VLM-Bereitstellung auf reComputer RK
Diese allgemeine Anleitung gilt für alle im Katalog aufgeführten VLMs, einschließlich Qwen3.5. Jedes veröffentlichte VLM-Image enthält ein passendes RKLLM-Sprachmodell und einen RKNN-Vision-Encoder für das ausgewählte Board und die ausgewählte Quantisierung.
Die aktuelle Upstream-Umgebung verwendet RKLLM v1.3.1 sowie die RKNN-Laufzeitumgebung / Toolkit Lite 2 v2.5.0. Neue oder aktualisierte Modelldefinitionen müssen gebaut und veröffentlicht werden, bevor ihre Tags abgerufen werden können. Bauen Sie zuerst das Umgebungs-Image und erstellen Sie anschließend die ausgewählten Modell-Images neu; siehe das Upstream-Repository und die VLM-Bereitstellungsanleitung.
Modellprofile und Gemma 4-Vorschau
Modell-Images liefern die jeweils passenden Laufzeiteinstellungen. Qwen2.5-VL und Qwen3-VL verwenden VLM_IMAGE_SIZE=448. Gemma 4 verwendet VLM_MODEL_FAMILY=gemma4, VLM_IMAGE_SIZE=480 und RKLLM_EMBED_FLASH=1 und enthält einen Audio-Encoder. Folgen Sie für eigene Artefakte der passenden Upstream-Modelldefinition, anstatt Modellprofile oder Encoder-Dateien zu mischen.
Gemma 4 kann einen Base64-WAV-input_audio-Inhaltsbestandteil über denselben Chat-Completions-Endpunkt entgegennehmen. Benutzerdefinierte Gemma 4-Bereitstellungen müssen den passenden Audio-Encoder über AUDIO_MODEL_FILE oder AUDIO_MODEL_PATH laden; die Konfiguration ist in der Upstream-VLM-Bereitstellungsanleitung beschrieben.
Format veröffentlichter Images
ghcr.io/seeed-projects/recomputer-rk-llm/vlm/<model-id>:<platform>-<quantization>W4A16-G128-Images sind in der Regel ausschließlich für RK3576 vorgesehen. RK3588-VLM-Einträge verwenden W8A8.
Voraussetzungen
- reComputer RK3576 oder RK3588 mit einem 64-Bit-Linux-Image
- Docker und Docker Buildx sind installiert
- NPU-Zugriff über
/dev - Port 8001 ist auf dem Board verfügbar
VLM-Images verwenden die OpenAI-kompatible API und bieten keinen interaktiven Chat im Terminal.
Ein veröffentlichtes VLM ausführen
Ersetzen Sie <model-id> und <quantization> durch die Werte des ausgewählten Katalogeintrags.
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-w8a8Systemzustand und API-Dokumentation
curl http://localhost:8001/health
curl http://localhost:8001/docs
curl http://localhost:8001/redocMultimodale OpenAI-Anfrage
Der Server akzeptiert ein Bild pro Anfrage. Verwenden Sie eine öffentliche HTTP(S)-URL oder eine Base64-Daten-URL.
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
}'Geben Sie für ein lokales Bild eine Daten-URL in image_url.url an:
data:image/jpeg;base64,<base64-encoded-image>Multimodale Streaming-Anfrage
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
}'Python-Client:
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
Konfigurieren Sie einen benutzerdefinierten OpenAI-kompatiblen Anbieter:
- API-Host:
http://<board-ip>:8001/v1 - API-Schlüssel: ein beliebiger Wert, beispielsweise
rkllm-local - Modell:
rkllm-vision
Fügen Sie nach Auswahl des Anbieters ein Bild hinzu.
Fehlerbehebung
- Kombinieren Sie keine Artefakte des Sprachmodells und des Vision-Encoders von unterschiedlichen Boards oder Tags.
- Wenn der Server ein fehlendes Vision-Modell meldet, überprüfen Sie
MODEL_KIND=vlmund das Tag des veröffentlichten Images. - Prüfen Sie die Startausgabe mit
sudo docker logs recomputer-rk-vlm.
Eingaben und Ausgaben
Eingabe: ein Bild und eine Textaufforderung. Ausgabe: bildbezogener generierter Text über eine OpenAI-kompatible API.