LLM2D
MonoCoder:面向高性能计算代码和任务的领域专用代码语言模型
MonoCoder: Domain-Specific Code Language Model for HPC Codes and Tasks
发布日期: 9/23/2024
arXiv ID: oai:arXiv.org:2312.13322v3

摘要

随着更容易获得强大的计算资源,人工智能在软件开发中的趋势是开发大型语言模型(LLMs)来解决各种编程任务。即使是应用于高性能计算(HPC)领域任务的LLMs,其规模也非常庞大,并且需要昂贵的计算资源进行训练。这部分原因是HPC任务的LLMs是通过微调支持多种自然语言和/或编程语言的现有LLMs获得的。我们发现这种设计选择令人困惑——为什么我们需要在自然语言和与HPC无关的编程语言上训练的LLMs来处理HPC特定的任务?在这项工作中,我们旨在通过开发特定领域的小型语言模型(LMs)来质疑现有LLMs的选择——我们称之为领域特定LMs。具体来说,我们以HPC作为一个领域,构建了一个名为MonoCoder的HPC特定LM,其规模远小于现有的LMs,但在非HPC和HPC代码上的表现更好。具体来说,我们在从GitHub挖掘的C和C++程序的HPC特定数据集(名为HPCorpus)上对MonoCoder进行了预训练。我们评估了MonoCoder与最先进的多种语言LLMs的性能。结果表明,尽管MonoCoder比现有的LMs小得多,但在与模型大小相关的标准化困惑度测试中表现优于其他LLMs,同时在高性能和并行代码生成方面也提供了具有竞争力的CodeBLEU分数。换句话说,结果表明MonoCoder对HPC代码的理解优于最先进的LLMs。