审校 | 重楼
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