利用CodeBERT,这个VS Code扩展可以自动生成Python文档字符串

2020 年 11 月 22 日 机器之心

机器之心报道

编辑:魔王

该扩展利用可处理编程语言和自然语言的预训练模型 CodeBERT,实现快速生成 Python 文档字符串的功能。


Visual Studio Code(简称 VS Code)是一个由微软开发,同时支持 Windows、 Linux 和 macOS 等操作系统的免费代码编辑器,它支持测试,并内置了 Git 版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段和代码重构等。VS Code 是程序员常用的代码编辑器之一,是一个可在所有平台上使用的开源、可扩展和轻量级的编辑器。这些品质使微软的 VS Code 大受欢迎,并成为 Python 开发的绝佳平台。

此外,VS Code 还拥有大量扩展,可以帮助提高开发效率、提升开发幸福感。今天,我们要介绍的就是一款可以生成 Python 文档字符串的 VS Code 扩展。

  • GitHub 地址:https://github.com/graykode/ai-docstring

  • 扩展地址:https://marketplace.visualstudio.com/items?itemName=graykode.ai-docstring&ssr=false


该扩展利用 AI (NLP) 技术,快速生成 Python 函数的文档字符串(docstring)。原本 Python 函数的描述必须由用户编写,而使用这款扩展之后,AI 可以查看代码并进行总结。

具体而言,该扩展使用了微软等提出的预训练模型 CodeBERT,该模型可以处理双模态数据:自然语言和编程语言。

在训练过程中,该扩展使用 GitHub 团队创建的 CodeSearchNet 语料库作为训练数据,并使用 CodeBERT 中的 Code2NL(代码到自然语言)微调任务。该扩展的推断基准如下所示:


特性

这款 VS Code 扩展具备以下特性:

  • AI 快速生成文档字符串;

  • 可以选择多种不同类型的文档字符串格式;

  • 通过 pep484 类型提示、默认值和变量名,推断参数类型;

  • 支持 args、kwargs、decorators、errors 和 parameter 类型。


其中支持的文档字符串格式包括:Google(默认)、docBlockr、Numpy、Sphinx,项目主页显示这款扩展还即将支持 PEP0257。

如何使用

这款 VS Code 扩展的使用较为简单。用户只需从容器中运行模型推断服务器,并在 VS Code 中安装扩展,即可使用。

具体步骤如下所示:

1. 从容器中运行模型推断服务器

  • 如果已有 GPU 机器:在安装 nvidia-docker 后,运行 docker run -it -d --gpus 0 -p 5000:5000 graykode/ai-docstring:gpu;

  • 如果只有 CPU:利用 Google Colab 和 ngrok 运行 flask 服务器(推荐)或者使用 docker cpu 镜像:docker run -it -d -p 5000:5000 graykode/ai-docstring:cpu。


2. 在 VS Code 中安装扩展并使用

光标必须在定义下方,以生成完全自动填充的文档字符串。

  • 使用三引号("""或''')打开文档字符串,然后按回车键;

  • 键盘快捷键:ctrl+shift+2,Mac 电脑的快捷键是 cmd+shift+2;

  • 命令:Generate Docstring;

  • 右击菜单:Generate Docstring。



项目作者

该项目的作者是来自韩国庆熙大学的计算机工程本科生 Tae-Hwan Jung。他对开源文化感兴趣,认为一个好的项目可以衍生新的行业和技术。

个人主页:https://libraries.io/github/graykode


Amazon SageMaker 1000元大礼包


ML训练成本降90%,被全球上万家公司使用,Amazon SageMaker是全托管机器学习平台,支持绝大多数机器学习框架与算法,并且用 IDE 写代码、可视化、Debug一气呵成。

现在,我们准备了 1000元 的免费额度,开发者可以亲自上手体验,让开发高质量模型变得更加轻松。

点击阅读原文,填写表单后我们将与你联系,为你完成礼包充值。

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com


登录查看更多
0

相关内容

少即是多?非参数语言模型,68页ppt
专知会员服务
23+阅读 · 2020年11月22日
【知乎】超越Lexical:用于文本搜索引擎的语义检索框架
专知会员服务
21+阅读 · 2020年8月28日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
Python导论,476页pdf,现代Python计算
专知会员服务
260+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【开源 】.NET Core MVC快速开发系统
DotNet
4+阅读 · 2019年6月29日
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
一个牛逼的 Python 调试工具
机器学习算法与Python学习
15+阅读 · 2019年4月30日
OpenAI「假新闻」生成器GPT-2的最简Python实现
机器之心
4+阅读 · 2019年4月20日
Python用于NLP :处理文本和PDF文件
Python程序员
4+阅读 · 2019年3月27日
自动文本摘要
AI研习社
21+阅读 · 2018年10月27日
Tplmap - 扫描服务器端模板注入漏洞的开源工具
黑白之道
6+阅读 · 2018年9月11日
Arxiv
3+阅读 · 2019年9月5日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
VIP会员
相关VIP内容
少即是多?非参数语言模型,68页ppt
专知会员服务
23+阅读 · 2020年11月22日
【知乎】超越Lexical:用于文本搜索引擎的语义检索框架
专知会员服务
21+阅读 · 2020年8月28日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
Python导论,476页pdf,现代Python计算
专知会员服务
260+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
相关资讯
【开源 】.NET Core MVC快速开发系统
DotNet
4+阅读 · 2019年6月29日
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
一个牛逼的 Python 调试工具
机器学习算法与Python学习
15+阅读 · 2019年4月30日
OpenAI「假新闻」生成器GPT-2的最简Python实现
机器之心
4+阅读 · 2019年4月20日
Python用于NLP :处理文本和PDF文件
Python程序员
4+阅读 · 2019年3月27日
自动文本摘要
AI研习社
21+阅读 · 2018年10月27日
Tplmap - 扫描服务器端模板注入漏洞的开源工具
黑白之道
6+阅读 · 2018年9月11日
Top
微信扫码咨询专知VIP会员