范围即所需:为 HPC 代码转换大语言模型
计算与语言
2023-10-02 v3 编程语言
摘要
随着强大计算资源获取的便利化,AI 用于软件开发领域正呈现出开发越来越大的语言模型(LLM)以应对各类编程任务的趋势。即便应用于高性能计算(HPC)领域任务的 LLM 也规模庞大(例如数十亿参数),且训练需耗费昂贵的计算资源。我们发现这一设计选择令人困惑——为何需要基于与自然语言和无关 HPC 的编程语言训练的大型 LLM 来处理 HPC 特定任务?在这项工作中,我们旨在通过为特定领域开发更小的 LLM 来质疑现有 LLM 的设计选择——我们称之为领域专用 LLM。具体而言,我们以 HPC 为起点,提出一种名为 Tokompiler 的新型分词器,专为 HPC 中与预处理代码及编译相关的任务而设计。Tokompiler 利用对语言原语的掌握生成面向语言的词元,提供对代码结构的上下文感知理解,同时完全避免将人类语义赋予代码结构。我们将 Tokompiler 应用于从 GitHub 挖掘的 Fortran 代码语料库上预训练两个前沿模型 SPT-Code 与 Polycoder。我们针对常规 LLM 评估这些模型的性能。结果表明,在归一化困惑度测试中,与传统分词器相比,Tokompiler 显著提升了代码补全准确率与语义理解能力,困惑度分数低至约 1。本研究为领域专用 LLM 的进一步进展开辟了道路,以满足 HPC 与编译任务的独特需求。
引用
@article{arxiv.2308.09440,
title = {Scope is all you need: Transforming LLMs for HPC Code},
author = {Tal Kadosh and Niranjan Hasabnis and Vy A. Vo and Nadav Schneider and Neva Krien and Abdul Wasay and Nesreen Ahmed and Ted Willke and Guy Tamir and Yuval Pinter and Timothy Mattson and Gal Oren},
journal= {arXiv preprint arXiv:2308.09440},
year = {2023}
}