paint-brush
ChipNeMo:适用于芯片设计的领域适应性法学硕士 (LLM):评估经过@textmodels
115 讀數

ChipNeMo:适用于芯片设计的领域适应性法学硕士 (LLM):评估

太長; 讀書

研究人员提出了 ChipNeMo,利用领域自适应来增强用于芯片设计的 LLM,实现模型尺寸缩小 5 倍,同时获得更佳的性能。
featured image - ChipNeMo:适用于芯片设计的领域适应性法学硕士 (LLM):评估
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

作者:

(1)刘明杰,NVIDIA{同等贡献};

(2)Teodor-Dumitru Ene,NVIDIA{同等贡献};

(3)NVIDIA 的 Robert Kirby {平等贡献};

(4)Chris Cheng,NVIDIA{同等贡献};

(5)Nathaniel Pinckney,NVIDIA{平等贡献};

(6)梁荣建,NVIDIA{同等贡献};

(7) 乔纳·阿尔本(NVIDIA);

(8)NVIDIA 的 Himyanshu Anand;

(9) 桑米特拉·班纳吉(Sanmitra Banerjee),NVIDIA;

(10)Ismet Bayraktaroglu,NVIDIA;

(11) NVIDIA 的 Bonita Bhaskaran;

(12)NVIDIA 公司的布莱恩·卡坦扎罗(Bryan Catanzaro)

(13)NVIDIA 的阿琼·乔杜里(Arjun Chaudhuri)

(14)莎朗·克莱(NVIDIA)

(15) NVIDIA 的比尔·戴利(Bill Dally)

(16) 劳拉·当(NVIDIA)

(17) 帕里克希特·德什潘德(Parikshit Deshpande),NVIDIA;

(18)Siddhanth Dhodhi,NVIDIA;

(19)Sameer Halepete,NVIDIA;

(20)埃里克·希尔(Eric Hill),NVIDIA;

(21) 胡嘉尚,NVIDIA;

(22)苏米特·贾恩(NVIDIA);

(23) NVIDIA 的 Brucek Khailany;

(24) 乔治·科凯(George Kokai),NVIDIA;

(25) 基肖尔·库纳尔(NVIDIA);

(26)李小薇,NVIDIA;

(27) 查理·林德(NVIDIA);

(28)刘浩,NVIDIA;

(29) 斯图尔特·奥伯曼(NVIDIA);

(30) 苏吉特·奥马尔(NVIDIA);

(31)Sreedhar Pratty,NVIDIA;

(23)乔纳森·雷曼(NVIDIA);

(33) 安巴尔·萨卡尔(Ambar Sarkar),NVIDIA;

(34)邵正江,NVIDIA;

(35) 孙汉飞,NVIDIA;

(36)Pratik P Suthar,NVIDIA;

(37)Varun Tej,NVIDIA;

(38)沃克·特纳(NVIDIA);

(39)徐凯哲,NVIDIA;

(40)NVIDIA 任浩星。

链接表

五、评估

本节将评估我们的训练方法和应用性能。在训练方法评估中,我们研究了 7B 和 13B 模型,而在应用性能评估中,我们仅研究了 13B 模型。为了进行比较,我们还评估了两个基线聊天模型:LLaMA2-13B-Chat* 和 LLaMA2-70B-Chat。LLaMA2-13B-Chat* 是使用我们的通用聊天指令数据集微调的基础 LLaMA2 13B 基础模型,它不同于使用人工反馈强化学习 (RLHF) 训练的原始 LLaMA2-13B-Chat 模型。我们选择这样做是为了在相同的模型对齐方法下公平比较领域自适应模型和基础模型。LLaMA2-70B-Chat 是使用 RLHF 训练的公开发布的 LLaMA2-Chat 模型,它被认为是最先进的 (SOTA) 开源聊天模型。


A. 标记器


我们使用前面概述的四步流程将 LLaMA2 分词器(包含 32K 个分词)调整到芯片设计数据集。大约有 9K 个新分词被添加到 LLaMA2 分词器中。如图 5 所示,调整后的分词器可以在各种芯片设计数据集中将分词效率提高 1.6% 到 3.3%。我们没有观察到明显的


图 5:ChipNeMo Tokenizer 增强改进。


公共数据上标记器效率的变化。重要的是,即使在 DAPT 之前,在使用自定义增强标记器时,我们也没有观察到 LLM 在公共基准测试中的准确率显着下降。


B.领域自适应预训练


