Textbooks Are All You Need

2023-11-20

本文是LLM系列文章,针对《Textbooks Are All You Need》的翻译。

摘要

我们介绍了phi-1,这是一种新的大型代码语言模型,其大小明显小于竞争模型:phi-1是一种基于Transformer的模型,具有1.3B参数,在8个A100上训练了4天,使用了来自网络的“教科书质量”数据(6Btoken)和GPT-3.5(1Btoken)的综合生成教科书和练习。尽管规模很小,但phi-1pass@1HumanEval和MBPP的准确率分别为50.6%和55.5%。与phi-1-base(我们在编码练习数据集上微调阶段之前的模型)和phi-1-small(一个较小的模型,使用与phi-1相同的管道训练350M个参数,在HumanEval上仍达到45%)相比,它还显示出令人惊讶的涌现特性。

1 引言

2 训练细节和高质量数据的重要性

3 对CodeExercise进行微调后的模型能力峰值

4 LLM评分对非常规问题的评价

5 数据修剪用于公正的性能评估

6 结论

正如一本全面、精心制作的教科书可以为学生提供掌握新学科所需的知识一样,我们的工作证明了高质量数据在磨练语言模型在代码生成任务中的熟练程度方面的显著影响。通过制作“教科书质量”的数据,我们能够训练出一个模型,该模型在HumanEval和MBPP等编码基准上几乎超过所有开源模型,尽管模型大小小了10倍,数据集大小小了100倍。我们假设,这种高质量的数据极大地提高了代码语言模型的学习效率,因为它们提供了清晰、独立、有指导性和平衡的编码概念和技能示例。
与较大的代码模型相比,我们的模型仍然存在许多局限性。首先,phi-1专门从事Python编码,与多语言模型相比,这限制了它的通用性。其次,phi-1缺乏大型模型的特定领域知识,例如使用特定API编程或使用不太常见的包。最后,由于数据集的结构化性质以及语言和风格缺乏多样性,phi-1对提示中的风格变化或错误的鲁棒性较差(例如,当提示中出现语法错误时,其性能会显著下降)。我们对这些限制进行了扩展,并在附录B中给出了phi-1失效模式的示例。
这些限制似乎都不是根本性的,随着更多的工作,我们的方法可以用来解决每一个限制,尽管尚不清楚克服这些限制可能需要什么样的缩放(无论是模型大小还是数据集大小)。我们还认为,使用GPT-4而不是GPT-3.5生成合成数据可以获得显著的收益,因为我们注意到GPT-3.5数据的错误率很高。有趣的是,尽管存在这些错误,phi-1仍然能够实现如此高的编码熟练度(在[AZL23]中观察到类似的现象,其中语言模型可以在100%错误率的数据上进行训练,并且在测试时仍然生成正确的答案)。
更普遍地说,我们的工作提供了证据,证明开发创建高质量数据集的良好方法是推进自然语言处理和相关领域研究的中心方向(另见[JWJ+23]以获取更多证据)。然而,创建高质量的数据集并不是一项微不足道的任务,它带来了一些需要解决的挑战。一个挑战是确保数据集涵盖了希望模型学习的所有相关内容和概念,并以平衡和有代表性的方式做到这一点。另一个挑战是确保数据集真正多样化且不重复,这样模型就不会简单地过度拟合数据或记住特定的模式或解决方案。这需要找到在数据生成过程中注入随机性和创造性的方法,同时保持示例的质量和连贯性。此外,即使在创建了这样的数据集之后,我们也缺乏一种良好的方法来衡量和评估数据中的多样性和冗余性。例如,如果我们有一个包含编码练习的数据集,那么很难确定每个练习有多少不同的变体,以及它们如何在数据集中分布。最后,由于语言模型本身将被用于为未来的语言模型策划数据,这进一步增加了训练此类模型的道德和社会影响的紧迫性,例如数据和参与这一过程的模型的问责制、透明度和偏见。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Textbooks Are All You Need 的相关文章

