赞
踩
本文介绍了CodeLlama的简介、本地化部署、测试和应用实战方案,帮助学习大语言模型的同学们更好地应用CodeLlama。我们详细讲解了如何将CodeLlama部署到实际应用场景中,并通过实例演示了如何使用CodeLlama进行代码生成和优化。最后,总结了CodeLlama的应用实战经验和注意事项。
(有图有真相):
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模型速度更快。
https://huggingface.co/spaces/codellama/codellama-13b-chatCode Llama7B 在线试用地址: https://huggingface.co/spaces/codellama/codellama-13b-chat
在HumanEval上评估根据docstrings生成代码的能力,MBPP根据文字描述生成代码。
code Llama 34b模型在HumanEval达到53.7%,MBPP达到56.2%,接近Chatgpt的水平。
我们可以使用 7B 和 13B 模型进行文本/代码补全或填充。下述代码演示了如何使用 pipeline
接口来进行文本补全。运行时,只需选择 GPU 即可在 Colab 的免费 GPU 上运行。
这是代码模型才能完成的专门任务。该模型经过训练后,可以生成与给定上下文最匹配的代码 (包括注释)。这是代码助理的典型使用场景: 要求它们根据上下文填充当前光标处的代码。
如上所述,基础模型可用于补全和填充。Code Llama 还包含一个适用于对话场景的指令微调模型。
打开git官网地址:Git进行下载,如下图界面
基本无脑下一步安装,下一步安装就好
conda安装较为基础,网上的教程也比较多,这个比较全大家可以看一下:
这俩个深度学习的基础环境,是我们做AI经常需要配置的,内容较多。我在这里推荐几个比较好的博客,自行进行安装配置。我电脑是RTX3060,使用cuda11.6,cuDNN版本:8.5.0
网上教程很多,实在懒得写了这个写的还行 ,重点是根据自己硬件情况,选择合适的教程。
conda create --name code_ll python=3.8
conda activate code_ll
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/
transformers的简介
transformers提供了数千个预先训练好的模型来执行不同模式的任务,如文本、视觉和音频。这些模型可应用于:
>> 文本:用于文本分类、信息提取、问题回答、摘要、翻译、文本生成等任务,支持100多种语言。
>> 图像:用于图像分类、对象检测和分割等任务。
>> 音频:用于语音识别和音频分类等任务。
transformer模型还可以在几种组合模式上执行任务,例如表格问题回答、光学字符识别、从扫描文档中提取信息、视频分类和视觉问题回答。
transformer提供了api,可以快速下载并在给定文本上使用这些预训练的模型,在您自己的数据集上对它们进行微调,然后在我们的模型中心上与社区共享。同时,每个定义架构的python模块都是完全独立的,可以进行修改以进行快速研究实验。
transformer由三个最流行的深度学习库——Jax、PyTorch和TensorFlow——支持,并在它们之间无缝集成。在加载模型进行推理之前,先用一个模型训练它们是很简单的。您可以从模型中心直接在它们的页面上测试我们的大多数模型。我们还提供私有模型托管、版本控制和公共和私有模型的推理API。
安装方式地址:
Git 源码安装:
git clone https://github.com/huggingface/transformers.git cd transformers pip install -e .
pip 或 conda安装
conda install -c huggingface transformerspip install transformers
因网络限制原因,如果我们直接执行下载,基本等不到下载成功。
我们需要把下面资源都本地化下载吗,并且放到固定目录下
下载太慢了,后续更新百度云下载地址与csdn下载地址:
- import time
-
- from transformers import AutoTokenizer, AutoModel
- import transformers
- import torch
- modelname = 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分钟左右
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。