- 简介生成式大语言模型(LLMs)在代码生成、程序修复和文档分析方面已经展现出了卓越的效果。然而,现有的生成式LLMs专注于源代码,而不是二进制代码。LLMs要模拟和学习二进制代码存在三个主要挑战:十六进制值、复杂的全局依赖关系和编译器优化级别。为了将LLMs的好处带到二进制领域,我们开发了Nova和Nova$^+$,这是预先训练的二进制语料库上的LLMs。Nova使用标准语言建模任务进行预训练,在五个基准测试中显示出显着更好的能力,用于三个下游任务:二进制代码相似性检测(BCSD)、二进制代码翻译(BCT)和二进制代码恢复(BCR),优于GPT-3.5和其他现有技术。我们使用两个新的预训练任务(即优化生成和优化级别预测)构建Nova$^+$,以进一步提高Nova的性能,这些任务旨在学习二进制优化并对齐等效二进制文件。Nova$^+$在五个基准测试中的三个下游任务中总体表现最佳,证明了新的预训练任务的贡献。
- 图表
- 解决问题本文旨在解决现有的生成式大型语言模型(LLMs)专注于源代码而不是二进制代码的问题,通过开发Nova和Nova+,这是预先训练的二进制语料库上的LLMs,以提高二进制代码相似性检测(BCSD)、二进制代码翻译(BCT)和二进制代码恢复(BCR)的性能。
- 关键思路本文的关键思路是通过使用新的预训练任务(即优化生成和优化级别预测)来提高二进制代码的生成,从而解决二进制代码中的十六进制值、复杂全局依赖和编译器优化级别的建模和学习问题。
- 其它亮点本文使用了Nova和Nova+两个预先训练的二进制语言模型,并在五个基准测试上进行了测试,包括了二进制代码相似性检测(BCSD)、二进制代码翻译(BCT)和二进制代码恢复(BCR)三个下游任务。实验结果表明,相比于GPT-3.5和其他现有技术,Nova和Nova+在所有三个下游任务上都表现出更好的性能。此外,本文还提供了开源代码和数据集,以及与其他相关研究的比较。
- 在这个领域中,最近的相关研究包括:1)使用LLMs进行源代码生成和程序修复;2)使用LLMs进行二进制代码相似性检测、二进制代码翻译和二进制代码恢复;3)使用其他技术进行二进制代码分析和恢复。相关论文包括:1)CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing;2)GPT-2: Language Models are Unsupervised Multitask Learners;3)BinGo: Cross-Architecture Cross-OS Binary Code Matching Across Large-Scale Binary Repositories。


提问交流