Miksi Jupyter on tietotieteilijöiden paras laskentamuistikirja
Chilen Andeilla Cerro Pachónin harjanteen huipulla sijaitseva rakennustyömaa, josta tulee lopulta Large Synoptic Survey Telescope (LSST). Kun se tulee verkkoon vuonna 2022, kaukoputki tuottaa teratavuja dataa joka yö, kun se tutkii automaattisesti eteläisen taivaan. Ja näiden tietojen murskaamiseen tähtitieteilijät käyttävät tuttua ja yhä suositumpaa työkalua: Jupyter-muistikirjaa.
Jupyter on ilmainen, avoimen lähdekoodin interaktiivinen verkkotyökalu, joka tunnetaan nimellä laskennallinen muistikirja, jonka avulla tutkijat voivat yhdistää ohjelmistokoodin, laskennallisen tulosteen, selittävän tekstin ja multimediaresurssit yhdeksi asiakirjaksi. Laskennalliset muistikirjat ovat olleet olemassa vuosikymmeniä, mutta erityisesti Jupyterin suosio on kasvanut räjähdysmäisesti viimeisten parin vuoden aikana. Tätä nopeaa käyttöönottoa on auttanut innostunut käyttäjä-kehittäjien yhteisö ja uudelleensuunniteltu arkkitehtuuri, jonka avulla kannettava tietokone pystyy puhumaan kymmeniä ohjelmointikieliä – tämä tosiasia näkyy sen nimessä, joka on perustajan Fernando Pérezin mukaan inspiroitunut ohjelmointikielet Julia (Ju), Python (Py) ja R.
Yksi koodinjakosivuston GitHubin analyysin mukaan yli 2,5 miljoonaa julkista Jupyter-kannettavaa syyskuussa 2018, kun niitä oli noin 200 000 vuonna 2015. Pérez sanoo, että kasvu johtuu osittain parannuksista ohjaaviin verkkoohjelmistoihin. sovellukset, kuten Gmail ja Google Docs; tieteellisen Pythonin ja datatieteen kypsyminen; ja erityisesti helppous, jolla kannettavat tietokoneet helpottavat pääsyä etätietoihin, joiden lataaminen voisi muuten olla epäkäytännöllistä – kuten LSST:stä. "Monissa tapauksissa on paljon helpompaa siirtää tietokone dataan kuin tiedot tietokoneeseen", sanoo Pérez Jupyterin pilvipohjaisista ominaisuuksista. "Tämä arkkitehtuuri auttaa sanomalla, että kerrot minulle, missä tietosi ovat, ja minä annan sinulle tietokoneen siellä."
Datatieteilijöille Jupyter on noussut de facto standardiksi, sanoo Lorena Barba, mekaaninen ja ilmailuinsinööri George Washingtonin yliopistosta Washington DC:ssä. Mario Jurić, Washingtonin yliopiston Seattlessa sijaitseva tähtitieteilijä, joka koordinoi LSST:n tiedonhallintatiimiä, sanoo: "En ole koskaan nähnyt yhtäkään näin nopeaa siirtymistä. Se on vain hämmästyttävää."
Tietojen tutkiminen
Tietokoneen muistikirjat ovat pohjimmiltaan laboratorion muistikirjoja, joita käytetään tieteelliseen laskemiseen. Tutkijat eivät liittäneet DNA-geeliä laboratorioprotokollan viereen, vaan upotivat koodit, tiedot ja tekstit tallentamaan laskentamenetelmänsä. Brian Granger, yksi Jupyterin perustajista Kalifornian Polytechnic State Universityssä San Luis Obispossa, sanoi, että tulos on "laskennallinen kertomus" - asiakirja, jonka avulla tutkijat voivat täydentää koodiaan ja tietojaan analyyseillä, hypoteeseilla ja olettamuksilla. .
Tietojen tutkijoille tämä muoto voi edistää tutkimusta. Barba sanoo, että muistikirjat ovat interaktiivisen laskennan muoto, ympäristö, jossa käyttäjät suorittavat koodia, näkevät mitä tapahtuu, muokkaavat ja toistavat eräänlaisessa iteratiivisessa keskustelussa tutkijan ja datan välillä. Ne eivät ole ainoa foorumi tällaisille keskusteluille – IPython, interaktiivinen Python-tulkki, jolle Jupyterin edeltäjä, IPython Notebook, rakennettiin, on toinen. Mutta muistikirjojen avulla käyttäjät voivat dokumentoida nämä keskustelut ja luoda "tehokkaampia yhteyksiä aiheiden, teorioiden, tietojen ja tulosten välille", Barba sanoo.
Tutkijat voivat myös käyttää muistikirjoja luodakseen opetusohjelmia tai interaktiivisia oppaita ohjelmistoilleen. Tämän teki Mackenzie Mathis, systeemineurotieteilijä Harvardin yliopistossa Cambridgessa, Massachusettsissa.
DeepLabCut
, ohjelmointikirjasto, jonka hänen tiiminsä on kehittänyt käyttäytymis-neurotieteen tutkimusta varten. He voivat käyttää muistikirjoja käsikirjoitusten valmistukseen tai opetusapuvälineinä. Barba, joka on ottanut käyttöön muistikirjoja jokaisella opettamallaan kurssilla vuodesta 2013 lähtien, kertoi pääpuheessaan vuonna 2014, että muistikirjojen avulla hänen opiskelijansa voivat olla vuorovaikutteisessa vuorovaikutuksessa oppituntien kanssa ja omaksua niistä materiaalia tavalla, johon luennot eivät vastaa. "IPython-muistikirjat ovat todella tappava sovellus tietojenkäsittelyn opettamiseen tieteen ja tekniikan alalla", hän sanoi.
Puhu minun kieltäni
Jupyter-muistikirjassa on kaksi osaa. Käyttäjät syöttävät ohjelmointikoodin tai tekstin suorakaiteen muotoisiin soluihin etupään verkkosivulla. Selain välittää sitten koodin tausta "ytimelle", joka suorittaa koodin ja palauttaa tulokset (katso esimerkkimme osoitteessa
go.nature.com/2yqq7ak
). Pérezin mukaan yli 100 Jupyter-ydintä on luotu, jotka tukevat kymmeniä ohjelmointikieliä. Normaalisti jokainen muistikirja voi käyttää vain yhtä ydintä ja yhtä kieltä, mutta kiertotapoja on olemassa. Yksi demomuistikirja esimerkiksi puhuu Python, Julia, R ja
Fortran
.
Tärkeää on, että ytimien ei tarvitse sijaita käyttäjän tietokoneessa. Kun LSST:n tulevat käyttäjät käyttävät Jupyter-kannettavia analysoimaan tietojaan, koodi ajetaan Illinoisissa sijaitsevassa supertietokoneessa, mikä tarjoaa laskennallista lihasta, jota mikään pöytätietokone ei pysty vastaamaan. Muistikirjat voivat toimia myös pilvessä. Esimerkiksi Googlen Colaboratory-projekti tarjoaa Google-teeman käyttöliittymän Jupyter-muistikirjalle. Sen avulla käyttäjät voivat tehdä yhteistyötä ja suorittaa koodia, joka hyödyntää Googlen pilviresursseja – kuten
graafiset prosessointiyksiköt
— ja tallentaa asiakirjansa Google Driveen.
Jupyterin uusin versio on JupyterLab, joka julkaistiin betaversiona tammikuussa 2018 ja on saatavilla (kuten Jupyter-muistikirja) joko erillisenä pakettina tai osana ilmaista Anaconda-tieteellistä laskentaympäristöä.
Jason Grout on ohjelmistoinsinööri finanssipalveluyrityksessä Bloombergissa San Franciscossa Kaliforniassa ja JupyterLab-tiimin jäsen. Hän kutsuu JupyterLabia Jupyter-muistikirjan "seuraavan sukupolven verkkokäyttöliittymäksi", joka laajentaa tuttua muistikirjan metaforaa vedä ja pudota -toiminnoilla sekä tiedostoselaimilla, tietojen katseluohjelmilla, tekstieditoreilla ja komentokonsolilla. Tavallinen Jupyter-muistikirja määrittää kullekin muistikirjalle oman ytimen, kun taas JupyterLab luo laskentaympäristön, joka mahdollistaa näiden komponenttien jakamisen. Siten käyttäjä voi tarkastella muistikirjaa yhdessä ikkunassa, muokata vaadittua datatiedostoa toisessa ja kirjata kaikki suoritetut komennot kolmanteen - kaikki yhdessä verkkoselaimen käyttöliittymässä.
Käyttäjät voivat myös mukauttaa JupyterLabia työnkulkuunsa sopivaksi. Sisäänrakennetut katseluohjelmat ovat olemassa esimerkiksi kuva-, teksti- ja CSV-tiedostoille, mutta käyttäjät voivat rakentaa myös mukautettuja komponentteja. Nämä voivat näyttää asioita, kuten genomisia kohdistuksia tai geospatiaalisia tietoja. Pérezin opettaman kurssin osallistuja loi jopa komponentin, joka näyttää 3D-aivojen kuvantamistietoja. "Tämä on luonnollisesti täysin [neurotiede]-aluekohtainen työkalu - Jupyter-tiimillä ei ole liiketoimintaa kirjoittaa näitä asioita. Mutta me tarjoamme oikeat standardit, ja sitten se yhteisö voi 24 tunnin kuluttua tulla takaisin ja kirjoittaa sellaisen", hän sanoo.
Kaksi lisätyökalua ovat parantaneet Jupyterin käytettävyyttä. Yksi on JupyterHub, palvelu, jonka avulla laitokset voivat tarjota Jupyter-kannettavia suurille käyttäjille. Kalifornian yliopiston Berkeleyn IT-tiimi, jossa Pérez on tiedekunnan jäsen, on ottanut käyttöön yhden tällaisen keskuksen, jota Pérez käyttää varmistaakseen, että kaikilla datatieteen kurssin opiskelijoilla on identtiset laskentaympäristöt. "Emme voi mitenkään hallita IT-tukea 800 opiskelijalle, mikä auttaa heitä selvittämään, miksi heidän kannettavan tietokoneensa asennus ei toimi; se on yksinkertaisesti mahdotonta", hän sanoo.
Toinen kehitys on Binder, avoimen lähdekoodin palvelu, jonka avulla käyttäjät voivat käyttää Jupyter-kannettavia GitHubissa verkkoselaimessa ilman ohjelmiston tai ohjelmointikirjastojen asentamista. Käyttäjät voivat myös suorittaa Jupyter-muistikirjoja Google-pilvessä lisäämällä
https://colab.research.google.com/github
ennen GitHubissa olevan muistikirjan URL-osoitetta tai käyttämällä kaupallista palvelua Code Ocean. Code Ocean julkaisi syyskuussa uuden käyttöliittymän pilvipohjaiseen koodinjako- ja koodinsuorituspalveluunsa, joka myös perustuu Jupyteriin.
Tietokoneen muistikirjat ovat pohjimmiltaan laboratorion muistikirjoja, joita käytetään tieteelliseen laskemiseen. Tutkijat eivät liittäneet DNA-geeliä laboratorioprotokollan viereen, vaan upotivat koodit, tiedot ja tekstit tallentamaan laskentamenetelmänsä. Brian Granger, yksi Jupyterin perustajista Kalifornian Polytechnic State Universityssä San Luis Obispossa, sanoi, että tulos on "laskennallinen kertomus" - asiakirja, jonka avulla tutkijat voivat täydentää koodiaan ja tietojaan analyyseillä, hypoteeseilla ja olettamuksilla. .
Tällaiset työkalut edistävät laskennallista toistettavuutta yksinkertaistamalla koodin uudelleenkäyttöä. Käyttäjien on kuitenkin osattava käyttää muistikirjoja oikein.
Joel Grus, tutkimusinsinööri Allen Institute for Artificial Intelligencesta Seattlessa, Washingtonissa, piti esityksen "En pidä muistikirjoista" Jupyter-kehittäjien konferenssissa aiemmin tänä vuonna New Yorkissa. Hän sanoo nähneensä ohjelmoijien turhautuneen, kun kannettavat tietokoneet eivät toimi odotetulla tavalla, yleensä siksi, että ne suorittavat vahingossa koodisoluja epäkunnossa. Jupyter-muistikirjat rohkaisevat myös huonoon koodauskäytäntöön, hän sanoo vaikeuttamalla koodin loogista järjestämistä, jakamalla sen uudelleenkäytettäviksi moduuleiksi ja kehittämällä testejä varmistaakseen, että koodi toimii oikein.
Ne eivät ole ylitsepääsemättömiä ongelmia, Grus myöntää, mutta muistikirjat vaativat kurinalaisuutta koodin suorittamisessa: esimerkiksi siirtämällä analyysikoodia ulkoisiin tiedostoihin, jotka voidaan kutsua muistikirjasta, määrittämällä avainmuuttujat yläreunassa. muistikirjasta ja käynnistämällä ydin säännöllisesti ja ajamalla muistikirjaa ylhäältä alas. Kuten eräs Twitter-käyttäjä vitsaili: "Käynnistä uudelleen ja suorita kaikki tai se ei tapahdu."
Se on oppitunti, jonka Barba yrittää juurruttaa oppilailleen. "Selitän opiskelijoilleni ensimmäisestä päivästä lähtien, että he voivat olla vuorovaikutuksessa muistikirjan kanssa epälineaarisella tavalla, mikä antaa heille paljon voimaa tutkimiseen", hän sanoo. "Mutta suurella voimalla tulee suuri vastuu."
Yksi työkalu, joka saattaa auttaa, on Verdant, laajennus, joka tallentaa käyttäjän toimien historian Jupyterissa. "Kirjoittajat rakensivat laajennuksen, joka mahdollistaa joustavan käyttäjän työnkulun ja samalla tallentaa tietyn suoritetun koodin, missä järjestyksessä ja mitä erityisiä tietoja", sanoo Carol Willing, Kalifornian Polytechnic State Universityn Jupyter-tiimin jäsen.
Jake VanderPlas, Googlen ohjelmistosuunnittelija Seattlessa, Washingtonissa ja Colaboratory-tiimin jäsen, sanoo, että muistikirjat ovat kuin vasarat: niitä voidaan käyttää väärin, eivätkä ne sovellu kaikkiin sovelluksiin. Mutta tiedon tutkimiseen ja viestintään kannettavat tietokoneet ovat erinomaisia. Tähtitieteellinen yhteisö on ilmeisesti samaa mieltä. "Me siirryimme Jupyter-muistikirjoista, joita ei ollut olemassa noin kuusi vuotta sitten, käytännössä kaikkiin, jotka käyttävät niitä nykyään", Jurić sanoo. "Ja me olemme yhteisö, jolla on edelleen Fortran 77" - kuten vuonna 1977 - "pysyy paikallaan. Se on jotain."
Latest: Miksi sinun pitäisi käyttää Jupyter Notebookia
Next: Mikä on Jupyter-muistikirja? Miksi minun pitäisi käyttää niitä?