作者:
(1)刘明杰,NVIDIA{同等贡献};
(2)Teodor-Dumitru Ene,NVIDIA{同等贡献};
(3)NVIDIA 的 Robert Kirby {平等贡献};
(4)Chris Cheng,NVIDIA{同等贡献};
(5)Nathaniel Pinckney,NVIDIA{平等贡献};
(6)梁荣建,NVIDIA{同等贡献};
(7) 乔纳·阿尔本(Jonah Alben),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 任浩星。
ChipNeMo 旨在探索大型语言模型 (LLM) 在工业芯片设计中的应用。我们没有直接部署现成的商业或开源 LLM,而是采用以下领域自适应技术:自定义标记器、领域自适应持续预训练、具有领域特定指令的监督微调 (SFT) 和领域自适应检索模型。我们在三个选定的芯片设计 LLM 应用程序上评估了这些方法:工程助理聊天机器人、EDA 脚本生成以及错误总结和分析。我们的结果表明,这些领域自适应技术在三个评估应用程序中实现了比通用基础模型显著的 LLM 性能改进,在一系列设计任务上实现了高达 5 倍的模型尺寸缩小,同时性能相似或更好。我们的研究结果还表明,我们目前的结果与理想结果之间仍有改进的空间。我们相信,进一步研究领域自适应的 LLM 方法将有助于在未来缩小这一差距。
在过去的几十年中,电子设计自动化 (EDA) 算法和工具极大地提高了芯片设计效率。再加上摩尔定律带来的晶体管密度的指数级增长,EDA 使得开发具有数十亿个晶体管的功能丰富的复杂 SoC 设计成为可能。最近,研究人员一直在探索将 AI 应用于 EDA 算法和芯片设计流程的方法,以进一步提高芯片设计效率 [1] [2] [3]。然而,许多涉及与自然语言或编程语言交互的耗时芯片设计任务仍然没有实现自动化。商业(ChatGPT、Bard 等)和开源(Vicuna [4]、LLaMA2 [5] 等)大型语言模型 (LLM) 的最新进展为帮助实现这些与语言相关的芯片设计任务的自动化提供了前所未有的机会。事实上,早期的学术研究 [6] [7] [8] 已经探索了 LLM 的应用,用于生成可以在小型设计模块中执行简单任务的 RTL 以及为 EDA 工具生成脚本。
我们相信,LLM 有潜力通过使用生成式 AI 来自动化许多与语言相关的芯片设计任务(例如代码生成、通过自然语言界面回答工程问题、分析§平等贡献和报告生成以及错误分类)来帮助提高芯片设计效率。在本研究中,我们专注于这三个特定的 LLM 应用程序:面向 GPU ASIC 和架构设计工程师的工程助理聊天机器人,它了解内部硬件设计并能够解释复杂的设计主题;基于 Python 和 Tcl 的两个领域特定工具的 EDA 脚本生成,用于以英语指定的 VLSI 时序分析任务;作为内部错误和问题跟踪系统的一部分的错误总结和分析。
尽管在大量互联网数据上训练的通用 LLM 在不同领域的生成式 AI 任务中表现出色(如 Bubeck 等人在 [9] 中展示的那样),但最近的研究(如 BloombergGPT [10] 和 BioMedLLM [11])表明,特定领域的 LLM 模型在特定领域的任务上可以胜过通用模型。在硬件设计领域,[6] [12] 表明,在额外的 Verilog 数据上进行微调的开源 LLM(CodeGen [13])可以胜过最先进的 OpenAI 模型。以这种方式定制 LLM 还可以避免通过 API 将专有芯片设计数据发送给第三方 LLM 所带来的安全风险。但是,从头开始为每个领域训练特定领域的模型成本过高,因为这通常需要数百万个 GPU 训练小时。为了经济高效地训练领域特定模型,我们建议结合以下技术:基础模型的领域自适应预训练(DAPT)[14]与领域自适应的标记器,使用通用和领域特定指令的模型对齐,以及检索增强生成(RAG)[15]与训练有素的领域自适应检索模型。
如图 1 所示,我们的方法是从基础模型开始,应用 DAPT,然后进行监督微调 (SFT)。DAPT 也称为使用领域内数据进行持续预训练,已被证明在生物医学和计算机科学出版物、新闻和评论等领域是有效的。在我们的案例中,我们从一组专有硬件相关代码(例如软件、RTL、验证测试台等)和自然语言数据集(例如硬件规格、文档等)构建特定领域的预训练数据集。我们清理并预处理原始数据集,然后使用特定领域的数据继续预训练基础模型。我们将生成的模型称为 ChipNeMo
基础模型。DAPT 仅使用预训练中使用的一小部分 token 进行,而且成本更低,仅需要几千个 GPU 小时。如第 V 节所述,我们发现这种方法比参数高效训练 (PEFT) 技术(例如 LoRA [16])对我们的用例更有效。
LLM 标记器将文本转换为标记序列,用于 LLM 训练。领域特定标记器通过为领域特定术语(例如 RTL 中常见的关键字)量身定制规则和模式来提高标记效率。对于 DAPT,我们无法从头开始重新训练新的领域特定标记器,因为这会使基础模型无效。我们不会将 ChipNeMo 限制为基础模型使用的预训练通用标记器,而是将预训练的标记器调整为我们的芯片设计数据集,仅为领域特定术语添加新标记。
ChipNeMo 基础模型是需要监督微调 (SFT) 才能适应聊天等任务的完成模型。我们使用大量公开可用的通用聊天指令数据集进行多轮聊天,以及少量领域特定指令数据集对 ChipNeMo 基础模型执行 SFT,从而生成 ChipNeMo 聊天模型。我们观察到,使用通用聊天指令数据集的 SFT 足以将 ChipNeMo 基础模型与芯片设计领域中的查询对齐。我们还添加了少量任务特定的 SFT 指令数据,这进一步改善了对齐。我们基于用作基础基础模型的 LLaMA2 模型变体训练了多个 ChipNeMo 基础和聊天模型。
为了提高工程助理聊天机器人应用程序的性能,我们还利用了检索增强生成 (RAG)。RAG 是一种开放式方法,可为 LLM 提供用户查询的精确上下文。它从其数据存储中检索相关的领域内知识,以增强给定用户查询的响应生成。此方法在将模型与特定问题的上下文联系起来方面显示出显著的改进。至关重要的是,当使用领域数据对预训练的检索模型进行微调时,我们观察到检索命中率显著提高。这进一步提高了模型质量。
我们重点介绍了与将 LLM 应用于芯片设计领域相关的以下贡献和发现:
• 我们在三个用例上展示了领域适应型 LLM 的有效性:工程助理聊天机器人、EDA 工具脚本生成以及错误总结和分析。根据专家评估,我们在工程助理聊天机器人响应方面获得了 7.4 分(满分 10 分),在 EDA 脚本生成方面实现了 50% 以上的正确率,在总结和作业识别任务方面获得了 4 到 5 分(满分 7 分)的专家评估评分。
• 领域适应的 ChipNeMo 模型在多项选择领域特定 AutoEval 基准和应用程序的人工评估中,其表现均远远优于所有原始 LLM。
• 对于模型可以根据提示上下文生成文本的任务(例如,与 RAG 匹配的聊天、摘要、使用提供的文档的代码生成),领域自适应缩小了最先进的 LLaMA2 70B 模型和小得多的 13B 模型之间的差距(小幅增量训练成本可将参数减少 5 倍,从而降低推理成本)。
• 定制的标记器可将 DAPT 标记数量减少多达 3.3%,而不会影响应用程序的有效性。
• 另外 1.1K 个领域特定指令上的 SFT 可显著提高应用程序的熟练程度,在工程助理聊天机器人、EDA 脚本生成和错误总结与分析方面分别将应用程序的熟练程度提高了 0.33(满分 10 分制)、18% 的正确率和 0.79(满分 7 分制)。
• 使用特定领域数据对我们的 ChipNeMo 检索模型进行微调,可将检索器的命中率提高 30%,超过预先训练的最先进的检索器,从而提高 RAG 响应的整体质量。
本文的结构如下。第二部分描述了我们的数据集和用于领域知识验证的自动评估基准。第三部分概述了所使用的领域自适应和训练方法,包括自适应标记器、DAPT、SFT 和 RAG。第四部分提供了每个应用程序和实验设置的详细信息。第五部分描述了实验结果,包括每个应用程序的人工评估。第六部分讨论了 ChipNeMo 的局限性和未来的工作。第七部分描述了相关的 LLM 方法和其他针对芯片设计的 LLM 的工作。最后,附录中说明了完整的结果以及额外的模型训练细节和应用程序用例生成的文本示例。