在 Windows 上使用 NVIDIA Nemo 搭建翻译 API 服务

这篇文章主要是介绍如何让开发者能在 Windows 上使用 NVIDIA Nemo 搭建一个带有翻译功能的 API 服务。过程中我们会需要安装以下工具:

  1. WSL
  2. Miniconda
  3. Flask

1. 在 Windows 上设置 Linux 环境 (WSL)

NVIDIA Nemo 目前只能在 Linux 环境中运行,所以我们得先在 Windows 上搭建一个 Linux 环境。这里要用的是 Linux 的 WSL (Windows Subsystem for Linux) 系统, 它允许开发者直接在 Windows 上运行 GNU/Linux 环境(包括大多数命令行工具、实用程序和应用程序),无需修改,无需传统虚拟机或双引导设置的开销。

安装步骤
  1. 打开 Powershell:
    在 Windows 上使用 NVIDIA Nemo 搭建翻译 API 服务_第1张图片

  2. WSL 安装部分可参考以下文档:

    • 安装 WSL | Microsoft Docs
    • CUDA On WSL
      这里要注意的是在安装驱动时请选择和本机显卡匹配的驱动。
  3. 安装后在 Powershell 里输入 wsl --list --online 确保 WSL 已安装成功:
    在 Windows 上使用 NVIDIA Nemo 搭建翻译 API 服务_第2张图片

  4. 执行 wsl –install -d Ubuntu 安装 Ubuntu 环境

  5. 安装完后请重启 Powershell,然后执行 wsl -d Ubuntu 启动 Ubuntu 环境:
    在 Windows 上使用 NVIDIA Nemo 搭建翻译 API 服务_第3张图片
    此时已进入到 Ubuntu 环境,可接受任何 Linux 命令。

2. Miniconda

Miniconda 是个轻量版的 Anaconda, 主要让开发者方便安装 Python 依赖包。

安装步骤
  1. 安装 Miniconda:
$ 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 手动下载文件

  1. 添加 conda 到 PATH 里:
$ export PATH=<PATH_TO_CONDA_BIN>:$PATH

是指 conda bin 的路径, 得根据你安装 conda 时选择的路径。比如我的 bin 路径是 /home/root/miniconda/bin

$ export PATH=/home/root/miniconda/bin:$PATH
  1. 创建独立 nemo 环境:
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

3. NVIDIA Nemo 依赖包

这里我们开始安装 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

4. 测试 Nemo 是否安装成功

在进行下一步之前我们得先确认 Nemo 已安装成功。
可按照以下操作测试 Nemo :

$ git clone https://github.com/wnger/nemo-api.git
$ cd nemo-api
$ python test.py

如显示 ‘Nemo installed successfully!’ 就表示 Nemo 已安装成功。
在 Windows 上使用 NVIDIA Nemo 搭建翻译 API 服务_第4张图片

如何在 WSL 里访问本地文件

Windows 上的盘是自动挂到 /mnt 路径上的,具体形式如下:
Windows 上的 C:/ = /mnt/c
Windows 上的 D:/ = /mnt/d
比如在 Windows 的路径是:D:\nemo, WSL 里是:/mnt/d/nemo

5. 搭建 API 服务器

我们现在可以开始搭建服务器了,这里采用的是 Python Flask 框架。

在 Windows 上使用 NVIDIA Nemo 搭建翻译 API 服务_第5张图片
继续在 nemo-api 目录里执行以下命令启动 Flask 服务器:

$ pip install Flask
$ flask --app index run

服务器启动时会有一个模型加载过程,可能要等待一段时间,最终会出现一个 IP 地址如下:
在 Windows 上使用 NVIDIA Nemo 搭建翻译 API 服务_第6张图片
这表示 Flask 已在运行。你可执行一个 POST 请求返回翻译结果:

$ curl -d "source=Hello" -X POST http://127.0.0.1:5000/api

现在你可在网页或任何应用轻松的调用翻译 API。我在这里也做了个简单的网页端来演示英翻中功能。打开浏览器然后输入地址 http://127.0.0.1:5000 便可体验。

在 Windows 上使用 NVIDIA Nemo 搭建翻译 API 服务_第7张图片

你可能感兴趣的:(windows,python,ubuntu,nlp)