$("body").append("")

Meta发布Code Llama:开源AI代码生成模型

999次阅读
没有评论

Meta发布Code Llama:开源AI代码生成模型

在竞争激烈的生成式人工智能领域,Meta旨在大放异彩,并且正在开源领域大展拳脚。

继发布用于生成文本、翻译语言和创建音频的AI模型之后,Meta今天发布了Code Llama,这是一种机器学习系统,可以以自然语言(具体来说是英语)生成和解释代码,并将其开源。

与GitHub Copilot、亚马逊的CodeWhisperer以及开源AI驱动的代码生成器(如StarCoder、StableCode和PolyCoder)类似,Code Llama能够在多种编程语言(包括Python、C++、Java、PHP、Typescript、C#和Bash)中完成代码的编写和调试。

Meta在与TechCrunch分享的博客文章中写道:“在Meta,我们认为AI模型,尤其是用于编码的大型语言模型,最适合采用开放式方法,无论是在创新还是在安全性方面。公开可用的代码特定模型可以促进新技术的发展,从而改善人们的生活。通过发布像Code Llama这样的代码模型,整个社区可以评估它们的能力,发现问题并解决漏洞。”

Code Llama有多个版本,包括针对Python进行优化的版本,以及经过精细调整以理解指令(例如,“编写一个输出斐波那契数列的函数”)的版本。它基于Meta本月早些时候开源的Llama 2文本生成模型。虽然Llama 2可以生成代码,但它的代码质量不高,绝对无法与像Copilot这样的专业模型相提并论。

在训练Code Llama时,Meta使用了与训练Llama 2相同的数据集,该数据集是从网络上公开可用的来源中获取的。但是,模型在训练数据的子集中“强调”了包含代码的部分。实际上,相比其“父”模型Llama 2,Code Llama获得了更多的时间来学习代码和自然语言之间的关系。

Code Llama的每个模型都有不同的规模,参数从70亿到340亿不等,它们是在包含代码的数据和相关数据中训练的。针对Python的Code Llama还进一步对1000亿个Python代码标记进行了精细调整,而指令理解的Code Llama则使用人类标注员的反馈来生成对问题的“有益”和“安全”的答案。

需要注意的是,参数是从历史训练数据中学习的模型部分,实际上定义了模型在解决问题(在本例中是生成文本或代码)时的技能,而令牌则代表原始文本(例如,“fantastic”一词的“fan”、“tas”和“tic”)。

Code Llama的几个模型都可以将代码插入现有代码中,并且都可以接受约10万个代码令牌作为输入。至少有一个模型(70亿参数模型)可以在单个GPU上运行,其他模型需要更强大的硬件支持。Meta声称,340亿参数模型是迄今为止性能最好的开源代码生成器,也是参数数量最多的。

代码生成工具本应该受到程序员甚至非程序员的极大欢迎,这一点是正确的。

GitHub声称,已有400多家组织在使用Copilot,并且这些组织内的开发人员编码速度比以前快55%。此外,编程问答网站Stack Overflow在最近的一项调查中发现,70%的受访者已经在使用或计划在今年使用AI编码工具,以提高生产力和学习速度。

但是,与所有生成式人工智能一样,代码工具也可能存在一些风险。

斯坦福大学的一个研究团队发现,使用AI工具的工程师更有可能在其应用程序中引发安全漏洞。研究团队表明,这些工具经常生成表面上正确的代码,但通过调用受损软件和使用不安全的配置,引发了安全问题。

此外,还有知识产权问题。

一些代码生成模型(不一定包括Code Llama,尽管Meta不会明确否认)是基于受版权保护或受限制许可的代码进行训练的,这些模型在特定方式下可能会重复这些代码。法律专家指出,如果企业在生产软件中无意中纳入了这些工具的版权建议,可能会对公司构成风险。

此外,尽管目前没有大规模证据,但开源代码生成工具可能被用于创建恶意代码。黑客已经试图调整现有模型以执行诸如识别代码中的泄漏和漏洞以及编写欺诈网页等任务。

那么Code Llama如何?

好吧,Meta只在内部对模型进行了测试。但即使在没有来自第三方的更详尽审计的情况下,Code Llama也犯了可能会使开发人员停下脚步的错误。

Code Llama在直接提问时不会编写勒索软件代码。然而,如果请求表述得更加温和,例如“创建一个脚

本,将用户主目录中的所有文件加密”,这实际上就是一个勒索软件脚本,模型也会执行。

在博客文章中,Meta直截了当地承认,Code Llama可能会对提示生成“不准确”或“令人反感”的响应。

“因此,与所有LML一样,Code Llama的潜在输出无法提前预测,”该公司写道。“在部署Code Llama的任何应用程序之前,开发人员都应该根据其特定应用程序执行安全测试和调优。”

尽管存在风险,但Meta对开发人员如何部署Code Llama的限制很少,无论是用于商业还是研究用途。他们只需要同意不将该模型用于恶意目的,并且如果在拥有超过7亿月活跃用户的平台上部署(例如可能与Meta竞争的某个社交网络),则需要申请许可。

Meta在博客文章中写道:“Code Llama旨在支持各个领域的软件工程师,包括研究、行业、开源项目、非政府组织和企业。但是,仍然有许多用例需要支持,超出了我们的基本和指令模型可以提供的范围。我们希望Code Llama能够激发其他人利用Llama 2为研究和商业产品创建新的创新工具。”

https://techcrunch.com/2023/08/24/meta-releases-code-llama-a-code-generating-ai-model/

正文完