AIGC生成式代码——Code Llama 简介、部署、测试、应用、本地化

AIGC 0

 

导读:

        本文介绍了CodeLlama的简介、本地化部署、测试和应用实战方案,帮助学习大语言模型的同学们更好地应用CodeLlama。我们详细讲解了如何将CodeLlama部署到实际应用场景中,并通过实例演示了如何使用CodeLlama进行代码生成和优化。最后,总结了CodeLlama的应用实战经验和注意事项。
(有图有真相):

80e7b566b08c4e60a57229135cf68c17.png

目录

一、CodeLlama简介

二、CodeLlama 性能分析

三、CodeLlama 功能简介

3.1 代码补全

3.2 代码填充

3.3 对话式指令

四、CodeLlama 部署

4.1基础环境搭建

4.1.1 git安装

4.1.2 conda安装

4.2 推理环境搭建

4.2.1 cuda环境配置、cudnn环境配置

4.3 核心—环境搭建

4.3.1 创建虚拟环境

4.3.2 torch安装

4.3.3 huggingface安装

4.3.4 大模型本地下载

4.3.5 执行脚本

五、效果展示

 

 

一、CodeLlama简介

6841e95750f4427a8773706a3070bf94.gif

        2023年08月25日(北京时间),Meta发布了Code Llama,一个可以使用文本提示生成代码的大型语言模型(LLM)。Code Llama是最先进的公开可用的LLM代码任务,并有潜力使工作流程更快,为当前的开发人员和降低进入门槛的人正在学习代码。Code Llama有潜力作为一种生产力和教育工具来帮助程序员编写更健壮、文档更完善的软件。

        Code Llama在Llama 2的基础上增强了编码能力。它可以从代码和自然语言提示(例如,“给我写一个输出斐波那契数列的函数。”)中生成代码和关于代码的自然语言。它也可以用于代码完成和调试。它支持许多当今最流行的语言,包括Python、c++、Java、PHP、Typescript (Javascript)、c#和Bash。        

         Code Llama有三个尺寸的版本,参数量分别为7B、13B和34B,并支持多种编程语言。它稳定支持了最高10万个token的上下文生成。例如,7B模型适合在单个GPU上运行,而34B模型提供了更好的编码辅助和最佳结果,但速度较慢。对于低延迟任务,比如实时代码补全,较小的7B和13B模型速度更快。

  • Code Llama,代码生成的基础模型;
  • Code Llama-Python,单独针对于python的模型;
  • Code Llama-Instruct,根据人工指令微调的模型。

https://huggingface.co/spaces/codellama/codellama-13b-chatCode Llama7B 在线试用地址: https://huggingface.co/spaces/codellama/codellama-13b-chat   

二、CodeLlama 性能分析

        在HumanEval上评估根据docstrings生成代码的能力,MBPP根据文字描述生成代码。

code Llama 34b模型在HumanEval达到53.7%,MBPP达到56.2%,接近Chatgpt的水平。

f9452e4961f1413eaacbde57bc017ab7.png

三、CodeLlama 功能简介

 

3.1 代码补全

我们可以使用 7B 和 13B 模型进行文本/代码补全或填充。下述代码演示了如何使用 pipeline 接口来进行文本补全。运行时,只需选择 GPU 即可在 Colab 的免费 GPU 上运行。

    

3.2 代码填充

这是代码模型才能完成的专门任务。该模型经过训练后,可以生成与给定上下文最匹配的代码 (包括注释)。这是代码助理的典型使用场景: 要求它们根据上下文填充当前光标处的代码。

3.3 对话式指令

如上所述,基础模型可用于补全和填充。Code Llama 还包含一个适用于对话场景的指令微调模型。

四、CodeLlama 部署

4.1基础环境搭建

4.1.1 git安装

打开git官网地址:Git进行下载,如下图界面

基本无脑下一步安装,下一步安装就好

d54c63a8089d4dff990e3961394351a4.png

4.1.2 conda安装

conda安装较为基础,网上的教程也比较多,这个比较全大家可以看一下:

Anaconda详细安装教程!!_anaconda安装_kingdom_121的博客-CSDN博客手把手教你安装anaconda,全网最详细,小学生一看就会。_anaconda安装https://blog.csdn.net/kingdom_121/article/details/131521138

%20

4.2%20推理环境搭建

%20

这俩个深度学习的基础环境,是我们做AI经常需要配置的,内容较多。我在这里推荐几个比较好的博客,自行进行安装配置。我电脑是RTX3060,使用cuda11.6,cuDNN版本:8.5.0

