Metodologia de Criação de Conjuntos de Dados do HackerRank
Last updated: June 23, 2025
Este documento explica como o HackerRank projeta, constrói e entrega conjuntos de dados ao longo do SDLC para ajudar os clientes a acelerar o desenvolvimento de software.
O diagrama de fluxo de trabalho abaixo ilustra a Metodologia de Criação de Conjuntos de Dados do HackerRank.

Início do engajamento
Cada engajamento começa com um foco em entender o seu contexto de negócios, metas técnicas, requisitos de dados e restrições de segurança. Isso garante que o HackerRank esteja totalmente alinhado antes de qualquer trabalho de projeto começar.
Alinhamento de objetivo e escopo
O primeiro passo é entender o caso de uso e os critérios de sucesso para o seu modelo. Isso garante que todas as entregas—de tarefas individuais a conjuntos de dados de avaliação—estejam alinhadas com seu objetivo final.
Definição do caso de uso: Os cientistas de aprendizado de máquina (ML) da HackerRank colaboram com sua equipe para definir a capacidade específica que você deseja melhorar, como:
Geração de código
Detecção de bugs ou correção de bugs
Sumarização de código ou explicabilidade
Refatoração ou otimização de código
Geração de casos de teste
Automação de codificação segura ou linting
Contexto do modelo: Captura detalhes técnicos como:
Arquitetura do modelo (por exemplo, codificador-decodificador, apenas decodificador, ajustado por instruções)
Ajuste fino ou método pós-treinamento (por exemplo, ajuste fino completo, LoRA, SFT, RLHF, DPO)
Orçamento de tokens, metas de latência e restrições de janela de contexto
Métricas de sucesso: Defina metas quantitativas e qualitativas, como:
BLEU, CodeBLEU, precisão de correspondência exata ou correção de código (taxa de aprovação de testes unitários)
Taxa de alucinação ou redução da taxa de falhas
Latência ou custo de inferência por token
Ao definir indicadores-chave de desempenho (KPIs) e metas de comportamento do modelo, a HackerRank alinha as decisões subsequentes—como seleção de tarefas e formato de avaliação—with suas prioridades de negócios.
Planejamento de cronograma e marcos
O projeto é organizado em fases distintas para apoiar uma execução transparente e rastreável.
O cronograma de entrega é definido em colaboração e dividido em marcos claros:
Finalização da estrutura do conjunto de dados
Amostragem de tarefas ou revisão piloto
Configuração de avaliação e estabelecimento de linha de base
Entrega final do conjunto de dados e aprovação
Cada fase inclui pontos de verificação de feedback para manter a transparência.
Sincronizações semanais e rastreadores de projetos compartilhados garantem responsabilidade e visibilidade.
Segurança e residência de dados
HackerRank segue as práticas padrão do setor de privacidade e segurança de dados. Durante o início do projeto, a HackerRank finaliza seus requisitos de segurança e conformidade.
Manipulação de dados: Se o envolvimento envolver código fonte proprietário ou artefatos de modelo, o seguinte é suportado:
Controles de acesso respaldados por NDA
Processamento de dados na região (por exemplo, apenas UE, apenas Índia)
Políticas de não retenção
Transferência segura para a nuvem (por exemplo, Amazon S3 com chaves de acesso restritas)
Redação de PII: Ao trabalhar com dados de produção (por exemplo, trechos de código de tickets ou logs), pipelines personalizados são usados para:
Redação de informações pessoalmente identificáveis (PII) (por exemplo, nomes, e-mails, tokens, endereços IP)
Mascaramento de padrões sensíveis (por exemplo, chaves de API, credenciais de banco de dados)
Isolamento de ferramentas: Toda criação de conjunto de dados ocorre em ambientes isolados com registros de acesso, controle de versão e auditabilidade.
Integração de stakeholders
Os papéis dos stakeholders são claramente definidos de ambos os lados no início de cada envolvimento.
Sua organização:
Ponto de contato técnico (por exemplo, Proprietário do Modelo, Engenheiro de ML)
Líder de negócios (por exemplo, Proprietário do Produto, CTO)
Representante de segurança ou conformidade
Na HackerRank:
Gerente de Envolvimento
Gerentes de Especialistas em Assuntos (SME)
Líder de Garantia de Qualidade (QA)
Cientistas de ML
A HackerRank configura canais de comunicação compartilhados (Slack ou e-mail) e uma unidade compartilhada opcional para atualizações em tempo real e relatórios de status.
Preparação do conjunto de dados
A força principal do HackerRank reside em uma rede global de especialistas altamente avaliados (SMEs) e uma metodologia comprovada para criar conjuntos de dados de código de qualidade de produção e diversificados. O processo integra expertise de domínio, fluxos de trabalho estruturados e garantia de qualidade em múltiplas camadas para garantir que cada ponto de dado seja preciso, explicável e alinhado com seus objetivos.
Geração de conteúdo curada por especialistas
Seleção de PME: Cada engajamento de conjunto de dados começa com a seleção de um painel dedicado de PMEs que possuem expertise verificada nas línguas-alvo, frameworks e domínios (por exemplo, desenvolvimento backend, engenharia de dados, DevOps).
Design de tarefas realista: Cada PME é responsável por projetar tarefas de programação originais que refletem desafios autênticos vistos no desenvolvimento de software, como implementar uma API REST, depurar bugs de concorrência ou refatorar código legado. As tarefas estão alinhadas aos objetivos do cliente (por exemplo, geração de código, correção de bugs, sumarização) e variam em complexidade e formato (funções, classes, scripts, projetos). As PMEs usam ferramentas internas de autoria que fornecem feedback em tempo real sobre conformidade de formato, marcação e completude. Painéis que acompanham o desempenho do autor e a cobertura do conjunto de dados também são mantidos.
Diretrizes de autoria de tarefas: As PMEs são treinadas com instruções detalhadas e padronizadas para a autoria de tarefas. Estas incluem regras para:
Formulação e clareza do problema
Entradas/saídas esperadas
Cobertura de casos extremos
Design de casos de teste
Requisitos de metadados (por exemplo, restrições de tempo de execução, desempenho esperado)
Revisão e aprovação de tarefas: Cada tarefa passa por um processo de revisão estruturado liderado por um Gerente de PME (um engenheiro de conteúdo sênior com expertise no domínio) antes de ser incluída no conjunto de dados. O processo de revisão inclui verificações de correção técnica, clareza das instruções, relevância no mundo real e conformidade com os padrões de autoria.
Um conjunto de ferramentas internas agiliza o processo de revisão e feedback para garantir a qualidade e responsabilidade da tarefa.Feedback direcionado: O Gerente de PME pode fornecer comentários em nível de linha diretamente na tarefa.
Ciclo de revisão: Tarefas rejeitadas são devolvidas ao autor com feedback detalhado e melhorias sugeridas. O autor revisa a tarefa e a reenvia para revisão.
Controle de versão: Todas as edições são rastreadas por meio de um sistema controlado por versão com trilhas de auditoria.
Monitoramento de desempenho: Manter painéis que acompanham o desempenho do autor (por exemplo, tempo gasto na criação de cada tarefa) e a cobertura do conjunto de dados.
Critérios de aceitação: Uma tarefa é aprovada somente quando passa na revisão sem problemas bloqueantes. Verificações de qualidade rigorosas garantem que:
Somente tarefas totalmente aprovadas são incluídas em conjuntos de dados de produção
Tarefas parcialmente aceitas ou “boas o suficiente” são excluídas
Este processo estruturado de revisão garante que cada tarefa seja aprimorada, inequívoca e adequada para treinar ou avaliar grandes modelos de linguagem (LLMs).
Múltiplas soluções por tarefa: Para melhorar a diversidade e robustez dos seus dados de treinamento, cada tarefa é resolvida independentemente por pelo menos três SMEs diferentes. Isso fornece uma variedade de estilos de solução e permite que os modelos aprendam com abordagens de raciocínio variadas. Você também pode configurar o número de soluções necessárias por tarefa com base nas suas necessidades específicas.
Captura de metadados e contexto
Cada combinação de tarefa e solução é anotada com metadados detalhados para apoiar o uso downstream, incluindo:
Instruções de construção e execução
Versão do idioma e lista de dependências
Análise de complexidade de tempo e espaço (quando aplicável)
Casos extremos e modos de falha esperados
Notas de ajuste de desempenho
Esses metadados garantem reprodutibilidade, filtragem fácil e melhor controle sobre fatias do conjunto de dados (por exemplo, por nível de dificuldade, comprimento ou tipo de bug).
QA automatizado e humano
Um processo de QA de duas camadas é aplicado para manter altos padrões de submissão:
Verificações de sanidade: Todas as submissões são validadas por pipelines automatizados que executam casos de teste, realizam linting para estilo e sintaxe, e verificam a consistência entre cada problema e sua solução.
Revisão por pares: As submissões são revisadas por outro SME para garantir correção, clareza e conformidade com os padrões definidos. Qualquer desacordo aciona uma arbitragem estruturada antes da finalização.
Verificações de estilo e documentação: Além da correção funcional, cada solução segue o estilo de codificação idiomático, inclui comentários úteis e evita antipadrões. Essas verificações são essenciais para ajustar assistentes de desenvolvedores e modelos de explicação de código.

