Этот пост содержит инструкции и советы по настройке и использованию Блокнотов Google Cloud AI Platform в качестве среды разработки. Он предназначен для инженеров-программистов, которые хотят знать, как использовать и находить общие функции IDE, но актуален для всех, кто хочет узнать, как использовать записные книжки Google Cloud AI Platform или JupyterLab.

Оглавление

Зачем использовать инструмент Data Science в качестве IDE?

Блокноты Google Cloud AI Platform построены на JupyterLab. JupyterLab - это веб-среда разработки, которая включает в себя редактор записных книжек Jupyter, файловый браузер, терминал, текстовый редактор с выделением кода, настраиваемые темы, мозаичный макет с перетаскиванием и поддержку настраиваемых тем и расширений. Все эти элементы работают бок о бок на чрезвычайно веб-странице.

Год назад я перешел с PyCharm на JupyterLab (работающий на Образы виртуальных машин Google Cloud Deep Learning, которые составляют основу блокнотов AI Platform) в качестве моей основной среды разработки, и я не оглядывался назад.

В моей повседневной работе в качестве инженера по машинному обучению, работая с клиентами Google Cloud, у меня постоянно возникали проблемы с моей предыдущей настройкой PyCharm, работающей на Macbook. Большая часть моей работы требует данных о клиентах, которые не могут покинуть облако. Это означало, что я провел много времени в vim на виртуальной машине, сильно полагался на управляемые службы (которые отлично подходят для больших заданий, но слишком медленные, когда вы просто хотите ковыряться) или изо всех сил пытался создать подходящие синтетические данные. Даже когда я мог полностью использовать PyCharm, я сталкивался с проблемами с оперативной памятью, если размер набора данных превышал пару гигабайт, или я сталкивался с проблемами безопасности, когда я путешествовал и делал вызовы API в облачные проекты с загадочных IP-адресов отелей.

Я также много работаю с аналитиками данных, у которых есть свои предпочтительные инструменты и рабочие процессы. Попытки заставить специалистов по обработке данных использовать инструменты и рабочие процессы разработчика программного обеспечения - это борьба (и вредит их производительности). Но просить программистов переключиться на инструменты для анализа данных абсурдно - вы не можете создавать программное обеспечение с помощью ноутбуков. И забудьте о попытках заставить команду разработчиков унифицировать свои рабочие процессы, если они используют принципиально разные инструменты.

Преимущества JupyterLab перед традиционной IDE

