HackerRank 数据集创建方法

Last updated: June 23, 2025

本文件说明了HackerRank如何设计、构建和交付数据集,以帮助客户加快软件开发的整个软件开发生命周期(SDLC)。

下方的工作流程图展示了HackerRank数据集创建方法论。

合作启动

每个合作都以理解您的业务背景、技术目标、数据需求和安全约束为重点。这确保在任何项目工作开始之前,HackerRank都已完全对齐。

目标和范围对齐

第一步是理解您的模型的用例和成功标准。这确保所有交付物——从单个任务到评估数据集——都与您的最终目标保持一致。

  • 用例定义: HackerRank的机器学习(ML)科学家与您的团队合作,定义您希望改进的具体能力,例如:

    • 代码生成

    • 缺陷检测或修复

    • 代码总结或可解释性

    • 代码重构或优化

    • 测试用例生成

    • 安全编码或静态分析自动化

  • 模型背景: 捕获技术细节,例如:

    • 模型架构(例如,编码器-解码器、仅解码器、指令调优)

    • 微调或训练后方法(例如,完全微调、LoRA、SFT、RLHF、DPO)

    • 令牌预算、延迟目标和上下文窗口限制

  • 成功指标: 定义定量和定性目标,例如:

    • BLEU、CodeBLEU、精确匹配准确率或代码正确性(单元测试通过率)

    • 幻觉率或失败率降低

    • 每个令牌的延迟或推理成本

通过定义关键绩效指标(KPIs)和模型行为目标,HackerRank将下游决策——如任务选择和评估格式——与您的业务优先事项保持一致。

时间线和里程碑规划

项目被组织成不同的阶段,以支持透明和可追踪的执行。

  • 交付时间线由双方协作定义,并划分为明确的里程碑:

    • 数据集结构最终确定

    • 任务抽样或试点评审

    • 评估设置和基准线建立

    • 最终数据集交付和签字确认

  • 每个阶段都包括反馈检查点,以保持透明度。

  • 每周同步和共享项目跟踪器确保责任和可见性。

安全性和数据驻留

HackerRank 遵循行业标准的 数据隐私和安全实践。在项目启动时,HackerRank 会最终确定您的安全和合规要求。

  • 数据处理: 如果合作涉及专有源代码或模型工件,支持以下内容:

    • NDA 支持的访问控制

    • 区域内数据处理(例如,仅限欧盟、仅限印度)

    • 无保留政策

    • 安全云交接(例如,限制访问密钥的 Amazon S3)

  • PII 涂抹: 在处理生产数据(例如,工单或日志中的代码片段)时,使用定制管道进行:

    • 个人身份信息(PII)涂抹(例如,姓名、电子邮件、令牌、IP 地址)

    • 敏感模式屏蔽(例如,API 密钥、数据库凭据)

  • 工具隔离: 所有数据集创建都在隔离环境中进行,具有访问日志、版本控制和审计能力。

利益相关者入职

每次合作开始时,双方的利益相关者角色都明确界定。

  • 贵组织:

    • 技术联系人(例如,模型所有者、ML 工程师)

    • 业务负责人(例如,产品负责人、CTO)

    • 安全或合规代表

  • 在 HackerRank:

    • 合作经理

    • 主题专家(SME)经理

    • 质量保证(QA)负责人

    • ML 科学家

HackerRank 建立了共享沟通渠道(Slack 或电子邮件)和可选的共享驱动器,用于实时更新和状态报告。

数据集准备

HackerRank 的核心优势在于一个由经过严格筛选的主题专家(SMEs)组成的全球网络,以及一种经过验证的方法,用于创建生产级、多样化的代码数据集。该过程结合了领域专业知识、结构化工作流程和多层次的质量保证,确保每个数据点都是准确的、可解释的,并且与您的目标保持一致。

