叉车:一种可扩展的神经升降机
设计实现了一种基于神经网络的指令组合优化方案,结合Seq2Seq模型,可以有效减少软件维护成本,并通过72%的精确匹配结果和0.94的Bleu精度得分证明其在编译器管道中的可行性。
Feb, 2022
本文提出了一种新的方法,使用低级别的编译器中间表示(IR)来提高代码的翻译质量,不同于使用传统转换方法的手工指定规则,使用神经机器翻译(NMT)方法进行翻译,并将IRs作为中间变量,能够在C ++,Java,Rust和Go语言中获得自然的翻译结果,平均提高正确翻译数11%,在一些语言对中高达79%,同时还将IRs用作翻译的中间枢轴。
Jun, 2022
使用神经机器翻译技术进行反编译,可以使得反编译的支持范围更广,但过度的语言特定领域知识会增加支持新语言的负担。因此,研究者提出了一种使用神经机器翻译将程序汇编语言和源码语言看作纯文本的方案,并成功地应用于多种语言的反编译中。在参数调整和评估中,该方案相比其他基于神经机器翻译的反编译技术,在较少领域知识的情况下实现了相当的反编译精度。
Dec, 2022
该论文提出了 SLaDe,一种基于序列到序列变换器的小语言模型反编译器,利用类型推断生成比标准分析和最近的神经方法更易读和准确的代码,相比最先进的市场反编译器 Ghidra 更精确,相对于 ChatGPT 大型语言模型具有更好的可读性。
May, 2023
使用大规模预训练的自然语言模型,通过迁移学习,将人类的常见知识融入到现有的基于学习的汇编克隆搜索方法中,以应对未知架构和库的汇编克隆搜索问题。通过引入强化学习代理,并结合新的变分信息瓶颈学习策略,该方法能够减少对架构和优化设置的潜在指标的依赖,从而更好地处理未知架构的情况。实验结果表明,该方法对抗最先进的解决方案的有效性。
Jul, 2023
我们探索了将大型语言模型应用于代码优化。我们提出了一个从头开始训练的7B参数的变换器模型,用于优化LLVM汇编的代码大小。该模型以未优化的汇编作为输入,并输出一系列最佳优化程序的编译器选项。在训练过程中,重要的是我们要求模型预测优化前后的指令计数和优化后的代码本身。这些辅助学习任务显著提高了模型的优化性能,并增强了模型的理解深度。我们在大量的测试程序上进行评估。我们的方法在减少指令计数方面比编译器的效果提高了3.0%,超过了需要数千次编译的两个最先进的基线。此外,该模型显示出令人惊讶的强大代码推理能力,91%的代码可编译,70%的时间能完美模拟编译器的输出。
Sep, 2023
这篇研究论文介绍了一种基于神经符号方法的学习转译技术,通过结合概率神经语言模型和符号求解器,该方法可以有效地将汇编代码转换为其他编程语言,测试结果表明该技术比GPT-4和传统转译器例子更成功地进行了57.6%和39.6%的转译。
Sep, 2023
在本文中,我们提出了一种名为Code Distillation(CoDist)的新模型,通过捕捉代码的语义和结构等价性,在语言不可知的中间表示中翻译代码,并通过构造并应用蒸馏编译器实现针对任何编程语言的并行语料库,从而在CodeXGLUE和TransCoder GeeksForGeeks翻译基准测试上实现了最新的性能,与TransCoder-ST相比,在TransCoder GeeksforGeeks翻译基准测试上平均绝对增加了12.7%。
Oct, 2023
通过合适的指令调整,语言模型在指令-输出对的训练上能够更好地适应真实世界;研究发现,提供足够多样化的任务集合能够使其在训练分布之外的情况下具备泛化和鲁棒性,并且扩展调整指令集合能够提高代码生成的性能。
May, 2024
通过 Meta Large Language Model Compiler (LLM Compiler) 提供的编译器优化用户界面,可以更好地理解中间表示 (IR)、汇编语言和优化技术。该模型经过数百亿个 LLVM-IR 和汇编代码令牌的训练,并在指令微调中提高了对编译器行为的理解。LLM Compiler 旨在为学术研究人员和行业从业者在编译器优化方面提供可扩展、具有成本效益的基础。
Jun, 2024