Есть некоторые функции PyCharm, которые мне не хватает, в основном расширенные функции навигации по коду. Но я приобрел гораздо больше, чем потерял:

  • Более быстрое наращивание новых проектов. Раньше требовалось несколько дней, чтобы подключить мою локальную среду IDE к должным образом защищенному проекту, а затем еще несколько дней, чтобы получить разрешение от нужных людей на выборку данных. облако. Теперь у меня уходит 15 минут, чтобы начать работу в новом (для меня) облачном проекте. Поскольку сейчас я полностью в облаке, безопасная работа требует гораздо меньше усилий.
  • Огромная машина для разработки, но только тогда, когда это необходимо. Я очень ленив - я не хочу кодировать в распределенной среде, такой как Beam или Spark, потому что набор данных составляет 10 ГБ, а мой dev ПК имеет 16 ГБ оперативной памяти. Теперь я могу быть ленивым и бережливым с наборами данных до 10 ГБ. Я пишу свой код на небольшой выборке данных, изменяю размер своей скромной виртуальной машины разработчика на виртуальную машину-монстра с 96 ГБ ОЗУ, запускаю код для всего набора данных, а затем снова уменьшаю размер. Если я немного менее ленив и использую пакеты Python, которые хорошо обрабатывают несколько ядер, я изменяю размер до десятков ядер и 100 ГБ ОЗУ и обрабатываю наборы данных до 100 ГБ. Это относится и к графическим процессорам - как только я узнаю, что мой код TensorFlow работает на двух K80, я переключаюсь на восемь V100 для полного обучения.
  • Больше не нужно устанавливать стек драйверов Nvidia. В ноутбуках AI Platform предварительно установлены правильные драйверы Nvidia и версия CUDA для выбранной вами платформы глубокого обучения. Установить стек глубокого обучения с поддержкой графического процессора и управлять им сложно, и я рад, что в этом нет необходимости.
  • Полная производительность с крошечным компьютером и Wi-Fi в самолете. JupyterLab очень быстро реагирует даже на нестабильное соединение с большой задержкой. Пока Wi-Fi не отключился полностью, наиболее продуктивно я пишу код, когда запихиваюсь в алюминиевую трубку, стучащую по моему Chromebook.
  • Повышенная безопасность и более легкое соблюдение требований безопасности. Самое безопасное место для данных - это там, где они уже находятся, обычно где-то в облаке. Теперь мне больше не нужно копировать образец данных на мой локальный компьютер, чтобы использовать мою основную среду разработки. Я также ограничиваю облачное подключение моего локального ПК к одной виртуальной машине или веб-конечной точке, поэтому облачный проект может быть заблокирован сильнее, чем проект разработки обычно.
  • Все уже в облаке. Все проще. Пакеты SDK установлены, перемещение данных происходит быстрее, и на меня меньше влияют брандмауэр или политики безопасности при моем локальном подключении к Интернету.
  • Лучшее сотрудничество с аналитиками данных. Я не люблю записные книжки, но я не могу помешать аналитикам данных использовать их. Ноутбуки, очевидно, отлично работают в JupyterLab, а работа JupyterLab, более похожая на традиционную среду IDE, позволяет разработчикам программного обеспечения использовать те же инструменты, что и специалисты по данным. Это облегчает разработчикам программного обеспечения поддержку специалистов по обработке данных, когда что-то ломается, и дает инженерам-программистам более выгодные возможности для перехода к более зрелым методам разработки.

Шаг 0: Прежде чем начать

Для запуска блокнотов AI Platform вам понадобится проект Google Cloud Platform (с прикрепленной учетной записью для выставления счетов, если вы хотите использовать графические процессоры) с включенным Compute Engine API. Инструкции здесь. Если вы уже являетесь пользователем Google Cloud, вы, вероятно, можете пропустить этот шаг.

Многие команды в этом посте используют gcloud инструмент командной строки Google Cloud. Большинство этих шагов можно выполнить с помощью Интерфейса AI Platform Notebooks UI, но использование gcloud дает больший контроль и лучшую воспроизводимость.

Вы можете установить gcloud на свой локальный компьютер, но если у вас еще нет машины с gcloud, просто используйте Cloud Shell, сеанс веб-терминала, в котором все необходимое уже установлено. Если у вас уже есть проект Google Cloud и вы вошли в систему, щелкните эту ссылку, чтобы запустить Cloud Shell.

Если вы используете gcloud впервые, запустите gcloud init для авторизации. При желании вы можете указать параметры по умолчанию для проекта / региона / зоны, но имейте в виду, что ноутбуки и графические процессоры AI Platform пока доступны не во всех регионах. В настоящее время лучший способ узнать, в каких зонах все доступно, - это посмотреть доступные регионы при создании нового экземпляра Notebooks.

Шаг 1. Создайте экземпляр виртуальной машины AI Platform Notebooks

Сначала создайте экземпляр виртуальной машины AI Platform Notebooks. Вы можете сделать это в Пользовательском интерфейсе записных книжек, но использование gcloud дает больше возможностей:

Вы можете изменить команду в соответствии со своими потребностями.

gcloud compute instances create $INSTANCE_NAME: все команды создания ВМ gcloud начинаются с этого.

--zone=$ZONE: зона, в которой вы хотите создать виртуальную машину. Только некоторые зоны имеют графические процессоры, но любая зона в регионе, поддерживающая ноутбуки с платформой AI, подойдет. В настоящее время лучший способ узнать, в каких зонах все доступно, - это посмотреть доступные регионы при создании нового экземпляра Notebooks.

