Skip to content

OPUS-MT 部署

介绍

OPUS-MT 是由赫尔辛基大学开发的开源神经机器翻译项目,基于高性能的 Transformer 架构。该模型基于 Marian NMT 框架,并利用 OPUS 数据集中的大规模双语语料库进行训练。OPUS-MT 系列模型采用Transformer 架构,能够准确捕捉文本的语义并将其翻译为自然流畅的对应语种。该模型广泛应用于跨语言文本转换、内容本地化、多语言交流等场景,提供了高效、准确的翻译服务,适合各种翻译需求。

本章节将演示如何在边缘设备上完成 opus-mt-en-zh 部署、加载与翻译流程。提供以下方式部署:

  • AidLite Python API

在本案例中,模型推理运行在设备端 NPU 计算单元,通过代码调用相关接口接收用户输入并返回结果。

  • 设备:Rhino Pi-X1
  • 系统:Ubuntu 22.04
  • 源模型:opus-mt-en-zh
  • 量化模型精度:FP16
  • Model Farm 模型参考:YOLOv5s-INT8

支持平台

平台运行方式
Rhino Pi-X1Ubuntu 22.04, AidLux

准备工作

  1. Rhino Pi-X1 硬件
  2. Ubuntu 22.04 系统或 AidLux 系统

下载 YOLOv5s-INT8 模型资源

bash
mms list opus-mt

#------------------------可以看到 opus-mt 系列模型------------------------
Model          Precision  Chipset           Backend
-----          ---------  -------           -------
opus-mt-en-es  FP16       Qualcomm QCS8550  QNN2.36
opus-mt-en-zh  FP16       Qualcomm QCS8550  QNN2.36
opus-mt-es-en  FP16       Qualcomm QCS8550  QNN2.36
opus-mt-zh-en  FP16       Qualcomm QCS8550  QNN2.36

# 下载 YOLOv5s-int8
mms get -m opus-mt-en-zh -p fp16 -c qcs8550 -b qnn2.36 -d /home/aidlux/opus-mt-en-zh
cd /home/aidlux/opus-mt-en-zh
# 解压
unzip opus-mt-en-zh_qcs8550_qnn233_fp16_aidlite.zip

💡注意

开发者也可以在 Model Farm 网页上搜索并下载

AidLite SDK 安装

开发者也可以参考模型文件夹中的 README.md 安装 SDK

  • 确保 QNN 后端版本 ≥ 2.31
  • 确保 aidlite-sdkaidlite-qnnxxx 的版本是 2.3.x
bash
# AidLite & QNN 版本检查
dpkg -l | grep aidlite
#------------------------ 可以看到类似如下输出 ------------------------
ii  aidlite-qnn236       2.3.0.230         arm64        aidlux aidlite qnn236 backend plugin
ii  aidlite-sdk          2.3.0.230         arm64        aidlux inference module sdk

QNN & AidLite 版本更新

bash
# 安装 AidLite SDK
sudo aid-pkg update
sudo aid-pkg install aidlite-sdk
sudo aid-pkg install aidlite-qnn236

# aidlite sdk c++ check
python3 -c "import aidlite; print(aidlite.get_library_version())"

# aidlite sdk python check
python3 -c "import aidlite; print(aidlite.get_py_library_version())"

AidLite Python API 部署

安装 Python 依赖库

bash
cd /home/aidlux/opus-mt-en-zh/model_farm_opus-mt-en-zh_qcs8550_qnn233_fp16_aidlite/

pip install -r requirements.txt

运行 Python API 例子

bash
cd /home/aidlux/opus-mt-en-zh/model_farm_opus-mt-en-zh_qcs8550_qnn233_fp16_aidlite/

python main.py

可以在命令行看到模型推理耗时 (单位 ms)以及翻译结果:

plain
{'input_ids': tensor([[  906,    32,     3, 13193,  1657,    25,     0]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1]])}
encoder time: 0.007657289505004883
decoder time: 0.004458427429199219
decoder time: 0.004180431365966797
decoder time: 0.004227876663208008
decoder time: 0.004235744476318359
decoder time: 0.004320621490478516
[4393, 17546, 6008, 25]
今天天气怎么样?

开发者可以在 main.py 中修改输入语句