Защо Jupyter е предпочитаният компютърен преносим компютър за специалистите по данни

fpfcorp 05/10/2021 1816

Кацнал на върха на хребета Cerro Pachón в чилийските Анди има строителна площадка, която в крайна сметка ще се превърне в Големия телескоп за синоптично изследване (LSST). Когато стане онлайн през 2022 г., телескопът ще генерира терабайти данни всяка нощ, докато автоматично изследва южното небе. И за да анализират тези данни, астрономите ще използват познат и все по-популярен инструмент: тетрадката на Юпитер.

Jupyter е безплатен интерактивен уеб инструмент с отворен код, известен като изчислителен бележник, който изследователите могат да използват, за да комбинират софтуерен код, изчислителен изход, обяснителен текст и мултимедийни ресурси в един документ. Изчислителните преносими компютри съществуват от десетилетия, но по-специално Jupyter експлодира в популярност през последните няколко години. Това бързо усвояване е подпомогнато от ентусиазирана общност от потребители-разработчици и преработена архитектура, която позволява на преносимия компютър да говори десетки езици за програмиране – факт, отразен в името му, което е вдъхновено, според съоснователя Фернандо Перес, от езици за програмиране Julia (Ju), Python (Py) и R.

Един анализ на сайта за споделяне на кодове GitHub преброи повече от 2,5 милиона публични преносими компютри Jupyter през септември 2018 г. спрямо около 200 000 през 2015 г. Отчасти, казва Перес, този растеж се дължи на подобрения в уеб софтуера, който управлява приложения като Gmail и Google Docs; съзряването на научния Python и науката за данни; и особено лекотата, с която преносимите компютри улесняват достъпа до отдалечени данни, които иначе биха били непрактични за изтегляне - като например от LSST. „В много случаи е много по-лесно да преместите компютъра към данните, отколкото данните към компютъра“, казва Перес за облачните възможности на Jupyter. „Това, което помага тази архитектура, е да кажете, кажете ми къде са вашите данни и аз ще ви дам компютър точно там.“

За учените, занимаващи се с данни, Юпитер се очертава като де факто стандарт, казва Лорена Барба, механичен и авиационен инженер в университета Джордж Вашингтон във Вашингтон. Марио Юрич, астроном от Вашингтонския университет в Сиатъл, който координира екипа за управление на данни на LSST, казва: „Никога не съм виждал толкова бърза миграция. Просто е невероятно.”

Изследване на данни

Компютърните преносими компютри са по същество лабораторни преносими компютри, използвани за научни изчисления. Изследователите не са поставили ДНК гела до лабораторния протокол, а вместо това са вградили кодове, данни и текст, за да запишат своите методи за изчисление. Браян Грейнджър, съосновател на Jupyter в Калифорнийския политехнически държавен университет в Сан Луис Обиспо, каза, че резултатът е "изчислителен разказ" - документ, който позволява на изследователите да допълват своя код и данни с анализи, хипотези и предположения. .

За специалистите по данни този формат може да стимулира изследването. Преносимите компютри, казва Барба, са форма на интерактивно изчисление, среда, в която потребителите изпълняват код, виждат какво се случва, променят и повтарят в един вид итеративен разговор между изследовател и данни. Те не са единственият форум за подобни разговори - IPython, интерактивният интерпретатор на Python, върху който е изграден предшественикът на Jupyter, IPython Notebook, е друг. Но тетрадките позволяват на потребителите да документират тези разговори, изграждайки „по-мощни връзки между теми, теории, данни и резултати“, казва Барба.

Изследователите могат също да използват бележници, за да създават уроци или интерактивни наръчници за техния софтуер. Това е, което Макензи Матис, системен невролог от Харвардския университет в Кеймбридж, Масачузетс, направи за

DeepLabCut

