Code Llama: Open Foundation Models for Code论文阅读

news/2024/9/14 9:40:00/ 标签: llama, codellama

整体介绍

Code Llama 发布了3款模型,包括基础模型、Python 专有模型和指令跟随模型,参数量分别为 7B、13B、34B 和 70B。这些模型在长达 16k tokens 的序列上训练。都是基于 Llama 2。

作者针对infilling (FIM) 、长上下文、指令专门做了微调 long-context fine-tuning (LCFT).
在这里插入图片描述

llama_5">codellama细节

Code Llama 模型家族

  • 初始化: 所有 Code Llama 模型均以 Llama 2 模型权重初始化。
  • 训练数据: 训练使用了500B tokens,而70B模型使用了1T tokens。
  • 填充能力: 7B、13B和70B模型支持基于上下文的填充(infill)。

数据集

Code Llama 模型的训练数据集由公开可用的代码组成,其中8%的样本数据来自与代码相关的自然语言数据集。这些数据集包含代码讨论和代码片段,有助于模型理解自然语言。

  • 数据集: 训练数据主要来自公开可用的代码数据,以及与代码相关的自然语言数据。
  • 标记化: 使用与 Llama 2 相同的标记器进行标记化处理。

Infilling(填充)

填充是预测程序中缺失部分的任务,Code Llama 模型通过特定的训练方法来实现这一功能。训练使用了因果掩码(causal masking)技术,将训练序列的部分移动到序列末尾,并自回归地预测重排序列。

  • 分割: 训练文档在字符级别上分割为前缀、中间部分和后缀。
  • 掩码: 以一定概率应用掩码转换,只对不超过模型上下文长度的文档进行操作。

长上下文微调(Long context fine-tuning)

长上下文微调阶段是专门提出来提高模型处理长序列的能力。通过修改RoPE位置嵌入的参数,将模型的最大上下文长度从4,096 tokens扩展到100,000 tokens。

  • 序列长度: 训练时使用的序列长度为16,384 tokens。
  • RoPE调整: 调整了旋转嵌入的频率,以适应更长的序列。

指令微调(Instruction fine-tuning)

Code Llama - Instruct 模型在 Code Llama 的基础上,通过三种额外的数据进行微调,以更好地回答问题。
三种不同类型的数据:

  • 专有数据集: 使用 Llama 2 的RLHF V5 指令微调数据集。提高模型输出的安全性,增强模型对用户指令的响应能力。
  • 自指导数据集: 通过执行反馈选择数据,构建自指导数据集。使用llama2 70B生产指令问题,coda llama 7B回答问题,选择对的作为最后的数据集。
  • 复述: 防止模型在一般编码和语言理解能力上退步,使用代码数据集和自然语言数据集的一小部分进行训练。

2.6 训练细节

  • 优化器: 使用 AdamW 优化器,并采用余弦调度策略。
  • 学习率: 根据模型大小调整学习率。

能力对比

三种的能力对比:

  • Code Llama (基础模型)
    代码生成: 用于广泛的代码生成任务。
    多语言支持: 不局限于单一编程语言,能够处理多种编程语言的代码。
    参数规模: 提供7B、13B、34B和70B参数的模型。
    长上下文处理: 经过特别微调,能够处理长达100k tokens的输入上下文。
  • Code Llama - Python (Python 专有模型)
    Python 语言优化: 专为Python编程语言设计,提高在Python代码生成任务上的性能。
    参数规模: 同样提供7B、13B、34B和70B参数的模型。
    长上下文与填充: 支持长上下文处理,并且7B、13B和34B参数的模型支持代码填充。
  • Code Llama - Instruct (指令跟随模型)
    指令跟随: 经过额外的微调,以更好地遵循自然语言指令来生成代码。
    安全性与有用性: 通过在包含安全和有帮助响应的数据集上的训练,提高了模型的安全性和有用性。
    参数规模: 目前提供7B、13B和34B参数的模型。
    自生成数据: 使用自生成的单元测试和解决方案来训练模型,增强了代码生成和理解的能力。

