- 简介随着强大计算资源的更易获得,越来越多的人开始使用人工智能进行软件开发,开发更大的语言模型(LLMs)以解决各种编程任务。即使是应用于高性能计算(HPC)领域的LLMs也非常庞大,并且需要昂贵的计算资源进行训练。这部分是因为这些用于HPC任务的LLMs是通过微调支持多种自然语言和/或编程语言的现有LLMs获得的。我们发现这种设计选择很困惑——为什么我们需要针对HPC特定任务而训练与HPC无关的自然语言和编程语言的大型LLMs呢? 在这项工作中,我们旨在通过开发特定领域的较小的LLMs来质疑现有LLMs所做出的选择——我们称之为特定领域的LLMs。具体而言,我们以HPC作为一个领域,构建了一个名为MonoCoder的HPC特定LM,它比现有的LLMs小几个数量级,但在非HPC和HPC任务上提供了类似的,如果不是更好的性能。具体而言,我们在一个名为HPCorpus的HPC特定数据集上预训练了MonoCoder,该数据集是从GitHub挖掘的C和C++程序。我们评估了MonoCoder与传统的多语言LLMs的性能。结果表明,MonoCoder虽然比现有的LLMs小得多,但在标准化困惑测试上取得了类似的结果,在高性能和并行代码生成的CodeBLEU能力方面取得了更好的结果。此外,针对特定的并行代码生成任务(OpenMP并行pragma),对基础模型进行微调表现出比GPT更出色的结果,特别是当我们通过我们的新型预处理器Tokompiler消除局部误导性语义时,展示了领域特定模型在HPC相关任务中的辅助能力。
- 图表
- 解决问题开发针对特定领域的小型语言模型(LLMs),解决高性能计算(HPC)领域中LLMs过大且训练成本高的问题。
- 关键思路通过使用HPC特定数据集(HPCorpus)预训练MonoCoder模型,使其在非HPC和HPC任务中表现出类似甚至更好的性能,尤其是在高性能和并行代码生成方面。
- 其它亮点MonoCoder相比现有LLMs规模更小,但在标准化困惑度测试中表现相似,在高性能和并行代码生成的CodeBLEU竞赛中表现更好。使用新颖的预处理器Tokompiler去除本地误导语义后,将基础模型微调到特定的并行代码生成任务(OpenMP并行for pragma)中,显示出域特定模型在HPC相关任务中的能力。
- 最近的相关研究主要集中在使用大型LLMs解决各种编程任务上,而本文提出的MonoCoder则是针对HPC领域特定的小型语言模型。相关研究包括GPT和CodeBERT等模型。
沙发等你来抢
去评论
评论
沙发等你来抢