Avaliação do modelo
Assim que o conjunto de dados estiver finalizado, ele entra em uma fase estruturada de avaliação para verificar o desempenho do modelo após o ajuste fino com os novos dados.
Ajuste fino e avaliação inicial
Integração do modelo: O modelo de base do cliente ou o modelo de base de sua escolha é ajustado usando o conjunto de dados curado. Isso inclui:
Ajuste fino completo
Ajuste de instruções
Construção de prompt de poucos exemplos
Treinamento supervisionado ou no estilo RLHF, dependendo do contexto
Benchmarks: O desempenho do modelo é avaliado usando:
Benchmarks padrão como HumanEval, MBPP e CodeXGlue
O benchmark ASTRA do HackerRank, personalizado para seu caso de uso
Conjuntos de testes personalizados derivados de seus casos de uso de produção
Métricas de avaliação alinhadas com seus objetivos, como BLEU, precisão de correspondência exata, correção funcional, latência e taxas de alucinação
Se não existir um benchmark público adequado para uma tarefa (por exemplo, linguagem específica de domínio, refatoração), o HackerRank co-projetará um conjunto de avaliação personalizado com o cliente para garantir uma avaliação significativa.
Design de avaliação (se aplicável)
Quando benchmarks de código aberto não abordam suficientemente o caso de uso, um conjunto de avaliação personalizado é desenvolvido. Isso inclui:
Conjuntos de tarefas selecionados a partir do seu código existente
Rótulos de ouro avaliados manualmente por especialistas do HackerRank
Métricas adaptadas aos seus objetivos de negócio, como legibilidade, segurança ou cobertura de testes
Casos extremos e exemplos adversariais
Subconjuntos seguros para regressão para futuras iterações
Ciclo de feedback de desempenho
Se o modelo não atender aos critérios de sucesso predefinidos, um processo estruturado de feedback é iniciado.
Análise de erros: São realizadas análises qualitativas e quantitativas, incluindo:
Agrupamento de casos de falha por tipo de problema
Matriz de confusão em rótulos ou saídas
Análise da correção do código (por exemplo, erros de sintaxe versus bugs de lógica)
Revisão humana das saídas do modelo quando necessário
Diagnóstico e atribuição: Determinar a causa raiz das lacunas de desempenho avaliando se elas resultam de:
Cobertura insuficiente no conjunto de dados
Instruções de tarefa ambíguas
Subajuste ou sobreajuste do modelo
Desajustes na avaliação
Iteração do conjunto de dados: Questões identificadas são resolvidas por:
Refinamento de tarefas existentes (por exemplo, reescrever problemas pouco claros)
Adição de novos exemplos para atingir áreas fracas
Diversificação de estilos de solução ou cenários de teste
Ciclo de melhoria contínua
O processo de avaliação e ajuste é iterativo:
O modelo está sendo ajustado continuamente usando conjuntos de dados atualizados.
Novas saídas do modelo são reavaliadas em relação a benchmarks e testadas contra regressões em versões anteriores.
Uma versão de conjunto de dados ou modelo é aprovada para implantação somente quando:
As métricas primárias alvo são alcançadas
Nenhuma regressão é encontrada nas métricas secundárias
O cliente aprova
O objetivo é fechar o ciclo entre o comportamento do modelo e o design do conjunto de dados, garantindo que os dados nos quais você investe levem a melhorias mensuráveis no desempenho no mundo real.