图 6 展示了 ChipNeMo 模型在芯片设计领域 AutoEval 基准和开放领域学术基准上的结果。我们的研究结果可以总结如下:


  1. DAPT 模型在开放域学术基准上的准确性略有下降。


  2. DAPT 对领域内的任务有显著的积极影响。这种影响体现在内部设计知识以及一般电路设计知识的显著提高。


  3. 使用更大、性能更高的基础模型可以在特定领域任务上获得更好的零样本结果。此外,使用更优秀的基础模型可以在 DAPT 后增强领域模型,从而提高领域内任务的性能。


  4. 归因于 DAPT 的领域内任务的改进与模型大小呈现正相关性,其中较大的模型在 DAPT 后表现出领域特定任务性能的更明显增强。


C. 训练消融研究


对于我们的消融研究,我们进行了多轮领域自适应预训练。我们提供简要总结,详情请参阅附录 B。


使用增强标记器和原始标记器进行训练之间的差异似乎可以忽略不计。因此,我们主要将学术基准上的准确度下降归因于领域数据。此外,删除公共数据集只会在大多数任务(包括学术基准)上略有退步,但 Verilog 编码除外,我们观察到了明显的差异。这表明,纳入 GitHub Verilog 数据有助于增强 Verilog 编码能力,尤其是当基础模型缺乏该领域的足够数据时。


在我们的探索中,我们尝试使用更大的学习率,例如在 CodeLLaMA [32] 中。我们观察到在初始训练步骤中训练损失大幅增加。虽然这种方法最终改善了训练和验证损失,但我们注意到除编码之外,所有领域特定和学术基准都出现了大幅下降。我们假设较小的学习率发挥了双重作用,促进了通过 DAPT 提炼领域知识,同时保持了与基础模型相差不大平衡,从而保留了一般的自然语言能力。


我们还探索了参数高效微调 (PEFT) 在领域自适应预训练 (DAPT) 中的应用。为此,我们进行了两项实验,涉及整合 LoRA 适配器 [16],分别引入了 2640 万个(小型)和 2.112 亿个(大型)的额外参数。在这两种情况下,我们的研究结果都表明,与全参数 DAPT 方法相比,域内任务的准确率存在显著差距。此外,当对比小型和大型 PEFT 模型的结果时,我们观察到域内任务准确率略有提高,而大型模型则略有改善。


D.培训费用


所有模型均使用 128 个 A100 GPU 进行训练。我们估算了 ChipNeMo 领域自适应预训练的相关成本,如表 IV 所示。值得注意的是,DAPT 占从头开始预训练基础模型总成本的不到 1.5%。


表 IV:LLaMA2 模型的训练成本(以 GPU 小时为单位)。预训练成本来自 [5]。


E. RAG 和工程助理聊天机器人


我们创建了一个基准来评估使用 RAG 方法的设计聊天辅助的性能。该基准包括三类 88 个问题:架构/设计/验证规范 (Specs)、测试台回归文档 (Testbench) 和构建基础架构文档 (Build)。对于每个问题,我们指定了黄金答案以及设计文档中包含答案相关知识的段落。这些问题由设计人员根据一组设计文档手动创建,作为检索的数据存储。它包括大约 1.8K 个文档,这些文档被分割成 67K 个段落,每个段落大约 512 个字符。


首先,我们在每个类别上将我们的领域自适应检索模型与 Sentence Transformer [33] 和e5_small_unsupervised [30] 进行比较。每个模型从数据存储中获取前 8 个段落。


Specs 类别中的查询直接来自文档中的段落,因此它们的答案通常包含在简洁的段落中,并清楚地解决了查询


图 6:ChipNeMo 的 AutoEval 基准测试结果。


图 7:检索模型准确率比较


另一方面,Testbench 和 Build 类别的查询并非直接来自文章,因此其答案在提取的文章中往往不太明显,需要更多上下文(详细示例见附录 C)。这显著导致了类别之间的检索质量差异。


我们对多个 ChipNeMo 模型和 LLaMA2 模型进行了评估,包括 RAG 和未包括 RAG。然后由人工评估人员按 10 分制对结果进行评分,结果如图 8 所示。


我们得出了以下观察结果:


• RAG 显著提升了人类得分。RAG 分别将 LLaMA2-13B-Chat*、ChipNeMo-13B-Chat 和 LLaMA2-70B-Chat 的得分提高了 3.82、2.19 和 5.05。请注意,即使 RAG 未命中,得分通常也会更高,尤其是在 LLaMA2 模型上。我们假设额外的域内上下文有助于提高性能。


• ChipNeMo-13B-Chat 在模型评估和 RAG 评估中的表现分别比类似大小的 LLaMA2-13B-Chat 高出 2.88 和 1.25。


