VLM / Qwen3.5

Qwen3.5 2B

reComputer RK3588

Un modelo de visión y lenguaje Qwen3.5 2B optimizado para RKLLM/RKNN, diseñado para la comprensión de imágenes y la generación de texto en placas reComputer RK.

244 descargas
Tamaño
3.02GB

Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.

Primeros pasos

Armbian 26.8.7 Gnome o posterior con OTA overlayroot: Configura el almacenamiento de Docker antes de ejecutar contenedores para evitar errores de montaje de overlay.

Desplegar
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-2b:rk3588-w8a8

Detalles del modelo

Armbian 26.8.7 Gnome o posterior con OTA overlayroot: Configura el almacenamiento de Docker antes de ejecutar contenedores para evitar errores de montaje de overlay.

Implementación de VLM en reComputer RK

Esta guía compartida se aplica a todos los VLM incluidos en el catálogo, incluido Qwen3.5. Cada imagen de VLM publicada contiene un modelo de lenguaje RKLLM y un codificador de visión RKNN compatibles con la placa y la cuantización seleccionadas.

El entorno upstream actual utiliza RKLLM v1.3.1 y el runtime RKNN / Toolkit Lite 2 v2.5.0. Las definiciones de modelos nuevas o actualizadas deben compilarse y publicarse antes de poder descargar sus etiquetas. Compile primero la imagen del entorno y luego vuelva a compilar las imágenes de los modelos seleccionados; consulte el repositorio upstream y la guía de implementación de VLM.

Perfiles de modelos y vista previa de Gemma 4

Las imágenes de los modelos proporcionan su configuración de runtime correspondiente. Qwen2.5-VL y Qwen3-VL utilizan VLM_IMAGE_SIZE=448. Gemma 4 utiliza VLM_MODEL_FAMILY=gemma4, VLM_IMAGE_SIZE=480 y RKLLM_EMBED_FLASH=1, e incluye un codificador de audio. Para artefactos personalizados, siga la definición de modelo upstream correspondiente en lugar de mezclar perfiles de modelos o archivos de codificadores.

Gemma 4 puede aceptar una parte de contenido input_audio en WAV base64 a través del mismo endpoint de chat completions. Las implementaciones personalizadas de Gemma 4 deben cargar el codificador de audio correspondiente mediante AUDIO_MODEL_FILE o AUDIO_MODEL_PATH; consulte la guía de implementación de VLM upstream para la configuración.

Formato de la imagen publicada

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

Por lo general, las imágenes W4A16-G128 solo son compatibles con RK3576. Los registros de VLM para RK3588 utilizan W8A8.

Requisitos

  • reComputer RK3576 o RK3588 con una imagen de Linux de 64 bits
  • Docker y Docker Buildx instalados
  • Acceso a NPU a través de /dev
  • Puerto 8001 disponible en la placa

Las imágenes de VLM utilizan la API compatible con OpenAI y no proporcionan un chat interactivo en la terminal.

Ejecutar un VLM publicado

Sustituya <model-id> y <quantization> por los valores del registro seleccionado en el catálogo.

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

Documentación de estado y API

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

Solicitud multimodal compatible con OpenAI

El servidor acepta una imagen por solicitud. Utilice una URL HTTP(S) pública o una URL de datos en 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
  }'

Para una imagen local, coloque una URL de datos en image_url.url:

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

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

Cliente de 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

Configure un proveedor personalizado compatible con OpenAI:

  • Host de la API: http://<board-ip>:8001/v1
  • Clave de API: cualquier valor, como rkllm-local
  • Modelo: rkllm-vision

Adjunte una imagen después de seleccionar el proveedor.

Solución de problemas

  • No mezcle artefactos del modelo de lenguaje y del codificador de visión de distintas placas o etiquetas.
  • Si el servidor informa de que falta el modelo de visión, confirme MODEL_KIND=vlm y la etiqueta de la imagen publicada.
  • Inspeccione la salida de inicio con sudo docker logs recomputer-rk-vlm.

Entradas y salidas

Entrada: una imagen y un prompt de texto. Salida: texto generado basado en la imagen mediante una API compatible con OpenAI.