VLM / Qwen3.5

Qwen3.5 4B

Ein für RKLLM/RKNN optimiertes Qwen3.5-4B-Vision-Language-Modell zur Bildanalyse und Textgenerierung auf reComputer RK Boards.

79 Downloads
Größe
3.81GB

Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.

Erste Schritte

Bereitstellen
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

Modelldetails

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.

Format veröffentlichter Images

text
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

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

Systemzustand und API-Dokumentation

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

Multimodale OpenAI-Anfrage

Der Server akzeptiert ein Bild pro Anfrage. Verwenden Sie eine öffentliche HTTP(S)-URL oder eine Base64-Daten-URL.

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
  }'

Geben Sie für ein lokales Bild eine Daten-URL in image_url.url an:

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

Multimodale Streaming-Anfrage

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
  }'

Python-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

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=vlm und 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 Texteingabeaufforderung. Ausgabe: bildbezogener generierter Text über eine OpenAI-kompatible API.