Meta发布开源项目CodeLlama,能够生成和解释多种编程语言的代码

新知榜官方账号

2023-09-05 10:02:47

Meta发布开源项目CodeLlama

在竞争激烈的生成式AI领域中,Meta意图成为领头羊,连续推出了一系列开源产品。继先前推出能够生成文本、翻译语言和创建音频的AI模型之后,今天又发布了开源项目CodeLlama。

CodeLlama是一个能够用自然语言生成和解释代码的机器学习系统,能够补全代码并调试跨越多种编程语言的现有代码。与GitHubCopilot、AmazonCodeWhisperer及开源的AI代码生成器如StarCoder、StableCode和PolyCoder类似,它能够补全代码并调试跨越诸如Python、C++、Java、PHP、Typescript、C#和Bash等多种编程语言的现有代码。

CodeLlama有多个版本,包括一种专为Python优化的版本和一种经过微调来理解指令的版本(例如“编写一个输出斐波那契数列的函数”)。它是基于Meta本月初开源的Llama2文本生成模型的。虽然Llama2可以生成代码,但生成的代码不一定优质——显然不能与像Copilot这种专门构建的模型所生产的代码相比。在训练CodeLlama过程中,Meta使用了与训练Llama2相同的数据集,这些数据集是从网络上的公开资源中获得的。但是,Meta特意让模型更加关注那些包含代码的训练数据子集。基本上,与其“父模型”Llama2相比,CodeLlama花费了更多的时间去深入学习代码与自然语言之间的关系。CodeLlama的模型,大小从70亿参数到340亿参数不等,它们都使用了5000亿个代码Token以及与代码相关的数据进行训练。专为Python定制的CodeLlama进一步在1000亿个Python代码Token上进行了微调。而能理解指令的CodeLlama则使用人类注释者的反馈进行了微调,以便生成对问题的“有帮助”和“安全”的答案。

CodeLlama的性能和风险

人们可能会认为,一个生成代码的工具对于程序员,甚至是非程序员来说都非常有吸引力——这种看法是准确的。GitHub表示,如今有超过400家组织正在使用Copilot,而这些机构中的开发者的编码速度比过去提高了55%。另外,程序员问答社区网站StackOverflow在其最近的调查中发现,70%的受访者已经开始使用或计划在今年使用AI编码工具,他们提到了如提高生产效率和快速学习的优点。

但是,所有的生成式AI,包括编码工具,都有可能出现问题或带来新的威胁。一个与斯坦福大学有关的研究团队发现,那些使用AI工具的工程师在他们的应用中更有可能带来安全隐患。研究团队指出,这些工具往往会生成在表面上看起来是正确的代码,但由于调用了受损的软件和使用了不安全的设置,实际上可能存在安全风险。再者,还有知识产权的大问题。一些代码生成模型——并不一定指的是CodeLlama,但Meta并没有绝对否认——可能是在受版权保护或有限制性许可的代码上进行训练的。当这些模型在某些特定情境下被激活时,它们可能会重复输出这些代码。法律专家表示,如果公司在不知情的情况下使用了这些工具中的受版权保护的建议并纳入其生产软件,那么他们可能会面临法律风险。另外,尽管还没有大量的证据,但开源的代码生成工具有可能被用来制造恶意代码。

Meta在文中表示:“因为这些原因,与所有的大语言模型一样,我们无法预先预测CodeLlama的输出结果。在正式使用CodeLlama之前,开发者应该为他们特定的应用场景进行安全测试和调整。”尽管存在这些风险,但Meta对开发者如何部署CodeLlama几乎没有限制,不论是用于商业还是研究。他们只需承诺不将该模型用于恶意用途,并且如果在一个拥有超过7亿月活跃用户的平台上部署它——也就是可能与Meta的某些社交网络产品竞争的平台——他们需要先申请许可。

CodeLlama的设计目的是为所有领域的软件工程师提供支持,这包括研究、工业、开源项目、非政府组织以及商业机构。但现在,仍然存在许多超出我们基本模型和指导模型所能覆盖的用途。Meta希望CodeLlama能激发其他人利用Llama2创造新的研究和商业产品的创新工具。”

本页网址:https://www.xinzhibang.net/article_detail-10892.html

寻求报道,请 点击这里 微信扫码咨询

关键词

Meta 开源项目 CodeLlama 生成式AI 多种编程语言 代码

分享至微信: 微信扫码阅读

相关工具

相关文章

相关快讯