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

Вы можете просто запомнить это на некоторое время, если это простая задача. Тем не менее, иногда работая в командах и со сложными проблемами, просто помнить не по-человечески. Электронные таблицы часто используются, но более умным и практичным является инструмент для отслеживания экспериментов, такой как Neptune!

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

Это одна из причин, почему мы решили использовать его здесь, в Voxar. Во-вторых, мы сосредоточены на академическом использовании инструмента, и Neptune предлагает академический план именно для этого, когда мы можем бесплатно проводить неограниченное количество часов мониторинга!

Во-первых, как и в большинстве интернет-вещей, вам понадобится аккаунт. Нептун бесплатен для физических лиц.

Теперь войдите в свою учетную запись Neptune и создайте новый проект. При первом входе в систему вы можете увидеть некоторые всплывающие окна для руководств по Neptune, но в этом случае просто закройте их, откройте новое руководство по проекту и дайте вашему проекту имя. Нептун создаст для вас ключ.

Итак, установите Neptune на свой компьютер или среду:

pip install neptune-client

И не забудьте импортировать:

import neptune.new as neptune

Прежде чем мы продолжим, позвольте мне объяснить, как работает Нептун. Вы создадите экземпляр объекта, в котором вы сможете сохранить «любые метаданные построения модели, которые вам нужны». В меню вашего проекта есть три вкладки, предназначенные для организации вашего проекта:

Чтобы заполнить их, вы собираетесь создать объект для каждого и записать в них данные, которые вы хотите использовать, используя один из методов Neptune:
Чтобы создать:

run = neptune.init(...)
model = neptune.init_model(...)
project = neptune.init_project(...)

Создадим прогон:

это стандартный способ создания прогона:

run = neptune.init(
    project="your_project",
    api_token="your_api_token",
)# your credentials

После создания есть много способов регистрации данных:

  • «=»: уникальные переменные и словари.
  • «.log()»: последовательность значений, обычно внутри циклов.
  • «.track_files()»: любая информация, содержащаяся в файле.
  • «.upload()»: файлы или рисунки с образцом данных или матрицей путаницы.
  • «.log() + File»: файлы или объекты, например изображения, последовательно.

Не забудьте использовать run.stop() в конце, особенно если вы используете блокнот, поскольку они не завершаются автоматически.

Вкладка проекта предназначена для хранения метаданных на уровне проекта. Его можно использовать для хранения наборов данных в виде артефактов, что делает их легко доступными при каждом новом запуске.

project = neptune.init_project(
  name = "your_project",
  api_token = "your_api_token"
)

Вы можете хранить свои наборы данных или ссылаться на них. Здесь мы создаем общую папку и сохраняем в ней диктофон.

project['general'] = {
        'data_link':'link_to_data', 
    }

И, наконец, вы можете сохранять модели, которые вы хотите, каждая созданная вами модель может иметь много версий внутри нее. Итак, сначала:

model = neptune.init_model(
    name="Prediction model",
    key="MOD", 
    project="your_project", 
    api_token="your_api_token", # your credentials
)

После того, как эта модель будет создана, не выполняйте init_model снова, если вы не хотите изменить модель.
Чтобы создать ее версию:

model_version = neptune.init_model_version(
        model = 'NEP-MOD',
        project = 'your_project',
        name = 'first',
        api_token="your_api_token",
)

Поле модели требует специального форматирования: (название) + «-» + (ключ)
, с помощью которого можно загрузить модель или матрицу путаницы:

model_version['model'].upload('model.pth')

Попробуем что-нибудь запротоколировать, как насчет словаря с параметрами нашей модели?
например:

params = {
    'learning_rate': 0.008,
    'batch_size': 128,
    'epochs': 5,
    'optmizer':'Adam',
}

Чтобы войти:

run['parameters'] = params

Здесь мы используем оператор «=», чтобы сохранить словарь в папке с именем «параметры». После запуска перейдите в меню проекта Neptune и выберите визуализацию запуска. Вы увидите папку, созданную во «всех метаданных».

Но сливки для пользователей Neptune появляются, когда вы используете оператор «.log» внутри цикла обучения, например, для сохранения точности.

run['test_acc_epoch'].log(acc_test)

Когда прогон завершится, Neptune автоматически создаст для вас диаграммы, а также вы сможете создавать персонализированные информационные панели со всем, что вы делали.

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