Proč je Jupyter tím nejlepším počítačovým notebookem pro datové vědce
Na hřebeni Cerro Pachón v chilských Andách se nachází staveniště, které se nakonec stane Velkým synoptickým průzkumným dalekohledem (LSST). Až bude v roce 2022 on-line, bude teleskop každou noc generovat terabajty dat, protože bude automaticky zkoumat jižní oblohu. A k tomu, aby tato data zpracovali, astronomové použijí známý a stále oblíbenější nástroj: notebook Jupyter.
Jupyter je bezplatný interaktivní webový nástroj s otevřeným zdrojovým kódem známý jako počítačový notebook, který mohou výzkumníci používat ke kombinaci softwarového kódu, výpočetního výstupu, vysvětlujícího textu a multimediálních zdrojů v jediném dokumentu. Výpočetní notebooky jsou na světě již desítky let, ale zejména Jupyter v posledních několika letech explodoval v popularitě. Tomuto rychlému nástupu napomohla nadšená komunita uživatelů-vývojářů a přepracovaná architektura, která notebooku umožňuje mluvit desítkami programovacích jazyků – což se odráží v jeho názvu, který byl podle spoluzakladatele Fernanda Péreze inspirován programovací jazyky Julia (Ju), Python (Py) a R.
Jedna analýza webu GitHub pro sdílení kódu zaznamenala v září 2018 více než 2,5 milionu veřejných notebooků Jupyter, což je nárůst z přibližně 200 000 v roce 2015. Tento růst je částečně způsoben zlepšením webového softwaru, který pohání aplikace jako Gmail a Google Docs; zrání vědeckého Pythonu a datové vědy; a zejména snadnost, se kterou notebooky usnadňují přístup ke vzdáleným datům, jejichž stahování by jinak mohlo být nepraktické – například z LSST. „V mnoha případech je mnohem snazší přesunout počítač k datům než data do počítače,“ říká Pérez o cloudových možnostech Jupyter. "Tato architektura pomáhá udělat to, že řeknete, vy mi řekněte, kde jsou vaše data, a já vám tam dám počítač."
Pro datové vědce se Jupyter ukázal jako de facto standard, říká Lorena Barba, mechanická a letecká inženýrka na Univerzitě George Washingtona ve Washingtonu DC. Mario Jurić, astronom z Washingtonské univerzity v Seattlu, který koordinuje tým pro správu dat LSST, říká: „Nikdy jsem neviděl žádnou migraci tak rychle. Je to prostě úžasné."
Průzkum dat
Počítačové notebooky jsou v podstatě laboratorní notebooky používané pro vědecké výpočty. Výzkumníci nevložili gel DNA vedle laboratorního protokolu, ale místo toho vložili kódy, data a text, aby zaznamenali své metody výpočtu. Brian Granger, spoluzakladatel Jupyter na Kalifornské polytechnické státní univerzitě v San Luis Obispo, uvedl, že výsledkem je „výpočetní příběh“ – dokument, který umožňuje výzkumníkům doplnit jejich kód a data analýzami, hypotézami a dohady. .
Pro vědce zabývající se daty může tento formát podpořit průzkum. Notebooky, říká Barba, jsou formou interaktivního počítání, prostředím, ve kterém uživatelé spouštějí kód, sledují, co se děje, upravují a opakují v jakési iterativní konverzaci mezi výzkumníkem a daty. Nejsou jediným fórem pro takové konverzace – IPython, interaktivní interpret Pythonu, na kterém byl postaven předchůdce Jupyteru, IPython Notebook, je další. Notebooky však uživatelům umožňují dokumentovat tyto konverzace a vytvářet „výkonnější propojení mezi tématy, teoriemi, daty a výsledky“, říká Barba.
Výzkumní pracovníci mohou také používat notebooky k vytváření výukových programů nebo interaktivních příruček pro svůj software. To udělal Mackenzie Mathis, systémový neurolog z Harvardské univerzity v Cambridge ve státě Massachusetts.
DeepLabCut
, programovací knihovnu, kterou její tým vyvinul pro behaviorálně-neurologický výzkum. A sešity mohou využít k přípravě rukopisů, nebo jako učební pomůcky. Barba, která zavedla notebooky do všech kurzů, které od roku 2013 vyučovala, na klíčovém projevu v roce 2014 uvedla, že notebooky umožňují jejím studentům interaktivně se zapojit do lekcí – a absorbovat materiál z – způsobem, kterému se přednášky nemohou vyrovnat. „Poznámkové bloky IPython jsou skutečně vražednou aplikací pro výuku výpočetní techniky ve vědě a technice,“ řekla.
Mluvte mým jazykem
Poznámkový blok Jupyter má dvě součásti. Uživatelé vkládají programovací kód nebo text do obdélníkových buněk na front-endové webové stránce. Prohlížeč poté předá tento kód back-endovému „jádru“, které spustí kód a vrátí výsledky (viz náš příklad na
go.nature.com/2yqq7ak
). Podle Pérezova počtu bylo vytvořeno více než 100 jader Jupyter, které podporují desítky programovacích jazyků. Normálně může každý notebook provozovat pouze jedno jádro a jeden jazyk, ale existují řešení. Jeden ukázkový notebook například mluví Python, Julia, R a
Fortran
.
Důležité je, že jádra nemusí být umístěna v počítači uživatele. Až budou budoucí uživatelé LSST používat notebooky Jupyter k analýze svých dat, bude kód běžet na superpočítači v Illinois, což poskytne výpočetní výkon, kterému se žádný stolní počítač nevyrovná. Notebooky mohou běžet i v cloudu. Projekt Google Colaboratory například poskytuje front-end na téma Google pro notebook Jupyter. Umožňuje uživatelům spolupracovat a spouštět kód, který využívá cloudové zdroje Google – jako např
jednotky grafického zpracování
– a uložit své dokumenty na Disk Google.
Nejnovější variantou Jupyter je JupyterLab, která byla spuštěna jako beta v lednu 2018 a je k dispozici (jako notebook Jupyter) buď jako samostatný balíček, nebo jako součást bezplatného vědecko-počítačového prostředí Anaconda.
Jason Grout je softwarový inženýr ve společnosti poskytující finanční služby Bloomberg v San Franciscu v Kalifornii a je členem týmu JupyterLab. JupyterLab nazývá „webovým rozhraním nové generace“ pro notebook Jupyter – rozhraním, které rozšiřuje známou metaforu notebooku o funkce přetahování, stejně jako prohlížeče souborů, prohlížeče dat, textové editory a příkazovou konzoli. Zatímco standardní notebook Jupyter přiřazuje každému notebooku vlastní jádro, JupyterLab vytváří výpočetní prostředí, které umožňuje tyto komponenty sdílet. Uživatel tak může v jednom okně zobrazit poznámkový blok, v jiném upravit požadovaný datový soubor a ve třetím zaznamenat všechny provedené příkazy – to vše v rámci jediného rozhraní webového prohlížeče.
Uživatelé si také mohou přizpůsobit JupyterLab tak, aby vyhovoval jejich pracovnímu postupu. Vestavěné prohlížeče existují například pro obrázky, text a soubory CSV, ale uživatelé mohou také vytvářet vlastní komponenty. Ty by mohly zobrazovat věci jako genomické zarovnání nebo geoprostorová data. Jeden účastník kurzu, který vyučoval Pérez, dokonce vytvořil komponentu pro zobrazení 3D dat ze zobrazování mozku. "Toto je zcela [neurovědní] doménový nástroj, samozřejmě - tým Jupyter nemá co dělat, aby tyto věci psal. My však poskytujeme správné standardy a pak se tato komunita do 24 hodin může vrátit a jeden napsat,“ říká.
Použitelnost Jupyteru vylepšily dva další nástroje. Jedním z nich je JupyterHub, služba, která institucím umožňuje poskytovat notebooky Jupyter velkým skupinám uživatelů. IT tým na Kalifornské univerzitě v Berkeley, kde je Pérez členem fakulty, nasadil jedno takové centrum, které Pérez používá k zajištění toho, aby všichni studenti jeho kurzu datové vědy měli stejná počítačová prostředí. „Nemůžeme spravovat IT podporu pro 800 studentů a pomoci jim odladit, proč instalace na jejich notebooku nefunguje; to je prostě neproveditelné,“ říká.
Dalším vývojem je Binder, open-source služba, která uživatelům umožňuje používat notebooky Jupyter na GitHubu ve webovém prohlížeči, aniž by museli instalovat software nebo jakékoli programovací knihovny. Uživatelé mohou také spouštět poznámkové bloky Jupyter v cloudu Google vložením
https://colab.research.google.com/github
před adresou URL poznámkového bloku na GitHubu nebo pomocí komerční služby Code Ocean. V září Code Ocean spustil nové uživatelské rozhraní pro svou cloudovou službu pro sdílení kódu a spouštění kódu, rovněž založenou na Jupyteru.
Počítačové notebooky jsou v podstatě laboratorní notebooky používané pro vědecké výpočty. Výzkumníci nevložili gel DNA vedle laboratorního protokolu, ale místo toho vložili kódy, data a text, aby zaznamenali své metody výpočtu. Brian Granger, spoluzakladatel Jupyter na Kalifornské polytechnické státní univerzitě v San Luis Obispo, uvedl, že výsledkem je „výpočetní příběh“ – dokument, který umožňuje výzkumníkům doplnit jejich kód a data analýzami, hypotézami a dohady. .
Takové nástroje podporují výpočetní reprodukovatelnost zjednodušením opětovného použití kódu. Uživatelé ale stále potřebují vědět, jak notebooky správně používat.
Joel Grus, výzkumný inženýr z Allenova institutu pro umělou inteligenci v Seattlu ve státě Washington, přednesl na konferenci vývojářů Jupyter začátkem tohoto roku v New Yorku prezentaci s názvem „Nemám rád notebooky“. Říká, že viděl programátory frustrované, když se notebooky nechovají podle očekávání, obvykle proto, že neúmyslně spouštějí buňky kódu mimo provoz. Notebooky Jupyter také podporují špatnou praxi kódování, říká, tím, že znesnadňují logickou organizaci kódu, jeho rozdělení do opakovaně použitelných modulů a vývoj testů, které zajistí správné fungování kódu.
Toto nejsou nepřekonatelné problémy, připouští Grus, ale notebooky vyžadují disciplínu, pokud jde o spouštění kódu: například přesouváním analytického kódu do externích souborů, které lze volat z notebooku, definováním klíčových proměnných v horní části notebooku a pravidelným restartováním jádra a spouštěním notebooku shora dolů. Jak jeden uživatel Twitteru vtipkoval: „Restartujte a spusťte vše, nebo se to nestalo.“
To je lekce, kterou se Barba snaží vštípit svým studentům. „Od prvního dne svým studentům vysvětluji, že mohou pracovat s notebookem nelineárním způsobem, a to jim dává velkou sílu pro zkoumání,“ říká. "Ale s velkou mocí přichází velká zodpovědnost."
Jeden z nástrojů, který by mohl pomoci, je Verdant, zásuvný modul, který zachycuje historii akcí uživatele v Jupyteru.“ Autoři vytvořili rozšíření, které umožňuje flexibilní uživatelský pracovní postup a zároveň zachycuje specifický spouštěný kód, v jakém pořadí a na jakých konkrétních datech,“ říká Carol Willing, členka týmu Jupyter na California Polytechnic State University.
Jake VanderPlas, softwarový inženýr ve společnosti Google v Seattlu ve státě Washington a člen týmu Colaboratory, říká, že notebooky jsou jako kladiva: lze je zneužít a nejsou vhodné pro každou aplikaci. Ale pro průzkum dat a komunikaci notebooky excelují. Astronomická komunita zdánlivě souhlasí. „Přešli jsme od notebooků Jupyter, které neexistovaly před šesti lety, k tomu, že je v podstatě každý používá dnes,“ říká Jurić. „A my jsme komunita, ve které se stále drží Fortran 77“ – jako v roce 1977 –. To je něco."
Nejnovější: Proč byste měli používat Jupyter Notebook
Další: Co je to notebook Jupyter? Proč bych je měl používat?