--image_family=$IMAGE_FAMILY: указывает образ, который будет использоваться для создания виртуальной машины. Семейство образов - это группа связанных образов ВМ; указание на семейство образов вместо конкретного образа гарантирует, что будет установлена ​​самая последняя версия образа в семействе. Семейство образов tf-latest-gpu содержит образы виртуальных машин для запуска TensorFlow на графических процессорах - все необходимые инструменты (включая JupyterLab) предустановлены, а ключевые двоичные файлы созданы специально для повышения производительности. Это семейство образов является частью Образы виртуальных машин Google Cloud Deep Learning, на которых основан продукт Notebooks. Семейства образов виртуальных машин глубокого обучения доступны для популярных платформ глубокого обучения, без инфраструктуры глубокого обучения, только для ЦП и т. Д. Если вы хотите использовать определенную версию образа, используйте --image вместо --image-family и укажите допустимый Версия образа виртуальной машины Deep Learning .

--machine-type=$INSTANCE_TYPE: определяет оперативную память и количество ядер вашей виртуальной машины. Доступно много разных конфигураций. Обратите внимание, что вы можете легко изменить это позже.

--image-project=deeplearning-platform-release: в каком проекте найти указанные --image или --image-family. Проект deeplearning-platform-release содержит образы, предоставленные Образами виртуальных машин Google Cloud Deep Learning, не меняйте это значение, если вы создаете виртуальную машину Notebooks.

--maintenance-policy=TERMINATE: что происходит с вашей виртуальной машиной во время обслуживания. Большинство виртуальных машин можно выполнить живую миграцию, но если к вашей виртуальной машине подключены графические процессоры, динамическая миграция не работает. Если графические процессоры не подключены к вашей виртуальной машине (и вы не собираетесь когда-либо подключать графические процессоры), вы можете не указывать эту строку.

--accelerator='type=nvidia-tesla-v100,count=2': тип подключаемых графических процессоров и их количество см. В документации по доступным графическим процессорам / счетчикам. Если вы не используете графические процессоры, вы можете не указывать эту строку.

--no-boot-disk-auto-delete: поведение по умолчанию при удалении ВМ - это удаление загрузочного диска, это отменяет это значение по умолчанию и не удаляет загрузочный диск при удалении ВМ. Это означает, что если вы случайно удалите свою виртуальную машину, вы все равно сможете восстановить свою работу. Но это также означает, что вам нужно удалить диск отдельно от виртуальной машины, если вы хотите удалить все.

--boot-disk-device-name=$INSTANCE_NAME-disk: создает диск на основе имени виртуальной машины.

--boot-disk-size=500GB: настройте на свой вкус, лучше всего 100 ГБ или больше.

--boot-disk-type=pd-ssd: превращает ваш диск в твердотельный накопитель для повышения производительности.

--scopes=https://www.googleapis.com/auth/cloud-platform: дает вашей виртуальной машине возможность подключаться к API Google Cloud Platform. Это означает, что вы сможете использовать такие сервисы, как BigQuery, Cloud Storage, AI Hub и т. Д. Со своей виртуальной машины. Также необходимо создать URL-адрес прямого подключения к вашей виртуальной машине. Вы можете назвать только те области, которые вам нужны, использовать учетные записи служб или оставить эту строку вне поля и использовать учетную запись службы по умолчанию Compute Engine. Но имейте в виду, что с ограниченными возможностями вы не получите URL-адрес прямого подключения к вашей виртуальной машине, и тогда вам нужно будет использовать туннель SSH для подключения.

--metadata=’install-nvidia-driver=True,proxy-mode=project_editors’: записи метаданные используются виртуальными машинами Deep Learning для передачи параметров в сценарии установки и запуска. Если вы хотите использовать графические процессоры, install-nvidia-driver=True устанавливает драйвер, вы можете не использовать этот параметр, если не используете графические процессоры. proxy-mode=project_editors создает URL-адрес для подключения к виртуальной машине и добавляет его в Пользовательский интерфейс Notebooks. Вы также можете отказаться от этой строки и использовать SSH-туннель для подключения к вашей виртуальной машине.