, библиотека за програмиране, разработена от нейния екип за изследване на поведенческата невронаука. И те могат да използват тетрадките за подготовка на ръкописи или като учебни помагала. Барба, която е внедрила преносими компютри във всеки курс, който е преподавала от 2013 г. насам, разказа в основен адрес през 2014 г., че тетрадките позволяват на нейните ученици да се ангажират интерактивно с уроците и да усвояват материал от тях по начин, който лекциите не могат да съвпадат. „Преносимите компютри IPython са наистина убийствено приложение за преподаване на компютри в науката и инженерството“, каза тя.

Говори моя език

Бележникът Jupyter има два компонента. Потребителите въвеждат програмен код или текст в правоъгълни клетки в уеб страница отпред. След това браузърът предава този код на задното „ядро“, което изпълнява кода и връща резултатите (вижте нашия пример на

go.nature.com/2yqq7ak

). По преброяване на Перес са създадени повече от 100 ядра на Jupyter, поддържащи десетки езици за програмиране. Обикновено всеки преносим компютър може да изпълнява само едно ядро ​​и един език, но съществуват заобиколни решения. Един демонстрационен бележник, например, говори Python, Julia, R и

Фортран

.

Важно е, че не е необходимо ядрата да се намират на компютъра на потребителя. Когато бъдещите потребители на LSST използват преносими компютри на Jupyter, за да анализират своите данни, кодът ще работи на суперкомпютър в Илинойс, осигурявайки изчислителен мускул, който никой настолен компютър не може да сравни. Преносимите компютри също могат да работят в облака. Проектът Collaboratory на Google, например, предоставя тематичен за Google преден край на преносимия компютър Jupyter. Той позволява на потребителите да си сътрудничат и да изпълняват код, който използва облачните ресурси на Google - като напр

графични процесори

— и да запазват документите си в Google Диск.

Най-новият вариант на Jupyter е JupyterLab, който стартира като бета версия през януари 2018 г. и се предлага (като бележника на Jupyter) или като самостоятелен пакет, или като част от безплатната научно-изчислителна среда Anaconda.

Джейсън Граут е софтуерен инженер в компанията за финансови услуги Bloomberg в Сан Франциско, Калифорния, и член на екипа на JupyterLab. Той нарича JupyterLab „уеб интерфейс от следващо поколение“ за преносимия компютър Jupyter – такъв, който разширява познатата метафора на преносимия компютър с функционалност за плъзгане и пускане, както и файлови браузъри, прегледи на данни, текстови редактори и командна конзола. Докато стандартният преносим компютър на Jupyter присвоява на всеки преносим компютър собствено ядро, JupyterLab създава изчислителна среда, която позволява тези компоненти да бъдат споделяни. По този начин потребителят може да преглежда бележник в един прозорец, да редактира необходимия файл с данни в друг и да регистрира всички изпълнени команди в трети - всичко това в рамките на един интерфейс на уеб браузър.

Потребителите могат също така да персонализират JupyterLab, за да отговаря на техния работен процес. Съществуват вградени визуализатори например за файлове с изображения, текст и CSV, но потребителите могат да създават и персонализирани компоненти. Те могат да показват неща като геномни подравнявания или геопространствени данни. Посетител на курс, преподаван от Перес, дори създаде компонент за показване на 3D данни за изображения на мозъка. „Това е напълно [невронаучен] специфичен за домейн инструмент, очевидно – екипът на Jupyter няма работа да пише тези неща. Но ние предоставяме правилните стандарти и след това тази общност след 24 часа може да се върне и да напише такъв“, казва той.

Два допълнителни инструмента подобриха използваемостта на Jupyter. Едната е JupyterHub, услуга, която позволява на институциите да предоставят преносими компютри Jupyter на големи групи потребители. ИТ екипът на Калифорнийския университет в Бъркли, където Перес е член на факултета, разположи един такъв център, който Перес използва, за да гарантира, че всички студенти в неговия курс по наука за данни имат идентична изчислителна среда. „Ние не можем да управляваме ИТ поддръжката за 800 студенти, като им помагаме да отстранят грешки защо инсталацията на лаптопа им не работи; това е просто неосъществимо“, казва той.

