如何使用自动生成的小型数据集训练编码的 LLM

小夏 科技 更新 2024-03-01

译者:李锐。

虽然像 GPT-4 这样的大型语言模型 (LLM) 非常擅长编写软件**,但这些模型的成本和不透明度引发了人们对更实惠、规模更小的编码 LLM 的兴趣。

这些替代方案可以针对特定任务进行微调,并且价格低廉。 开发这些 LLM 的挑战之一是在训练数据集的大小和模型的性能之间找到最佳平衡。

为了应对这一挑战,Microsoft 在最近的一篇文章中引入了一种新技术,用于训练高效的编码语言模型,示例较少。 本文介绍了 w**ecoder 模型,并声称其性能优于在类似数量示例上训练的其他编码 LLM。

为了补充 w**ecoder,Microsoft 还开发了 CodeOcean,这是一个包含 20,000 个不同示例的精选数据集。 此数据集可以增强编码应用程序底层模型的微调。

图 1 CodeOcean 管道。

虽然 W**Ecoder 是一个令人印象深刻的 LLM 模型,但本文更有趣的部分是 CodeOcean,它是一个随附的数据集。 CodeOcean 解决了一个重大挑战:创建一个平衡成本效益和质量的数据集。 研究人员认为,具有最大多样性的数据集可以产生令人印象深刻的结果,即使它包含有限的示例。

研究团队从CodeSearchNet开始,这是一个包含200万对注释和**的广泛编码数据集。 他们使用基于 BERT 的 Transformer 模型为每个示例生成嵌入,将复杂的信息转换为数字列表。

他们将聚类算法应用于嵌入,根据样本的相似性对样本进行排名。 这种方法使研究人员能够从原始数据集中提取子集,从而最大限度地提高多样性。

添加说明

建立核心数据集后,研究人员必须创建一个包含 ** 和说明的训练示例。 为了实现这一目标,他们创建了一个生成器-鉴别器框架,用于根据原始示例生成指导性数据。 最初,他们使用 GPT-4 在特定场景中进行任务定义。 这些初始任务定义与教学提示相结合,已提供给 GPT-35 生成相应的指令作为附加示例。

图 2 CodeOcean 的生成器鉴别器框架。

对于鉴别器部分,研究人员制定了单独的评估提示。 此提示以及 ** 和指令示例提供给 GPT-4 进行评估。 然后,CodeOcean 管道使用好的示例来生成未来的训练示例。

通过这个迭代过程,研究人员生成了 20,000 个高质量的教学样本。 这些示例涵盖四个不同的编码任务类别:生成、汇总、语言翻译(从一种编程语言到另一种编程语言)和修复。 这四个类别涵盖了 LLM 编码任务的很大一部分。

图 3 W**Ecoder 优于在类似数量的示例上训练的其他编码 LLM

有许多方法可以生成用于编码 LLM 的训练示例。 但 Microsoft 的 CodeOcean 因其强调泛化和示例效率而脱颖而出。 与依赖大量数据的研究不同,CodeOcean 可以使用较小的数据集实现高性能。

为了证明CodeOcean的有效性,研究人员微调了三种编码语言模型:StarCoder-15B、Codellama(7b和13b)和DeepSeekCoder-67b。鉴于数据集的大小,微调是快速且具有成本效益的。 根据三个关键的编码基准对微调后的模型进行了评估:Humaneval、MBPP 和 HumanevalPack。

通过在 CodeOcean 上进行多次训练,所有模型在这些基准测试上都取得了显著改进。 在生成方面,研究人员描述了 w**ecoder 的效果和局限性:“经过微调过程,w**ecoder 模型的性能与基础模型和一些开源模型相比有了显着提高,但它仍然落后于专有模型(如 GPT-4 和 Gemini),以及用超过 70,000 个训练数据训练的指示性模型。 ”

w**ecoder 和 wizardcoder 之间的性能差异很小,有 78,000 个训练示例。 这表明,“细粒度和多样化的指令数据可以显著提高指令调优的效率。 ”

W**Ecoder 特别擅长总结和修正任务。 它在几乎所有编程语言上都优于其他开源模型。 这一成功凸显了“定义和分类”相关任务的“有效性”,以增强LLM的泛化能力。

虽然Microsoft尚未发布W**Ecoder和CodeOcean的模型,数据和数据,但有关Hugging Face的讨论表明,该公司正在考虑是否向公众发布它们。 展望未来,研究人员的目标是探索更大数据集的影响,以及将 CodeOcean 与其他编码数据集相结合的潜在好处。

相似文章

    自动粒子计数仪使用说明

    全自动粒子计数仪是一种先进的农业科技设备,广泛应用于种子种植 农业生产等领域。本文将详细介绍自动粒子计数仪的使用说明,帮助用户更好地理解和操作这种高效的计数工具。全自动种子计数仪是一种高精度的种子计数设备,可以快速准确地完成大量种子的计数。通过先进的图像识别技术和计算机软件算法,自动粒子计数仪可以自...

    WIPO中国:如何使用全球品牌数据库检索国际商标?

    wipo china how to use the global brand database to search for international trademarks?图片 产权组织全球品牌数据库是产权组织提供的免费 商标检索系统,它汇集了产权组织自己的数据以及来自缔约国和地区局的数据,检索了...

    自动生成的电子合同是否有效?

    随着电子签名技术的发展,越来越多的企业开始使用自动生成的电子合同。那么自动生成的电子合同有效吗?自动生成的电子合同具有法律效力,但其有效性取决于许多因素,例如合同内容 签字人的身份验证 合同生效的时间 如何撤销等。根据 民法典 和 电子签名法 的规定,合法有效的电子合同是指缔约各方通过第三方电子合同...

    如何使用全自动螺丝计数器快速计算螺丝

    全自动螺丝计数器它是一种用于快速准确地计算螺丝的设备。它通常由机械部分 控制部分和显示部分组成。在生产线上,使用螺丝计数器可以大大提高生产效率,减少人工失误。但是,一些用户在使用全自动螺丝计数器时可能会遇到计数速度不够快的问题。以下是有关如何提高全自动螺丝计数器计数速度的一些提示和注意事项。.选择合...

    使用 MinIO 的 SDK 进行自动化数据准备,以支持机器学习

    高效 自动化的数据准备在机器学习中的重要性怎么强调都不为过,并且经常用熟悉的公理 垃圾进,垃圾出 来概括。这凸显了数据质量在决定机器学习模型成功与否方面发挥的关键作用。随着数据集规模和复杂性的增加,对可靠管道的需求变得越来越重要。这些管道对于确保机器学习模型的质量和准确性是必要的。对于企业来说,一个...