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

news2024/11/16 17:48:48

整体介绍

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

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

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 的指令调整数据集。
  • 自指导数据集: 通过执行反馈选择数据,构建自指导数据集。
  • 复述: 防止模型在一般编码和语言理解能力上退步,使用代码数据集和自然语言数据集的一小部分进行训练。

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.coloradmin.cn/o/2076287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS Sprite(精灵图)

CSS Sprite也叫CSS精灵图、CSS雪碧图,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去 优点: 减少图片的字节减少网页的http请求,从而大大的提高页面的性能 原理: 通过background-i…

《黑神话悟空》幽魂怎么打?大头怪幽魂打法攻略

黑神话悟空第一章中许多玩家都容易被大头怪幽魂给难住,这算是渡劫中的第一难,所以不少玩家想了解黑神话悟空大头怪怎么打?其实大头怪打起来并不难,只是很多的玩家们没有了解他的弱点以及特性。小编今天就为大家整理了大头怪幽魂的…

吴艳妮牵手创维,奥运后的首个代言为什么是她?

​近日,吴艳妮参加奥运会的表彰大会,晒出了与孙颖莎、王楚钦等运动员的合照,并写道:“最幸福的一天”在网络上引发讨论,让人不禁想起在巴黎奥运会刚结束的时候,家电巨头创维官宣她作为其品牌大使的消息也是…

在不训练模型的情况下强化语言模型

文章目录 一些神奇咒语提供额外资讯拆解任务使用工具让模型彼此合作 一些神奇咒语 让模型一步一步的思考 让模型解释一下自己的答案 对模型进行情绪勒索,比如对模型说:这件事对我真的很重要! 跟模型说”请“是没有用的;跟模型说“…

IO--标准函数使用方法

在学习这个知识点时,要清楚我们使用IO其实就是如何使用函数; 注意点 函数名函数参数之间的关系应用的场景,返回值缓冲区的概念 1、IO的分类 文件IO标准IO 重点 1、标准IO函数 fopen / fclosefprintf / fscanffputc / …

如何使用Kdrill检测Windows内核中潜在的rootkit

关于Kdrill Kdrill是一款用于分析 Windows 64b 系统内核空间安全的工具,该工具基于纯Python 3开发,旨在帮助广大研究人员评估Windows内核是否受到了rootkit攻击。 需要注意的是,该项目与Python2/3兼容,无其他依赖组件&#xff0c…

女明星玩乙游,为何会推动国乙玩家“世纪大和解”?

“震惊!叠姐和光姐竟然世纪大和解了。” 这件在国乙圈匪夷所思、想都不敢想的事,竟然在一位女明星的推动下发生了,也因此诞生了国乙圈的“8.22事件”。 事情的起因是女艺人乃万在社交平台上发布了乙游相关言论,引起了乙游玩家不…

SAP 有趣的‘bug‘ 选择屏幕输入框没了

如下代码将会输出一个P_U的字段 PARAMETERS p_u TYPE string VISIBLE LENGTH 12 MEMORY ID m1.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN.IF screen-name P_U.screen-invisible 1.MODIFY SCREEN.ENDIF.ENDLOOP. 如果我们给这个字段设置一个默认值,参考如下代码…

8.26-docker创建容器+打包镜像+docker文件的学习

一、回顾 创建容器:docker run -it --name a1 centos:latest /bin/bash 查看容器:docker ps(查看正在up的容器) docker ps -a(查看所有的容器) 切回宿主机:ctrl p q 启动容器:d…

Furion+SqlSugar环境配置与项目创建

一、速通一图流 二、安装 .NET 8 1. 下载与安装 .NET 8 SDK 访问 .NET 下载页面 并下载最新版本的 .NET 8 SDK。根据操作系统选择适合的安装包(如 Windows、macOS 或 Linux),并按照提示完成安装。 2. 验证安装 打开终端或命令提示符&…

SpringMVC - 第一个 SpringMVC 程序

MVC: 模块 视图 控制器 的简写,表示层 属于 C V,业务层和逻辑层属于 M SpringMVC 是对 web 使用的一套框架,可以更加快捷高效的管理 web应用 所有的请求都会经过 DispatcherServlet 这一个 Servlet 支持 IoC 和 AOP 统一处理请求 可以解析多…

找工作——行秋24届求职面试经验汇总

前言 求职记录:本人bg双9(末流),共投岗位200,收到5个offer,求职方向偏向于国企,求职城市青睐新一线城市。个人求职记录 (qq.com)https://docs.qq.com/sheet/DSlBBVWRKZVZ5TWlD?tabBB08J2&…

C 06 编译4阶段

c语言编译的4个阶段:预处理、 编译、 汇编、 链接 预处理阶段会在源代码中查找预编译指令,其中主要是头文件展开(include),宏定义(defind),选择性编译(ifdef)三种指令 预…

Claude 3.5 Sonnet引入了LaTeX公式渲染功能!!

终于,Claude 也引入了LaTeX公式渲染功能,消息一出,评论区的网友们热议不断。 【最新版】手把手Claude 3.5 Sonnet 详细步骤注册方法!_claude 3.5 sonnet 注册 早在 ChatGPT 率先支持 LaTeX 语言用于输入和显示数学公式时&#xf…

[从0开始AIGC][LLM]:LLM中Encoder-Only or Decoder-Only?为什么主流LLM是Decoder-Only?

LLM中Encoder-Only or Decoder-Only & 为什么主流LLM是Decoder-Only? 文章目录 LLM中Encoder-Only or Decoder-Only & 为什么主流LLM是Decoder-Only?1. 什么是Encoder-only、Decoder-Only2. 为什么当前主流的LLM都是Decoder-only的架构低秩问题 …

欧瑞康oerlikon PECVD 系统 KAI MT R1.0 模块化 操作说明

欧瑞康oerlikon PECVD 系统 KAI MT R1.0 模块化 操作说明

HTML5手机端通用网站模板源码

文章目录 1.设计来源1.1 主界面1.2 文章信息界面1.3 文章列表界面1.4 双列文章列表界面1.5 通用标签界面1.6 联系我界面1.7 折叠框标签界面1.8 相关界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作…

如何给笔记本或台式机顺利升级内存条

先查一下主板还有无剩下卡槽 win r 输入命令 taskmgr 调用后台查看 获取两个关键信息 速度 2666MHZ ,卡槽 2/4 意味着还剩下两个空卡槽 接下来 用鲁大师纯净版查一下主板型号 鲁大师 v5.21.1300 绿色纯净版 - 果核剥壳 (ghxi.com) 查完之后&#xff0…

如何使用双重IP代理实现更安全的网络访问

在进行网络爬虫或其他需要隐匿真实IP的操作时,单一的代理IP有时并不能完全满足我们的需求。为了进一步提高安全性和隐私保护,我们可以使用双重IP代理。本文将详细介绍如何使用Java实现双重IP代理,帮助你在网络环境中更加游刃有余。 什么是双重…

TOMCAT “tom小猫”向你招手!!赶紧学起来!

一、WEB技术 1.1HTTP协议和B/S 结构 操作系统有进程子系统,使用多进程就可以充分利用硬件资源。进程中可以多个线程,每一个线程可以被CPU调度执行,这样就可以让程序并行的执行。这样一台主机就可以作为一个服务器为多个客户端提供计算服务。…