2022年07月28日更新 Text2App根据文本描述创建安卓应用程序的框架

穆厚绿
导读 孟加拉国工程技术大学 (BUET) 和加州大学洛杉矶分校 (UCLA) 的研究人员最近开发了一个框架,可以根据文本描述创建 Android 应用程

孟加拉国工程技术大学 (BUET) 和加州大学洛杉矶分校 (UCLA) 的研究人员最近开发了一个框架,可以根据文本描述创建 Android 应用程序。这个新应用程序在 arXiv 上预先发表的一篇论文中提出。

“我们在 CSE 系 BUET 的研究小组致力于弥合人类语言和编程语言之间的差距,使计算机编程更容易获得,”进行这项研究的研究人员之一 Masum Hasan 告诉 TechXplore。“我们之前曾从事基于自然语言的程序修复、基于语言的代码搜索、代码文档生成等工作。接下来,我们想知道是否可以根据自然语言规范构建功能齐全的软件。”

大多数现有的基于文本描述创建软件的模型都是基于端到端神经机器翻译 (NMT) 模型,类似于支持谷歌翻译的模型。这些模型利用 NMT 框架将人类语言翻译成源代码。

虽然一些基于 NMT 的文本到应用程序翻译技术取得了可喜的成果,但其中大多数无法生成具有数百行代码的大型程序。为了克服这个限制,Hasan 和他的同事创建了一种新的形式语言,它捕获了应用程序源代码的复杂性,并以高度紧凑的形式表示它。

“我们设计了一种中间形式语言,可以用一小部分令牌来表示用户指定的应用程序——少 20 倍,”哈桑说。“然后我们开发了一个编译器,可以将紧凑的表示转换为实际的源代码,并训练一个神经机器翻译模型将自然语言翻译成这种中间格式,然后可以编译成一个应用程序。”

从本质上讲,研究人员训练了一个翻译模型,以他们创建的中间语言生成表示,而不是像大多数现有的文本到应用程序技术那样创建原始源代码。通过将文本描述转换为这种形式语言,他们的框架允许他们创建完全成熟的移动应用程序,而使用先前提出的方法证明这是不可行的。

“生成长序列是当前序列生成模型的一个已知限制,”Hasan 解释说。“源代码通常比自然语言长得多,目前最好的模型在生成短代码片段时仍然难以达到 20% 的准确率。这使得创建大型软件(例如由数百行代码组成的移动应用程序)变得不切实际。当前序列生成网络。”

Hasan 和他的同事创建的框架称为 Text2App,可以使用英文说明创建 Android 应用程序。要使用该系统,用户只需要描述一个具有特定范围的移动应用程序,框架就会自动为他们创建它。

哈桑说。“想象一下你想记住你祖母的特殊面食谱。你不能一步一步记住整个食谱,你只能学习独特的步骤,然后从食谱中查找其余的步骤。这将大大减少“您将不得不花费大量精力。同样,我们的中间应用程序表示仅捕获用户通过自然语言指令提供的特定要求,编译器会填写其余部分。”

Hasan 和他的同事最近的工作可以让研究人员重新思考程序和应用程序的生成,通过引入一种新的方式来总结或表示程序,让人工智能技术更容易理解。值得注意的是,研究人员训练的人工智能模型在将自然语言转换为应用程序方面表现出远高于其他技术的能力。

“如果我们在设计编程语言或框架时考虑到人工智能,我们当前的人工智能技术在从人类语言生成代码方面表现得非常好,”哈桑说。“此外,编译器可以理解编程语言,而不是完全由 AI 理解。我们证明,仅依靠 AI 模型来完成代码生成等复杂任务是不够的,编译器等组件的额外支持可以提供很大帮助。 ”

这组研究人员进行的研究最显着的成就是开发了能够将文本转换为应用程序的中间形式语言,以及最终创建应用程序的编译器。到目前为止,Hasan 和他的同事仅仅探索了它的一小部分功能,但他们现在还要求开源社区为其进一步的评估和开发做出贡献。

“随着更多的开发努力,Text2App 可以成为一个成熟的基于自然语言的应用程序开发平台,”Hasan 说。“在我们的工作中,我们还表明,在大型语言模型GPT-3的帮助下,可以使用我们的系统从令人惊讶的复杂指令创建应用程序。但是,需要在这个方向上进行更多思考才能使其完全可靠。 ”

标签:

免责声明:本文由用户上传,如有侵权请联系删除!