CV / Lite Transformer

Lite Transformer

Engels-naar-Chinees vertaling met Lite Transformer, versneld met RKNN op reComputer RK3576 en RK3588.

2 downloads
Precisie
RKNN

Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.

Aan de slag

Implementeren
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:latest

REST API

Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.

Curl
curl http://localhost:8080/v1/chat/completions -d '{
  "model": "lite-transformer-rknn",
  "messages": [{"role": "user", "content": "Hello"}]
}'
Python
import requests

resp = requests.post(
    "http://localhost:8080/v1/chat/completions",
    json={"model": "lite-transformer-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())

Modeldetails

Snel aan de slag

1. Docker installeren

Voer de volgende opdrachten uit op het ontwikkelbord om Docker te installeren:

bash
# Installatiescript downloaden
curl -fsSL https://get.docker.com -o get-docker.sh
# Installeren via de Aliyun-mirror
sudo sh get-docker.sh --mirror Aliyun
# Docker starten en automatisch opstarten inschakelen
sudo systemctl enable docker
sudo systemctl start docker

2. Het project uitvoeren (één opdracht en Webvoorbeeld)

Het project vertaalt Engels naar Chinees met een RKNN-encoder en -decoder en toont de BPE-token-ID’s.

Stap A: images ophalen

bash
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:latest

Stap B: met één opdracht starten

Voor RK3588:

bash
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:latest

Openen via: http://<Board_IP>:8000


Voor RK3576:

bash
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:latest

Openen via: http://<Board_IP>:8000

3. Inferentie via de opdrachtregel

bash
python inference.py --platform rk3576 --model_dir model --text "thank you"

Gebruik --platform rk3588 wanneer u vanuit de RK3588-bronmap werkt.


🔌 API-documentatie

Endpoint: POST /api/models/lite_transformer/predict

Aanvraagparameters (Multipart/Form-Data):

  • text: verplichte Engelse tekst; na codering maximaal 15 bron-BPE-tokens plus EOS.

Gebruiksvoorbeeld:

bash
curl -X POST "http://127.0.0.1:8000/api/models/lite_transformer/predict" \
+    -F 'text=thank you'

Antwoordformaat (JSON):

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

De limiet geldt voor BPE-tokens; te lange invoer wordt geweigerd. GET /api/config geeft {} terug omdat er geen runtime-instellingen zijn. Per platform is één paar beschikbaar.

2. Interface voor systeemconfiguratie

Huidige configuratie ophalen

  • Endpoint: GET /api/config
  • Response: {}

Gebruik GET /api/health om het actieve platform, de modelstatus, geladen RKNN-bestanden en mogelijkheden te bekijken. OpenAPI-documentatie staat op /docs.


🛠️ Handleiding voor ontwikkelaars (productieadvies)

Beschrijving van de code

  • web_service.py:
    • Web-API: biedt de browserinterface, inferentie, configuratie, status en aanvraagvalidatie.
  • task_runtime.py:
    • Tokeniseert en controleert de lengte, voert de encoder uit en genereert Chinees autoregressief.
  • inference.py: Biedt eenmalige inferentie via de opdrachtregel.

Modelbestanden

OnderdeelBestand
Encodermodel/encoder.rknn
Decodermodel/decoder.rknn
BPE datamodel/bpe_order.txt
Token mapsmodel/cw_token_map_order.txt, model/dict_order.txt
Embeddingsmodel/position_embed.bin, model/token_embed.bin

Modellen wijzigen

  1. Plaats compatibele geconverteerde bestanden in model/ en behoud de bestandsnamen uit de tabel.
  2. Houd alle onderdelen uit dezelfde conversiebundel en behoud de contracten voor invoer, uitvoer en voorverwerking.
  3. Test vóór publicatie de Web-, REST- en opdrachtregelroutes op RK3576 en RK3588.

Lokale images bouwen

Voer dit uit vanuit de hoofdmap van reComputer-RK-CV:

bash
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_transformer

Invoer en uitvoer

Invoer: Engelse tekst met maximaal 15 bron-BPE-tokens plus EOS. Uitvoer: Chinese vertaling en informatie over invoer- en uitvoertokens.