%20

4.2.1%20cuda环境配置、cudnn环境配置

%20

网上教程很多,实在懒得写了这个写的还行%20,重点是根据自己硬件情况,选择合适的教程

%20

深度学习之CUDA+CUDNN详细安装教程%20-%20知乎1%20前言一点自己的想法了,可以跳过去,haha~%20在机器学习领域,为了让你的计算机学会某种技能,拥有我们的智慧,然后去做一些有趣的事情,比如去预测以后房子的价格,或者是在国家倡导垃圾分类的大环境下,让机器帮…https://zhuanlan.zhihu.com/p/416712347

4.3 核心—环境搭建

4.3.1 创建虚拟环境

conda create --name code_ll python=3.8

conda activate code_ll

4.3.2 torch安装

pytorch 安装地址如下:

pytPyTorchAn open source machine learning framework that accelerates the path from research prototyping to production deployment.https://pytorch.org/默认识别你系统环境,画重点,确定自己的cuda版本与python版本后装就可以了

如果默认找不到合适你的版本。点击,找到你的部分安装下载。Previous PyTorch Versions | PyTorchAn open source machine learning framework that accelerates the path from research prototyping to production deployment.https://pytorch.org/get-started/previous-versions/

77d6932951ea4a83a3552951f56dbf3a.png

4.3.3 huggingface安装

 

transformers的简介

https://github.com/huggingface/transformers/blob/main/README_zh-hans.mdhttps://github.com/huggingface/transformers/blob/main/README_zh-hans.md

 

       transformers提供了数千个预先训练好的模型来执行不同模式的任务,如文本、视觉和音频。这些模型可应用于:
>> 文本:用于文本分类、信息提取、问题回答、摘要、翻译、文本生成等任务,支持100多种语言。
>> 图像:用于图像分类、对象检测和分割等任务。
>> 音频:用于语音识别和音频分类等任务。

       transformer模型还可以在几种组合模式上执行任务,例如表格问题回答、光学字符识别、从扫描文档中提取信息、视频分类和视觉问题回答。
       transformer提供了api,可以快速下载并在给定文本上使用这些预训练的模型,在您自己的数据集上对它们进行微调,然后在我们的模型中心上与社区共享。同时,每个定义架构的python模块都是完全独立的,可以进行修改以进行快速研究实验。
       transformer由三个最流行的深度学习库——Jax、PyTorch和TensorFlow——支持,并在它们之间无缝集成。在加载模型进行推理之前,先用一个模型训练它们是很简单的。您可以从模型中心直接在它们的页面上测试我们的大多数模型。我们还提供私有模型托管、版本控制和公共和私有模型的推理API。

安装方式地址:

https://huggingface.co/docs/transformers/installation#installing-from-sourcehttps://huggingface.co/docs/transformers/installation#installing-from-source

 Git 源码安装:

git clone https://github.com/huggingface/transformers.gitcd transformerspip install -e .

pip 或 conda安装

conda install -c huggingface transformers
pip install transformers

4.3.4 大模型本地下载

因网络限制原因,如果我们直接执行下载,基本等不到下载成功。

我们需要把下面资源都本地化下载吗,并且放到固定目录下

下载太慢了,后续更新百度云下载地址与csdn下载地址:

828fb315f61a4167bd85b3e59e932401.png

1609eb36256440589a739a95dcd7a65b.png

4.3.5 执行脚本

import timefrom transformers import AutoTokenizer, AutoModelimport transformersimport torchmodelname = r"F:/AI/nlp/codellama/CodeLlama-7b-hf"tokenizer = AutoTokenizer.from_pretrained(modelname)t1 = time.time()pipeline = transformers.pipeline(    "text-generation",    model=modelname,    torch_dtype=torch.float16,    device_map="auto",)sequences = pipeline(    '用python解决汉诺塔问题',    do_sample=True,    top_k=10,    temperature=0.1,    top_p=0.95,    num_return_sequences=1,    eos_token_id=tokenizer.eos_token_id,    max_length=500,)for seq in sequences:    print(f"Result: {seq['generated_text']}")t2 = time.time()print(    f"Time cost: {t2-t1} s")

五、效果展示

RTX3060 等待时间 18分钟左右

T4 同一个问题   等待时间5分钟左右

80e7b566b08c4e60a57229135cf68c17.png

 

 

也许您对下面的内容还感兴趣: