ML Täydellisyyden Tarkistuslista

Sisällysluettelo:

ML Täydellisyyden Tarkistuslista
ML Täydellisyyden Tarkistuslista

Video: ML Täydellisyyden Tarkistuslista

Video: ML Täydellisyyden Tarkistuslista
Video: Лучший рецепт томатного джема! Очень легкий рецепт! 2024, Saattaa
Anonim

Tavoitteena lisätä toistettavuutta ja antaa muille mahdollisuus rakentaa julkaistuun työhön helpommin, esitämme ML-koodin täydellisyyden tarkistuslistan. ML Code Completeness -tarkistuslista arvioi koodivaraston siinä olevien komentosarjojen ja artefaktien perusteella.

ML-koodin täydellisyyden tarkistuslista
ML-koodin täydellisyyden tarkistuslista

Johdanto

Viime vuonna Joel Pino julkaisi uusittavuuden tarkistuslistan helpottaakseen uusittavissa olevaa tutkimusta, joka esitettiin tärkeimmissä OA-konferensseissa (NeurIPS, ICML,…). Suurin osa tarkistusluettelon kohdista keskittyy paperin osiin. Yksi tämän tarkistusluettelon kohta on "linkki lähdekoodiin", mutta muutamia suosituksia annettiin.

Parhaista käytännöistä on tiivistetty ML Code Completeness Checklist, joka on nyt osa virallista NeurIPS 2020 -koodin lähetysprosessia ja on tarkastajien käytettävissä heidän mielestään.

ML täydellisyyden tarkistuslista

M-koodin täydellisyyden tarkistuslista tarkistaa koodivaraston:

  1. Riippuvuudet - Onko arkistossa riippuvuustietoja tai ohjeita ympäristön luomiseen?
  2. Koulutusskenaariot - Sisältääkö arkisto tapa kouluttaa / sovittaa asiakirjassa kuvattuja malleja?
  3. Arviointiskenaariot - Sisältääkö arkisto komentosarjan koulutettujen mallien suorituskyvyn laskemiseksi tai kokeiden suorittamiseksi malleissa?
  4. Esivalmistetut mallit - Tarjoaako arkisto ilmaisen pääsyn ennalta koulutettuihin mallipainoihin?
  5. Tulokset - sisältääkö arkisto taulukon / kaavion päätuloksista ja komentosarjan näiden tulosten toistamiseksi?

Jokainen arkisto voi vastaanottaa 0 (ei ole) - 5 (sisältää kaikki) rasti. Lisätietoja kunkin kohteen kriteereistä löytyy Github-arkistosta.

Mikä on todiste siitä, että tarkistusluettelokohteet lisäävät hyödyllisempiä arkistoja?

Yhteisö käyttää yleensä GitHub-tähtiä välityspalvelimen arkiston hyödyllisyydessä. Siksi repoilla, joilla on korkeampi pisteet ML: n täydellisyyden tarkistuslistalla, odotetaan olevan myös enemmän GitHub-tähtiä. Tämän hypoteesin testaamiseksi oli 884 GitHub-repoa, jotka lähetettiin virallisena toteutuksena NeurIPS 2019 -asiakirjoissa. Näiden 884 repojen 25%: n alijoukko valittiin satunnaisesti ja tarkastettiin manuaalisesti ML-täydellisyyden tarkistusluettelossa. He ryhmitelivät tämän näyte NeurIPS 2019 GitHub -repot ML-koodin täydellisyyden tarkistusluettelossa olevien punkkien lukumäärän mukaan ja kartoittivat GitHub-mediaanitähdet kussakin ryhmässä. Tulos on alla:

Kuva
Kuva

NeurIPS 2019 -repoissa, joissa oli 0 valintaruutua, mediaani oli 1,5 tähteä GitHubissa. Sen sijaan viiden valintaruudun repoissa mediaani oli 196,5 GitHub-tähteä. Vain 9% repoista oli 5 punkkia, ja suurimmalla osalla repoista (70%) 3 tai vähemmän. Suoritettiin Wilcoxonin sijoitusarvotesti ja havaittiin, että tähtimäärä 5 punktiluokassa on merkittävästi (p.arvo <1e-4) suurempi kuin kaikissa muissa luokissa paitsi 5 vs. 4 (missä p.arvo on raja). 0,015). Näet tämän kuvan tiedot ja koodin Github-arkistossa.

Tämän suhteen laajentumisen testaamiseksi luotiin komentosarja automatisoimaan tarkistuslistan laskeminen README-arkistosta ja siihen liittyvästä koodista. Analysoimme sitten uudelleen koko 884 NeurIPS 2019 -tietovarastosarjan sekä laajemman 8926-koodivaraston kaikista vuonna 2019 julkaistuista ML-artikkeleista. Molemmissa tapauksissa asiantuntijat saivat laadullisesti identtisen tuloksen, jolloin mediaanitähdet kasvoivat punkkeista monotonisesti tilastollisesti merkitsevällä tavalla (p.arvo <1e-4). Lopuksi, käyttämällä vankkaa lineaarista regressiota, havaitsimme ennalta koulutetuilla malleilla ja tuloksilla olevan suurin positiivinen vaikutus GitHub-tähtiin.

Analyytikot pitävät tätä hyödyllisenä todisteena siitä, että tutkijoiden kannustaminen sisällyttämään kaikki ML: n täydellisyyden tarkistusluettelossa vaaditut komponentit johtavat hyödyllisempiin arkistoihin ja että tarkistuslistan pisteet osoittavat parempilaatuisia lähetyksiä.

Tällä hetkellä asiantuntijat eivät väitä, että ehdotetut 5 tarkistusluettelokohtaa ovat ainoa tai edes merkittävin tekijä arkiston suosiossa. Muut tekijät voivat vaikuttaa suosioon, kuten: tieteellisen panoksen koko, markkinointi (esim. Blogikirjoitukset ja Twitter-viestit), dokumentaatio (kattavat README-tiedostot, oppaat ja API-dokumentaatio), koodin laatu ja edellinen työ.

Joitakin esimerkkejä NeurIPS 2019 -tietovarastoista, joissa on 5 valintaruutua:

Asiantuntijat tunnustavat, että vaikka he ovat yrittäneet tehdä tarkistuslistasta mahdollisimman yleisen, sitä ei ehkä voida soveltaa kaikentyyppisiin asiakirjoihin, esimerkiksi teoreettisiin tai asiakirjajoukoihin. Vaikka artikkelin päätarkoitus onkin edustaa tietojoukkoa, se voi silti hyötyä perusmallien julkaisemisesta, mukaan lukien koulutusskenaariot, arviointiskenaariot ja tulokset.

Ottaa käyttöön

Tarkastajien ja käyttäjien on helpompi ymmärtää, mikä arkistossa on, ja asiantuntijoiden on arvioitava se oikein, tarjotaan joukko parhaita käytäntöjä README.md-tiedostojen kirjoittamiseen, riippuvuuksien määrittelemiseen ja ennalta koulutettujen mallien, tietojoukkojen ja tulosten julkaisemiseen. On suositeltavaa, että määrität nämä 5 elementtiä selkeästi arkistossasi ja linkität ne ulkoisiin resursseihin, kuten asiakirjoihin ja tulostauluihin, jotta käyttäjillesi saadaan enemmän kontekstia ja selkeyttä. Nämä ovat viralliset ohjeet koodin lähettämiseen NeurIPS 2020: een.