这篇文章主要是介绍如何让开发者能在 Windows 上使用 NVIDIA Nemo 搭建一个带有翻译功能的 API 服务。过程中我们会需要安装以下工具:
NVIDIA Nemo 目前只能在 Linux 环境中运行,所以我们得先在 Windows 上搭建一个 Linux 环境。这里要用的是 Linux 的 WSL (Windows Subsystem for Linux) 系统, 它允许开发者直接在 Windows 上运行 GNU/Linux 环境(包括大多数命令行工具、实用程序和应用程序),无需修改,无需传统虚拟机或双引导设置的开销。
WSL 安装部分可参考以下文档:
执行 wsl –install -d Ubuntu
安装 Ubuntu 环境
安装完后请重启 Powershell,然后执行 wsl -d Ubuntu
启动 Ubuntu 环境:
此时已进入到 Ubuntu 环境,可接受任何 Linux 命令。
Miniconda 是个轻量版的 Anaconda, 主要让开发者方便安装 Python 依赖包。
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ chmod +x Miniconda3-latest-Linux-x86_64.sh
$ sh Miniconda3-latest-Linux-x86_64.sh
如果无法执行
wget
可直接点击 https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh 手动下载文件
PATH
里:$ export PATH=<PATH_TO_CONDA_BIN>:$PATH
是指 conda bin 的路径, 得根据你安装 conda 时选择的路径。比如我的 bin 路径是 /home/root/miniconda/bin
:
$ export PATH=/home/root/miniconda/bin:$PATH
conda create --name nemo python==3.8
conda activate nemo
成功切换环境后会显示该环境的名称:
(base) root@DESKTOP:/mnt/c/Users/root$ conda activate nemo
(nemo) root@DESKTOP:/mnt/c/Users/root$
注意:如果出现错误,请按照错误提示操作。一般需要执行以下命令:
$ exec bash
$ conda init bash
这里我们开始安装 Nemo 所需依赖包。
$ conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
$ apt-get update && apt-get install -y libsndfile1 ffmpeg
$ pip install Cython
$ pip install nemo_toolkit['all']
注意:如执行
apt-get update
时出现权限错误可使用 sudo, 比如:
$ sudo apt-get update && apt-get install -y libsndfile1 ffmpeg
在进行下一步之前我们得先确认 Nemo 已安装成功。
可按照以下操作测试 Nemo :
$ git clone https://github.com/wnger/nemo-api.git
$ cd nemo-api
$ python test.py
如显示 ‘Nemo installed successfully!’ 就表示 Nemo 已安装成功。
如何在 WSL 里访问本地文件
Windows 上的盘是自动挂到 /mnt 路径上的,具体形式如下:
Windows 上的 C:/ = /mnt/c
Windows 上的 D:/ = /mnt/d
比如在 Windows 的路径是:D:\nemo
, WSL 里是:/mnt/d/nemo
我们现在可以开始搭建服务器了,这里采用的是 Python Flask 框架。
继续在 nemo-api 目录里执行以下命令启动 Flask 服务器:
$ pip install Flask
$ flask --app index run
服务器启动时会有一个模型加载过程,可能要等待一段时间,最终会出现一个 IP 地址如下:
这表示 Flask 已在运行。你可执行一个 POST
请求返回翻译结果:
$ curl -d "source=Hello" -X POST http://127.0.0.1:5000/api
现在你可在网页或任何应用轻松的调用翻译 API。我在这里也做了个简单的网页端来演示英翻中功能。打开浏览器然后输入地址 http://127.0.0.1:5000
便可体验。