【论文阅读】ChipNeMo中的数据集处理

前面总体学习了《ChipNeMo: Domain-Adapted LLMs for Chip Design》,然后又继续仔细看了论文中的领域适配分词和领域数据微调的预训练检索模型,对于数据集的处理,也需要仔细看一下。

提炼重点:1)对于数据集,除了领域数据,依然需要公共数据,避免由于微调带来模型原有能力的灾难性遗忘。2)需要有领域评估基准,同样的,评估基准需要包含公共的LLM学术基准。3)数据重采样,这个方面,比如文章提到“对代码数据进行了下采样,同时对自然语言数据,特别是设计文档进行了上采样”等,但是,具体的采样比例如何获得,文章并没有说。参考其他来源,数据重采样的合适比例,应该是通过尝试获得,训练后如果评估效果不好,相应调整数据采样比例,反复试验获得的良好的评估结果。

数据集处理

对于数据集处理,包括四个方面。
1、训练数据
在领域适配预训练(DAPT)期间,文章从专有的芯片设计特定数据源和公开可用的数据集中构建了数据集。
芯片设计数据集:文章的内部数据集包含与芯片设计相关的各种文本来源,涵盖了设计、验证、基础设施和内部文档。表3提供了使用LLaMA2分词器收集后过滤的数据的细分,以及相应的token数量。文章通过收集所有相关内部数据,然后根据文件名扩展进行过滤,区分机器生成和人工编写的内容来构建数据集。尽管文章在三个特定用例上进行了评估,但文章并没有特别将数据集限制为已知与这些用例相关的来源,因为文章相信纳入额外的领域知识将提高性能。收集、清理和过滤后,内部数据训练语料库拥有231亿个token。
公共数据集:文章使用来自各种来源的公开数据样本来增强芯片设计特定的数据。这是开发基础大型语言模型的常见做法。文章的方法是从其他语言模型中重用公共训练数据,条件是它必须是公开可访问的,并且与开源兼容。这些数据集与LLaMA2(Touvron等人,2023年)中使用的预训练数据高度相关,旨在DAPT过程中保留一般知识和自然语言能力。ChipNeMo使用的公共数据集可以分为两组,自然语言和代码。对于自然语言部分,文章从Wikipedia数据(Gao等人,2020年)中提取,因为它被广泛认为数据质量高。对于代码,文章利用GitHub数据(Kocetkov等人,2022年),重点关注也出现在文章内部数据芯片设计数据集中的编程语言,如C++、Python和Verilog。为了确保整体数据集代表预训练分布,文章执行了下采样操作,结果大约有9.2%的总训练token从这些公共数据集中采样,保持自然语言和代码的代表性平衡。训练用途的数据分布详情显示在表3中。
数据混合:文章收集的领域数据中有很大一部分是由来自不同来源的未标记代码组成的。为了增强模型对特定领域知识的理解,文章在2到4个训练时期内对代码数据进行了下采样,同时对自然语言数据,特别是设计文档进行了上采样。文章还增加了文章认为与下游应用程序更相关的数据的表示,例如人工编写的EDA工具脚本。此外,文章合并了1个训练周期的公开可用域数据。训练的Token分布细节如表3所示。
在这里插入图片描述

2、对齐数据
在进行监督式微调(SFT)时,文章采用了一个广泛可用的通用聊天SFT指令数据集。该数据集主要由公开可用的指令遵循数据集组成,包括OASST(Köpf等人,2023年)、FLAN(Wei等人,2022年)、P3(Sanh等人,2022年)以及一小组包含各种主题的广泛领域专有数据集,如头脑风暴、开放式问答、重写、总结等。值得注意的是,这里讨论的SFT指令数据主要关注一般自然语言任务,不包含与芯片设计下游用例相关的任何信息或任务。总的来说,该数据集包含128,000个训练样本。
对于SteerLM(Dong等人,2023年),文章严格遵循了(Wang等人,2023年)中的实现。属性训练数据仅包含来自HelpSteer(Wang等人,2023年)和OASST(Köpf等人,2023年)的公开可用数据。对于模型的属性条件微调,文章仅使用了包含56,000个训练样本的OASST数据。
此外,文章还精心组装了一个领域特定的指令数据集,用于将模型与下游用例对齐。这些示例由主题专家精心制作,并格式化为单轮问答。表4展示了文章的领域特定指令数据集的数量。值得注意的是,与大量的生成式聊天指令数据相比,领域特定指令数据集中的总训练样本数量相当少。
在这里插入图片描述

