ProvBook: происхождение ноутбуков Jupyter

Обеспечение происхождения, машиночитаемости и воспроизводимости в Jupyter Notebooks

Блокноты Jupyter получили широкое распространение в последние годы. Эти
записные книжки предоставляют интерактивную среду для написания и выполнения кода, а также для просмотра графических результатов в режиме реального времени, что делает их удобными для обмена научными результатами. Одна из основных причин их широкого распространения среди ученых заключается в том, что они обеспечивают воспроизводимость вычислений. Однако отслеживать происхождение в Jupyter Notebooks сложно. Пользователям сложно отследить, как они достигли результата, какие шаги были выполнены, или увидеть результаты различных запусков записных книжек, особенно когда ячейки перезаписываются и запускаются повторно. Следовательно, наличие поддержки происхождения в этих ноутбуках для воспроизводимости вычислений желательно.

ProvBook: происхождение записной книжки

ProvBook - это расширение Jupyter Notebook. Он предоставляет функции для сбора и отображения происхождения выполнений Jupyter Notebook, загрузки записной книжки в машиночитаемом формате вместе с информацией о происхождении и сравнения ввода и вывода каждой ячейки в разных прогонах.

Демо
Видео, демонстрирующее использование ProvBook с примером, доступно здесь.

Установка

Установите провбук с помощью pip:

pip install provbook

После установки запустите записную книжку Jupyter, и вы увидите значки ProvBook, добавленные на панель инструментов, как показано ниже.

Разберемся с особенностями ProvBook.

  1. Происхождение Jupyter Notebook

Этот модуль ProvBook отслеживает происхождение Jupyter Notebook. Он фиксирует и сохраняет происхождение запуска / выполнения ячеек с течением времени. Каждый раз, когда записная книжка выполняется, происхождение выполнения сохраняется в метаданных ячейки. Каждая ячейка расширяется областью происхождения с ползунком. Область происхождения показывает историю выполнения каждой ячейки кода. Информация о происхождении выполнения ячейки включает время начала и окончания каждого выполнения, общее количество запусков, общее время, которое потребовалось для выполнения ячейки кода, исходный код и выходные данные, полученные во время этого конкретного выполнения. Он также показывает происхождение текстовых ячеек, где отображается измененное время и источник.

ProvBook также добавляет меню происхождения в интерфейс Jupyter Notebook. Пользователь может переключить отображение происхождения для выбранной ячейки из Ячейки - ›Происхождение -› Переключить видимость (выбрано). Пользователь также может удалить данные о происхождении из метаданных записной книжки с помощью Ячейки - ›Происхождение -› Очистить (все).

2. Машиночитаемость Jupyter Notebook

Этот модуль предоставляет пользователю возможность загружать записные книжки в машиночитаемом формате. Он предоставляет пользователю возможность конвертировать записные книжки в RDF (Resource Description Framework) вместе с трассировками происхождения и атрибутами среды выполнения. Это помогает семантически представить информацию о происхождении выполнения записной книжки. Это утилита командной строки, которая принимает записную книжку в качестве входных данных и генерирует файл RDF Turtle. RDF генерируется с использованием онтологии REPRODUCE-ME, расширенной из стандарта W3C PROV-O и онтологии P-Plan. RDF, созданный из записной книжки, можно преобразовать обратно в Jupyter Notebook. Ноутбук также можно загрузить как RDF из интерфейса Notebook.

Преобразуйте свой ноутбук в RDF

notebook_rdf your_notebook.ipynb

Преобразуйте свой RDF в записную книжку

notebook_rdf notebook_rdf.ttl

Записную книжку также можно загрузить как RDF из меню «Файл» - ›Загрузить как -› RDF (.ttl).

3. Различия в использовании Jupyter Notebook

Этот модуль помогает пользователям сравнивать результаты различных запусков Jupyter Notebook. Пользователю предоставляется раскрывающийся список для выбора двух выполнений в зависимости от времени начала выполнения. Пользователи также могут выбрать исходное выполнение экспериментатора с собственным исполнением Jupyter Notebook.

Когда пользователь выбирает два исполнения, разница во вводе и выводе этих исполнений отображается бок о бок.

Если есть различия во вводе или выводе, различие выделяется, чтобы пользователь мог различить изменение. Он расширяет инструмент nbdime из Project Jupyter и вызывает API из nbdime, чтобы увидеть разницу между происхождением каждого выполнения ячейки кода записной книжки.

Заключение

Мы видели функции ProvBook для отслеживания происхождения исполнения Jupyter Notebook. Надеюсь, эти функции предоставят вам поддержку происхождения и воспроизводимости при проведении вычислительных экспериментов с использованием Jupyter Notebooks.

Первоначально опубликовано на https://github.com / Sheeba-Samuel / ProvBook