360网站seo怎么做,wordpress网盘搜索引擎,集团网站模板,swf影视网站源码LLMs之Code#xff1a;Code Llama的简介、安装、使用方法之详细攻略 导读#xff1a;2023年08月25日(北京时间)#xff0c;Meta发布了Code Llama#xff0c;一个可以使用文本提示生成代码的大型语言模型(LLM)。Code Llama是最先进的公开可用的LLM代码任务#xff0c;并有潜…LLMs之CodeCode Llama的简介、安装、使用方法之详细攻略 导读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是一个开源的、最先进的LLM能够从代码和自然语言提示中生成代码和关于代码的自然语言。它专注于生成代码和理解自然语言代码说明其性能优于当前公开的其他代码生成LLM为编程带来支持其开源训练方法有助于社区建立更多创新工具。 Code Llama有三个尺寸的版本参数量分别为7B、13B和34B并支持多种编程语言。它稳定支持了最高10万个token的上下文生成。这三个参数版本的Code Llama模型都使用了500B的代码tokens和代码相关数据进行训练。7B和13B版本的模型还经过了FIMfill-in-the-middle训练可以将代码插入到现有代码中支持开箱即用的代码补全等任务。不同的服务和延迟要求可以选择适合的模型版本。例如7B模型适合在单个GPU上运行而34B模型提供了更好的编码辅助和最佳结果但速度较慢。对于低延迟任务比如实时代码补全较小的7B和13B模型速度更快。 Code Llama建立在Llama 2的基础上并通过在代码特定数据集上进行进一步训练来提升编码能力。除了基础模型外还有针对Python优化的Code Llama - Python和理解自然语言指令优化的Code Llama - Instruct版本。在代码生成基准测试中Code Llama表现优于其他公开可用的代码专用语言模型性能与ChatGPT相当。 目录
Code Llama的简介
1、《Code Llama: Open Foundation Models for Code》翻译与解读
2、模型评估效果对比HumanEval、MBPP、MHEval
3、基于Code Llama的衍生模型
(1)、Phind团队Phind-CodeLlama-34B-v1、Phind-CodeLlama-34B-Python-v1
(2)、WizardLM团队WizardCoder
Code Llama的安装
1、模型部署与推理
第1步获取Meta 官网授权
第2步sh脚本下载
第3步模型推理
2、预训练
3、代码填充
4、微调指令模型
Code Llama的使用方法 Code Llama的简介 2023年08月25日Meta发布了基于的Llama2用于专攻代码生成的基础模型 Code Llama。Code Llama 是基于 Llama 2 的一系列面向代码的大型语言模型提供了在开放模型中领先的性能填充能力支持大型输入上下文以及用于编程任务的零-shot指令跟随能力。
该项目提供多个版本以覆盖广泛的应用领域基础模型Code LlamaPython 专用模型Code Llama - Python以及指令跟随模型Code Llama - Instruct分别具有7B、13B和34B的参数。所有模型都是在16k标记的序列上进行训练的并在最多100k标记的输入上显示出改进。7B和13B的 Code Llama 和 Code Llama - Instruct 变体支持基于周围内容的填充。
Code Llama 是通过对 Llama 2 进行代码的更高采样来进行微调开发的。与 Llama 2 一样我们对模型的微调版本应用了相当大的安全措施。有关模型训练、架构和参数、评估、负责人工智能和安全的详细信息请参阅我们的研究论文。由 Llama Materials 的代码生成功能生成的输出包括 Code Llama在内可能受第三方许可证的约束包括但不限于开源许可证。
我们正在释放大型语言模型的强大能力我们的最新版本 Code Llama 现在可以让个人、创作者、研究人员和各个规模的企业获得使用权限以便他们可以负责地进行实验、创新和扩展他们的想法。此发布包括预训练和微调 Llama 语言模型的模型权重和初始代码参数范围从7B到34B。该存储库旨在作为一个最小的示例用于加载 Code Llama 模型并进行推理。 Code Llama 是一项带有潜在风险的新技术。到目前为止进行的测试未能覆盖所有情况。为了帮助开发人员应对这些风险我们已创建了《负责任使用指南》。更多详细信息可以在我们的研究论文中找到。
GitHub官网GitHub - facebookresearch/codellama: Inference code for CodeLlama models
论文地址https://ai.meta.com/research/publications/code-llama-open-foundation-models-for-code/
官网文章https://ai.meta.com/blog/code-llama-large-language-model-coding/ 1、《Code Llama: Open Foundation Models for Code》翻译与解读 摘要 我们发布了Code Llama这是一系列基于Llama 2的面向代码的大型语言模型具有开放模型中最先进的性能、填充能力、支持大型输入上下文以及零-shot指令跟随能力可用于编程任务。我们提供多种版本以覆盖广泛的应用领域基础模型Code Llama、Python专用模型Code Llama - Python和指令跟随模型Code Llama - Instruct分别具有7B、13B和34B个参数。所有模型都是在16k个标记的序列上进行训练并在最多100k个标记的输入上显示出改进效果。7B和13B的Code Llama和Code Llama - Instruct变种支持基于周围内容的填充。Code Llama在几个代码基准测试中达到了开放模型的最先进性能分别在HumanEval和MBPP上获得了53%和55%的得分。值得注意的是Code Llama - Python 7B在HumanEval和MBPP上的表现超过了Llama 2 70B而我们的所有模型在MultiPL-E上都优于其他公开可用的模型。我们以宽松的许可证发布Code Llama既允许研究使用也允许商业使用。 结论 我们发布了一系列专注于代码的Llama 2模型称为Code Llama包含三个主要变种我们以三种规模7B、13B和34B个参数发布Code Llama、Code Llama - Python和Code Llama - Instruct。考虑到实际应用我们训练了7B和13B的模型以支持填充并让所有模型能够利用大型上下文。我们在推理中测试它们在最多100K个标记图4a的情况下的稳定性。大型上下文微调和填充在标准基准测试中表10的基于从左到右的代码生成基准测试中有一定的代价这些测试都基于短序列即函数级别。尽管如此我们的30B模型在标准Python完成基准测试中是公开模型中最先进的而我们的其他模型与具有相似参数数量的模型相比具有竞争力。在多语言基准测试中即使是我们最小的模型Code Llama 7B也优于其他任何公开模型。 Code Llama - Instruct模型经过训练为Code Llama提供了零-shot指令能力。在这种进一步的微调中我们在一定程度上提炼了Llama 2-Chat不仅注重更直接的帮助图5c还努力提供更安全的模型供使用和部署第4节。遵循指令并过于安全可能会在评估中损失一些得分例如表2中34B模型在HumanEval上的情况如图14所示。需要进一步的工作让LLM能够理解上下文和指令中的细微差别。
2、模型评估效果对比HumanEval、MBPP、MHEval
Code Llama表现优异 3、基于Code Llama的衍生模型
(1)、Phind团队Phind-CodeLlama-34B-v1、Phind-CodeLlama-34B-Python-v1 Phind 团队利用内部Phind数据集调优CodeLlama-34B和CodeLlama-34B-Python模型,在HumanEval上超越GPT-4的表现。在该内部数据集上两模型分别获得67.6%和69.5%的通过率高于原始模型的48.8%和53.7% 。调优后模型Phind-CodeLlama-34B-v1和Phind-CodeLlama-34B-Python-v1在HumanEval上分别获得67.6%和69.5%的通过率。显然都超越了原始 GPT-4 的 67%。 时间 2023年8月27日(北京时间) 作者 Phind团队 地址 地址https://www.phind.com/blog/code-llama-beats-gpt4 原文章 通过对CodeLlama-34B和CodeLlama-34B-Python进行微调我们在内部的Phind数据集上取得了令人瞩目的成绩。CodeLlama-34B在HumanEval上的一次通过率为48.8%而CodeLlama-34B-Python则为53.7%。根据OpenAI在三月份的官方技术报告GPT-4的通过率为67%。为确保结果的有效性我们对数据集应用了OpenAI的去污染方法。 昨天发布的CodeLlama模型在HumanEval上展现出了出色的性能。 Phind-CodeLlama-34B-v1在HumanEval上的一次通过率为67.6%。 Phind-CodeLlama-34B-Python-v1在HumanEval上的一次通过率为69.5%。 我们将这两个模型在一个拥有大约80,000个高质量编程问题和解决方案的专有数据集上进行了微调。与HumanEval在结构上不同的是该数据集采用了指令-答案对而不是代码补全示例。 我们对Phind模型进行了两个时期的训练总共约160,000个示例。我们没有使用LoRA这两个模型都经过了本机的微调。我们使用DeepSpeed ZeRO 3和Flash Attention 2在32个A100-80GB的GPU上进行训练序列长度为4096个标记训练时间为三个小时。 此外我们还应用了OpenAI的去污染方法来确保结果的有效性并且没有发现任何受污染的示例。该方法如下所示 对于每个评估示例我们随机抽样了三个50个字符的子字符串如果示例少于50个字符则使用整个示例。 如果任何抽样的子字符串是处理过的训练示例的子字符串则认为存在匹配。 有关去污染方法的更多信息请参阅OpenAI技术报告附录C。下面是我们在微调模型中实现的一次通过率得分 Phind-CodeLlama-34B-v1在HumanEval上的一次通过率为67.6%。 Phind-CodeLlama-34B-Python-v1在HumanEval上的一次通过率为69.5%。 (2)、WizardLM团队WizardCoder WizardLM 团队发布了基于Code Llama的最新WizardCoder-34B。WizardCoder-34B在HumanEval上的一次通过率pass1达到了惊人的 73.2%超越了原始 GPT-4、ChatGPT-3.5 以及 Claude 2、Bard。 为了开发我们的WizardCoder模型我们首先采用了Evol-Instruct方法专门针对编码任务进行了适应。这包括将提示信息定制为与代码相关的指令领域。随后我们使用新创建的指令跟随训练集对Code LLama的模型进行了微调包括StarCoder或Code LLama。 时间 2023年8月27日(北京时间) 作者 WizardLM 团队 地址 GitHub地址https://github.com/nlpxucan/WizardLM/tree/main/WizardCoder 测试地址WizardCoder-Python-34B-V1.0 Code Llama的安装
1、模型部署与推理
第1步获取Meta 官网授权
为了下载模型权重和分词器请访问 Meta AI 网站并接受我们的许可协议。
一旦您的请求获得批准您将收到一封带有签名的电子邮件链接。
第2步sh脚本下载 下载脚本 然后运行 download.sh 脚本在提示时传递提供的 URL 开始下载。请确保复制 URL 文本本身不要使用右键单击 URL 时的“复制链接地址”选项。如果复制的 URL 文本以 https://download.llamameta.net开头则复制正确。如果复制的 URL 文本以 https://l.facebook.com开头则复制错误。 先决条件 先决条件确保您已安装 wget 和 md5sum。然后运行脚本bash download.sh。 请注意链接在24小时后和一定数量的下载后会过期。如果您开始看到诸如 403Forbidden 的错误您始终可以重新请求链接。 设置 在具有 PyTorch / CUDA 的 conda 环境中克隆存储库并在顶级目录中运行 pip install -e . 第3步模型推理
不同的模型需要不同的模型并行MP值 Model MP 7B 1 13B 2 34B 4
所有模型都支持长达100,000标记的序列长度但我们根据 max_seq_len 和 max_batch_size 值预先分配缓存。因此根据您的硬件和用例设置这些值。 2、预训练
Code Llama 和 Code Llama - Python 模型没有经过微调以遵循指令。它们应该通过提示来获取期望的答案即提示的自然延续。请参考 example_completion.py 查看一些示例。为了说明查看下面的命令以使用 CodeLlama-7b 模型运行它nproc_per_node 需要设置为 MP 值
torchrun --nproc_per_node 1 example_completion.py
--ckpt_dir CodeLlama-7b/
--tokenizer_path CodeLlama-7b/tokenizer.model
--max_seq_len 128 --max_batch_size 4
预训练的代码模型包括Code Llama 模型 CodeLlama-7b、CodeLlama-13b、CodeLlama-34b以及 Code Llama - Python 模型 CodeLlama-7b-Python、CodeLlama-13b-Python、CodeLlama-34b-Python。 3、代码填充
Code Llama 和 Code Llama - Instruct 7B 和 13B 模型能够根据周围上下文填充代码。
请参考 example_infilling.py 查看一些示例。可以使用以下命令运行 CodeLlama-7b 模型以进行填充nproc_per_node 需要设置为 MP 值
torchrun --nproc_per_node 1 example_infilling.py
--ckpt_dir CodeLlama-7b/
--tokenizer_path CodeLlama-7b/tokenizer.model
--max_seq_len 192 --max_batch_size 4
预训练的填充模型包括Code Llama 模型 CodeLlama-7b 和 CodeLlama-13b以及 Code Llama - Instruct 模型 CodeLlama-7b-Instruct、CodeLlama-13b-Instruct。 4、微调指令模型
Code Llama - Instruct 模型经过微调以遵循指令。为了获得预期的特性和性能需要遵循 chat_completion 中定义的特定格式包括 INST 和 SYS 标签BOS 和 EOS 标记以及之间的空格和换行符我们建议在输入上调用 strip() 以避免双空格。
您还可以部署附加分类器以过滤出被认为不安全的输入和输出。请参阅 llama-recipes 存储库了解如何将安全检查器添加到推理代码的输入和输出中的示例。
使用 CodeLlama-7b-Instruct 的示例
torchrun --nproc_per_node 1 example_instructions.py
--ckpt_dir CodeLlama-7b-Instruct/
--tokenizer_path CodeLlama-7b-Instruct/tokenizer.model
--max_seq_len 512 --max_batch_size 4
经过微调的指令跟随模型包括Code Llama - Instruct 模型 CodeLlama-7b-Instruct、CodeLlama-13b-Instruct、CodeLlama-34b-Instruct。 Code Llama的使用方法
更新中……