SteloCoder:一种面向多语言到 Python 代码翻译的解码器仅 LLM
计算与语言
2023-12-18 v2 人工智能
摘要
随着近期对大语言模型(LLM)的关注,StarCoder(Li et al., 2023)与 Code Llama(Rozi`ere et al., 2023)均在代码生成中展现出卓越性能。然而,在采用高效训练技术的代码翻译功能方面仍有改进需求。为此,我们推出 SteloCoder,一种基于 StarCoder 的解码器仅 LLM,专为多编程语言到 Python 的代码翻译而设计。具体而言,SteloCoder 可在不指定输入编程语言的情况下实现 C++、C#、JavaScript、Java 或 PHP 到 Python 的代码翻译。我们通过引入混合专家(MoE)技术修改了 StarCoder 模型架构,该技术包含五个专家与一个用于多任务处理的门控网络。专家由 StarCoder 微调获得。具体地,我们采用低秩自适应方法(LoRA)技术,将每个专家的规模限制为仅 StarCoder 参数的 0.06%。同时,为提升训练时间效率,我们采用课程学习策略并使用自指令数据以高效微调。因此,每个专家在单块 80Gb A100 HBM 上仅需训练 6 小时。在 XLCoST 数据集上的实验中,SteloCoder 在多编程语言到 Python 翻译中取得平均 73.76 的 CodeBLEU 分数,以至少 3.5 的优势超越排行榜上的最佳表现。这一成果归因于以 StarCoder 为骨干的仅 45M 额外参数,以及在单块 80GB A100 HBM 上 32 小时的有效训练。源代码发布于:https://github.com/sade-adrien/SteloCoder。
引用
@article{arxiv.2310.15539,
title = {SteloCoder: a Decoder-Only LLM for Multi-Language to Python Code Translation},
author = {Jialing Pan and Adrien Sadé and Jin Kim and Eric Soriano and Guillem Sole and Sylvain Flamant},
journal= {arXiv preprint arXiv:2310.15539},
year = {2023}
}