所有这些模型都是在大量代码数据上训练的,并且都经过了优化以提高在代码生成和理解任务上的性能。Code Llama - Python 专注于Python语言的代码生成,而 Code Llama - Instruct 专注于提高对自然语言指令的遵循能力,并增强了模型的安全性。基础模型 Code Llama 提供了广泛的代码生成能力,适用于多种不同的编程语言。

其他能力

该模型还可以做代码问题解答:
在这里插入图片描述
可以生成注释
在这里插入图片描述


http://www.ppmy.cn/news/1516818.html

相关文章

Android strings.xml中定义字符串显示空格

<string name"str">字 符 串</string> 其中 就表示空格。如果直接在里面键入空格&#xff0c;无论多少空格都只会显示一个。 用的XML转义字符记录如下&#xff1a; 空格&#xff1a; <string name"out_bound_submit">出 库</stri…

Tongweb8074+7049m4 安装TongFlowControl(by lqw)

文章目录 介绍安裝包和説明Tongweb8074 安装TongFlowControlTongweb7049m4 安装TongFlowControl 介绍 TongFlowControl是面向分布式服务架构的流量监控工具&#xff0c;是TongWeb基于QPS/并发数和调用关系的流量 控制功能&#xff0c;可在TongFlowControl控制台进行实时监控和…

(转载)使用zed相机录制视频

参照下面这个链接 https://blog.csdn.net/peng_258/article/details/127457199?ops_request_misc&request_id&biz_id102&utm_termzed2%E5%BD%95%E5%88%B6%E6%95%B0%E6%8D%AE%E9%9B%86&utm_mediumdistribute.pc_search_result.none-task-blog-2~all~sobaiduweb…

【yarn publish : 报错 passed folder/tarball doesn‘t exist 】

当执行yarn publish 时报错&#xff0c;具体命令类似 yarn publish --new-version ${NEW_VERSION} ${my-node-moudle-path}/my-node-modules 报错内容&#xff0c; 网上搜了一圈&#xff0c;基本没有这个报错的相关内容&#xff0c;最后分析并解决了&#xff0c;这里记录分享下…

大语言模型中,role为user、assistant、system有什么区别

这里写目录标题 大语言模型中&#xff0c;role为user、assistant、system有什么区别要实现多轮对话&#xff0c;也就说要记住历史问答&#xff0c;该如何设置System、User、Assistant&#xff1f;管理历史对话 大语言模型中&#xff0c;role为user、assistant、system有什么区别…

解决 JS WebSocket 心跳检测 重连

解决 JS WebSocket 心跳检测 重连 文章目录 解决 JS WebSocket 心跳检测 重连一、WebSocket 心跳检测的作用二、心跳检测的处理方案1. 创建 WebSocket 连接2. 心跳参数设置3. 心跳检测逻辑4. 心跳包响应处理5. 断线重连机制 三、总结 一、WebSocket 心跳检测的作用 WebSocket 是…

Kafka篇之清理或创建topic

1. kafka清理topic主题 清理topic步骤&#xff1a; step1&#xff1a; ./kafka-topics.sh --bootstrap-server 10.143.167.41:9092,10.143.167.42:9092,10.143.167.43:9092 --delete --topic reflow_data_topic请注意&#xff0c;如果 Kafka 的配置中没有设置 delete.topic.e…

SpringBoot日常:集成代码覆盖率测试工具JaCoCo

文章目录 简介开始集成1、pom添加依赖2、pom添加插件3、业务代码4、单元测试代码5、开始测试6、查看结果 如何排除不需要的路径&#xff1f;设置覆盖率目标并验证JACOCO的不足JACOCO改进版super-Jacoco代码覆盖率的知识扩展 简介 JaCoCo&#xff08;Java Code Coverage&#x…

mac苹果电脑搭建Python开发环境

公司的新电脑上要搭建Python的开发环境&#xff0c;由于给的是mac电脑&#xff0c;所以需要重新搭建python环境。 这里我首先考虑的还是miniconda。 由于官网下载太慢了&#xff0c;所以我选择从清华源下载&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/minico…

【精选】基于Python的热门旅游景点数据分析系统的设计与实现(南京旅游,北京旅游,旅游网站,全国各地旅游网站)

