如何使用Codellama开源大模型提高开发效率?

Meta的CodeLlama是一个开源代码模型,源自Llama-2,提供Base、Python和Instruction三种模型。文章介绍了CodeLlama在对话机器人、代码评审和代码自动生成等场景的应用,并讨论了与其它代码模型如Phind和WizardCoder的评测对比。
摘要由CSDN通过智能技术生成

01 什么是CodeLlama?

CodeLlama是 Meta 在今年 8 月 24 日推出的一款代码领域的开源大模型。它由 Meta 开源的Llama-2模型训练而来。在延续了Llama-2的训练框架和训练数据基础上,CodeLlama加入了更多的代码数据集,并基于三个不同的应用场景,设置了三种不同的模型,分别是 Base 模型、Python 模型和 Instruction 模型。

图片

· Base模型:面向一些模型开发者,开发者可以基于这个模型,用自己的数据集来微调出新模型。

· Python模型:面向Python 开发者,在模型训练中加入了更多Python代码,具备了更专业的Python代码处理能力。

· Instruction 模型:在 Base 模型的基础上,加入自然语言指令的微调,使其具备了对话能力。

02 Codellama在开发场景下的应用

下面,本文通过三个常见的场景来演示如何通过Codellama来提高我们的工作效率。

场景1

对话机器人

对话机器人即通过问答的方式来解决工作中的一些问题。比如让Codellama 帮我们写一段完整的功能代码,或是在阅读项目源码的时候,让Codellama 直接分析源码的主要内容,帮助我们加速理解。

图片

使用方法

首先,把Codellama模型下载到本地。然后启动Fastchat推理引擎,把这个模型加载到我们的 GPU 里面。接着,启动Chatgpt-web服务搭建聊天机器人服务。

图片

此处,我们选择Fastchat的推理引擎。因为Codellama相对原来的llama2有所调整,所以常用的推理引擎需要重新适配。Fastchat是比较早完成Codellama适配的推理引擎,并且能够对外提供OpenAI风格的API接口,可以无缝的和ChatGPT-Web应用到一起。

场景2

代码评审

AI 代码审查,主要通过GitLab持续集成来实现。其主要工作流是在我们完成代码且推送上库后,让AI对我们的代码进行评审,并分析代码改动中的问题点。

图片

使用方法

我们同样选择Fastchat的推理引擎来加载模型,前端则使用 Chat-CodeReivew来跟 GitLab 进行信息交互。当开发人员把代码推送到 GitLab 仓库的时候,它就会通过 Webhook 的形式把 push 的信息提交给CodeReview服务,CodeReview服务将代码交给推理引擎,Codellama推理完以后,再将Codellama分析的结果上传到Gitlab上。

图片

场景3

代码自动生成

代码自动生成是指类似 Copilot 一样直接让Codellama根据代码上下文自动生成代码,或者写一行功能说明的注释,让它帮我们生成代码。

图片

使用方法

如下图,我们将架构微调,把推理引擎换成TGI。更换推理引擎的原因主要是因为TGI能够更好的与上层服务的"VScode插件"交互。TGI和上文的Fastchat一样,负责将模型加载到GPU,并提供推理API接口,但TGI暂时没有支持OpenAI风格的API接口。同时因为它是由 huggingface 主推的一个推理引擎,所以TGI会更早的适配新的模型。

Plugin我们选择了同样是由 huggingface 推出的 "HF CodeAutoComplete" 插件,插件通过TGI的接口来让Codellama帮我们生成新代码。

图片

03 其他代码模型及模型评测标准

实操过后,我们进一步了解一下在代码这个细分领域上的其他模型以及评估代码大模型生成效果的标准。

在代码维度有两个重要的标准, 分别是OpenAI 提出的HunamEval 以及 Google 提出来的MBPP(Mostly Basic Python Problems)。

· HumanEval数据集相对较少,但测试的难度比较高,大部分测试都是Python代码,目前正在尝试扩展更多的语言。

· MBPP则是一些比较基础的Python 问题,但其数据集远大于HumanEval。

评测结果主要通过 Paas@1 的指标,表示模型通过单次生成通过问题的占比,通过率越高则说明代码模型的效果越好。市面上常见的代码大模型及其HunamEval的的测试通过率如下,数据仅供参考:

Phind-CodeLlama-34B-v1——69.5%

Phind-CodeLlama-34B-v2——73.8%

WizardCoder-34B-Python——73.2%

CodeFuse-Codellama-34B——74.4%

*本文部分图片来源于网络,如有侵权请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值