Code LLM:代码生成大语言模型
引言9月,开源创新大会(GOSIM 2023)将在上海举行。其中在23-24日的 GOSIM AI工作坊AI论坛中,来自Hugging Face的专家将介绍他们在代码生成大语言模型(Code LLM)领域所做的相关工作,其中包括他们领导的Big Code组织以及StarCoder代码生成大语言模型。本文简要扫描Code LLM领域最近的发展,也为参会做好前期准备。图:Hugging Face在GO
引言
9月,开源创新大会(GOSIM 2023)将在上海举行。其中在23-24日的 GOSIM AI工作坊AI论坛中,来自Hugging Face的专家将介绍他们在代码生成大语言模型(Code LLM)领域所做的相关工作,其中包括他们领导的Big Code组织以及StarCoder代码生成大语言模型。本文简要扫描Code LLM领域最近的发展,也为参会做好前期准备。
图:Hugging Face在GOSIM 2023 AI Workshop中关于Code LLM的两个讲座的日程和内容
Code LLM概述
与人工智能共同合作编程一直是程序员的梦想。人工智能可以:(1)根据代码生成文档,或者(2)根据注释生成代码;此外,它还能够(3)提供针对已知问题的成熟解决方案以及功能和算法的实现;(4)实时辅助编码,从而加速开发进程;以及(5)帮助发现Bug或优化代码,提高代码质量等。
Code LLM是一类专门用于生成代码的大型语言模型。尽管通用的大语言模型,如GPT3.5、GPT-4和Bard等在生成代码方面表现出色,但由于其昂贵的成本、封闭性和天然的安全性缺陷,企业和开发者们通常需要专门的、开源的、面向社区的、适用于本地部署的中小型语言模型,以实现自动化或辅助性编程任务。
Code LLM项目
StarCoder:由Hugging Face和ServiceNow合作开发的StarCoder是一个基于GPT-2架构训练而成的Code LLM。该模型的权重、数据预处理和训练代码均以OpenRAIL和Apache 2.0许可证开源。StarCoder使用GitHub数据作为训练语料,包括80多种编程语言、Git提交记录、GitHub问题和Jupyter Notebook脚本。该模型由150亿参数组成,通过在512台Tesla A100 GPU上进行为期24天的训练而产生,其训练基于约1万亿个词元(tokens)。
此外,通过使用350亿词元的Python数据集进行微调,StarCoder还进一步优化了其在Python编程任务方面的表现。
Code Llama:8月24日,Meta发布了Code Llama。这一系列Code LLM基于Llama 2进行训练,能够根据代码和自然语言提示生成代码,以及生成与代码相关的自然语言文本。Code Llama可用于研究和商业用途,并提供免费使用。它分为以下三类模型:基础代码模型 - Code Llama;针对Python的专用模型 - Code Llama - Python;以及经微调以理解自然语言指令的模型 - Code Llama - Instruct。
Code Llama采用Llama 2社区许可证,允许在商业环境中免费使用。三类模型分别包含70亿、130亿和340亿个参数,并支持多种编程语言,如Python、C++、Java、PHP、TypeScript(JavaScript)、C#和Bash等。
其他相关项目:Salesforce正在开发CodeGen、CodeT5+等Code LLM,并以Apache 2.0许可证开源。Amazon还推出了一款类似于Microsoft GitHub Copilot的集成式编程环境CodeWhisper,配备了AI代码生成功能,对AWS开发者免费开放。中国也推出了CodeGeeX2多语言代码生成模型,基于清华ChatGLM2架构,并融入了代码预训练技术,据说也能与StarCoder“掰掰手腕较较劲”。
Code LLM 测评
业界常用HumanEval、MBPP等标准测评数据集和测评方法来评估Code LLM的准确性。最近Meta进行的对比性评估报告表明,Code Llama(拥有340亿参数)的性能几乎达到了最佳水平。
截图:近日Meta最近对几个Code LLM对比测评结果。以图中GPT 4 HumanEval(Pass@1)得分67.0举例:以GPT 4模型作为Code LLM,在根据HumanEval测评数据集中的164个原始编程问题生成代码,第一次生成的代码跑通,正确解决了67%的问题。
结语
Code LLMs领域竞争激烈,发展迅速。人工智能帮助程序员更快更好地工作,正在美梦成真。而人工智能似乎正在取代程序员工作,是否会成为未来的程序员们一个噩梦?让我们祝福他们。编程方法的变革是确定无疑的,但编程工作的新范式终将浮现。基础和重复的编程工作将交给AI,而人类程序员的“编程”将在更高级的层面进行。
部分参考资料
GOSIM 2023 工作坊AI论坛:https://workshop2023.gosim.org/schedule#ai
GOSIM工作坊:https://workshop2023.gosim.org
GOSIM开源创新大会:https://conference2023.gosim.org
Infoworld: Coding with AI: Tips and best practices from developers, https://www.infoworld.com/article/3700771/coding-with-ai-developer-tips-and-best-practices.html
Meta Code Llama: https://ai.meta.com/blog/code-llama-large-language-model-coding/
Huggingface StarCoder: https://huggingface.co/bigcode/starcoder
Salesforce XGen:https://blog.salesforceairesearch.com/xgen/
CodeGen 2.5, Small, but mighty: https://blog.salesforceairesearch.com/codegen25/
Amazon CodeWhisperer: https://aws.amazon.com/cn/codewhisperer/
CodeGeeX2:https://github.com/THUDM/CodeGeeX2
HumanEval: https://paperswithcode.com/dataset/humaneval
更多推荐
所有评论(0)