five

CoRNStack

收藏
github2024-11-27 更新2024-11-28 收录
下载链接:
https://github.com/gangiswag/cornstack
下载链接
链接失效反馈
官方服务:
资源简介:
CoRNStack是一个大规模的高质量(文本,代码)对数据集,用于通过对比学习训练和微调嵌入模型和代码检索的重排序器。

CoRNStack is a large-scale, high-quality (text, code) pair dataset intended for training and fine-tuning embedding models and code retrieval rerankers via contrastive learning.
创建时间:
2024-11-07
原始信息汇总

🌽 CoRNStack: 高质量对比数据集,用于改进代码排序

ℹ️ 关于

  • 🌽 CoRNStack 是一个大规模高质量的(文本,代码)对数据集,用于通过对比学习训练和微调嵌入模型和代码检索的重新排序器。
  • 我们在 🌽 CoRNStack 上训练了 CodeRankEmbed,这是一个 137M 的双编码器,并在各种代码检索基准上展示了显著的性能提升,超过了当前最先进的代码嵌入模型。
  • 通过利用 🌽 CoRNStack,我们是第一个微调 LLM 作为代码重新排序器的团队。CodeRankLLM,我们的 7B 代码重新排序器,显著提高了检索器的性能。

📖 更多关于 CORNSTACK

  • 代码嵌入模型的性能高度依赖于用于对比训练的大规模数据的质量。有效的对比训练依赖于满足两个主要条件:
    1. 正样本与查询高度相关且不嘈杂。
    2. 负样本在语义上与正样本相似,但不直接解决查询问题,即硬负样本。
  • 现有的方法从大规模开源代码数据中启发式地获取对比样本,过滤和挖掘有限,保留了不相关或错误标记的 <查询,正样本> 对,这损害了模型学习稳健和准确表示的能力。为了解决这些挑战,我们引入了基于课程的硬负样本挖掘和一致性过滤技术,并将这些技术应用于去重版本的 The Stack v2。更多关于这些特定筛选技术的详细信息以及我们如何使用它们来训练嵌入模型和重新排序器,将在我们的论文中详细介绍。

🚀 快速开始

  • 安装所需的依赖项:

    pip install -r requirements.txt

👀 运行评估

  • 要重现 CodeRankEmbed 在流行代码检索基准上的性能,请运行以下命令:

    COIR 评估

    cd src/ python evaluation/eval_coir.py

    CSN 评估

    cd src/ python create/csn.py python evaluation/eval_csn.py

  • 我们计划很快发布完整的训练和数据集筛选代码!

搜集汇总
数据集介绍
main_image_url
构建方式
在构建CoRNStack数据集时,研究者们采用了课程式硬负样本挖掘和一致性过滤技术,以确保数据的高质量。这些技术被应用于去重后的The Stack v2数据集,旨在筛选出与查询高度相关且非噪声的正样本,以及语义相似但不直接解决查询的硬负样本。通过这种方式,数据集能够为对比学习提供更为精确和有效的训练样本,从而提升代码嵌入模型的性能。
特点
CoRNStack数据集的主要特点在于其高质量的(文本,代码)对,这些对经过精心筛选,确保正样本与查询高度相关,而负样本则是语义相似但非直接相关的硬负样本。这种设计使得数据集在训练嵌入模型和重排序器时表现出色,显著提升了代码检索任务的准确性。此外,数据集的构建方法还首次实现了对大型语言模型(LLMs)进行代码重排序的微调,进一步推动了该领域的发展。
使用方法
使用CoRNStack数据集进行模型训练和评估时,首先需安装相关依赖库,可通过运行`pip install -r requirements.txt`命令完成。随后,用户可以运行`src/evaluation/eval_coir.py`和`src/create/csn.py`等脚本,以复现CodeRankEmbed在代码检索基准上的性能。此外,研究团队计划在不久的将来发布完整的训练和数据集筛选代码,以便更广泛的研究和应用。
背景与挑战
背景概述
在代码检索领域,高质量的对比数据集对于训练和微调嵌入模型以及代码重排序器至关重要。CoRNStack数据集由一支专业团队创建,旨在通过对比学习提升代码检索模型的性能。该数据集包含了大规模的高质量(文本,代码)对,通过课程式硬负样本挖掘和一致性过滤技术,显著提升了模型的鲁棒性和准确性。CoRNStack的引入不仅推动了代码嵌入模型的发展,还首次实现了对大型语言模型(LLMs)进行代码重排序的微调,为代码检索领域带来了新的突破。
当前挑战
尽管CoRNStack在提升代码检索模型性能方面展现了显著成效,但其构建过程中仍面临诸多挑战。首先,确保正样本与查询高度相关且无噪声,以及负样本在语义上与正样本相似但不直接解决查询问题,是对比训练的关键。其次,现有方法在从大规模开源代码数据中启发式地获取对比样本时,往往缺乏有效的过滤和挖掘,导致包含不相关或错误标记的<查询, 正样本>对,从而影响模型的学习能力。为应对这些挑战,CoRNStack采用了课程式硬负样本挖掘和一致性过滤技术,但这些技术的实施和优化仍需进一步研究和验证。
常用场景
经典使用场景
在代码检索领域,CoRNStack数据集的经典使用场景主要体现在其对代码嵌入模型和重排序器的训练与微调上。通过利用CoRNStack中的高质量(文本,代码)对,研究者能够训练出性能显著提升的代码嵌入模型,如CodeRankEmbed,以及基于大型语言模型(LLMs)的代码重排序器,如CodeRankLLM。这些模型在多种代码检索基准测试中表现出色,显著超越了当前最先进的代码嵌入模型。
解决学术问题
CoRNStack数据集解决了代码嵌入模型训练中常见的数据质量问题。传统方法在从大规模开源代码数据中抽取对比样本时,往往缺乏有效的过滤和挖掘,导致包含不相关或错误标注的<查询,正样本>对,从而影响模型的学习效果。CoRNStack通过引入基于课程的硬负样本挖掘和一致性过滤技术,有效提升了训练数据的质量,使得模型能够学习到更鲁棒和准确的代码表示,这对于提升代码检索模型的性能具有重要意义。
衍生相关工作
基于CoRNStack数据集,研究者们开展了一系列相关工作,推动了代码检索领域的技术进步。例如,CodeRankEmbed和CodeRankLLM的开发不仅展示了CoRNStack在训练高性能代码嵌入模型方面的潜力,还为后续研究提供了新的基准。此外,CoRNStack的课程学习方法和一致性过滤技术也被应用于其他领域的对比学习任务中,展示了其在跨领域应用中的广泛适用性。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作