CV / Lite Transformer
Lite Transformer
reComputer RK3588
Engels-naar-Chinees vertaling met Lite Transformer, versneld met RKNN op reComputer RK3576 en RK3588.
Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.
Aan de slag
Armbian 26.8.7 Gnome of nieuwer met OTA overlayroot: Configureer de Docker-opslag voordat je containers start om overlay-mountfouten te voorkomen.
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:latestREST API
Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.
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())Modeldetails
Armbian 26.8.7 Gnome of nieuwer met OTA overlayroot: Configureer de Docker-opslag voordat je containers start om overlay-mountfouten te voorkomen.
Snel aan de slag
1. Docker installeren
Voer de volgende opdrachten uit op het ontwikkelbord om Docker te installeren:
# 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. Het project uitvoeren (één opdracht, webvoorbeeld)
Dit project biedt vertaling van Engels naar Chinees via een webbrowser. De interface toont de vertaling en de BPE-token-ID’s die door de RKNN-encoder en -decoder worden verwerkt.
Stap A: images ophalen
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:latestStap B: met één opdracht starten
Voor 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:latestOpenen via: http://<Board_IP>:8000
Voor 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:latestOpenen via: http://<Board_IP>:8000
Er is geen toewijzing van camera, beeldscherm of audio-apparaat vereist.
3. Inferentie via de opdrachtregel
python inference.py --platform rk3576 --model_dir model --text "thank you"Gebruik --platform rk3588 wanneer u vanuit de RK3588-bronmap werkt.
🔌 API-documentatie
Het project biedt een synchrone REST-interface voor het vertalen van korte teksten van Engels naar Chinees. Interactieve OpenAPI-documentatie is beschikbaar op http://<Board_IP>:8000/docs.
1. Vertaalinterface
Endpoint: POST /api/models/lite_transformer/predict
Aanvraagparameters (Multipart/Form-Data):
text: Verplichte Engelse brontekst. De gecodeerde invoer mag niet meer dan 15 BPE-tokens bevatten; EOS neemt de resterende vaste invoerpositie in.
Gebruiksvoorbeeld:
curl -X POST "http://127.0.0.1:8000/api/models/lite_transformer/predict" \
-F 'text=thank you'Antwoordformaat (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, niet voor woorden. Een woord kan meerdere tokens opleveren; te lange invoer wordt afgewezen in plaats van stilzwijgend afgekapt. Dit compacte model is bedoeld voor korte zinnen en is niet vergelijkbaar met een groot algemeen vertaalmodel.
2. Systeemstatus en configuratie
Huidige systeemstatus ophalen
- Endpoint:
GET /api/health - Antwoord: Bevat het platform, de geladen modelbestanden, het invoertype en de runtimefuncties.
Huidige configuratie ophalen
- Endpoint:
GET /api/config - Antwoord:
{}, omdat Lite Transformer geen runtime-instellingen heeft.
Niet-lege gegevens naar POST /api/config worden afgewezen, omdat dit model geen tijdens het uitvoeren wijzigbare runtimeparameters heeft.
🛠️ Handleiding voor ontwikkelaars (productieadvies)
Beschrijving van de code
web_service.py:- Web-API: host de browserinterface, het vertaalendpoint, de gezondheidsstatus en het configuratieendpoint.
- Validatie: vereist niet-lege tekst en geeft invoerfouten terug als HTTP 400-antwoorden.
task_runtime.py:- Tokenisatie: past de meegeleverde BPE-gegevens toe en valideert uitdrukkelijk de brongrens van 15 tokens.
- RKNN-inferentie: voert de encoder uit en decodeert daarna autoregressief met de decoder en diens statuscaches.
inference.py: biedt eenmalige vertaling via de opdrachtregel.
Modelbestanden
| Onderdeel | Bestand |
|---|---|
| Encoder | model/encoder.rknn |
| Decoder | model/decoder.rknn |
| BPE-samenvoeggegevens | model/bpe_order.txt |
| Tokenmappen | model/cw_token_map_order.txt, model/dict_order.txt |
| Embeddings | model/position_embed.bin, model/token_embed.bin |
Modellen wijzigen
- Plaats de geconverteerde encoder en decoder in
model/en behoud hun bestandsnamen. - Houd de tokenizer-woordenboeken en de embeddingbestanden afgestemd op de conversie van encoder en decoder.
- Controleer dat de vervanging de invoer van 15 brontokens en de decodercachecontracten handhaaft.
De encoder en decoder zijn vereiste fasen van één pipeline, geen modelgroottes of kwantiseringskeuzes. Het upstream-project levert momenteel één compatibele bundel per platform en geen aparte parameter voor modelvarianten.
Lokale images bouwen
Voer dit uit vanuit de hoofdmap van 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_transformerInvoer en uitvoer
Invoer: Engelse tekst met maximaal 15 bron-BPE-tokens plus EOS. Uitvoer: Chinese vertaling en informatie over invoer- en uitvoertokens.