Revisão de qualidade
Antes da entrega, cada conjunto de dados passa por uma revisão de qualidade estruturada e em várias etapas para garantir que cada tarefa e solução atendam aos padrões de correção, clareza e consistência.
Revisão final humana
Cada tarefa e soluções associadas passam por uma auditoria manual final pelos revisores seniores SME que não estiveram envolvidos na criação da tarefa. Este ponto de verificação imparcial garante a integridade em todo o conjunto de dados.
Os seguintes critérios são verificados:
Lógica de negócios e correção técnica: O desafio representa um desafio de programação realista e significativo? Todas as soluções abordam corretamente o problema declarado?
Estilo e formatação do código: As soluções são idiomáticas, legíveis e alinhadas com as convenções de estilo específicas da linguagem? A formatação é consistente e instrutiva?
Clareza e completude das explicações: Se o conjunto de dados inclui comentários inline ou explicações externas, eles são claros e precisos para um LLM aprender?
Cobertura de testes e comportamento de execução: Os casos extremos são testados? Os casos de teste validam implementações corretas e incorretas? Os limites de tempo e espaço são respeitados?
Avaliação baseada em rubrica
Os avaliadores usam uma rubrica de pontuação que divide cada tarefa em dimensões-chave (por exemplo, clareza, correção, completude e formato) com critérios de aprovação/reprovação definidos e notas dos avaliadores. Isso fornece um sistema de pontuação consistente e transparente entre os avaliadores.
A pontuação objetiva garante alinhamento com as expectativas do cliente.
As notas dos avaliadores são registradas por tarefa para rastreabilidade e melhoria contínua.
Resolução de disputas e arbitragem
Se vários avaliadores discordarem:
Um fluxo de trabalho de arbitragem estruturado é iniciado.
Cada avaliador apresenta sua avaliação e justificativa.
O gerente SME media para chegar a um consenso.
Uma tarefa é finalizada somente após todas as preocupações serem resolvidas e o resultado ser documentado.
Este processo evita inconsistências subjetivas e garante que nenhuma tarefa prossiga com questões em aberto.
Controle de versão e trilha de auditoria
Todas as edições de tarefas, ciclos de feedback, comentários dos avaliadores e aprovações são rastreados usando ferramentas internas.
Registros de alterações são mantidos para cada tarefa.
Todas as revisões são carimbadas com data e atribuídas.
Um histórico completo de revisões está disponível mediante solicitação para mostrar como e por que uma tarefa evoluiu.
Ferramentas e automação
Enquanto revisores humanos lideram o processo, uma passagem final de automação também é realizada para:
Revalidar casos de teste e comportamento em tempo de execução
Detectar deriva de formatação e inconsistências de arquivo
Verificar hashes de integridade (por exemplo, SHA-256) para apoiar a reprodutibilidade.