Другото развитие е Binder, услуга с отворен код, която позволява на потребителите да използват преносими компютри на Jupyter в GitHub в уеб браузър, без да се налага да инсталират софтуера или програмните библиотеки. Потребителите могат също така да изпълняват преносими компютри Jupyter в облака на Google чрез вмъкване

https://colab.research.google.com/github

преди URL адреса на бележник в GitHub или с помощта на търговската услуга Code Ocean. През септември Code Ocean пусна нов потребителски интерфейс за своята облачна услуга за споделяне на код и изпълнение на код, също базирана на Jupyter.

Компютърните преносими компютри са по същество лабораторни преносими компютри, използвани за научни изчисления. Изследователите не са поставили ДНК гела до лабораторния протокол, а вместо това са вградили кодове, данни и текст, за да запишат своите методи за изчисление. Браян Грейнджър, съосновател на Jupyter в Калифорнийския политехнически държавен университет в Сан Луис Обиспо, каза, че резултатът е "изчислителен разказ" - документ, който позволява на изследователите да допълват своя код и данни с анализи, хипотези и предположения. .

Такива инструменти насърчават изчислителната възпроизводимост чрез опростяване на повторното използване на кода. Но потребителите все още трябва да знаят как да използват преносими компютри правилно.

Джоел Грус, инженер-изследовател в Института Алън за изкуствен интелект в Сиатъл, Вашингтон, изнесе презентация, озаглавена „Не харесвам преносими компютри“ на конференцията на разработчиците на Jupyter по-рано тази година в Ню Йорк. Той казва, че е виждал програмисти да се разочароват, когато преносимите компютри не се държат според очакванията, обикновено защото по невнимание изпълняват клетки с код неправилно. Преносимите компютри Jupyter също насърчават лошата практика на кодиране, казва той, като затрудняват логичното организиране на кода, разделянето му на модули за многократна употреба и разработването на тестове, за да се гарантира, че кодът работи правилно.

Това не са непреодолими проблеми, признава Грус, но преносимите компютри наистина изискват дисциплина, когато става въпрос за изпълнение на код: например чрез преместване на кода за анализ във външни файлове, които могат да бъдат извикани от преносимия компютър, чрез дефиниране на ключови променливи в горната част на преносимия компютър и чрез периодично рестартиране на ядрото и стартиране на преносимия компютър отгоре надолу. Както се пошегува един потребител на Twitter, „Рестартирайте и стартирайте всичко или не се е случило.“

Това е урок, който Барба се опитва да внуши на учениците си. „От първия ден обяснявам на учениците си, че могат да взаимодействат с преносим компютър по нелинеен начин и това им дава голяма сила за изследване“, казва тя. „Но с голямата сила идва и голяма отговорност.“

Един инструмент, който може да помогне, е Verdant, добавка, която улавя история на действията на потребителя в Jupyter. „Авторите създадоха разширение, което позволява гъвкав потребителски работен процес, като същевременно улавя конкретния изпълнен код, в какъв ред и на какви конкретни данни“, казва Карол Уилинг, член на екипа на Jupyter в Калифорнийския политехнически държавен университет.

Джейк Вандерплас, софтуерен инженер в Google в Сиатъл, Вашингтон, и член на екипа на Colaboratory, казва, че преносимите компютри са като чуковете: те могат да бъдат използвани неправилно и не са подходящи за всяко приложение. Но за изследване на данни и комуникация преносимите компютри превъзхождат. Астрономическата общност изглежда е съгласна. „Минахме от преносими компютри Jupyter, които не съществуваха преди около шест години, до по същество всички, които ги използват днес“, казва Юрич. „И ние сме общност, която все още има Fortran 77“ – както през 1977 г. – „залепен наоколо. Все е нещо."

Latest: Защо трябва да използвате Jupyter Notebook

Next: Какво е бележник на Юпитер? Защо да ги използвам?