CV / Lite Transformer
Lite Transformer
reComputer RK3576およびRK3588上でRKNNにより高速化された英語から中国語への翻訳用Lite Transformer。
2 ダウンロード
精度
RKNN使用しているデバイスを選択してください。セットアップガイドとドキュメントがそれに応じて更新されます。
はじめる
デプロイ
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
REST API を使用して推論を実行します。以下のコマンドをコピーしてください。
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())モデル詳細
クイックスタート
1. Dockerをインストールする
開発ボードで次のコマンドを実行してDockerをインストールします。
bash
# インストールスクリプトをダウンロード
curl -fsSL https://get.docker.com -o get-docker.sh
# Aliyunミラーを使用してインストール
sudo sh get-docker.sh --mirror Aliyun
# Dockerを起動し、自動起動を有効化
sudo systemctl enable docker
sudo systemctl start docker2. プロジェクトを実行する(1コマンド、Webプレビュー)
本プロジェクトはRKNNエンコーダーとデコーダーで英語から中国語へ翻訳し、入出力BPEトークンIDを表示します。
ステップA:イメージを取得
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ステップB:1クリックで実行
RKボード 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アクセス先: http://<Board_IP>:8000
RKボード 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アクセス先: http://<Board_IP>:8000
3. コマンドライン推論
bash
python inference.py --platform rk3576 --model_dir model --text "thank you"RK3588のソースディレクトリでは--platform rk3588を使用してください。
🔌 APIドキュメント
Endpoint: POST /api/models/lite_transformer/predict
リクエストパラメータ(Multipart/Form-Data):
text:必須の英語テキスト。符号化後は最大15個のBPEソーストークンとEOS。
使用例:
bash
curl -X POST "http://127.0.0.1:8000/api/models/lite_transformer/predict" \
+ -F 'text=thank you'レスポンス形式(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
}
}制限は単語ではなくBPEトークン単位で、超過入力は拒否されます。GET /api/configは{}を返し、実行時切替設定はありません。各プラットフォーム1組のみです。
2. システム設定インターフェース
現在の設定を取得
- Endpoint:
GET /api/config - Response:
{}
GET /api/healthで現在のプラットフォーム、モデルの準備状態、読み込まれたRKNNファイル、ランタイム機能を確認できます。OpenAPIドキュメントは/docsにあります。
🛠️ 開発者ガイド(本番環境向け推奨事項)
コードの説明
web_service.py:- Web API:ブラウザインターフェース、推論API、設定API、ヘルス状態、リクエスト検証を提供します。
task_runtime.py:- BPE分割と長さ検証を行い、エンコーダー実行後にデコーダーで中国語を自己回帰生成します。
inference.py: 単発のコマンドライン推論を提供します。
モデルファイル
| コンポーネント | ファイル |
|---|---|
| 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 |
モデルの変更
- 互換性のある変換済みファイルを
model/に配置し、表のファイル名を維持します。 - すべてのコンポーネントを同じ変換バンドルから用意し、既存の入出力と前処理規約を維持します。
- 公開前にRK3576とRK3588でWeb、REST API、コマンドラインの各経路を検証します。
ローカルイメージをビルドする
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入力と出力
入力:最大15個のソースBPEトークンとEOSからなる英語テキスト。出力:中国語訳と入出力トークン情報。