Один дополнительный флаг, который нужно добавить, особенно если вы хотите мощную виртуальную машину сейчас или позже и не используете графические процессоры, - это --min-cpu-platform=Intel\ Skylake. Это гарантирует, что ваша виртуальная машина находится на платформе ЦП Skylake (если ваша зона поддерживает это), что позволяет виртуальным машинам с большим количеством ядер и оперативной памяти, чем на других платформах. Вы также можете использовать другие платформы ЦП.

Шаг 2. Подключитесь к JupyterLab на вашей виртуальной машине

Ваша виртуальная машина будет создана через несколько минут после завершения команды gcloud. Через несколько минут после этого вашей виртуальной машине будет назначен URL-адрес для прямого подключения, и она появится в Пользовательском интерфейсе блокнотов AI Platform:

Вы можете использовать интерфейс Notebooks для подключения к виртуальной машине, нажав «OPEN JUPYTERLAB», но вы также можете получить URL-адрес, используя gcloud:

Вы увидите что-то вроде этого: numbersandletters-dot-datalab-vm-region.googleusercontent.com.

Этот URL-адрес обеспечивает безопасное веб-соединение с вашей виртуальной машиной. Просто вставьте его в свой веб-браузер, и вы подключитесь к сеансу JupyterLab. Имейте в виду, что другие пользователи проекта с высокими привилегиями также могут использовать этот URL-адрес - он недоступен только создателю виртуальной машины.

Если вы создали виртуальную машину без proxy_mode=project_editors или не установили https://www.googleapis.com/auth/cloud-platform область действия, вам необходимо подключиться к виртуальной машине через туннель SSH.

После подключения к JupyterLab вы увидите пользовательский интерфейс JupyterLab для блокнотов AI Platform по умолчанию:

Шаг 3. Знакомство с интерфейсом JupyterLab для ноутбуков на платформе AI

Интерфейс Jupyterlab мощный и настраиваемый:

По умолчанию JupyterLab поставляется с программой просмотра / редактора записных книжек Jupyter, терминалом, программами просмотра для многих типов файлов, текстовым редактором с подсветкой синтаксиса и файловым браузером. Стоит просмотреть все Руководство пользователя JupyterLab, чтобы узнать о функциях, но, по крайней мере, ознакомиться с основами интерфейса.

