GitHub - ise-uiuc/magicoder: Magicoder: Source Code Is All You Need
目录
背景
现有的数据生成办法可以有效地提高LLM的指令跟踪能力,但它们依赖于小范围的预定义任务或启发式方法。而这样的方法会显著地继承LLMs和预定义任务中固有的系统偏差。
Self-Instruct仅依靠21个种子任务,使用相同的提示模板生成新的代码指令。
Evol-Instruct 以Code Alpaca为种子,仅依靠5种启发式算法对数据集进行演化。
OSS-Instruct
如图所示,OSS - INSTRUCT利用强大的LLM,通过从开源中收集的任意随机码片段中获得灵感,自动生成新的编码问题。【直接用开源代码进行fine-tune会对模型性能产生负面影响】在这个例子中,LLM从来自不同功能的两个不完整的代码片段中得到启发,并设法将它们联系起来,形成一个现实的机器学习问题。得益于"无限"的开源代码,OSS - INSTRUCT可以通过提供不同的种子代码片段直接产生多样化、逼真和可控的代码指令。
根据从GitHub中收集到的一些种子代码段,提示一个LLM (例如, ChatGPT)产生一个编码问题及其解决方案。种子片段提供了生成的可控性,并鼓励LLM创建能够反映真实世界编程场景的多样化编码问题。
源码中提取种子片段的代码