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

利用CodeBERT,这个VS Code扩展可以自动生成Python文档字符串
2020年11月22日 12:07 机器之心Pro

编辑:魔王

该扩展利用可处理编程语言和自然语言的预训练模型 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元的免费额度,开发者可以亲自上手体验,让开发高质量模型变得更加轻松。

微软Python
新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片