Стандартные функции JupyterLab IDE

  • Параметры пользовательского интерфейса и сочетания клавиш находятся в меню «Настройки».
  • Чтобы получить автозаполнение при работе в текстовом редакторе, вам нужно подключить текстовый редактор к консоли кода », щелкнув правой кнопкой мыши в текстовом редакторе и выбрав нужное ядро ​​(среду выполнения). Это дает вам меню автозаполнения при нажатии табуляции и запускает текущую строку текстового редактора в консоли кода, когда вы нажимаете Shift + Enter. Одно предостережение относительно автозаполнения: вы должны импортировать модуль, чтобы получить функциональность автозаполнения для этого модуля. Например, чтобы получить автозаполнение для numpy, введите import numpy as np и нажмите shift + enter. После этого, когда вы наберете np. и нажмете вкладку, вы получите ожидаемую функцию автозаполнения.
  • Справка (включая сигнатуры методов) доступна в консоли кода (включая присоединенную консоль кода) через инспектор. Щелкните правой кнопкой мыши в поле ввода консоли кода, чтобы открыть инспектор, а затем, когда вы вводите текст в поле ввода консоли, инспектор будет обновляться. Чтобы получить информацию об определении метода, вы должны поставить ( после имени метода до появления справки. Это изображение показывает все это:

Дополнительная функциональность JupyterLab, включенная в ноутбуки с платформой AI

Блокноты с платформой AI включают дополнительные функции, помимо базовых, предусмотренных JupyterLab, для нескольких предустановленных расширений: git, tensorboard и nbdime (различия для ноутбуков).

  • Расширение git предоставляет легкий графический интерфейс с базовой функциональностью git - клонирование, отслеживание и постановку изменений, push / pull, совершение коммитов, создание и изменение ветвей и просмотр истории коммитов. Если вы работаете с специалистами по обработке данных или исследователями, не имеющими опыта работы с git, это отличный инструмент, который поможет им перейти к более совершенным методам контроля версий.

  • Расширение тензорной доски добавляет пользовательский интерфейс TensorBoard непосредственно в пользовательский интерфейс JupyterLab. Перейдите в файловом браузере к итоговой папке журнала, написанной TensorFlow, и используйте панель запуска (кнопка плюс в левом верхнем углу), чтобы открыть пользовательский интерфейс TensorBoard на вкладке. Обратите внимание, что расширение tensorboard появляется только в том случае, если вы используете виртуальную машину Notebooks с предустановленным TensorFlow.

  • Если вы работаете с Jupyter Notebooks, nbdime просто необходим. Стандартные текстовые различия в .ipynb файлах вызывают шум из-за большого количества метаданных. Расширение nbdime JupyterLab отображает полезные различия Git для записных книжек в пользовательском интерфейсе JupyterLab. После редактирования и сохранения файла .ipynb в репозитории git используйте кнопку git, чтобы просмотреть работоспособную разницу:

Шаг 4. Узнайте, как остановить, запустить и изменить размер виртуальной машины

Когда вы не работаете над своей виртуальной машиной, остановите ее, чтобы сэкономить деньги и ресурсы проекта. Когда ваша виртуальная машина остановлена, ваши настройки, среда, данные и работа остаются нетронутыми и ждут вас, когда вы снова запустите виртуальную машину.

Вам также необходимо остановить виртуальную машину, чтобы изменить ее размер. Изменение размера виртуальной машины разработчика - это быстрый и грязный способ запустить что-то, что в противном случае заняло бы слишком много времени или не поместилось бы в памяти, или подключить больше графических процессоров для большого учебного задания. Вы можете изменить тип виртуальной машины с помощью gcloud:

Чтобы подключать, отключать или менять графические процессоры, вам необходимо использовать Notebooks UI.

После того, как вы изменили конфигурацию виртуальной машины, запустите ее:

Возможность изменять размер и спецификацию остановленных виртуальных машин Notebooks чрезвычайно полезна. Вы можете прототипировать свою модель обучения на паре дешевых графических процессоров, а затем переключиться на восемь P100, как только убедитесь, что все работает. Вы можете эффективно работать с наборами данных размером до 100 ГБ с помощью стандартных пакетов Python (просто убедитесь, что ваши пакеты могут использовать преимущества нескольких ядер ЦП; для Pandas на нескольких ядрах проверьте modin). И когда вам больше не нужна дополнительная мощность, вы можете сэкономить, уменьшив технические характеристики вашей виртуальной машины.

Обратите внимание, что существуют ограничения на размер виртуальной машины. Различные платформы ЦП поддерживают разные типы машин, и существуют дополнительные ограничения на количество ядер / ОЗУ, когда графические процессоры подключены к виртуальной машине.

Шаг 5. Получите root-доступ к вашей виртуальной машине через SSH

Обновление от 27.04.19: последние образы виртуальных машин должны позволять jupyter пользователю sudo из терминала JupyterLab.

Когда вы работаете на своей виртуальной машине, вы вошли в систему как пользователь jupyter. Для большей безопасности этот пользователь имеет разрешения, необходимые для повседневной работы по разработке, но не имеет корневого доступа к виртуальной машине или прав sudoer.

В какой-то момент вам потребуются привилегии sudoer. Вы можете получить права sudoer, подключившись к виртуальной машине через SSH-соединение. Вы можете сделать это с помощью Compute Engine UI или gcloud:

Когда вы подключаетесь через SSH, вы подключаетесь как пользователь Google Cloud Platform по умолчанию. Это дает вам привилегии sudoer.

Создание правила брандмауэра для открытия SSH

В зависимости от того, как настроен ваш проект, вы не сможете подключиться к своей виртуальной машине по SSH, потому что порт 22 закрыт по умолчанию - это хорошая практика безопасности. Чтобы включить SSH, вам нужно открыть порт 22, создав и применив правило брандмауэра.

Сначала создайте правило брандмауэра с высоким приоритетом, открывающее порт 22:

allow-ssh - это имя правила, --allow=tcp:22 открывает TCP-порт 22, priority=0 заставляет это правило брандмауэра иметь приоритет над другими правилами брандмауэра (более низкий приоритет = высокий приоритет), --description описывает ваше правило брандмауэра (необязательно, но полезно), а target-tags - теги виртуальных машин, которые определяют, к каким виртуальным машинам применяется это правило. Если вы серьезно относитесь к безопасности, рассмотрите возможность использования параметра --source-ranges, чтобы открыть только порт 22 для выбора IP-адресов.

Затем примените правило брандмауэра к своему экземпляру, пометив его соответствующим образом:

Теперь вы можете подключиться по SSH. Как только вы закончите, обеспечьте безопасность своей виртуальной машины, отключив ее от тегов до тех пор, пока вам снова не понадобится доступ по SSH:

Шаг 6. Управляйте своей средой Python

Управление средой Python - важное соображение в рабочем процессе разработчика Python. При использовании записных книжек на платформе AI вы можете не захотеть самостоятельно управлять своей средой. Вы потеряете некоторые внутренние оптимизации (включая оптимизированные двоичные файлы некоторых пакетов), и вы можете столкнуться с проблемами совместимости версий при установке необходимых пакетов. Возможно, вам будет проще поддерживать отдельные виртуальные машины для каждого из ваших проектов, чем отдельные среды.

Но иногда вам нужна жестко контролируемая среда, а в среде Notebooks по умолчанию много предустановленных пакетов (запустите pip list, чтобы увидеть).

Самыми популярными инструментами для управления средами Python являются pipenv, virtualenv и virtualenvwrapper (расширяет virtualenv). Если у вас есть предпочтительный инструмент, вы можете использовать его с записными книжками (но вам может потребоваться SSH для его правильной настройки, см. Шаг 5 выше), и вы можете пропустить содержание virtualenv основ и перейти к « Создание Ядро Jupyter для виртуальной среды ».

Основы виртуальной среды с virtualenv

virtualenv - это инструмент начального уровня для управления средой, который предварительно устанавливается при создании виртуальной машины Notebooks. Общая идея virtualenv заключается в том, что вы создаете «виртуальную среду» с собственной версией Python и собственными установленными пакетами. Когда вы хотите работать в этой среде, вы ее «активируете», а затем всякий раз, когда вы используетеpip, изменяется только активная среда. Когда вы закончите работу, вы «деактивируете» свою среду. Виртуальные среды живут на вашем диске в папках. Вы можете иметь столько виртуальных сред, сколько захотите, и управлять ими самостоятельно.

Создать virtualenv виртуальную среду так же просто, как запустить команду virtualenv, за которой следует целевой каталог, в котором будет находиться ваша виртуальная среда:

В этом примере создается виртуальная среда в каталоге venv.

Активируйте виртуальную среду, запустив bin/activate в каталоге среды:

Вы увидите, что приглашение оболочки изменилось, и перед ним появится (venv). Это позволяет узнать, что вы находитесь в виртуальной среде. Теперь все, что вы делаете с pip, изменяет только активированную виртуальную среду.

Когда вы закончите работу в среде, выполните команду deactivate, чтобы покинуть среду:

Популярныйvirtualenv шаблон использования - создавать виртуальную среду в каждом проекте, над которым вы работаете, в venv каталоге в корне проекта. Если вы это сделаете, подумайте о том, чтобы поместить venv в ваш .gitignore файл, чтобы не регистрировать его в удаленном репозитории git. Другой популярный подход - сохранить единый каталог ~/envs с подкаталогами для различных сред. И как только вы поймете основы виртуальных сред, стоит обратить внимание на virtualenvwrapper, который автоматизирует управление виртуальной средой.

Если вы хотите удалить виртуальную среду безвозвратно, удалите каталог:

virtualenv также поддерживает создание виртуальных сред с разными версиями Python:

Обратите внимание, что все, что идет после -p, - это путь к исполняемому интерпретатору Python. На ноутбуках виртуальные машины python2 и python3 находятся в пути и указывают на последние версии, совместимые с предустановленными пакетами, но для создания среды с очень конкретной версией Python вам может потребоваться установить эту версию самостоятельно.

Чтобы сделать код переносимым, создайте requirements.txt файл внутри своей среды с помощью pip freeze и поделитесь им со своим кодом.

Создание ядра Jupyter для виртуальной среды

Вы можете захотеть связать ядро ​​Jupyter с вашей виртуальной средой. Это позволяет запускать ноутбуки и консоли из виртуальной среды. Запустите этот код в своей виртуальной среде, чтобы установить пакет ipykernel и создать ядро ​​для пользователя jupyter. KERNEL_NAME - это внутреннее имя iPython, но DISPLAY_NAME - это то, что вы увидите в интерфейсе:

Вам необходимо обновить веб-страницу JupyterLab, прежде чем значки записной книжки и консоли для нового ядра появятся в средстве запуска.

Помните о своем вкусе TensorFlow при использовании виртуальных сред. У TensorFlow есть отдельные пакеты для GPU и не-GPU. Установка любой из версий в виртуальную среду должна работать, но убедитесь, что вы установили правильный пакет, соответствующий вашей конфигурации (графический процессор или отсутствие графических процессоров). Это также означает, что вы должны сохранить отдельные виртуальные среды как для GPU, так и для других, если вы планируете переключаться между ними. Блокноты Cloud AI Platform должны автоматически выполнять переключение в среде по умолчанию (и при необходимости устанавливать правильные двоичные файлы и стек Nvidia), но вам придется справиться с этим самостоятельно, если вы управляете своими собственными средами.

Шаг 7. Изучите расширения

JupyterLab поддерживает настраиваемые расширения (и темы) и предоставляет разработчикам подробную документацию, способствующую созданию новых расширений. Расширения - это быстро развивающийся аспект опыта JupyterLab, который подвержен нестабильности. За исключением предустановленных расширений, они официально не поддерживаются в ноутбуках AI Platform. Также обратите внимание, что встроенный менеджер расширений JupyterLab в настоящее время недоступен в ноутбуках AI Platform.

Стоит добавить простое расширение, называемое go-to-definition, которое позволяет перейти к определению переменной или функции, если определение находится в том же файле. Это особенно полезно при работе с длинными или беспорядочными блокнотами или .py файлами. Обратите внимание, что это расширение официально не поддерживается, и, как и весь сторонний код, вы должны проверить его перед установкой.

Для доступа к sudoer вам потребуется SSH-соединение (см. Шаг 5). После подключения запустите следующее:

После установки расширения обновите веб-страницу JupyterLab. Затем вы можете удерживать ALT в любой записной книжке или .py файле и щелкнуть, чтобы перейти к определению в том же файле. ALT + O выполняет переход назад от определения туда, где вы впервые щелкнули.

Доступно еще много расширений в различных стадиях завершения. Также есть учебник и отличная документация, если вы заинтересованы в создании собственных расширений или полной настройке своей темы.

Шаг 8. Учитесь и делайте больше

Я хочу поблагодарить Вячеслава Ковалевского за ответы на мои технические вопросы о ноутбуках с платформой AI и поддержку отличного продукта, а также Уэсли Тернера и Пранит Датту за просмотр моего сообщения и отличные отзывы.