{"id":14275,"url":"\/distributions\/14275\/click?bit=1&hash=bccbaeb320d3784aa2d1badbee38ca8d11406e8938daaca7e74be177682eb28b","title":"\u041d\u0430 \u0447\u0451\u043c \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \u0430\u0432\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f72066c6-8459-501b-aea6-770cd3ac60a6"}

Сохраняем производительность при участии в соревнованиях 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.

0
Комментарии
-3 комментариев
Раскрывать всегда