**CodeFuse-13B概述**
CodeFuse是蚂蚁集团自研的代码生成模型,能提供智能建议和实时支持,帮助开发者自动生成代码、注释、测试用例等,提高研发效率。CodeFuse项目起于2023年初,目前发布了系列模型15个,数据集4个,以及数个相关工具链。
CodeFuse-13B是该项目的早期预训练版本,完成于2023年6月,并于9月开源。论文《CodeFuse-13B: A Pretrained Multi-lingual Code Large Language Model》同期发表,并被ICSE-SEIP'24收录。该论文针对蚂蚁集团的现实应用场景,详细介绍了CodeFuse-13B预训练模型的数据准备和训练过程,揭秘了CodeFuse是如何成为一款能够同时处理英文和中文提示的高效预训练代码大型语言模型(LLM)。论文还对CodeFuse在代码生成、翻译、注释和测试用例生成等应用场景中的性能进行了评估。CodeFuse-13B在蚂蚁集团内广泛应用,并通过不断引入新技术,取得了持续的性能改进。


论文围绕CodeFuse-13B训练过程展开,包括:
1. 数据收集:CodeFuse的预训练数据包括196TB的代码、1.75TB的中文原始数据和1.7TB的英文原始数据,总计200TB。这一庞大的数据集被标记为8000亿个标记。
2. 数据处理:数据处理涉及各种步骤,如数据清洗、去毒、去重和重新采样,以确保训练数据的质量和有效性。
3. 程序特征分析:进行程序特征分析以从收集的代码中提取程序特征,包括语法正确性和清洁度评分。这种分析有助于确保预训练数据的高质量,并提取代码语义以实现程序理解。
4. 预训练:使用蚂蚁集团的常用技术堆栈,开发了CodeFuse以稳定地预训练具有130亿参数的大规模模型1。
5. 监督式微调:应用各种微调技术,如监督指导微调(SFT)和多任务指导微调(MFT),以提高模型的性能1。
6. 模型评估:提供了一个全面的评估工具包,支持在线和离线推断评估方法。该工具包有助于根据性能指标驱动模型在不同下游任务中的训练,并可视化评估结果的反馈,以进行持续优化1。
7. 模型运维:解决与模型运维相关的挑战,如管理数百甚至数千个GPU训练实例。这包括自动检测故障节点、启动训练任务和监控训练进度的收敛1。
8. 模型评估:在行业环境中将CodeFuse集成到蚂蚁集团的软件开发流程中进行评估。开发了适用于流行集成开发环境(IDE)如VSCode、JetBrains等的扩展,以便将CodeFuse无缝集成到编码工作流程中。
# 数据准备
由于代码LLMs更专注于代码相关任务,因此在数据获取、数据清洗、去毒、去重和数据重新采样等方面与一般LLMs使用的方法存在显著差异。该部分主要关注CodeFuse如何为代码领域大型模型构建预训练数据。
## 预训练数据准备

1. 数据获取:CodeFuse的预训练数据包括196TB的代码、1.75TB的中文原始数据和1.7TB的英文原始数据,总计200TB。这些数据被标记为8000亿个标记,其中包括自行爬取的GitHub数据集和开源数据集Stack。数据清洗、去毒、去重和数据重新采样等步骤确保了训练数据的高质量。

2. 数据清洗:代码数据的清洗策略分为两个级别。
- 第一级过滤策略涉及文件属性方面,包括丢弃大文件(例如,超过1MB的单个文件或超过10000行的文

最低0.47元/天 解锁文章
614

被折叠的 条评论
为什么被折叠?



