Proč byste měli používat Jupyter Notebook
Poznámkový blok Jupyter
je docela šikovný nástroj, který můžete využít při svých každodenních činnostech. Abychom vysvětlili výhody Jupyter Notebooku, podělíme se o to, jak jej používáme k řešení našich pravidelných hádanek
Elucidata
.
Než se ale hluboce ponoříme do našeho konkrétního použití, podívejme se na kontext kolem notebooků Jupyter.
Co je to notebook Jupyter?
Jupyter Notebook je webová aplikace s otevřeným zdrojovým kódem, která umožňuje uživateli, vědeckému výzkumníkovi, vědci nebo analytikovi vytvářet a sdílet dokument s názvem
Notebook,
obsahující živé kódy, dokumentaci, grafy, grafy a vizualizace.
Jupyter Notebook poskytuje uživatelům podporu pro více než 40 programovacích jazyků, včetně nejčastěji používaných programovacích jazyků –
Python
,
R
,
Julii
abychom jmenovali alespoň některé. Umožňuje uživateli stáhnout notebook v různých formátech souborů, jako je PDF, HTML, Python, Markdown nebo soubor .ipynb.
Proč je Jupyter Notebook de facto standardem pro analýzu?
Díky podpoře více programování Jupyter Notebook, obrovské dostupnosti funkcí a rychle rostoucí popularitě mezi komunitou se stal standardem pro všechny druhy analýz, vizualizací, rychlého prototypování, ML a různých kódovacích postupů.
Kdo používá notebooky Jupyter?
Každá osoba, která je datovým vědcem, datovým inženýrem, datovým analytikem, vědcem v oblasti strojového učení, výzkumným pracovníkem, vědeckými výzkumníky nebo obecným uživatelem, který chce provádět jakýkoli druh vědeckého počítání, zpracování dat nebo práce související s vizualizací, může používat Jupyter Notebook.
Základní architektura za notebookem Jupyter
Obr: [1] Obrázek zobrazující základní součásti notebooku Jupyter
Jak funguje notebook Jupyter – uživatel, který komunikuje s komponentou notebooku Jupyter, spustí kód a uloží výstup kódu spolu s poznámkami k poznámkám v upravitelném dokumentu zvaném notebook.
Když uživatel uloží svůj soubor poznámkového bloku, je odeslán z prohlížeče uživatele na server poznámkového bloku. Poté se uloží na disk jako a
Soubor JSON
s a
.ipynb
rozšíření. Server Jupyter Notebook je zodpovědný za ukládání, načítání a úpravy uživatelských poznámkových bloků, pokud jádro stále není přítomno.
Jupyter Notebook @
Elucidata
My ve společnosti Elucidata pracujeme na tomto projektu s cílem vyvinout nové funkce a služby nad tradičním notebookem Jupyter, abychom našim koncovým uživatelům usnadnili co nejlepší uživatelský zážitek.
Pracovali jsme na vytvoření notebooku Jupyter se zcela novým a elegantním uživatelským rozhraním a novými vlastními funkcemi. Nenecháváme kámen na kameni, abychom z notebooku udělali ten nejlepší zážitek, jaký může uživatel mít.
Jsme oddáni tomuto projektu, abychom z něj udělali to, co by datový vědec, datový inženýr nebo datový vědec na naší platformě chtěl.
Naše případy použití
Zavedli jsme notebooky Jupyter v ekosystému naší platformy –
PolyTM
pro podporu manipulace, vizualizace a programování konečného výsledku vestavěných pracovních postupů. Později jsme využili funkčnost notebooku Jupyter a zkombinovali jej s architekturou JupyterHub, abychom rozšířili funkce pro následující případy použití:
Projekt
: In
PolyTM
, uživatel může přejít do svého projektu a odtud může otevřít svůj uložený Jupyter Notebook nebo vytvořit nový Jupyter Notebook nebo dokonce nahrát existující Jupyter Notebook. Projekt je nejrozšířenější funkcí Jupyter Notebooku pro otevírání, vytváření, úpravy a dokonce mazání v PollyTM
Šablony
: Vytvořili jsme také některé obecné šablony poznámkových bloků, které podporují všechny případy použití
Analýza
: Analýza je klíčovým bodem při hledání cenných poznatků z obrovských genomických a metabolomických datových sad nahraných na naši platformu pro spouštění různých interních sestav a pracovních postupů. Integrací Jupyter Notebooku nabízíme našim koncovým uživatelům a našim interním datovým vědcům pohodlné rozhraní pro interaktivní spouštění kódu, zkoumání výstupu a vizualizaci dat – to vše z jediného cloudového vývojového prostředí. Spolu s tím jsme přidali vlastní funkcionalitu naší platformy API, která bezproblémově funguje pro načítání datové sady z našeho cloudového prostředí přímo do Notebooku.
Naše interní pracovní postupy sestavování
: Jak jsme rozšiřovali platformu, zavedli jsme nové funkce zvané pracovní postupy. S usilovným úsilím našeho inženýrského týmu & díky spolupráci týmu datové vědy se nám podařilo vybudovat pracovní postupy, které jsou sérií algoritmů běžících stanoveným způsobem k dosažení konkrétního cíle
Datový vědec
s může experiment kódovat pomocí našeho hostovaného notebooku Jupyter
Softwaroví inženýři
může kódovat různé funkce pomocí notebooku Jupyter
Náš notebookový systém Jupyter
Podpora takových případů použití vyžaduje poměrně škálovatelnou a podpůrnou infrastrukturu. Pojďme si projít některé součásti našeho notebookového systému Jupyter.
Docker
:
Docker hraje klíčovou roli v infrastruktuře a nekonečné podpoře našich interaktivních notebooků. Všechny naše notebooky Jupyter běží v uzavřeném prostředí se všemi předkonfigurovanými funkcemi a dostupnými knihovními balíčky, které může koncový uživatel potřebovat při své každodenní úloze.
JupyterHub
:
JupyterHub
je architektura na vysoké úrovni, která zajišťuje ověřování uživatelů, směrování, generování ukotvitelného panelu pro notebooky, zjišťování notebooků a jejich odstraňování, když se již nepoužívají.
Proč jsme zvolili JupyterHub + Docker?
Nechtěli jsme, aby se naši uživatelé hádali o správnou instalaci verzí balíčků a jejich správu závislostí. Chtěli jsme, aby každý uživatel, tj. datoví vědci, datoví inženýři nebo datoví analytici, měl identické reprodukovatelné prostředí se stejnou knihovnou a stejnými datovými sadami. Vlastně stejná verze všeho.
Pokud jim umožníme instalaci na jejich vlastní moduly, vedlo by to k různým verzím prostředí v závislosti na tom, jaký pracovní postup používají pro instalační program balíčků.
Plně hostované prostředí zajišťuje, že všichni mají stejný bezproblémový výchozí bod.
Rozhraní uživatelského rozhraní
: Přepracovali jsme uživatelské rozhraní notebooku Jupyter. Použili jsme CSS a JS s knihovnami jako JQuery, abychom získali dokonalé a čisté uživatelské rozhraní. Jedná se o intuitivní uživatelské rozhraní s minimalistickou estetikou. To vyžadovalo promyšlený design UX, který usnadnil provádění těžkých věcí. Níže je vzhled našeho notebooku.
Polly iPython Jupyter
Počítejte
: Instance virtuálního počítače uživatele podporují výpočet jádra s 2 GB RAM a 100 GB blokového úložiště, ale podle dostupnosti a využití clusteru by se výpočetní výkon zvýšil. Náš cluster je
Automatické měřítko
povoleno, což umožňuje vytváření nových uživatelských modulů za běhu na základě vysokých požadavků. Celou infrastrukturu notebooků jsme nasadili na Google Cloud.
Software pro správu clusteru
:
Používáme
Kubernetes
pro správu našich výpočetních instancí a clusteru. Kubernetes zajišťuje, aby se pody ve spuštěném stavu nevypínaly kvůli chybě, a udržuje tak vysokou dostupnost. S Kubernetes jsme schopni spravovat více než 1000 uživatelských modulů bez ztráty dat
Nasazení
:
Používáme
Kormidlo
(správce balíčků) pro Kubernetes k automatizaci našeho procesu nasazení. Helm zajišťuje nasazení správné bitové kopie dockeru a její uchování pro budoucí použití, aby se zabránilo opětovnému stahování bitové kopie a zkrátila se doba vytváření
Úložiště
:
Používáme
Amazon S3
jako úložný systém pro notebooky uživatelů a jejich opakovaně použitelné skripty v notebooku Jupyter. Každý uživatelský projekt má tedy v S3 adresářovou strukturu pro ukládání, správu, vytváření nebo mazání jeho notebooku. Mohou spustit jeho interaktivní notebook zevnitř
naše platforma
. Následuje snímek úložiště projektů uživatelů na S3.
Zobrazení úložiště Elucidata Polly S3
Zde je stručná mapa technologického zásobníku
Technický zásobník notebooků Elucidata Jupyter
Co jsme se naučili?
Snižte údržbu člověkem:
Rozsáhlé scénáře lze snadno škálovat bez velkého lidského zásahu, čímž se vyhnete případným překážkám. S Helm jsme také snížili překážky, kterým museli naši inženýři čelit během nasazení
Skvělá infrastruktura:
S tímto vývojem máme stabilní infrastrukturu, která dokáže zpracovat velké požadavky uživatelů, více uzavřených prostředí, což umožňuje spouštění více kontejnerů dockerů na instanci a umožňuje uživateli vykonávat jeho úkoly
Objevte nové možnosti: Během našeho vývoje a integrace notebooku Jupyter jsme objevili několik nových možností, na kterých jsme pracovali, abychom našim koncovým uživatelům poskytli lepší funkce a dobrou uživatelskou zkušenost.
Reference
Další reference naleznete na následujících užitečných odkazech nebo si s námi naplánujte ukázku, abyste to viděli v akci
Naplánujte si ukázku
Součásti notebooku Jupyter
Nejnovější: Co je to kopírovací notebook?
Další: Proč je Jupyter tím nejlepším počítačovým notebookem pro datové vědce