3、领域评估基准
为了快速且定量地评估各种模型的准确性,文章建立了以多项选择题和答案格式为结构的评估标准,每个用例都设计有至少一个复杂答案选项,以挑战领域专业知识有限的个体。在制定这些多项选择题的过程中,与领域专家的合作至关重要。文章的目标是确保每个问题都至少包含一个复杂的答案选项,从而对那些领域专业知识有限的人构成挑战。文章还特别注意防止问题中不经意地掺杂来自文章领域特定对齐数据的信息。除了每个用例的基准之外,文章还创建了另一个涵盖模拟和数字设计主题的通用电路设计知识基准。评估基准的多项选择题数量如表5所示。
在这里插入图片描述

当文章在上述基准上报告结果时,文章采用五次不同运行的平均结果,以减轻测试过程中的变异和噪声的影响。每次迭代使用一组5个样本的例子,在每次单独运行中引入变化。
除了这些领域特定的评估基准之外,文章还包括了常用的公开可用的LLM学术基准。此外,文章还通过评估Python的HumanEval(Chen等人,2021年)和Verilog的VerilogEval(Liu等人,2023年)来衡量模型的代码生成能力。

4、数据收集过程
芯片设计数据集的数据收集,是用一组shell和Python脚本实现的,旨在识别相关的设计数据和文档,在适用的情况下将其转换为纯文本,使用基本质量指标对其进行筛选,计算精确的文件重复数据消除的校验和,并压缩它们以供存储。收集流程没有使用现成的LLM特定的抓取和收集脚本,因为文章的目标是通过内部数据源(网络文件系统和内部web应用程序)的原位数据收集来最大限度地减少空间需求。对于基于文件系统的收集,在对数据进行质量过滤的同时,数据被保留在适当的位置,而不是在本地存储额外的原始数据集。
设计和验证数据收集包括各种源文件,包括Verilog和VHDL(RTL和网表)、C++、Spice、Tcl、各种脚本语言以及与构建相关的配置文件。来自内部web服务的数据是通过REST API调用和传统抓取收集的,在这两种情况下,都使用开源BeautifulSoup(Richardson,2007)Python库删除HTML格式,以最大限度地减少无意中删除编码示例,代价是引入更多的样板导航栏和其他HTML页面元素。文章的数据收集流支持传统的文档格式,包括.docx、.pptx和.pdf,使用现成的Python转换库和开源工具。
由于大多数内部数据被认为是高质量的,因此应用了最小限度的过滤:行数过滤用于确保排除过大或过小的文件,并将文件分为手动编写和工具生成的大类。

数据用例举例如下图
在这里插入图片描述
在这里插入图片描述

数据重采的比例变化,如下图
在这里插入图片描述

领域评估基准如下图
在这里插入图片描述

训练消融研究

对于文章的消融研究,文章进行了多轮领域适配预训练。
使用增强型分词器与原始分词器进行训练的差异似乎可以忽略不计。因此,文章将开放领域学术基准上的准确性降低主要归因于领域数据。此外,去除公共数据集仅在大多数任务上略微退步,包括学术基准。
在文章的探索中,文章尝试采用更大的学习率,如CodeLLaMA(Rozier等人,2023年)中所采用的。文章观察到在初始训练步骤中训练损失有大幅波动。尽管这种方法最终导致了训练和验证损失的改善,但文章注意到在所有领域特定和学术基准上都出现了大幅下降,编码除外。文章假设较小的学习率发挥了双重作用,既促进了通过DAPT领域知识的蒸馏,又保持了不会偏离基础模型太远的平衡,从而在显著提高领域特定任务性能的同时,保持了通用自然语言能力。
文章还探索了在领域适配预训练(DAPT)的背景下应用参数高效微调(PEFT)。为此,文章进行了两项实验,涉及引入LoRA适配器(Hu等人,2021年),引入了额外的2640万个(小型)和2.112亿个(大型)参数。在这两种情况下,文章的发现揭示了与全参数DAPT方法相比,在领域特定任务上的准确性存在显著差距。此外,当比较小型和大型PEFT模型的结果时,文章观察到在领域任务准确性上有边际提升,大型适配器表现出轻微的改进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5388.shtml

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

