CV / Lite Transformer
Lite Transformer
Traduction de l’anglais vers le chinois avec Lite Transformer accélérée par RKNN sur reComputer RK3576 et RK3588.
Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.
Pour commencer
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
Utilisez l'API REST pour exécuter l'inférence. Copiez les commandes ci-dessous.
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())Détails du modèle
Démarrage rapide
1. Installer Docker
Exécutez les commandes suivantes sur la carte de développement pour installer Docker :
# Télécharger le script d’installation
curl -fsSL https://get.docker.com -o get-docker.sh
# Installer avec le miroir Aliyun
sudo sh get-docker.sh --mirror Aliyun
# Démarrer Docker et activer le lancement automatique
sudo systemctl enable docker
sudo systemctl start docker2. Exécuter le projet (une commande et aperçu Web)
Le projet traduit l’anglais vers le chinois avec un encodeur et un décodeur RKNN et affiche les jetons BPE.
Étape A : récupérer les images
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Étape B : exécuter en une commande
Pour 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:latestAccès: http://<Board_IP>:8000
Pour 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:latestAccès: http://<Board_IP>:8000
3. Inférence en ligne de commande
python inference.py --platform rk3576 --model_dir model --text "thank you"Utilisez --platform rk3588 depuis le répertoire source RK3588.
🔌 Documentation de l’API
Endpoint: POST /api/models/lite_transformer/predict
Paramètres de la requête (Multipart/Form-Data) :
text: texte anglais obligatoire ; après encodage, 15 jetons BPE source au maximum plus EOS.
Exemple d’utilisation :
curl -X POST "http://127.0.0.1:8000/api/models/lite_transformer/predict" \
+ -F 'text=thank you'Format de réponse (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
}
}La limite porte sur les jetons BPE et tout dépassement est refusé. GET /api/config renvoie {} car aucun réglage n’est modifiable à chaud. Une seule paire est fournie par plateforme.
2. Interface de configuration du système
Obtenir la configuration actuelle
- Endpoint:
GET /api/config - Response:
{}
Utilisez GET /api/health pour consulter la plateforme active, l’état du modèle, les fichiers RKNN chargés et les capacités. La documentation OpenAPI se trouve sous /docs.
🛠️ Guide du développeur (recommandations de production)
Description du code
web_service.py:- API Web : fournit l’interface du navigateur, l’inférence, la configuration, l’état de santé et la validation des requêtes.
task_runtime.py:- Effectue la tokenisation et la validation, exécute l’encodeur puis génère le chinois de façon autorégressive.
inference.py: Fournit une inférence ponctuelle en ligne de commande.
Fichiers du modèle
| Composant | Fichier |
|---|---|
| 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 |
Modifier les modèles
- Placez les fichiers convertis compatibles dans
model/en conservant les noms du tableau. - Conservez tous les composants du même lot de conversion et respectez les contrats d’entrée, de sortie et de prétraitement.
- Avant publication, testez les parcours Web, REST et ligne de commande sur RK3576 et RK3588.
Construire les images locales
Exécutez depuis la racine 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_transformerEntrées et sorties
Entrée : texte anglais limité à 15 jetons BPE source plus EOS. Sortie : traduction chinoise et informations sur les jetons d’entrée et de sortie.