专家策划的内容生成

  • SME 选择: 每个数据集参与始于选择一组具有验证专业知识的专门SME,他们拥有目标语言、框架和领域的专业知识(例如,后端开发、数据工程、DevOps)。

  • 现实任务设计: 每个SME负责设计反映软件开发中真实挑战的原创编程任务,例如实现REST API、调试并发错误或重构遗留代码。任务与客户目标一致(例如,代码生成、错误修复、总结),并在复杂性和格式(函数、类、脚本、项目)上有所不同。SME使用内部创作工具,提供关于格式合规性、标签和完整性的实时反馈。还维护跟踪作者表现和数据集覆盖率的仪表板。

  • 任务 创作指南: SME接受详细、标准化的任务创作指令培训。这些包括:

    • 问题框架和清晰度

    • 预期输入/输出

    • 边缘情况覆盖

    • 测试用例设计

    • 元数据要求(例如,运行时限制、预期性能)

  • 任务审查与批准:每个任务在被纳入数据集之前,经过由SME经理(具有领域专业知识的高级内容工程师)领导的结构化审查流程。审查流程包括对技术正确性、指令清晰度、实际相关性和符合创作标准的检查。
    内部工具集简化了审查和反馈流程,以确保任务质量和责任。

    • 有针对性的反馈:SME经理可以在任务中直接提供行级评论。

    • 修订循环:被拒绝的任务会返回给作者,附带详细反馈和建议改进措施。作者修订任务后重新提交审查。

    • 版本控制:所有编辑通过具有审计追踪的版本控制系统进行跟踪。

    • 性能跟踪:维护跟踪作者表现(例如,完成每个任务所用时间)和数据集覆盖率的仪表板。

  • 接受标准: 只有在通过审查且没有阻塞性问题的情况下,任务才被批准。严格的质量检查确保:

    • 只有完全批准的任务才包含在生产数据集中

    • 部分接受或“足够好”的任务被排除
      这个结构化的审查过程确保每个任务都经过润色、明确,并适合用于训练或评估大型语言模型(LLMs)。

  • 每个任务的多方案: 为了提高训练数据的多样性和鲁棒性,每个任务由至少三位不同的SME独立解决。这提供了多样的解决方案风格,并允许模型从不同的推理方法中学习。你还可以根据你的具体需求配置每个任务所需的解决方案数量。

元数据和上下文捕获

每个任务和解决方案组合都带有详细的元数据,以支持后续使用,包括:

  • 构建和运行指令

  • 语言版本和依赖列表

  • 时间和空间复杂度分析(适用时)

  • 边界情况和预期失败模式

  • 性能调优笔记

这些元数据确保可复现性、便于筛选以及对数据集切片的更好控制(例如,按难度级别、长度或错误类型)。

自动化和人工质量保证

采用双层质量保证流程以保持高提交标准:

  • 理智性检查: 所有提交都通过自动化流程验证,这些流程执行测试用例、进行风格和语法的lint检查,并验证每个问题及其解决方案之间的一致性。

  • 同行评审: 提交由另一位SME进行同行评审,以确保正确性、清晰性和符合定义的标准。任何分歧都将触发结构化仲裁,然后再进行最终确认。

  • 风格和文档检查: 除了功能正确性外,每个解决方案都遵循惯用的编码风格,包含有用的注释,并避免反模式。这些检查对于微调开发者助手和代码解释模型至关重要。

2ndimage.png

模型评估

一旦数据集确定,它将进入一个结构化的评估阶段,以评估模型在微调新数据后表现的好坏。

微调与初步评估

  • 模型集成: 客户的基础模型或您选择的基础模型通过策划的数据集进行微调。这包括:

    • 完全微调

    • 指令微调

    • 少样本提示构建

    • 监督或RLHF风格的训练,视情况而定

  • 基准测试: 模型性能通过以下方式评估:

    • 如HumanEval、MBPP和CodeXGlue等标准基准测试

    • HackerRank的ASTRA基准测试,为您的用例定制

    • 从您的生产用例派生的自定义测试套件

    • 与您的目标一致的评估指标,如BLEU、精确匹配率、功能正确性、延迟和幻觉率

如果没有适合任务的公共基准(例如,领域特定语言、重构),HackerRank将与客户共同设计一个定制的评估套件,以确保有意义的评估。

评估设计(如适用)

当开源基准不能充分满足用例时,将开发定制的评估套件。这包括:

  • 从您现有代码库策划的任务集

  • 由 HackerRank SME 手动评估的金标标签

  • 针对您的业务目标定制的指标,例如可读性、安全性或测试覆盖率

  • 边缘案例和对抗性示例

  • 对未来迭代安全的回归子集

性能反馈循环

如果模型未能达到预定义的成功标准,将启动结构化的反馈流程。

  1. 错误分析: 进行定性和定量分析,包括:

    • 按问题类型对失败案例进行聚类

    • 标签或输出的混淆矩阵

    • 代码正确性分析(例如,语法错误与逻辑错误)

    • 必要时对模型输出进行人工审查

  2. 诊断与归因: 通过评估以下情况,确定性能差距的根本原因:

    • 数据集覆盖不足

    • 任务指令模糊

    • 模型欠拟合或过拟合

    • 评估不匹配

  3. 数据集迭代: 通过以下方式解决识别出的问题:

    • 优化现有任务(例如,重写不清楚的问题)

    • 添加新示例以针对薄弱环节

    • 多样化解决方案风格或测试场景

