Lista De Verificação De Integridade De ML

Índice:

Lista De Verificação De Integridade De ML
Lista De Verificação De Integridade De ML

Vídeo: Lista De Verificação De Integridade De ML

Vídeo: Lista De Verificação De Integridade De ML
Vídeo: Check list de verificação fácil 2024, Novembro
Anonim

Com o objetivo de aumentar a reprodutibilidade e capacitar outros a desenvolver trabalhos publicados com mais facilidade, apresentamos uma lista de verificação de completude de código de ML. A Lista de verificação de integridade do código de ML avalia o armazenamento de código com base nos scripts e artefatos fornecidos nele.

Lista de verificação de integridade do código de ML
Lista de verificação de integridade do código de ML

Introdução

No ano passado, Joel Pino lançou uma lista de verificação de reprodutibilidade para facilitar a pesquisa reproduzível apresentada nas principais conferências OA (NeurIPS, ICML, …). A maioria dos itens da lista de verificação se concentra nos componentes do papel. Um item desta lista de verificação é “fornecer um link para o código-fonte”, mas além disso, poucas recomendações foram feitas.

As melhores práticas foram resumidas na Lista de verificação de integridade do código de ML, que agora faz parte do processo oficial de envio de código do NeurIPS 2020 e estará disponível para uso pelos revisores conforme acharem adequado.

Lista de verificação de integridade de ML

A Lista de Verificação de Completude do Código M verifica o armazenamento de código para:

  1. Dependências - o repositório tem informações de dependência ou instruções sobre como configurar o ambiente?
  2. Cenários de treinamento - O repositório contém uma maneira de treinar / ajustar os modelos descritos no documento?
  3. Cenários de avaliação - O repositório contém um script para calcular o desempenho do (s) modelo (s) treinado (s) ou executar experimentos nos modelos?
  4. Modelos pré-treinados - O repositório fornece acesso gratuito aos pesos dos modelos pré-treinados?
  5. Resultados - o repositório contém uma tabela / gráfico dos principais resultados e um script para reproduzir esses resultados?

Cada repositório pode receber de 0 (não tem) a 5 (tem todos) ticks. Mais informações sobre os critérios de cada item podem ser encontradas no repositório Github.

Qual é a evidência de que os itens da lista de verificação contribuem para repositórios mais úteis?

A comunidade geralmente usa estrelas do GitHub como um proxy para a utilidade do repositório. Portanto, os repositórios com uma pontuação mais alta na lista de verificação de integridade do ML também devem ter mais estrelas do GitHub. Para testar essa hipótese, havia 884 repositórios do GitHub enviados como implementações oficiais nos documentos do NeurIPS 2019. Um subconjunto de 25% desses 884 repositórios foram selecionados aleatoriamente e verificados manualmente na lista de verificação de integridade do ML. Eles agruparam esta amostra de repositórios NeurIPS 2019 GitHub pelo número de ticks que eles têm na lista de verificação de integridade do código de ML e mapearam as estrelas medianas do GitHub em cada grupo. O resultado está abaixo:

Imagem
Imagem

Os repositórios NeurIPS 2019 com 0 caixas de seleção tiveram uma mediana de 1,5 estrelas no GitHub. Em contraste, os repositórios com 5 caixas de seleção tiveram uma mediana de 196,5 estrelas no GitHub. Apenas 9% dos repos tinham 5 ticks, e a maioria dos repos (70%) tinha 3 ticks ou menos. O teste de soma de postos de Wilcoxon foi realizado e descobriu que o número de estrelas na classe 5 tick é significativamente (p.value <1e-4) maior do que em todas as outras classes, exceto 5 versus 4 (onde p.value é o limite). em 0,015). Você pode ver os dados e o código desta figura no repositório Github.

Para testar se esse relacionamento se estende de forma mais ampla, um script foi criado para automatizar o cálculo de uma lista de verificação do repositório README e do código associado. Em seguida, reanalisamos todo o conjunto de 884 repositórios NeurIPS 2019, bem como o conjunto mais amplo de 8926 repositórios de código para todos os artigos de ML publicados em 2019. Em ambos os casos, os especialistas obtiveram um resultado qualitativamente idêntico com estrelas medianas aumentando monotonicamente dos carrapatos de forma estatisticamente significativa (p.valor <1e-4). Finalmente, usando a regressão linear robusta, descobrimos que os modelos e resultados pré-treinados têm o maior impacto positivo nas estrelas do GitHub.

Esta é considerada uma evidência útil pelos analistas de que encorajar os pesquisadores a incluir todos os componentes exigidos pela lista de verificação de completude do ML levará a repositórios mais úteis, e que a pontuação na lista de verificação indica submissões de melhor qualidade.

Atualmente, os especialistas não afirmam que os 5 itens da lista de verificação propostos são o único ou mesmo o mais significativo fator na popularidade do repositório. Outros fatores podem influenciar a popularidade, como: tamanho da contribuição científica, marketing (por exemplo, postagens de blog e postagens do Twitter), documentação (READMEs abrangentes, tutoriais e documentação de API), qualidade do código e trabalhos anteriores.

Alguns exemplos de repositórios NeurIPS 2019 com 5 caixas de seleção:

Os especialistas reconhecem que, embora tenham tentado tornar a lista de verificação o mais geral possível, ela pode não ser totalmente aplicável a todos os tipos de documentos, por exemplo, teóricos ou conjuntos de documentos. No entanto, mesmo que o objetivo principal do artigo seja representar um conjunto de dados, ele ainda pode se beneficiar do lançamento de modelos de linha de base, incluindo cenários de treinamento, cenários de avaliação e resultados.

Comece a usar

Para tornar mais fácil para os revisores e usuários entenderem o que está no repositório e para os especialistas avaliá-lo corretamente, uma coleção de melhores práticas é fornecida para escrever arquivos README.md, definir dependências e liberar modelos pré-treinados, conjuntos de dados e resultados. É recomendado que você defina claramente esses 5 elementos em seu repositório e os vincule a quaisquer recursos externos, como documentos e placares para fornecer mais contexto e clareza para seus usuários. Estas são as diretrizes oficiais para enviar um código ao NeurIPS 2020.

Recomendado: