编程世界的革新之道:Code Llama
导语
近日,Meta 公司发布了开源人工智能工具 Code Llama,专攻于代码生成,可免费用于研究以及商用目的。这款大型语言模型是基于 Llama 2 旨在通过生成和调试代码来帮助程序员社区。希望由此来提高软件开发的效率和可访问性。与 OpenAI 的 ChatGPT 、GitHub Copilot Chat 相似,程序员可以使用高级指令让 Code Llama 辅助编写代码,。或者它也可以协助调试有问题的代码示例并改正。
Code Llama 模型家族
Code Llama 是基于 Llama 2 微调的专用编程版,都使用了500亿的代码数据集进行训练。这也弥补了此前 Llama 2 编程方面的短板,Meta 一共推出了三种版本:
Code Llama,基础代码模型
Code Llama-Python, Python微调版
Code Llama-Instruct,自然语言指令微调版
Code Llama-Python 是针对 Python 编程语言进行了优化(根据一千亿字节的 Python 代码进行了微调)。Code Llama-Instruct 则是为了更好地解释用户意图而量身定制的自然语音指令。
Code Llama 系列模型支持多种编程语言,包括Python、C++、Java、PHP、Typescript(Javascript)、C# 和 Bash。并每一版本均提供了三种参数模型,参数量分别为 70亿(7B)、130亿(13B)和 340亿(34B) 。
不同的参数大小的模型将在速度和性能上有所差异:34B 模型有望提供更准确的编码帮助,但其速度将受到限制,因运行时需要更多的内存和GPU。相比之下,7B 和 13B 模型速度会更快,更适合低延迟的任务,例如实时代码完成,值得一提的是 7B 模型可以在消费者级别的单个 GPU 上运行。
除此之外,Meta 称 7B 和 13B 基础版和 Instruct 版均已经过了 “Fill-In-the-Middle” (FIM,中间填充)的功能培训,这是它们能够实现在现有代码中插入代码,从而协助完成代码编写的关键。
性能表现究竟如何?
为了证明 Code Llama 的真实性能,Meta 使用了 HumanEval metric 进行了测试与验证。HumanEval 包括了164个编程问题,旨在测试代码生成模型的能力。
总体来看,Code Llama 的表现远超其他专注于代码编程的开源大型语言模型(LLM) ,其中包括 Meta 自己上月发布的的 Llama 2。
Meta 将 Code Llama 定位为人工智能代码编写领域中的竞争者,根据 HumanEval metric 测试,Code Llama 中的 Python 34B 模型获得了 53.7% 的准确度,。是得分最高的。
有些遗憾的是,这一成绩低于 OpenAI 的 GPT-4 模型,GPT-4后者在测试中获得了 67% 的成绩,但这也归功于其参数量远高于 Code Llama,以及背后引擎中涵盖的多个模型。
如上文所提及的,Code Llama 的基础模型拥有 7B、13B 和 34B,在 HumanEval 上分别获得 33.5% 、36% 和 48.8%。尽管 Code Llama 在 HumanEval 测试当中与 GPT-4 的抗衡略逊一筹,但就效果来讲,Code Llama 的各个版本中,代码生成率均已超越或者与GPT-3.5 持平,成为开源 LLM 的不二之选。
有趣的是,Code Llama 的研究论文中,还提到了一个名为“Unnatural Code Llama” 的未发布模型,该模型是在 LLM 生成案例中进行训练的,基于 Code Llama-Python 34B 版本,它在训练时使用了 15000 个非自然指令。Unnatural Code Llama 模型在社交媒体上引起了广泛关注,因为它在 HumanEval 上得到了 62.2%,非常接近 GPT-4 的 67% 的结果,但 Meta 目前仍待未公开此模型。
优势
整体而言,相比较于GPT-4,Code Llama 拥有一个关键优势,那就是它的可访问性。如上文前所述,Code Llama 模型是免费的,并且可以在个人的本地计算机上运行,这具有显著的隐私优势,特别是当开发者希望基于一些机密敏感的私有数据使用该模型来生成,测试以及完成代码编写时。
当然,这意味着需要对硬件设备进行前期投资,但小型企业可能会权衡这些成本与 ChatGPT Plus 或 Copilot X 等服务的订阅成本。此外,并且它所有的数据都是通过云发送到 OpenAI 来处理,这对于一些企业可能是禁忌,毕竟没人能保证 OpenAI 会用它来做什么,尽管它承诺不会将数据用于其他目的。
结语
同样,Code Llama 作为大型语言模型,也与同行存在相同的不可知风险。为了负责任的搭建 AI 模型,Meta 在发布 Code Llama 之前也采取了多项防护措施,包括红队测试。
通过创建试图引导生成具有明确意图的恶意代码的提示,将 Code Llama 对这些提示的响应与 ChatGPT-3.5 的响应进行了评分对比。结果表明,Code Llama 给出了更安全的响应。
Code Llama 可以作为生产力和教育工具,协助帮助程序员更加快速和简洁的编写代码。Meta 认为开源策略可以促进 AI 领域的发展和创新,是开发安全可靠的 AI 工具的最佳方式,因此 Code Llama 与 Llama 2 的社区许可协议是完全相同的,在学术和商用都是免费。
Code Llama 的诞生,标志着 AI 在编程界的重大飞跃,这意味着人人都可以利用这个模型进行复杂但精准的编程开发任务了。
推荐阅读: