CV / Lite Transformer
Lite Transformer
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
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: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
Inicio rápido
1. Instalar Docker
Ejecute los siguientes comandos en la placa de desarrollo para instalar Docker:
# Descargar el script de instalación
curl -fsSL https://get.docker.com -o get-docker.sh
# Instalar mediante el mirror de Aliyun
sudo sh get-docker.sh --mirror Aliyun
# Iniciar Docker y habilitar el arranque automático
sudo systemctl enable docker
sudo systemctl start docker2. Ejecutar el proyecto (un comando y vista Web)
El proyecto traduce del inglés al chino con codificador y decodificador RKNN y muestra los tokens BPE.
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:latestAcceso: 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:latestAcceso: http://<Board_IP>:8000
3. Inferencia por línea de comandos
python inference.py --platform rk3576 --model_dir model --text "thank you"Use --platform rk3588 al ejecutar desde el directorio de código de RK3588.
🔌 Documentación de la API
Endpoint: POST /api/models/lite_transformer/predict
Parámetros de la solicitud (Multipart/Form-Data):
text: texto inglés obligatorio; tras codificar, máximo 15 tokens BPE de origen más EOS.
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 mide en tokens BPE y se rechaza el exceso. GET /api/config devuelve {} porque no hay ajustes intercambiables. Existe un único par por plataforma.
2. Interfaz de configuración del sistema
Obtener la configuración actual
- Endpoint:
GET /api/config - Response:
{}
Use GET /api/health para consultar la plataforma activa, el estado del modelo, los archivos RKNN cargados y las capacidades. La documentación OpenAPI está en /docs.
🛠️ Guía para desarrolladores (recomendaciones de producción)
Descripción del código
web_service.py:- API Web: proporciona la interfaz del navegador, inferencia, configuración, estado y validación de solicitudes.
task_runtime.py:- Tokeniza y valida la longitud, ejecuta el codificador y genera chino de forma autorregresiva.
inference.py: Proporciona inferencia puntual desde la línea de comandos.
Archivos del modelo
| Componente | Archivo |
|---|---|
| Encoder | model/encoder.rknn |
| Decoder | model/decoder.rknn |
| BPE data | model/bpe_order.txt |
| Token maps | model/cw_token_map_order.txt, model/dict_order.txt |
| Embeddings | model/position_embed.bin, model/token_embed.bin |
Modificar los modelos
- Coloque los archivos convertidos compatibles en
model/y conserve los nombres de la tabla. - Mantenga todos los componentes en el mismo paquete de conversión y respete los contratos de entrada, salida y preprocesamiento.
- Antes de publicar, pruebe las rutas Web, REST y de línea de comandos en RK3576 y RK3588.
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.