Mar 2, 2020

用 MicroK8s 在本地开发和测试应用

用 MicroK8s 在本地开发和测试应用

花了一个多周时间把 app 改造到了 k8s 上,这篇权作记录之用吧,随时订正关于本地的 k8s 编排环境,官网用的是无惊无喜的 minikube,   Canonical (Ubuntu)推出了 MiniK8s ,试一下吧! MicroK8s 可在 Ubuntu 和任意支持 snap 的 OS 上运行全部原生的 K8s 服务。这对于开发应用,创建简单的 K8s 集群和本地微服务开发非常有帮助,所有的开发工作最终都还是需要部署的。MicroK8s 提供另一个级别的可靠性因为它提供了与当前

Feb 18, 2020

关于更好的利用网络

关于更好的利用网络

国内访问国外的网络很成问题,尤其是很多开发相关的资源,各种 conda、docker、apt、pip 、npm 等等 source 暂且不说,这些服务多多少少都提供了国内的镜像,但另一些内容就比较难以搞定了。 比如 snap、比如 hugging face 的 transformers ,stackoverflow、google 的搜索就不用说了,各种存放在 google cloud、 amazon s3 上的资源等等,要不就直接不能用,要不就慢的让人发指!不知道有没有人调查过中国的研发人员在这上面浪费的时间折合成的生产力,这个数字如果有,

Feb 15, 2020

我们是如何分离语料管理和模型训练的

我们是如何分离语料管理和模型训练的

我们基于  Botfront 做语料管理,Botfront 本身是构建在 Rasa 之上的一套 UI+ 流程管理包,通过 Graphql 提供数据读写的包装,在之前关于 Rasa web UI 选型部分曾有过介绍。 在 NLP 领域有些模型经过处理之后其实在 cpu 架构下也还可以工作,比如 DistilBERT、ConVert,只不过训练的过程比 GPU 环境下要长很多,那么如何在开发环境下快速迭代、完成后又能快速发布到生产环境呢?如果是基于 Rasa 的开发,

Feb 13, 2020

RASA 的 Web 界面调研

RASA 的 Web 界面调研

Rasa 可能是目前最好的几个 chatbot 开发框架之一,虽然它背后的团队不大,但研发一直挺活跃,而且 NLP 里面有名的 SpaCy 框架、Prodigy 语料标记工具(目前为止最好用的)成员都多有交叉,所以如果你想找一套开源的 chatbot 框架,快速搭建一个支持机器学习的 chatbot, RASA是不二之选。 虽然 Rasa 提供了 nlu、对话管理等对话的关键模块,但并没有提供一个易用的 web 管理端来让更多用户可以低成本把它用起来。幸运的是,Rasa 社区已经意识到了这个问题,从去年起,

Feb 2, 2020

让 BERT 做选词填空题

让 BERT 做选词填空题

Qordoba 发布了一个好玩的库,叫 FitBert,代表 "Fill the Blanks, BERT",顾名思义,就是拿 BERT 来做填空,我们知道训练 BERT 的两个任务之一就是随机 mask 掉一句话中的单词,让 BERT 去猜测(另一个是判断下一句话是不是相关,NSP,后来的部分研究表明好像这个 NSP 任务并不是主要的)。所以 BERT 天生就擅长做选词填空的活儿。 具体讲 FitBert 是做了一件类似输入法预测下一个候选单词的事情,只不过它预测的不仅仅是最后一个词而是随机那个词都行。

Dec 31, 2019

为 transformers 加一个 mirror

为 transformers 加一个 mirror

要说 2019 年下半年 nlp里面最好玩的应该就算是这个「变形金刚」( 🤗 Transformers: State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch. ),了。 截止 2019年最后一天,github 上该 lib 的 star 已经到了 19.9k,有希望破 20k! 这个 lib 做的事情也很简单,就是把几乎所有

Dec 30, 2019

在 Mac 下直接在 iTerm2 命令行中上传/下载文件和查看图片

在 Mac 下直接在  iTerm2 命令行中上传/下载文件和查看图片

用了这么久的 iTerm2 到现在才知道这个好东西,真是罪过罪过! 打开 iTerm2, 在本机和 ssh 到服务器之后,分别执行一边 安装命令:curl -L https://iterm2.com/misc/install_shell_integration.sh | bash 这样也行: 安装完成后,在本机打开 iTerm2 或者 ssh 到远程服务器,都会发现每行字符前面多了一个蓝色的小箭头,表示 shell integration

Dec 25, 2019

深度学习环境搭建

深度学习环境搭建

2080TI + Mantiz + XPS15 9750, ubuntu18.04实验一直用的是 Google Colab 和 百度的 aistudio。蹭 TPU/GPU 蹭的还算爽,吧,就是前者网络时断时续、后者只能跑 paddlepaddle,免费给用,推广自家产品,也是,没啥话说。生产环境用的 UCloud 的 gpu 服务器,跟所有其他 gpu 服务器一样,小贵,所以还是想自己折腾一个本地环境,

Dec 25, 2019

多角度解读 Transformer

多角度解读 Transformer

从 2017 年 《Attention is all you need》之后,几乎所有 NLP 的任务改进都有 BERT 参与,而提到 BERT 实际上就是 transformer ,即使是「最新的T5」也,是。所以决定花些时间仔细研究下 transformer。计划先翻几篇「著名」的 transformer 说明文章,照着一一做一遍,然后分别通过 tensorflow/keras、

Dec 25, 2019

linux 下临时加速访问 github 方案

linux 下临时加速访问 github 方案

linux下安装个东西,需要访问 github,这东西又不可能国内做个镜像,所以就悲剧了,幸好手头还有一个国外 vps,简单通过 ssh 临时搭个 tunnel 安装,记录如下: 在 linux 下执行: ssh -D 9050 -q -C -N your_username@your_vpn, 得到一个从你 linux 到 vpn 的 ssl tunnel

Dec 20, 2019

发现一个酷酷的字符界面进度条 Lib

发现一个酷酷的字符界面进度条 Lib

tqdm, 阿拉伯语里面代表进度条,西班牙语里面代表 I love u so much... 这个名字,也是醉了。 但效果是真心不错,在 Python 循环里面可以直接通过用 trange 替代 range 的方式支持进度可视化;还贴心的提供了一个命令行指令 tqdm 可以直接通过 linux 管道命令支持进度条,真的很酷! Python 内部使用: import time from tqdm._tqdm import trange

Dec 9, 2019

什么是对话元素

什么是对话元素

from:https://rasa.com/docs/rasa/dialogue-elements/dialogue-elements/ 所谓对话元素是指在对话场景下的一个通用定义,当我们谈论对话机器人时,我们需要针对不同的人群做一个统一的话术定义,这么做有利于团队协作,定义好一套通用于产品设计者、开发者、老板之间的语言将十分有利于项目的讨论和协作进展,我们把名词解释抽象为三个层级: 对用户和老板来说叫:用户需求 对产品设计者来说叫:对话元素 对研发来说需要细分为:意图、实体、动作、槽、模板