随机推荐

  • 网站为什么建议用https协议

    HTTPS 全称 Hyper Text Transfer Protocol over SecureSocket Layer 是以安全为目标的 HTTP 通道 在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 HTTPS 在HT
  • STM32f103增加ESP8266模块,通过Wifi用手机TCP服务端远程与STM32通信

    STM32f103增加ESP8266模块 通过Wifi用手机TCP服务端远程与STM32通信 提示 esp8266开启透传模式 连上路由器Wifi 电脑热点 接入STM32串口引脚 另外手机TCP服务端是手机IP地址 串口号 大于8000滴
  • 仅需三步就可以把代码块完美插入到word中

    还在为在word中呈现代码而烦恼吗 如何在word中插入c 代码 如何在word中插入代码块 如何在word中完美的呈现代码 如何在word中对代码进行排版 来开始表演了 1 打开网站 http word wd1x com 支持c c ja
  • keil提示找不到芯片库

    keil提示找不到芯片库 有几种可能 一种是没安装芯片软件包 下载相应芯片包即可 还有一种可能是工程本身是用keil4创建的 而你用的是keil5打开的 此种情况将后缀名uvproj改成uvprojx即可 图1
  • java获取method_从Method中获取完整类名和方法名

    需求假设 假设在包com zhoutao controller下有方法getKey 方法 在JavaEE中 通过AOP获得该方法的的对象method 现在通过该对象的getName方法 仅仅只能获得getKey的结果 现在我需要的是com
  • 性别年龄识别器

    心情 最近比较郁闷 自己的小论文已经投了快8个月了 从去年的AAAI CVPR 到现在在审的TCSVT AAAI由于页数超限被拒 CVPR因为一个正面和2个负面评价被拒 TCSVT还前途未卜 真的很郁闷 心情不好 论文也不太想看 撸撸代码放
  • Idea快速开发SpringBoot项目的方法

    一 常用插件 1 Free Mybatis plugins 针对Mybatis框架提供的插件 自动完成Mapper接口和Mapper xml之间的跳转 2 RestfulTool 自动显示工程中的所有URL接口 进行测试 并且提供检索功能
  • Elasticsearch(十三) ElasticSearch搜索附近的人

    需求 通过指定点搜索附近的人 要求可以过滤年龄 结果按照距离进行排序 并且展示她 他距离你多远 本文参考 es官网文档 https www elastic co guide cn elasticsearch guide current so
  • 面试题:StringBuilder 和 StringBuffer 区别(通俗易懂易背)

    StringBuffer是同步的 线程安全 StringBuilder不是 什么时候用哪一个 StringBuilder 当您需要一个可以修改的字符串 并且只有一个线程正在访问和修改它时 StringBuffer 当你需要一个可以修改的字符
  • sql: Compare Tables

    使用 UNION INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式 select from BookInfoList 存在不同的 select BookInfoID BookInfoBarCod
  • VMware安装OpenEuler

    VMware安装OpenEuler 需要考虑的因素 安装系统的用途 桌面开发 服务器 Linux学习使用 磁盘分区规划 最小120G 划分 boot swap 根分区等 网络 是否对外提供服务 NAT模式 桥接模式 仅主机模式 1 下载镜像
  • 前端大屏常用的适配方案

    假设我们正在开发一个可视化拖拽的搭建平台 可以拖拽生成工作台或可视化大屏 或者直接就是开发一个大屏 首先必须要考虑的一个问题就是页面如何适应屏幕 因为我们在搭建或开发时一般都会基于一个固定的宽高 但是实际的屏幕可能大小不一 接下来我们就尝试
  • 安卓10开机时间优化分析

    本文从以下六点分析开机时间 1 软件环境 2 开机时间测试方法 3 开机各阶段重要的时间节点 4 bootchart工具使用说明 5 Android开机时间日志信息 6 开机时间优化方案 一 软件环境 平台 android10 0 qcom
  • Stem教育是探究式的学习方式

    在国家政策的扶持下 STEM教育慢慢进入大众的视野 走近一部分大中小学生的课堂 教育部出台的 教育信息化 十三五 规划 中明确指出有效利用信息技术推进 众创空间 建设 探索STEM教育 创客教育等新教育模式 使学生具有较强的信息意识与创新意
  • virtualbox 3.0.8 下载

    http download virtualbox org virtualbox 3 0 8
  • java命令执行jar包main方法指定相关依赖

    1 准备好工程执行所需的所有依赖jar包 也可以使用maven导出依赖的方法导出 2 将工程打包 此处打成jar包 如上图所示 zookeeper learn 1 0 SNAPSHOT jar 本次需要jdk java命令执行的jar包 3
  • #互联网生活中的隐私保护:用隐私换便利还是花钱护隐私?# 隐私保护与个人信息安全:在便利与隐私之间的取舍

    文章目录 1 看法 2 互联网生存指南 通过哪些方法来加强个人信息保护 2 1 加强个人信息安全意识 2 2 使用强密码和多因素认证 2 3 更新操作系统和软件 2 4 谨慎使用公共Wi Fi网络 2 5 定期备份个人数据 2 6 注意社交
  • Qt之自定义布局管理器(QBorderLayout)

    简述 QBorderLayout 顾名思义 边框布局 实现了排列子控件包围中央区域的布局 具体实现要求不再赘述 请参考前几节内容 简述 实现效果源码 使用 实现 QBorderLayout主要采用QLayout和QWidgetItem实现
  • MySQL 代替in/not in 的sql语句

    1 in和exists in是把外表和内表作hash连接 而exists是对外表作loop循环 每次loop循环再对内表进行查询 一直以来认为exists比in效率高的说法是不准确的 如果查询的两个表大小相当 那么用in和exists差别不
  • Textbooks Are All You Need

    本文是LLM系列文章 针对 Textbooks Are All You Need 的翻译 课本是你全部所需要的 摘要 1 引言 2 训练细节和高质量数据的重要性 3 对CodeExercise进行微调后的模型能力峰值 4 LLM评分对非常规