Entrega de conjunto de dados
Após um conjunto de dados passar por todas as verificações de qualidade e receber as aprovações necessárias, o HackerRank inicia um processo de entrega seguro e verificável. O fluxo de trabalho de entrega é projetado para rastreabilidade, reprodutibilidade e integração perfeita com pipelines de ML.
Embalagem e finalização
Antes da entrega, todos os componentes do conjunto de dados são embalados para garantir que seja portátil, verificável e autocontido.
Conteúdo aprovado
Todas as tarefas, soluções e metadados são aprovados através do processo de QA.
Inclui arquivos de teste aplicáveis, scripts de build e instruções de runtime, quando aplicável.
Atribuição de tarefa ao SME está incluída se necessário (anonimizada quando necessário).
Versionamento e integridade
O conjunto de dados é empacotado como um arquivo estruturado (por exemplo, .tar.gz, .zip) com caminhos de arquivo consistentes.
Hashes de integridade (por exemplo, SHA-256) estão incluídos para todos os arquivos e para o arquivo completo.
Difs baseados em Git para rastreamento de mudanças entre versões do conjunto de dados.
Pacote de documentação
Arquivo README com estrutura do conjunto de dados e instruções de uso.
Definições de esquema de dados ou formato de anotação estão incluídas.
Notas de segurança e instruções de manuseio estão documentadas.
Canais de entrega
HackerRank suporta múltiplos canais de entrega seguros e compatíveis com empresas:
Transferência criptografada na nuvem (por exemplo, URL pré-assinada do AWS S3, bucket seguro do GCS, link do Azure Blob)
Pontos finais FTP ou VPN seguros designados pelo cliente
Todas as entregas são registradas e rastreáveis.
Apresentação ao cliente
Mediante solicitação, o HackerRank fornece uma sessão de apresentação com sua equipe para:
Revisar a estrutura do conjunto de dados e a configuração de avaliação
Esclarecer metadados, convenções de rotulagem ou padrões de uso esperado
Responder a perguntas de integração de cientistas de dados ou engenheiros de ML
Coletar feedback para futuras iterações do conjunto de dados
Arquivamento e retenção
Assim que a entrega for confirmada:
HackerRank mantém uma cópia do conjunto de dados e registros de entrega por 30 a 90 dias (configurável).
Após o período de retenção, o conjunto de dados é excluído de forma segura, a menos que haja acordo em contrário.
Um relatório formal de conclusão de entrega é emitido, incluindo:
Carimbo de data/hora da entrega
Registro de verificação de integridade
Resumo da cobertura de QA