Machine learning
NewTechAudit
94

Сохраняем производительность при участии в соревнованиях Kaggle

Многие DS специалисты для прокачки своих навыков и повышения компетенций участвуют на Kaggle в различных IT соревнованиях. Однако организаторы площадки для лучшего распределения ресурсов вводят определенные лимиты на использование мощностей. Давайте поговорим о том, как максимально эффективно использовать предоставляемые ресурсы и повысить производительность во время таких соревнований.

В закладки

В последнее время во всем мире значительно возросла популярность технологий искусственного интеллекта и, соответственно, количество проводимых data science – соревнований. Также растет и число участников этих соревнований. В связи с этим, для лучшего распределения имеющихся ресурсов одной из ведущих площадок по организации подобных соревнований (Kaggle) было принято решение о введении лимита на использование участниками мощностей графических процессоров (англ. graphics processing unit, GPU) – не более 30 часов в неделю. При этом, если ноутбук использует 2 графических ядра одновременно, лимит сокращается в 2 раза быстрее.

В этой статье мы постарались систематизировать подходы и советы, предлагаемые в различных источниках, помогающие сохранить производительность при участии в соревнованиях на площадке Kaggle, несмотря на введенные ограничения.

Начнем с официальных советов Kaggle по максимально эффективному использованию предоставляемых пользователям площадки графических процессоров:

  • Подключайте графический процессор, только если планируете его использовать. Если ваш код не задействует возможности GPU (например, библиотеки TensorFlow, PyTorch и др.), выгоды от его подключения не будет, при этом выделенный лимит будет уменьшаться.
  • Отслеживайте и управляйте использованием GPU. Kaggle имеет инструменты для мониторинга использования графического процессора, при помощи которых вы можете выявлять и отключать ненужные на текущий момент сеансы.
  • Избегайте использования пакетных сессий (commit), чтобы сохранить или проверить свой прогресс. Пакетные сессии запускают и выполняют весь код последовательно, тратя на это время и лимит GPU. Эффективнее будет просто загрузить файл. ipynb из редактора.
  • Отмените ненужные пакетные сессии. Одно и то же ядро может иметь несколько одновременных пакетных сессий, если вы повторно нажмете кнопку commit до завершения первой операции. Однако если ваш последний код был обновлен по сравнению с предыдущей версией, лучше отменить первый commit и оставить запущенным только второй.
  • Остановите интерактивные сеансы до закрытия окна редактора. Интерактивные сеансы остаются активными до тех пор, пока не достигнут 60-минутного ограничения времени простоя. Если вы не остановите сеанс до закрытия окна редактора, выделенный лимит GPU будет уменьшаться, пока сеанс не будет прерван автоматически.
  • Подумайте об использовании Kaggle-API, чтобы полностью избежать интерактивных сеансов.

На последнем пункте остановимся более подробно. Kaggle-API позволяет использовать и обрабатывать наборы данных Kaggle в сторонних приложениях. Например, в уже знакомом вам Google Colab. В отличие от Kaggle, Google Colab не имеет общего ограничения на длительность сеансов работы с GPU в неделю – лимит накладывается только в рамках одного сеанса (12 часов). При этом он на 3 часа превышает лимит, установленный для одного сеанса Kaggle.

Для доступа к API необходимо создать личный токен. Для этого необходимо зайти в меню Kaggle «My Account»:

перейти к разделу API и нажать кнопку «Create New API Token»:

В результате будет сформирован файл kaggle.json, который можно сохранить на свой компьютер. В дальнейшем он будет использоваться для доступа к наборам данных и соревнованиям Kaggle. Чтобы с токеном было проще работать, можно сохранить его на Google Drive. Это позволит не загружать его каждый раз с локального диска, а обращаться к токену напрямую. Чтобы получить доступ к API Kaggle в ноутбуке Google Colab необходимо выполнить следующую команду (восклицательный знак в начале строки кода позволяет выполнить команду операционной системы Linux прямо из ноутбука Colab):

!pip install kaggle

Затем перенесем в ноутбук токен, сформированный на предыдущем шаге (я заранее скопировал его в корневую папку Google Drive):

!mkdir -p ~/.kaggle !cp '/content/drive/My Drive/kaggle.json' ~/.kaggle

Теперь можно использовать API Kaggle из Google Colab. Инструмент командной строки поддерживает следующие команды ( подробнее со списком команд и примерами их использования можно ознакомиться на GitHub по ссылке https://github.com/Kaggle/kaggle-api):

kaggle competitions {list, files, download, submit, submissions, leaderboard}

kaggle datasets {list, files, download, create, version, init}

kaggle kernels {list, init, push, pull, output, status} kaggle config {view, set, unset}

kaggle config {view, set, unset}

Например, для получения списка датасетов, имеющихся на платформе Kaggle, нужно выполнить команду:! kaggle datasets list. А для загрузки данных по какому-либо соревнованию – команду:! kaggle competitions download -c liverpool-ion-switching, где liverpool-ion-switching – название соревнования.

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

Лайфхаки IT, проверенные AI-решения для стандартных задач
{ "author_name": "NewTechAudit", "author_type": "editor", "tags": [], "comments": 0, "likes": 2, "favorites": 0, "is_advertisement": false, "subsite_label": "ml", "id": 132581, "is_wide": true, "is_ugc": false, "date": "Mon, 08 Jun 2020 15:08:26 +0300", "is_special": false }
Курс «Enterprise fullstack-разработка на JavaScript с применением технологий React, Redux и Node.js»
13 июля Онлайн 64 000 ₽
Объявление на vc.ru
0
Комментариев нет
Популярные
По порядку

Блоги компаний

Комментарии