持续改进循环

评估和调优过程是迭代的:

  • 模型在使用更新的数据集进行持续微调。

  • 新模型输出会根据基准进行重新评估,并与之前的版本进行回归测试。

  • 只有在以下情况下,数据集或模型版本才会被批准部署:

    • 达到目标主要指标

    • 在次要指标中未发现回归

    • 客户签字确认

目标是闭环模型行为与数据集设计,确保你投入的数据能带来可衡量的实际性能提升。

3rdimage.png

质量审查

在交付之前,每个数据集都经过结构化、多阶段的质量审查,以确保每个任务和解决方案都符合正确性、清晰度和一致性的标准。

最终人工审查

每个任务及相关解决方案都由未参与任务创建的高级SME审查员进行最终手动审核。这个无偏见的检查点保证了数据集的完整性。

验证以下标准:

  • 业务逻辑和技术正确性: 该任务是否代表一个现实且有意义的编程挑战?所有解决方案是否正确解决了陈述的问题?

  • 代码风格和格式: 解决方案是否符合习惯用法、易读,并符合特定语言的风格规范?格式是否一致且具有指导性?

  • 解释的清晰度和完整性: 如果数据集包含内联注释或外部说明,它们是否清晰且准确,便于LLM学习?

  • 测试覆盖率和执行行为: 是否测试了边界情况?测试用例是否验证了正确和不正确的实现?是否遵守了时间和空间限制?

基于评分标准的评估

评审人员使用评分标准,将每个任务细分为关键维度(例如,清晰度、正确性、完整性和格式),并设定通过/不通过的标准和评审备注。这为评审提供了一致且透明的评分体系。

  • 客观评分确保与客户期望保持一致。

  • 评审备注会为每个任务记录,以便追溯和持续改进。

争议解决与仲裁

如果多个评审意见不一致:

  • 启动结构化仲裁流程。

  • 每位评审提出他们的评估和理由。

  • SME经理调解以达成共识。

  • 只有在所有问题解决且结果被记录后,任务才算完成。 

此流程避免了主观不一致,确保没有任务在存在未解决问题的情况下继续进行。

版本控制与审计追踪

所有任务编辑、反馈周期、评审意见和批准都通过内部工具进行跟踪。

  • 每个任务都维护变更日志。

  • 所有评审都带有时间戳和归属信息。

  • 应要求提供完整的修订历史,以显示任务的演变过程和原因。

工具与自动化

虽然人工审查员领导该过程,但也会进行最终的自动化处理,以:

  • 重新验证测试用例和运行时行为

  • 检测格式漂移和文件不一致

验证完整性哈希(例如,SHA-256)以支持可复现性。

4thimage.png

数据集交付

在数据集通过所有质量检查并获得必要的批准后,HackerRank 启动一个安全且可验证的交付流程。交付工作流程旨在实现可追溯性、可复现性和与 ML 管道的无缝集成。

打包与最终确认

在交付之前,数据集的所有组件都被打包,以确保其可携带、可验证且自包含。

  • 签署内容

    • 所有任务、解决方案和元数据都通过质量保证流程批准。

    • 包括适用的测试文件、构建脚本和运行时说明(如适用)。

    • 如果需要,包含任务到SME的归属(必要时匿名化)。

  • 版本控制与完整性

    • 数据集作为结构化存档(例如,.tar.gz、.zip)打包,具有一致的文件路径。

    • 所有文件和整个存档都包含完整性哈希(例如,SHA-256)。

    • 基于Git的差异,用于跟踪数据集版本之间的更改。

  • 文档包

    • 包含数据集结构和使用说明的README文件。

    • 包含数据架构或注释格式定义。

    • 安全注意事项和处理说明已被记录。

交付渠道

HackerRank支持多种安全、符合企业标准的交付渠道:

  • 加密云端交接(例如,AWS S3预签名URL、GCS安全存储桶、Azure Blob链接)

  • 客户指定的安全FTP或VPN端点

所有交付都被记录和追踪。

客户演示

应要求,HackerRank为您的团队提供演示会,以:

  • 审查数据集结构和评估设置

  • 澄清元数据、标签惯例或预期的使用模式

  • 解答来自数据科学家或ML工程师的集成问题

  • 收集对未来数据集迭代的反馈

归档与保留

一旦交付确认:

  • HackerRank 保留数据集和交付日志的副本30到90天(可配置)。

  • 在保留期结束后,数据集将被安全清除,除非另有约定。

  • 发出正式的交付完成报告,包括:

    • 交付时间戳

    • 完整性验证记录

    • QA覆盖范围摘要