Meta革新代码优化技术,推出突破性“LLM编译器”
Meta最近推出了Meta大型语言模型编译器(LLM编译器),这是一套专为代码和编译器优化任务设计的预训练模型。LLM编译器基于Code Llama模型构建,扩展了其对编译器中间表示(IR)、汇编语言和优化技术的理解能力。LLM编译器系列包括70亿和130亿参数的模型,并经过微调以优化代码大小和从汇编反编译回IR。这些模型以定制的商业许可证发布,可供学术研究人员和行业从业者使用,旨在革新代码优化和开发者体验。
关键要点
-
高级功能:LLM编译器能够理解和优化编译器IR和汇编语言,使其成为底层编程和大型软件套件中进行错误检测和代码优化的强大工具。
-
性能:LLM编译器模型在代码优化任务中取得了显著改进。例如,130亿参数模型在-Oz优化级别上将二进制大小减少了5.26%。
-
可访问性:这些模型在Hugging Face上免费提供,但它们需要高端硬件如Nvidia A100 GPU才能高效运行。
-
广泛应用:LLM编译器非常适合从事底层编程的开发者,还可以辅助模拟编译器转换和预测最小化代码大小的最佳传递列表。
分析
Meta的LLM编译器代表了代码优化领域的重大进步。通过建立在Code Llama的基础上,LLM编译器增强了编译器中间表示和汇编语言的理解能力。训练过程包括在5460亿个LLVM-IR和汇编代码令牌上的预训练,随后进行指令微调。这种细致的训练确保了模型擅长预测最佳优化传递并从汇编反编译到IR,具有高准确性。
这些模型在各种指标上进行了评估,包括模拟编译器转换和预测最佳传递列表。结果令人印象深刻,LLM编译器相比自动调整搜索实现了77%的优化潜力。此外,模型的反汇编能力显示了45%的往返成功率,表明它们在反编译和重新编译代码方面的稳健性。
LLM编译器的一个关键优势是其能够处理具有16,000个令牌的大上下文的复杂优化任务。这使得模型能够处理和优化更大的代码块,特别有利于大型软件项目。然而,这些模型确实需要大量的计算资源,使得它们对于硬件能力有限的开发者来说不太可访问。
这些模型在商业许可证下的发布鼓励了社区的广泛使用和进一步开发。Meta的方法旨在使高级代码优化工具民主化,促进学术和工业环境中的创新。
你知道吗?
-
LLVM-IR:低级虚拟机中间表示(LLVM-IR)是LLVM编译器基础设施使用的平台无关的低级编程语言。它提供了一个灵活且可扩展的框架,用于构建编译器和运行时系统。
-
优化传递:编译器中的优化传递是对代码中间表示应用的一系列转换,以提高其性能或减小其大小。LLM编译器可以预测这些传递的最佳序列以实现最佳结果。
-
微调:LLM编译器的微调过程涉及使用1640亿个下游任务令牌,如标志调整和反汇编,确保模型高度专业化于特定的编译器优化任务。
Meta的LLM编译器有望对代码优化领域产生重大影响,为开发者和研究人员提供高级功能和广泛应用。通过向公众提供这些模型,Meta正在为编译器技术和软件开发的进一步进步铺平道路。