CV / Lite Transformer
Lite Transformer
Mit RKNN beschleunigte Englisch-Chinesisch-Übersetzung durch Lite Transformer auf reComputer RK3576 und RK3588.
Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.
Erste Schritte
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:latestREST API
Verwende die REST API für die Inferenz. Kopiere die folgenden Befehle.
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())Modelldetails
Schnellstart
1. Docker installieren
Führen Sie zur Installation von Docker folgende Befehle auf dem Entwicklungsboard aus:
# Installationsskript herunterladen
curl -fsSL https://get.docker.com -o get-docker.sh
# Über den Aliyun-Spiegel installieren
sudo sh get-docker.sh --mirror Aliyun
# Docker starten und automatischen Start aktivieren
sudo systemctl enable docker
sudo systemctl start docker2. Projekt ausführen (ein Befehl und Webvorschau)
Das Projekt übersetzt mit RKNN-Encoder und -Decoder vom Englischen ins Chinesische und zeigt die BPE-Token-IDs.
Schritt A: Images abrufen
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:latestSchritt B: mit einem Befehl starten
Für 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:latestAufruf: http://<Board_IP>:8000
Für 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:latestAufruf: http://<Board_IP>:8000
3. Inferenz über die Befehlszeile
python inference.py --platform rk3576 --model_dir model --text "thank you"Verwenden Sie im RK3588-Quellverzeichnis --platform rk3588.
🔌 API-Dokumentation
Endpoint: POST /api/models/lite_transformer/predict
Anfrageparameter (Multipart/Form-Data):
text: erforderlicher englischer Text; nach der Kodierung höchstens 15 Quell-BPE-Tokens plus EOS.
Anwendungsbeispiel:
curl -X POST "http://127.0.0.1:8000/api/models/lite_transformer/predict" \
+ -F 'text=thank you'Antwortformat (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
}
}Das Limit gilt für BPE-Tokens; zu lange Eingaben werden abgewiesen. GET /api/config liefert {}, da es keine Laufzeiteinstellungen gibt. Pro Plattform existiert ein Paar.
2. Schnittstelle zur Systemkonfiguration
Aktuelle Konfiguration abrufen
- Endpoint:
GET /api/config - Response:
{}
Mit GET /api/health können Sie Plattform, Modellbereitschaft, geladene RKNN-Dateien und Fähigkeiten prüfen. Die OpenAPI-Dokumentation befindet sich unter /docs.
🛠️ Entwicklerhandbuch (Empfehlungen für den Produktionseinsatz)
Codebeschreibung
web_service.py:- Web-API: stellt Browseroberfläche, Inferenz, Konfiguration, Systemstatus und Anfragevalidierung bereit.
task_runtime.py:- Tokenisiert und prüft die Länge, führt den Encoder aus und erzeugt Chinesisch autoregressiv.
inference.py: Ermöglicht einmalige Inferenz über die Befehlszeile.
Modelldateien
| Komponente | Datei |
|---|---|
| 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 |
Modelle ändern
- Legen Sie kompatible konvertierte Dateien in
model/ab und behalten Sie die Dateinamen aus der Tabelle bei. - Verwenden Sie Komponenten desselben Konvertierungspakets und behalten Sie Ein-/Ausgabe- sowie Vorverarbeitungsverträge bei.
- Testen Sie vor der Veröffentlichung Web-, REST- und Befehlszeilenpfade auf RK3576 und RK3588.
Lokale Images erstellen
Im Stammverzeichnis von reComputer-RK-CV ausführen:
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_transformerEingaben und Ausgaben
Eingabe: englischer Text mit höchstens 15 Quell-BPE-Tokens plus EOS. Ausgabe: chinesische Übersetzung und Informationen zu Ein- und Ausgabe-Tokens.