目录&#xff1a; 系统简介&#xff1a; 关键技术介绍 2.1 PYTHON语言简介 2.2 MySql数据库 2.3 DJANGO框架 2.4 Hadoop介绍 2.5 Scrapy介绍 2.6 B/S架构 系统总功能结构设计 系统详细实现&#xff1a; 6系统测试 系统测试的目的 软件测试过程 测试用例 为什么选择…

EasyExcel 导入计算公式导出展示字符串问题(SUM)

导出自定义表单 结果遇到 SUM函数 时 没有算出结果&#xff0c;直接展示的函数字符串 处理思路 拦截公式字符串 &#xff1a; 将对应的cell 设置 setCellFormula 字符串公式 然后cell类型设置为 CellType.FORMULA 重新配置 这样就解决了问题。 注意先设置CellFormula 然…

线程同步机制封装类

基础知识 RAII RAII全称是“Resource Acquisition is Initialization”&#xff0c;直译过来是“资源获取即初始化”. 是一个用于管理资源&#xff08;如内存、文件句柄、网络连接等&#xff09;的编程范式在构造函数中申请分配资源&#xff0c;在析构函数中释放资源。因为C的…

模板-C++

模板可以让你编写通用的、可重用的代码&#xff0c;而无需对每种数据类型编写重复的代码。模板分为两种主要类型&#xff1a;函数模板和类模板。 类模板 #include <iostream> #include <string> using namespace std;template< typename T> class PrintfEv…

网络安全售前入门03——审计类产品了解

目录 1.前言 2.堡垒机介绍 2.1产品架构功能 2.2应用场景 2.3部署形式 2.4产品价值 2.5选型依据 3.日志审计 3.1产品架构功能 3.2应用场景 3.3部署形式 3.4产品价值 3.5选型依据 后续 1.前言 为方便初接触网络安全售前工作的小伙伴了解网安行业情况,我制作一系统…

CodeQL 从零到精通第 3 部分:使用 CodeQL 进行安全研究

查询特定的库方法 在上一篇博文中,我们根据名称匹配函数调用、函数和方法调用,例如,在本[挑战](https://github.blog/2023-06-15-codeql-zero-to-hero-part-2-getting-started-with-codeql/#:~:text=Challenge 9—Find all functions with “command” as part of its name…

oc记录 - UIView.layer

UIView属性 layer 在 Objective-C 中&#xff0c;UIView 类有一个名为 layer 的属性&#xff0c;它返回一个 CALayer 对象。这个属性允许你直接操作视图的底层图形层&#xff0c;以便更精细地控制视图的外观和行为。 以下是 UIView 的 layer 属性的一些基本用法&#xff1a; …

使用LinkedHashMap实现固定大小的LRU缓存

使用LinkedHashMap实现固定大小的LRU缓存 1. 什么是LRU&#xff1f; LRU是"Least Recently Used"的缩写&#xff0c;意为"最近最少使用"。LRU缓存是一种常用的缓存淘汰算法&#xff0c;它的核心思想是&#xff1a;当缓存满时&#xff0c;优先淘汰最近最少…

在 FPGA 上实现以太网的“低级”指南

如今&#xff0c;我们日常的网络连接大多是通过无线方式进行的&#xff0c;因此很容易忘记以太网。但它仍然是一种有用的标准&#xff0c;是一个可靠的高吞吐量网络链接的好方法。为此&#xff0c;[Robert Feranec] 和 [Stacy Rieck] 编写了一个关于如何在 FPGA 上使用以太网的…

【Mysql】通过Keepalived搭建mysql双主高可用集群

一、环境信息 主机名ip操作系统mysql版本VIP&#xff08;虚拟ip&#xff09;hadoop01192.168.10.200centos7_x865.7192.168.10.253hadoop03192.168.10.202centos7_x865.7 二、mysql集群搭建 两台节点&#xff0c;如果未部署mysql服务&#xff0c;部署文档请看【Mysql】mysql…

模型 PMI思考法

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。全面评估&#xff0c;三思而后行。 1 PMI思考法的应用 1.1 个人职业发展中的PMI思考法应用 张华是一位有志于提升自己职业竞争力的职场人士。他正在考虑报名参加一个专业认证课程&#xff0c;以期提…