CV / Lite Transformer
Lite Transformer
reComputer RK3588
Traducción de inglés a chino con Lite Transformer acelerada mediante RKNN en reComputer RK3576 y RK3588.
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.
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-lite_transformer:latestAPI REST
Usa la API REST para ejecutar inferencia. Copia los comandos siguientes.
curl http://localhost:8080/v1/chat/completions -d '{
"model": "lite-transformer-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "lite-transformer-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())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.
Inicio rápido
1. Instalar Docker
Ejecute los siguientes comandos en la placa de desarrollo para instalar Docker:
# Download installation script
curl -fsSL https://get.docker.com -o get-docker.sh
# Install using Aliyun mirror source
sudo sh get-docker.sh --mirror Aliyun
# Start Docker and enable auto-start on boot
sudo systemctl enable docker
sudo systemctl start docker2. Ejecutar el proyecto (un comando, vista previa web)
Este proyecto traduce del inglés al chino desde un navegador web. La interfaz muestra la traducción y los ID de tokens BPE procesados por el codificador y el decodificador RKNN.
Paso A: descargar las imágenes
sudo docker pull ghcr.io/Seeed-Projects/recomputer-rk-cv/rk3588-lite_transformer:latest
sudo docker pull ghcr.io/Seeed-Projects/recomputer-rk-cv/rk3576-lite_transformer:latestPaso B: ejecutar con un solo comando
Para RK3588:
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 \
-e RKNN_LOG_LEVEL=0 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-lite_transformer:latestAcceda mediante: http://<Board_IP>:8000
Para RK3576:
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 \
-e RKNN_LOG_LEVEL=0 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-lite_transformer:latestAcceda mediante: http://<Board_IP>:8000
No se requiere mapear cámaras, pantallas ni dispositivos de audio.
3. Inferencia por línea de comandos
python inference.py --platform rk3576 --model_dir model --text "thank you"Use --platform rk3588 al ejecutar el directorio fuente de RK3588.
🔌 Documentación de la API
El proyecto proporciona una interfaz REST síncrona para traducciones breves del inglés al chino. La documentación interactiva de OpenAPI está disponible en http://<Board_IP>:8000/docs.
1. Interfaz de traducción
Punto de acceso: POST /api/models/lite_transformer/predict
Parámetros de la solicitud (Multipart/Form-Data):
text: Texto fuente en inglés obligatorio. La entrada codificada no debe superar los 15 tokens BPE; EOS ocupa la posición restante de la entrada fija.
Ejemplo de uso:
curl -X POST "http://127.0.0.1:8000/api/models/lite_transformer/predict" \
-F 'text=thank you'Formato de respuesta (JSON):
{
"success": true,
"model": "lite_transformer",
"platform": "rk3576",
"inference_time_ms": 42.6,
"result": {
"input_text": "thank you",
"translation": "谢谢你",
"input_tokens": [1234, 5678],
"output_tokens": [9012, 3456],
"input_token_count": 2,
"output_token_count": 2
}
}El límite se aplica a tokens BPE, no a palabras. Una palabra puede producir varios tokens; se rechaza la entrada demasiado larga en lugar de truncarla silenciosamente. Este modelo compacto está pensado para frases cortas y no es comparable con un gran modelo de traducción de propósito general.
2. Estado y configuración del sistema
Obtener el estado actual del sistema
- Punto de acceso:
GET /api/health - Respuesta: Incluye la plataforma, los archivos de modelo cargados, el tipo de entrada y las capacidades del entorno de ejecución.
Obtener la configuración actual
- Punto de acceso:
GET /api/config - Respuesta:
{}porque Lite Transformer no tiene ajustes en tiempo de ejecución.
Se rechazan los datos no vacíos enviados a POST /api/config porque este modelo no tiene parámetros modificables durante la ejecución.
🛠️ Guía para desarrolladores (recomendaciones de producción)
Descripción del código
web_service.py:- API web: Aloja la interfaz del navegador, el punto de acceso de traducción, el estado de salud y el punto de acceso de configuración.
- Validación: Exige texto no vacío y devuelve los errores de entrada como respuestas HTTP 400.
task_runtime.py:- Tokenización: Aplica los datos BPE incluidos y valida explícitamente el límite de 15 tokens fuente.
- Inferencia RKNN: Ejecuta el codificador y después realiza decodificación autorregresiva con el decodificador y sus cachés de estado.
inference.py: Proporciona traducción de una sola ejecución por línea de comandos.
Archivos del modelo
| Componente | Archivo |
|---|---|
| Codificador | model/encoder.rknn |
| Decodificador | model/decoder.rknn |
| Datos de fusión BPE | model/bpe_order.txt |
| Mapas de tokens | model/cw_token_map_order.txt, model/dict_order.txt |
| Embeddings | model/position_embed.bin, model/token_embed.bin |
Modificar los modelos
- Coloque el codificador y el decodificador convertidos en
model/y conserve sus nombres de archivo. - Mantenga los diccionarios del tokenizador y los archivos de embeddings alineados con la conversión del codificador y el decodificador.
- Verifique que el reemplazo conserva la entrada de 15 tokens fuente y los contratos de caché del decodificador.
El codificador y el decodificador son etapas obligatorias de una canalización, no opciones de tamaño o cuantización. Actualmente, el proyecto original proporciona un paquete compatible por plataforma y ningún parámetro independiente de variante de modelo.
Crear imágenes locales
Ejecute desde la raíz de reComputer-RK-CV:
docker build -f docker/rk3576/lite_transformer.dockerfile \
-t rk3576-lite_transformer:local src/rk3576_lite_transformer
docker build -f docker/rk3588/lite_transformer.dockerfile \
-t rk3588-lite_transformer:local src/rk3588_lite_transformerEntradas y salidas
Entrada: texto inglés de hasta 15 tokens BPE de origen más EOS. Salida: traducción al chino e información de tokens de entrada y salida.