• 带有 RAG 的 ChipNeMo-13B-Chat 与带有 RAG 的 5 倍大模型 LLaMA2-70B-Chat 获得了相同的分数(7.4),其中 LLaMA2-70B-Chat 在提取命中答案方面表现更好;然而,领域自适应弥补了未命中的缺陷。


图 8:不同模型的人工评估。模型仅表示没有 RAG 的结果。RAG(命中)/(未命中)仅包括检索到的段落符合/未符合理想上下文的问题,RAG(总计)包括所有问题。


• 域 SFT 有助于将 ChipNeMo-13B-Chat 的性能提高 0.28(使用 RAG)和 0.33(不使用 RAG)。


所有模型的完整评估结果如附录 D 所示。


F. EDA 脚本生成


为了在 EDA 脚本生成任务上评估我们的模型,我们创建了两种不同类型的基准。第一个是一组“简单”和“中等”难度的任务(1-4 行解决方案),可以通过与黄金答案进行比较来评估,而无需人工干预。由于构建和评估这些基准所需的工作量,我们只有针对 Python 任务的评估集。第二组任务(“困难”)来自我们的工程师选择的真实用例场景。这些任务要困难得多,需要解决 10 行。由于这些很难以自动方式评估,我们让人类工程师判断 0% 到 100% 之间的正确性。这些基准的大小在表 V 中描述。我们正在努力增加这些基准的大小和范围,以便我们进一步改进这些模型。


我们发现我们的模型无法回答一些更困难的任务。这些任务需要了解许多工具 API,而模型似乎无法在保持控制流正确组织的同时确定合适的 API。为了缓解这种情况,我们在提示中附加了针对每个问题的人工策划的上下文。此上下文包含正确编写所需脚本所需的不同函数或属性的解释。我们仅为“带上下文的困难”基准类别提供了此内容。这也使我们能够研究基于检索的解决方案的可能效果,我们将此留待将来研究。


从图 9 中的消融结果可以看出,DAPT 和域 SFT 对我们的问题都很重要。如果没有 DAPT,该模型对底层 API 的理解很少甚至完全没有,并且在自动评估的基准测试中表现不佳。域 SFT 进一步改善了结果。我们相信这是因为我们的域 SFT 数据有助于指导模型以最直接适用的方式呈现最终脚本。


一个有趣的结果是 LLaMA2-70B 在“Hard with Context”基准测试中的通过率。它在 Python 工具上的表现优于大多数模型,但在 Tcl 工具上表现不佳。这可能是因为当提供正确的上下文时,LLaMA2-70B 卓越的通用 Python 编码能力能够解决它尚未训练过的新问题。然而,LLaMA2-70B 模型无法将其编码能力推广到 Tcl 工具,可能是因为它没有接触过大量的 Tcl 代码。这凸显了 DAPT 在低容量或专有编程语言方面的优势。


图 9:EDA 脚本生成评估结果


G. Bug 总结与分析


为了评估我们的模型在错误总结和分析方面的效果,我们保留了 40 个错误,这些错误是总结的理想候选。这些错误包括具有较长的评论历史或其他数据,这使得人类很难快速总结这些错误。然后,我们要求人类对总结的两种模式以及 LLM 建议的错误分配进行评分。评估指标基于 7 点李克特量表。我们的结果包含在图 10 中。


表 V:EDA 脚本生成评估基准


图10:Bug总结及分析评估结果


ChipNeMo-13B-Chat 模型在所有三个任务上的表现均优于基础 LLaMA2- 13B-Chat* 模型,在技术摘要、管理摘要和任务推荐方面分别将 7 分制李克特评分提高了 0.82、1.09 和 0.61。与没有领域 SFT 相比,领域 SFT 在管理摘要和任务分配方面的表现也显著提高。


我们假设,与技术摘要任务(其质量和技术内容更多地取决于模型对自然语言语义的理解)相反,管理摘要要求模型了解如何在保留关键人员/工程师姓名的同时总结输入数据。这需要对 LLM 进行更仔细的基于指令的微调。


LLaMA2-70B-Chat 模型在这三个任务上也表现得非常好,在所有任务上都击败了 ChipNeMo-13B 模型。请注意,LLaMA2-70B-Chat 模型在 4096 上下文大小的长上下文挑战中也表现不佳,我们认为有效的分块和组合方案(分层和增量)、总结各个阶段的指导提示选择、任务分配期间的提示选择以及原始数据格式化/预处理有助于规避长上下文挑战,并使 LLaMA2-70B-Chat 即使在没有 DAPT 和域 SFT 的情况下也能获得高分。