LLM / deepseek-r1-distill-qwen

DeepSeek R1 Distill Qwen 1.5B

DeepSeek R1 Distill Qwen 1.5B optimizado para RKLLM para la generación local de texto en placas reComputer RK.

401 descargas
Tamaño
1.26GB

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

Primeros pasos

Desplegar
sudo docker run --rm -it \
  --name recomputer-rk-llm \
  --privileged \
  -p 8001:8001 \
  -v /dev:/dev \
  -e INTERACTIVE_CHAT=true \
  -e LOG_LEVEL=warning \
  ghcr.io/seeed-projects/recomputer-rk-llm/llm/deepseek-r1-distill-qwen-1.5b:rk3576-w4a16-g128

Detalles del modelo

Implementación de LLM en reComputer RK

Esta guía compartida se aplica a todos los LLM incluidos en el catálogo. Seleccione la familia del modelo y la cuantización en la página del modelo y, a continuación, use la etiqueta de imagen publicada correspondiente.

Formato de la imagen publicada

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

Las imágenes de LLM publicadas incluyen el modelo .rkllm convertido, el runtime de RKLLM y un servidor compatible con OpenAI. Las etiquetas disponibles se enumeran en los registros del catálogo de cada familia de modelos. Las imágenes W4A16/W4A16-G128 generalmente solo son compatibles con RK3576; los registros de RK3588 utilizan W8A8.

Requisitos

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

Los ejemplos utilizan --privileged y -v /dev:/dev para acceder a la NPU. La API local no tiene autenticación ni TLS; manténgala en una red de confianza.

Ejecutar un LLM publicado

Reemplace <model-id> y <platform>-<quantization> por los valores que se muestran en la página del modelo seleccionado.

RK3576

bash
sudo docker run --rm -it \
  --name recomputer-rk-llm \
  --privileged \
  -p 8001:8001 \
  -v /dev:/dev \
  -e INTERACTIVE_CHAT=true \
  -e LOG_LEVEL=warning \
  ghcr.io/seeed-projects/recomputer-rk-llm/llm/<model-id>:rk3576-<quantization>

RK3588

bash
sudo docker run --rm -it \
  --name recomputer-rk-llm \
  --privileged \
  -p 8001:8001 \
  -v /dev:/dev \
  -e INTERACTIVE_CHAT=true \
  -e LOG_LEVEL=warning \
  ghcr.io/seeed-projects/recomputer-rk-llm/llm/<model-id>:rk3588-w8a8

El comando incluido habilita el chat interactivo en la terminal. Para ejecutarlo en segundo plano, cambie -it por -d y elimine INTERACTIVE_CHAT=true.

Estado y documentación

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

El servicio está listo cuando el endpoint de estado responde correctamente.

API compatible con OpenAI

Solicitud sin streaming:

bash
curl http://localhost:8001/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "rkllm-model",
    "messages": [{"role": "user", "content": "Explain edge AI in one sentence."}],
    "max_tokens": 128,
    "stream": false
  }'

Solicitud con streaming:

bash
curl -N http://localhost:8001/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "rkllm-model",
    "messages": [{"role": "user", "content": "Give me three uses for an edge AI board."}],
    "max_tokens": 128,
    "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-model",
    messages=[{"role": "user", "content": "Hello from reComputer RK."}],
    max_tokens=128,
)
print(response.choices[0].message.content)

API compatible con Ollama

bash
curl http://localhost:8001/api/chat \
  -H 'Content-Type: application/json' \
  -d '{"model":"rkllm-model","messages":[{"role":"user","content":"Hello"}],"stream":false}'

Detener y solucionar problemas

bash
sudo docker logs recomputer-rk-llm
sudo docker stop recomputer-rk-llm

Si la detección de la plataforma falla, establezca TARGET_PLATFORM=rk3576 o TARGET_PLATFORM=rk3588. Si el puerto 8001 está ocupado, cambie la asignación del puerto del host y utilice la nueva URL de la API.

Entradas y salidas

Entrada: prompt de texto o mensajes de chat. Salida: texto generado mediante una API compatible con OpenAI.