您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 开发技术 > 正文

你需要了解这种新的编程AI:StarCoder

发表于:2023-05-19 作者:布加迪 来源:51cto

译者 | 布加迪

审校 | 重楼

BigCode最近发布了一个新的人工智能LLM(大型语言模型):StarCoder,旨在帮助开发人员更快速地编写高效的代码。本文介绍了StarCoder的定义、StarCoder的工作原理以及您可以如何利用StarCoder提升编程能力。

StarCoder的定义

StarCoder是一种专为编程语言设计的LLM,旨在帮助程序员在较短的时间内编写高质量的代码。

它用Python编写,已经过训练,支持80多种编程语言编写代码,包括面向对象的编程语言(比如C++、Python和Java)以及过程编程语言(比如Fortran和C)。

StarCoder的工作原理

StarCoder LLM采用多查询注意技术,该技术使StarCoder能够理解代码的内容,并生成准确的建议。该技术需要同时分析多个查询,以提供准确的响应。

StarCoder LLM的训练过程涉及收集和整理来自GitHub代码存储库的多种编程语言的大量数据。通过利用这个多样化的数据集,StarCoder可以生成准确而高效的代码建议。

如何使用StarCoder LLM?

开始使用StarCoder LLM很容易。您可以利用StarCoder的任何工具来编写高效的代码,包括其Playground或聊天机器人。下面介绍如何利用StarCoder编写更好的程序。

1. 代码完成

通过使用StarCoder Playground接口,StarCoder可以抓取程序数据并完成程序,或基于迄今为止已编写的代码的上下文发现程序中缺失的部分。要使用StarCoder Playground,请将不完整的代码写入到代码提示中。

比如说:

当您点击显示代码完成功能的Generate按钮时,StarCoder建议使用JavaScript数组方法来完成提示的代码。

2. 从自然语言提示生成代码

StarCoder不是一个能够理解自然语言提示的指令模型,比如像“创建一个查找1到100之间素数的函数”这样的提示。然而,您可以使用StarCoder的聊天机器人(技术助手)来输入指令,并利用StarCoder作为指令模型,如下图所示:

该图描述了StarCoder的技术助手被要求编写一个对1到100之间的素数求和的Python函数。

与之相仿,您可以利用这个聊天机器人来发现代码结构中的错误或漏洞,StarCoder通过用来自GitHub代码存储库的数千个类似程序运行特定代码来实现这一功能。这可以节省代码调试方面的时间和精力。

除了上述功能特性外,StarCoder LLM还提供了更多功能。这包括Visual Studio Code插件,该插件提供了代码完成功能,有助于在您开发软件时提高生产力。

StarCoder LLM的当前局限性

尽管StarCoder LLM是一种令人印象深刻的人工智能工具,但它也存在一些局限性。主要的限制之一是它依赖训练数据。训练数据的质量和数量制约了StarCoder LLM的性能。

此外,当使用LLM来生成或完成代码时,您也许会碰到StarCoder的反馈可能更准确的情况。此外,StarCoder发现很难处理通过Playground和聊天机器人等任何其他渠道提供给它的大量数据。但愿BigCode能够改进这些限制。

LLM没那么复杂

StarCoder只是LLM的另一个例子,表明了人工智能的变革能力。LLM继续改变工程和科学领域某些流程的执行方式。

LLM不像看起来那么复杂。它们利用深度学习来分析数据,并解读语法、句法和上下文,以创建响应。了解LLM的定义以及您如何能利用LLM帮助您发掘其潜力。

原文标题:Introducing StarCoder: The New Programming AI,作者:Chinedu Mgbemena