如何在Sagemaker Studiolab中用VS代码设置Rasa开发环境

343 阅读4分钟

上周,我很高兴能用开源框架Rasa来开发聊天机器人。使用Rasa,你可以获得大量的灵活性,从设计对话到开发NLU逻辑再到部署。

但是,"耶"很快就变成了把我的头往砖墙上撞。最初的Rasa机器人本身开始在我的4个核心和16GB内存的不太坏的笔记本电脑上崩溃。

我必须找到其他可以进行开发的平台,但我不想花钱去玩弄那些开源框架。准确地说,我真正需要的是一个支持VS Code的免费机器学习实验平台。

我将带你了解我是如何用完全免费的云端平台来解决这些挑战的。

我发现AWS Sagemaker Studiolab是运行我的Rasa机器学习工作负载的一个可靠选择。它是免费的,有15GB的持久性存储,复杂算法有12小时的CPU会话,深度学习算法有4小时的GPU会话。

Sagemaker还提供一个Jupyterlab服务器,而不是一个开发IDE平台。我迫切需要我最喜欢的VS Code界面,这就是我偶然发现Github Codespaces的原因。

Codespaces提供了一个基于云的VS Code环境,但它不能运行像ML训练这样的计算密集型工作。所以我需要一个 "两全其美 "的方法。我需要Studiolab的VScode。

Code-server来拯救我!Code-server是一个python库,它可以帮助你在一台机器上设置VS Code服务器。

我们将使用的工具

  • AWS Sagemaker Studiolab
  • Conda
  • Rasa
  • VScode的Code-server

Conda环境设置

让我们来看看如何将这些东西连接在一起。我们首先在Studiolab中创建一个空的文件夹,并在该文件夹中运行以下命令:

conda create --name rasa-env python==3.8  
conda activate rasa-env  

python -m pip uninstall pip  
python -m ensurepip  
python -m pip install -U pip  

python -m pip install --upgrade setuptools  
python -m pip install rasa  

这些命令将在Studiolab中创建一个新的Conda环境,名为rasa-env,并在其中安装Rasa。 如果你想用SSH访问Git,你也可以运行conda install openssh

要在这个Conda环境中安装VS Code服务器,执行命令conda install -y -c conda-forge code-server 。现在,你已经有了自己的Conda环境,安装了Rasa、代码服务器和OpenSSH。

当然,我们将在Git仓库中维护Rasa的代码。如果有人想拉下这个仓库,我们不想让他经历同样的创建环境的麻烦,对吗?

为了使他们的生活更轻松,我们将使用命令conda env export --file environment.yml ,生成一个environment.yml文件,它相当于Conda的requirements.txt。使用这个文件,你可以通过运行conda env create -n rasa-env -f environment.yml ,重新创建环境。

VScode设置

现在我们已经完成了环境的设置,我们可以在一个新的标签中启动VS Code服务器并开始我们的Rasa开发。

要启动VS Code服务器,在Studiolab中打开一个新的终端并执行code-server --auth none

image-91

上面的图片显示了运行code-server命令后产生的日志。你也可以通过认证来启动code-server,这将允许只有拥有密码的人才能访问VS Code服务器。

复制你的Studiolab环境的URL,看起来像*xxxxxxxxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/studiolab/d… Code服务器URL。

在一个单独的标签中输入这个新的URL,以导航到Studiolab中运行的VS Code。等待3-5分钟,服务器就会出现。一旦服务器启动,我们会看到VS Code终端的文字是模糊的:

image-88

为了解决这个问题,请使用VS Code的设置terminal.integrated.gpuAcceleration ,关闭VS Code终端的gpu加速:

image-89

Rasa开发

最后,通过运行conda activate rasa-env 激活rasa-env Conda环境,以激活我们的Rasa开发环境。

让我们现在就开始动手操作Rasa吧。为了初始化一个Rasa项目样本,在文件夹中运行rasa init 。一旦初始化完成,我们将在文件夹中得到一个基本机器人的代码。

接下来,我们必须为机器人生成NLU模型。rasa train ,生成模型并以.tar.gz格式转储到models子文件夹中。

现在,是关键时刻--运行rasa shell 。如果一切顺利,我们的机器人就可以在VS Code服务器上运行了,而VS Code服务器又在Studiolab运行时运行。

完成后不要忘记清理一切,停止Studiolab运行时中的VS Code服务器,最后停止运行时本身。

收尾工作

就这样吧!你有了自己的、完全免费的、基于云的聊天机器人开发环境,你可以通过VS Code界面运行计算密集型工作负载。

如果你学到了新的东西,或者喜欢阅读这篇文章,请分享给大家,以便其他人能够看到。在那之前,我们在下一篇文章中再见吧!

你也可以在Twitter上找到我@Live_ByThe_Code

你可以在这里阅读更多类似的文章。