您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    无需GPT-3!国外小哥徒手开发Text2Code,数据剖析代码一键生成
    时间:2020-09-16 12:04 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    这不,有俩「坏事」的顺序员耐不住寂寞,把这个工具做出来。

    无需GPT-3!国外小哥徒手开发Text2Code,数据剖析代码一键生成

    灵感来自GPT-3,自然言语直接转代码

    2020年6月,OpenAI 推出了GPT-3,它不只具有未来的 NLP 相关的诸多功用,而且还可以生成 React 代码和shell命令。

    俩人从中失掉了灵感,他们看法到在做数据剖析的时分,我们常常遗忘不常常运用的 pandas 命令或许语法,需求去搜索,从 StackOverflow 复制代码然后需求相应地修正变量和列名。

    最后他们试图把这个成绩作为一个聊天机器人来处置,并试图运用Rasa,但由于缺乏适宜的训练数据而夭折了。

    他们决议开发一个监视学习模型,该模型可以吃进自然言语和代码的对应语料,然后停止训练,残缺的pipeline包含了下面几个步骤:

    生成训练数据

    为了模拟终端的用户想向系统查询的内容,我们末尾尝试用英语描画一些命令的格式。

    例如:

    display a line plot showing $colname on y-axis and $colname on x-axis from $varname

    然后,我们经过运用一个十分复杂的生成器来交流 $colname 和 $varname 来生成数据,以取得训练集中的变量。

    意图婚配

    在生成数据之后,需求为特定的意图映射到一个独一的「意图id」,并运用通用语句编码器获取用户query的embedding,然后用我们预先定义好的意图query(生成的数据)来失掉余弦距离。

    「通用句子编码器」-Universal Sentence Encoder相似于 word2vec,会生成相应的embedding,独一的区别是这里的嵌入是用于句子而不是单词。

    命名实体辨认

    相反的生成数据可以被用来训练一个自定义的实体辨认模型,这个模型可以用来检测columns,varaibles,library的名字。

    为此,作者还研讨了 HuggingFace 模型,但最终决议运用 Spacy 来训练模型,主要是由于 HuggingFace 模型是基于Transformer的模型,与 Spacy 相比有点过于复杂繁重。

    填充模板

    一旦实体被正确辨认并且意图被正确婚配,填充模板就变得十分容易。

    例如,“ show 5 rows from df”这个查询将生成两个实体: 一个变量和一个数值。这个模板代码编写起来很复杂。

    与Jupyter结合

    这是一切步骤里最复杂的一步,由于为 Jupyter 编写如此复杂的扩展有点顺手,而且简直没有文档或示例参考。

    他们经过一些尝试并参考曾经存在的扩展,最终将一切内容包装成一个独自的 Python 包,并且可以直接经过 pip 来安装。

    单单一个Python包并不能直接运用,于是他们创立了一个前端以及一个效劳器扩展,当 jupyter notebook启动时,就会被加载。前端向效劳器发送查询以获取生成的模板代码,然后将其插入notebook的对应单元并执行它。

    Text2Code的演示

    模型也会失效,但数据剖析师真的省事了

    就像许多机器学习模型一样,有时分意图婚配和命名实体辨认效果会很差,即使这个意图对人来说十分复杂。

    有时也会辨认不到意图,就无法生成正确的代码,作者还思索运用下面的办法来进一步改良插件的效果。

    搜集/生成高质量的英语训练数据,可以思索从quroa,StackOverflow爬取更多的高赞回答,尝试用不同的方式来描画相反的内容,增强数据;搜集真实世界的变量名和库名,而不是随机生成,运用基于Transformer的模型尝试命名实体辨认。

    假设这个模型训练的足够好,对数据剖析师来,能省不少事了。

    项目开源地址:

    https://github.com/deepklarity/jupyter-text2code

    【编辑引荐】

    教你一招Linux下文本比对办法

    用开源工具 Pulp 管理你的软件仓库

    高能清点:10个物联网开发工具,收藏了

    7种过时的代码作风

    融云CTO杨攀: Geek Online 2020编程应战赛 让开发者站上C位

    (责任编辑:admin)