lite-transformer 语言翻译模型
lite-transformer 语言翻译模型
环境搭建
安装 Anaconda
下载安装包
- 官网手动下载
官网连接:https://repo.anaconda.com/archive
选择合适的版本下载

- 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
- 然后出现下面图所示:

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

- 输入 yes

- 继续点击 enter

- 输入 yes,添加环境变量

确认安装成功
安装完成后使用如下命令,anaconda才能生效,命令行前方出现(base)字样。
source ~/.bashrc

创建 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: 感谢你
本文来自博客园,作者:杨旭0324,转载请注明原文链接:https://www.cnblogs.com/allalonewithyou/p/19161067,个人邮箱:yaonie4444@foxmail.com

浙公网安备 33010602011771号