相关文章

第1篇:创建Platform Designer系统

Q:本期我们开始使用Platform Designer工具创建带IP核的FPGA自定义硬件系统。 A:Platform Designer是集成在Quartus软件里的系统设计工具,名称随着Quartus的不断更新曾命名为SOPC Builder和Qsys。 使用Platform Designer可以添加Quartus已有自…

安卓数据库SQLite

目录 一、SQLite数据库二、SQLiteOpenHelper和SQLiteDatabase2.1 SQLiteOpenHelper2.2 SQLiteDatabase 三、常见数据库使用介绍3.1 创建数据库3.2 插入数据3.3 修改数据(升级数据库)3.4 删除数据3.5 查询数据3.6 关闭数据库3.7 删除数据库 一、SQLite数据…

基于uniapp vue3.0 uView 做一个点单页面(包括加入购物车动画和左右联动)

1、实现效果&#xff1a; 下拉有自定义组件&#xff08;商品卡片、进步器、侧边栏等&#xff09;源码 2、左右联动功能 使用scroll-view来做右边的菜单页&#xff0c;title的id动态绑定充当锚点 <scroll-view :scroll-into-view"toView" scroll-with-animation…

OSPF基本配置

原理概述 OSPF 是一种应用非常广泛的基于链路状态的动态路由协议&#xff0c;它具有区域&#xff08; Area )化的层次结构&#xff0c;扩展性好&#xff0c;收敛速度快&#xff0c;适合部署在各种规模的网络上。 在 OSPF 中&#xff0c;每台路由器都必须有一个 Router-I…

仓储机器人确实蛮卷的~

导语 大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 视频来源于Agilox。 仓储机器人&#xff0c;无疑是现代物流业的一大亮点。它们小巧灵活&#xff0c;却能承担起繁重…

线上线下交友陪玩,支持小程序/app/h5三端打包,源码搭建!

社交APP定制开发的好处&#xff1a; 社交APP定制开发能够根据用户需求进行个性化定制&#xff0c;满足用户对于社交功能的特殊需求。不同用户对社交的理解和需求各不相同&#xff0c;定制开发可以根据用户的要求&#xff0c;提供更加个性化和专属的社交功能&#xff0c;为用户…

Zapier 与生成式 AI 的自动化(一)

原文&#xff1a;zh.annas-archive.org/md5/057fe0c351c5365f1188d1f44806abda 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 前言 当组织处理手动和重复性任务时&#xff0c;生产力会遇到重大问题。Zapier 处于无代码运动的前沿&#xff0c;提供了一种先进的工具&a…

Flutter运行项目一直:running gradle task

大体原因就是访问国外的资源由于网络等原因导致访问失败&#xff0c;解决方法就是换成国内的源 修改项目的android/build.gradle 文件&#xff0c;将里面的 google() mavenCentral()替换为 maven {allowInsecureProtocol trueurl https://maven.aliyun.com/repository/googl…

SpringCloud学习笔记(二)Ribbon负载均衡、Nacos注册中心、Nacos与Eureka的区别

文章目录 4 Ribbon负载均衡4.1 负载均衡原理4.2 源码解读4.3 负载均衡策略4.3.1 内置的负载均衡策略4.3.2 自定义负载均衡策略4.3.2.1 方式一&#xff1a;定义IRule4.3.2.2 方式二&#xff1a;配置文件 4.4 饥饿加载 5 Nacos注册中心5.1 认识和安装Nacos5.2 服务注册到Nacos5.3…

STM32 电源控制PWR

