CV / Lite Transformer
Lite Transformer
reComputer RK3588
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
Armbian 26.8.7 Gnome oder neuer mit OTA overlayroot: Konfigurieren Sie den Docker-Speicher vor dem Starten von Containern um Overlay-Mount-Fehler zu vermeiden.
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
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
Armbian 26.8.7 Gnome oder neuer mit OTA overlayroot: Konfigurieren Sie den Docker-Speicher vor dem Starten von Containern um Overlay-Mount-Fehler zu vermeiden.
Schnellstart
1. Docker installieren
Führen Sie zur Installation von Docker folgende Befehle auf dem Entwicklungsboard aus:
# 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. Projekt ausführen (ein Befehl und Webvorschau)
Dieses Projekt bietet Übersetzung vom Englischen ins Chinesische über einen Webbrowser. Die Oberfläche zeigt die Übersetzung und die vom RKNN-Encoder und -Decoder verarbeiteten BPE-Token-IDs an.
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
Es ist keine Kamera-, Anzeige- oder Audio-Gerätezuordnung erforderlich.
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
Das Projekt bietet eine synchrone REST-Schnittstelle zur Übersetzung kurzer Texte vom Englischen ins Chinesische. Die interaktive OpenAPI-Dokumentation ist unter http://<Board_IP>:8000/docs verfügbar.
1. Übersetzungsschnittstelle
Endpunkt: POST /api/models/lite_transformer/predict
Anfrageparameter (Multipart/Form-Data):
text: Erforderlicher englischer Ausgangstext. Die kodierte Eingabe darf höchstens 15 BPE-Tokens enthalten; EOS belegt die verbleibende feste Eingabeposition.
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
}
}Die Grenze gilt für BPE-Tokens, nicht für Wörter. Ein Wort kann mehrere Tokens ergeben; zu lange Eingaben werden abgewiesen statt stillschweigend gekürzt. Dieses kompakte Modell ist für kurze Ausdrücke gedacht und nicht mit einem großen allgemeinen Übersetzungsmodell vergleichbar.
2. Systemstatus und Konfiguration
Aktuellen Systemstatus abrufen
- Endpunkt:
GET /api/health - Antwort: Enthält Plattform, geladene Modelldateien, Eingabetyp und Laufzeitfunktionen.
Aktuelle Konfiguration abrufen
- Endpunkt:
GET /api/config - Antwort:
{}, da Lite Transformer keine Laufzeiteinstellungen hat.
Nichtleere Daten an POST /api/config werden abgewiesen, da dieses Modell keine im Betrieb austauschbaren Laufzeitparameter besitzt.
🛠️ Entwicklerhandbuch (Empfehlungen für den Produktionseinsatz)
Codebeschreibung
web_service.py:- Web-API: Stellt die Browser-Benutzeroberfläche, den Übersetzungsendpunkt, den Systemstatus und den Konfigurationsendpunkt bereit.
- Validierung: Erfordert nichtleeren Text und gibt Eingabefehler als HTTP-400-Antworten zurück.
task_runtime.py:- Tokenisierung: Wendet die mitgelieferten BPE-Daten an und validiert explizit die 15-Token-Grenze für den Ausgangstext.
- RKNN-Inferenz: Führt den Encoder aus und dekodiert anschließend autoregressiv mit dem Decoder und seinen Zustandscaches.
inference.py: Bietet einmalige Übersetzung über die Befehlszeile.
Modelldateien
| Komponente | Datei |
|---|---|
| Encoder | model/encoder.rknn |
| Decoder | model/decoder.rknn |
| BPE-Merge-Daten | 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 den konvertierten Encoder und Decoder in
model/ab und behalten Sie deren Dateinamen bei. - Halten Sie die Tokenizer-Wörterbücher und Embedding-Dateien auf die Konvertierung von Encoder und Decoder abgestimmt.
- Stellen Sie sicher, dass der Ersatz die 15-Quelltoken-Eingabe und die Decoder-Cache-Verträge einhält.
Encoder und Decoder sind erforderliche Stufen einer Pipeline, keine Modellgrößen- oder Quantisierungswahlen. Das Upstream-Projekt bietet derzeit ein kompatibles Paket für jede Plattform und keinen separaten Modellvarianten-Parameter.
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.