lite-transformer 语言翻译模型

lite-transformer 语言翻译模型

环境搭建

安装 Anaconda

下载安装包

  • 官网手动下载

官网连接:https://repo.anaconda.com/archive

选择合适的版本下载

image.png

  • linux上直接下载
wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh

安装

需要首先赋权再执行安装程序,依次输入下面两句命令:

chmod +x Anaconda3-2021.11-Linux-x86_64.sh

./Anaconda3-2021.11-Linux-x86_64.sh
  • 然后出现下面图所示:

image.png

  • 点击enter(回车键),此时显示Anaconda的信息,并且会出现More,继续按Enter,直到如下图所示:

image.png

  • 输入 yes

image.png

  • 继续点击 enter

image.png

  • 输入 yes,添加环境变量

image.png

确认安装成功

安装完成后使用如下命令,anaconda才能生效,命令行前方出现(base)字样。

source ~/.bashrc

image.png

创建 conda 环境

(base) jijc@u20:~$ conda create -n lite-transformer python=3.8 -y

查看虚拟环境列表

conda info -e

进入 rkllm conda 环境

conda activate lite-transformer

退出环境

conda deactivate

安装工具

pip install torch==1.12.1 torchvision==0.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install configargparse>=0.14

rknn-toolkit2 安装

pip install rknn-toolkit2 -i https://pypi.tuna.tsinghua.edu.cn/simple

下载 rknn_model_zoo-main

cd ~
git clone git@github.com:airockchip/rknn_model_zoo.git

安装 lite-transformer

mkdir -p ~/nmt/
cd ~/nmt/
git clone https://github.com/airockchip/lite-transformer.git
cd lite-transformer
pip install --editable .

下载交叉编译工具

mkdir ~/opts
cd ~/opts
wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz
tar -xvf gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz

数据预处理

依赖包安装

mkdir -p ~/nmt/tools
cd  ~/nmt/tools
git clone https://github.com/moses-smt/mosesdecoder.git
git clone https://github.com/rsennrich/subword-nmt.git
pip install jieba

下载数据集

mkdir -p ~/nmt/dataset/ncv15/
cd ~/nmt/dataset/ncv15/
wget https://data.statmt.org/news-commentary/v15/training/news-commentary-v15.en-zh.tsv.gz
# 解压 news-commentary-v15.en-zh.tsv
gunzip wikititles-v2.zh-en.tsv.gz

预处理

根据实际情况修改lite-transformer/rk_tools/dataset_preprocess.sh中source的路径,以及lite-transformer/rk_tools/preprocess_env.sh中NMT_ROOT的路径 执行

lite-transformer/rk_tools/dataset_preprocess.sh

进行数据预处理。

训练

执行如下命令进行训练

CUDA_VISIBLE_DEVICES="0,1,2" python3 train.py ~/nmt/dataset/ncv15/ --configs configs/rk_nmt.yml

可以根据需要修改configs/rk_nmt.yml中的max-update来决定迭代的epoch。

导出模型

导出 ONNX 模型

修改 ./rk_tools/export_onnx.sh 中 model_file 路径
执行 ./rk_tools/export_onnx.sh 在export_onnx目录下导出encoder/decoder的onnx模型。

# 注意:
Pytorch版本建议使用 1.11 以上版本,1.10 版本在转出 onnx 模型时可能会遇到问题

rknn_model_zoo-main中有提供rk已训练好的英译中 onnx 模型,可运行以下脚本下载:

cd model
./download_model.sh

转化为 RKNN 模型

# 将导出的 onnx 模型复制到 ~/rknn_model_zoo-main/examples/lite_transformer/model/ 下
cd ~/rknn_model_zoo-main/examples/lite_transformer/python

python convert.py ../model/lite-transformer-encoder-16.onnx rk3568
# output model will be saved as ../model/lite-transformer-encoder-16.rknn
python convert.py ../model/lite-transformer-decoder-16.onnx rk3568
# output model will be saved as ../model/lite-transformer-decoder-16.rknn

移植

编译 C/C++ Demo

cd ~/rknn_model_zoo-main
export GCC_COMPILER=~/opts/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu
./build-linux.sh -t rk3568 -a aarch64 -d lite_transformer

移植到板子中

adb push ~/rknn_model_zoo-main/install/rk356x_linux_aarch64/rknn_lite_transformer_demo /userdata/

运行 demo

# cd /userdata/rknn_lite_transformer_demo
# export LD_LIBRARY_PATH=./lib
# ./rknn_lite_transformer_demo model/lite-transformer-encoder-16.rknn model/lite-transformer-decoder-16.rknn thank you

bpe preprocess use: 0.063000 ms
rknn encoder run use: 2.037000 ms
rknn decoder once run use: 6.686000 ms
decoder run 4 times. cost use: 30.348000 ms
inference time use: 33.730999 ms
output_strings: 感谢你
posted @ 2025-10-23 16:48  杨旭0324  阅读(2)  评论(0)    收藏  举报