一、PWR电源控制 1.1 PWR&#xff08;Power Control&#xff09; PWR负责管理STM32内部的电源供电部分&#xff0c;可以实现可编程电压监测器和低功耗模式的功能 可编程电压监测器&#xff08;PVD&#xff09;可以监控VDD电源电压&#xff0c;当VDD下降到PVD阀值以下或上升到…

Postgresql 从小白到高手 十一 :数据迁移ETL方案

文章目录 Postgresql 数据迁移ETL方案1、Pg 同类型数据库2 、Pg 和 不同数据库 Postgresql 数据迁移ETL方案 1、Pg 同类型数据库 备份 : pg_dump -U username -d dbname -f backup.sql插入数据&#xff1a; psql -U username -d dbname -f backup.sqlpg_restore -U username…

基于PCIE4C的数据传输(三)——使用遗留中断与MSI中断

本文继续基于PCIE4C IP核实现主机&#xff08;RHEL 8.9&#xff09;与FPGA&#xff08;Xilinx UltrascaleHBM VCU128开发板&#xff09;间DMA数据传输时的中断控制。本文分为三个部分&#xff1a;FPGA设计、驱动程序设计、上板测试。 FPGA设计 基于PCIE4C的数据传输&#xff0…

聚醚醚酮(Polyether Ether Ketone)PEEK在粘接使用时可以使用UV胶水吗?要注意哪些事项?

一般情况下&#xff0c;聚醚醚酮&#xff08;Polyether Ether Ketone&#xff0c;PEEK&#xff09;是一种难以黏附的高性能工程塑料&#xff0c;而UV胶水通常不是与PEEK进行粘接的首选方法。PEEK表面的化学性质和高温性能使得它对常规胶水的附着性较低。然而&#xff0c;有一些…

深度学习之基于Matlab NN的伦敦房价预测

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 房价预测是房地产领域的一个重要问题&#xff0c;对于投资者、开发商以及政策制定者等都具有重要的指…

如何选择适合的美国站群服务器:经济实惠而可靠的选择

如何选择适合的美国站群服务器&#xff1a;经济实惠而可靠的选择 在今天的数字化时代&#xff0c;选择适合的服务器对于个人网站或企业来说至关重要。一台性能稳定、价格实惠的美国站群服务器能够为您的网站提供所需的支持&#xff0c;但在选择之前&#xff0c;有一些关键因素…

对话访谈——五问RAG与搜索引擎:探索知识检索的未来

记一次关于RAG和搜索引擎在知识检索方面的对话访谈&#xff0c;针对 RAG 与传统搜索引擎的异同,以及它们在知识检索领域的优劣势进行了深入的探讨。 Q&#xff1a;传统搜索引擎吗&#xff0c;通过召回-排序的两阶段模式&#xff0c;实现搜索逻辑的实现&#xff0c;当前RAG技术也…

SDB2F5 1.5A,高达28V输出1.2MHz升压转换器芯片IC

一般说明 该SDB2F5是一个恒定的频率&#xff0c;5针SOT23电流模式升压转换器&#xff0c;低功耗应用。SDB2F5交换机位于1.2MHz&#xff0c;并允许使用高度小于或等于2mm的微小、低成本电容器和电感器。内部软启动的结果在小浪涌电流和延长电池寿命。 该SDB2F5操作从一个…

Spring6 当中的 Bean 循环依赖的详细处理方案+源码解析

1. Spring6 当中的 Bean 循环依赖的详细处理方案源码解析 文章目录 1. Spring6 当中的 Bean 循环依赖的详细处理方案源码解析每博一文案1.1 Bean的循环依赖1.2 singletion 下的 set 注入下的 Bean 的循环依赖1.3 prototype下的 set 注入下的 Bean 的循环依赖1.4 singleton下的构…

JavaScript中的Object方法、Array方法、String方法

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 &#x1f525;Object方法&#x1f31e;1 Object.is()&#x1f31e;2 Object.…

Windows中Redis安装配置

一&#xff0c;下载 Redis官网 Redis中文网 Redis的Github资源 安装 更改资源路径及添加环境变量 添加防火墙异常 设置最大缓存 三、验证redis安装是否成功 redis-cli