关于环境,大概每个人都不能完全一样,以我自己的为例吧:
硬件一台PC机:
CPU: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
内存: 16GB
硬盘: 几十G剩余空间总是要的,根据你的训练语料数据量吧。 文本的还好,Tacotron的语音训练数据比较占用空间
显卡: GeForce GTX 1070 (NLP的训练勉强能用,有钱上更高级的)
软件层面:
OS: 根据个人情况吧,我喜欢用Centos,用Ubuntu甚至Windows也无所谓吧
Docker: 这个建议来搞起来,各种折腾软件组合和软件版本比较方便
Tensorflow: Docker镜像用的 tensorflow/tensorflow:latest-gpu
tf可以提供各种镜像,cpu/gpu的,带python3的,因为我是想自己装的python3.6.8所以Dockerfile里面用的是gpu版本,然后在Dockerfile里面生成自己的镜像,包括一些os的软件包还有python的软件包都装好了。
Dockerfile部分内容分享:
FROM tensorflow/tensorflow:latest-gpu
MAINTAINER Shawn
COPY packages/* /root/
RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak \
&& echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse" > /etc/apt/sources.list \
&& echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list \
&& echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list \
&& apt-get update \
&& apt-get remove -y python \
&& apt-get remove --auto-remove -y python \
&& apt-get purge -y python \
&& apt-get purge --auto-remove -y python \
&& rm -fr /usr/local/bin/pip* /usr/local/bin/python* \
&& rm -fr /usr/local/lib/python* \
&& apt-get install -y --no-install-recommends tmux vim build-essential wget git-core openssl libssl-dev curl gcc cmake \
&& apt-get clean \
&& cd /root \
&& tar xvzf Python-3.6.8.tgz \
&& cd Python-3.6.8 \
&& ./configure --enable-optimizations \
&& make \
&& make install \
&& cd /usr/local/bin \
&& ln -s python3 python \
&& ln -s pip3 pip
Tensorflow的docker环境搭建还是看官方文档吧
https://tensorflow.google.cn/install/docker
Docker安装
我这里目前用到的各种image列表
其中可以看到tensorflow/tensorflow 有两个tag的,1.11.0-gpu-py3是gpu的版本主要用来训练的,但是因为显卡显存不多,基本上日常运行就没用gpu的版本。
所以就还有个1.14.0-py3的tag,就是用cpu来跑rasa框架,训练好的模型个人用cpu的速度也还好,并没有多少并发的需求。
Rasa部分
Rasa github
rasa: https://github.com/RasaHQ/rasa
rasa-sdk: https://github.com/RasaHQ/rasa-sdk
单独的SDK就是独立的环境下跑rasa的custom action用的(暂时可以先不管,后面讲到的时候就明白了)
假设你的用户目录是 /home/try
那么你可以创建个项目目录
mkdir /home/try/chatbot
跟chatbot同一级的目录下把rasa拉到本地
cd /home/try/
git clone https://github.com/RasaHQ/rasa.git
git clone https://github.com/RasaHQ/rasa-sdk.git
在chatbot下创建相应的链接
cd /home/try/chatbot/
link -s ../rasa/rasa .
link -s ../rasa-sdk/rasa_sdk .
关于rasa依赖的包,可以在Dockerfile中预先安装好,也可以单独安装
cd /home/try/rasa/
pip install -r requirements.txt
cd /home/try/rasa-sdk/
pip install -r requirements.txt