玩玩“小藤”开发者套件 Atlas 200I DK A2 之部署智能语音助手
- 0. 背景
- 1. 安装 flac
- 2. 创建自签名证书
- 3. 创建虚拟环境
- 4. 安装PyTorch
- 5. 安装 PyTorch 插件 torch_npu
- 6. 安装APEX混合精度模块
- 7. 安装依赖库
- 8. 使用 gradio 启动智能语音助手
- 9. 访问智能语音助手
0. 背景
总所周知,英伟达的GPU供不应求,还各种限制。华为推出了升腾AI可以提供AI算力,那就玩玩“小藤”开发者套件 Atlas 200I DK A2 学习学习。
今天就在Atlas 200I DK A2 部署我自己开发的智能语音助手。
智能语音助手代码还未开放。
1. 安装 flac
flac 是一种无损音频压缩格式,全称是 Free Lossless Audio Codec(自由无损音频编码)。
sudo apt-get install flac
#sudo apt-get install portaudio19-dev
2. 创建自签名证书
我的 IP 是 192.168.31.160,
mkdir -p /u01/certs; cd /u01/certs
openssl genrsa -des3 -passout pass:123456 -out ca.key 2048
openssl rsa -in ca.key -passin pass:123456 -out ca.key
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt -subj "/CN=myserver.local"
openssl genrsa -out tls.key 2048
openssl req -new -key tls.key -out tls.csr -subj "/CN=myserver.local"
cat > server.ext <<EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.myserver.local
DNS.2 = *.oracle.myserver.local
DNS.3 = 192.168.31.160
EOF
openssl x509 -req -in tls.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out tls.crt -days 3650 -extfile server.ext
3. 创建虚拟环境
conda create -n talk python==3.9 -y
conda activate talk
4. 安装PyTorch
我一开始尝试安装 PyTorch 1.11.0 版本,但是执行下面命令总是报错,后来选择安装 PyTorch 2.0.1 版本是可以执行成功的。所以本文章里以安装 PyTorch 2.0.1 版本进行说明。
python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"
安装PyTorch环境依赖,
pip3 install pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install wheel -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install typing_extensions -i https://pypi.tuna.tsinghua.edu.cn/simple
获取安装包,
wget https://download.pytorch.org/whl/torch-2.0.1-cp39-cp39-manylinux2014_aarch64.whl
安装PyTorch,
pip3 install torch-2.0.1-cp39-cp39-manylinux2014_aarch64.whl
5. 安装 PyTorch 插件 torch_npu
获取PyTorch插件的whl包,
wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc2-pytorch2.0.1/torch_npu-2.0.1rc1-cp39-cp39-linux_aarch64.whl
执行如下命令安装,
pip3 install torch_npu-2.0.1rc1-cp39-cp39-linux_aarch64.whl
执行如下命令,若返回True则说明安装成功。
python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"
安装对应框架版本的torchvision,
pip3 install torchvision==0.15.2
6. 安装APEX混合精度模块
混合精度训练是在训练时混合使用单精度(float32)与半精度(float16)数据类型,将两者结合在一起,并使用相同的超参数实现了与float32几乎相同的精度。在迁移完成、训练开始之前,基于NPU芯片的架构特性,用户需要开启混合精度,可以提升模型的性能。APEX混合精度模块是一个集优化性能、精度收敛于一身的综合优化库,可以提供不同场景下的混合精度训练支持。
由于 pep-0440,我们重新安装特定版本的 setuptools,
pip install --upgrade pip setuptools==57.5.0
安装依赖,
apt-get install -y patch build-essential libbz2-dev libreadline-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev m4 dos2unix libopenblas-dev git
获取昇腾适配的APEX源码,
git clone -b master https://gitee.com/ascend/apex.git
因为我使用的是 3.9 版本,修改 scripts/build.sh
中 PY_VERSION 的版本号为 3.9,
vi scripts/build.sh
---
# PY_VERSION='3.7'
PY_VERSION='3.9'
---
进入昇腾适配的APEX源码目录,执行命令编译生成二进制安装包,
cd apex
bash scripts/build.sh
执行如下命令安装,
pip3 install apex/dist/apex-0.1_ascend-cp39-cp39-linux_aarch64.whl
7. 安装依赖库
执行如下命令安装,
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
8. 使用 gradio 启动智能语音助手
# Launch the Gradio interface
demo.launch(server_name="0.0.0.0", ssl_keyfile="/u01/certs/tls.key", ssl_certfile="/u01/certs/tls.crt", ssl_verify=False)
9. 访问智能语音助手
使用浏览器打开 https://192.168.31.160:7860,
说一句话,智能语音助手,会自动给我们语音回复。比如,“告诉我武松打虎的故事”。
完结!