Hub documentation
ZenML на Spaces
ZenML на Spaces
ZenML — это расширяемый open-source фреймворк MLOps для создания переносимых, готовых к промышленной эксплуатации MLOps-конвейеров. Он создан для совместной работы Data Scientists, ML Engineers и MLOps Developers на всех этапах — от разработки до промышленной эксплуатации.
ZenML предлагает простой и гибкий синтаксис, не зависит от облачных провайдеров и инструментов, а также предоставляет интерфейсы и абстракции, ориентированные на рабочие процессы машинного обучения. С ZenML все ваши любимые инструменты собраны в одном месте, что позволяет настроить рабочий процесс под ваши конкретные задачи.
С помощью Hugging Face Space ZenML вы можете запустить развернутую версию ZenML всего за несколько кликов. Уже через несколько минут у вас будет развернутая панель управления ZenML по умолчанию, готовая к подключению с вашего локального компьютера.
В разделах ниже вы узнаете, как развернуть собственный экземпляр ZenML и использовать его для просмотра и управления вашими конвейерами машинного обучения прямо из Hub. ZenML на Hugging Face Spaces — это самодостаточное приложение, полностью размещенное на Hub с использованием Docker. На схеме ниже показан весь процесс.

Ознакомьтесь с документацией ZenML, чтобы узнать больше о возможностях инструмента и о том, как начать запускать свои ML-пайплайны через развертывание Hugging Face Spaces. Вы можете посмотреть несколько небольших примеров пайплайнов ZenML, чтобы начать работу, или выбрать один из более сложных проектов промышленного уровня в репозитории ZenML Projects. ZenML из коробки интегрируется со многими популярными инструментами, в том числе с Hugging Face! Если вам нужен какой-то другой инструмент, архитектура ZenML расширяема, и вы легко сможете настроить его работу с любым вашим кастомным инструментом или рабочим процессом.
⚡️ Развертывание ZenML на Spaces
Вы можете развернуть ZenML на Spaces всего в несколько кликов:
Для настройки приложения ZenML необходимо указать три основных компонента: владельца (ваш личный аккаунт или организацию), имя пространства и видимость (чуть ниже на странице). Обратите внимание, что видимость пространства должна быть установлена в значение «Public», если вы хотите подключиться к серверу ZenML с локальной машины.

Здесь вы можете выбрать машину более высокого уровня для вашего сервера. Преимущество выбора платного CPU-инстанса в том, что он не подпадает под политики автоматического отключения и, следовательно, будет работать, пока вы его не остановите. Чтобы использовать постоянный CPU, вам, скорее всего, потребуется создать и настроить базу данных MySQL для подключения (см. ниже).
Чтобы настроить внешний вид вашего Space, например, заголовок, эмодзи и цвета, перейдите в раздел «Files and Versions» и измените метаданные в файле README.md. Полную информацию о параметрах конфигурации Spaces можно найти в справочнике документации Hugging Face.
После создания вашего Space вы увидите статус «Building» и логи, отображаемые на экране. Когда статус изменится на «Running», ваш Space будет готов к использованию. Если интерфейс входа в ZenML не отображается, попробуйте обновить страницу.
В правом верхнем углу вашего пространства вы увидите кнопку с тремя точками. При нажатии на неё откроется меню с опцией «Встроить это пространство». (Подробнее об этой функции см. в документации Hugging Face.) Скопируйте «Прямой URL», отображённый в появившемся на экране окне. Он должен выглядеть примерно так: https://<YOUR_USERNAME>-<SPACE_NAME>.hf.space. Откройте этот URL и войдите в панель управления с помощью наших учётных данных по умолчанию (имя пользователя: ‘default’, пароль: (оставьте пустым)).
Подключение к вашему ZenML Server с локальной машины
Когда ваш сервер ZenML запущен и работает, вы можете подключиться к нему с локальной машины. Для этого вам потребуется получить «Direct URL» вашего Space (см. выше).
URL вашего Space будет доступен и пригоден для подключения с вашего локального компьютера только в том случае, если видимость пространства установлена в значение «Public».
Вы можете использовать «Direct URL» для подключения к вашему серверу ZenML с локальной машины с помощью следующей команды CLI (после установки ZenML и замены плейсхолдера на ваш собственный URL):
zenml connect --url '<YOUR_HF_SPACES_DIRECT_URL>' --username='default' --password=''
Вы также можете использовать Direct URL в браузере, чтобы открыть дашборд ZenML как полноэкранное приложение (то есть без обёртки Hugging Face Spaces).
Панель управления ZenML в настоящее время не работает при просмотре со страницы Hugging Face (то есть в рамках основного сайта
https://huggingface.co/...). Это связано с ограничением в обработке cookie между ZenML и Hugging Face. Панель управления необходимо открывать по «Прямой ссылке» (см. выше).
Дополнительные параметры конфигурации
По умолчанию приложение ZenML настраивается на использование непостоянной базы данных SQLite. Если вы хотите использовать постоянную базу данных, вы можете настроить это, изменив Dockerfile в корневом каталоге вашего Space. Полные сведения о различных параметрах, которые можно изменить, см. в нашей справочной документации по настройке ZenML при развертывании с Docker.
Если вы используете пространство только для тестирования и экспериментов, вам не нужно вносить какие-либо изменения в конфигурацию. Всё будет работать из коробки.
Вы также можете использовать внешний backend для секретов вместе с вашими Hugging Face Spaces, как описано в нашей документации. Убедитесь, что вы используете встроенную в Hugging Face функцию «Repository secrets» для настройки всех секретов, необходимых для вашей конфигурации Dockerfile. См. документацию для получения подробной информации о том, как это настроить.
Если вы хотите использовать облачный бэкенд секретов вместе с ZenML для управления секретами, вы должны принять следующие минимальные меры безопасности на вашем ZenML Server в Dashboard:
- смените пароль на учётной записи
default, которая создаётся при первом входе. Это можно сделать через Dashboard или с помощью CLI.- создайте новый пользовательский аккаунт с паролем и назначьте ему роль
admin. Это также можно сделать из панели управления (пригласив нового пользователя) или через CLI.- переподключитесь к серверу, используя новую учетную запись и пароль, как описано выше, и используйте эту новую учетную запись в качестве рабочей.
Это происходит потому, что пользователь по умолчанию, создаваемый процессом развёртывания Hugging Face Spaces, не имеет назначенного пароля, а Space доступен публично (поскольку Space является публичным), поэтому без этого дополнительного шага потенциально любой мог бы получить доступ к вашим секретам. Чтобы изменить пароль, перейдите на страницу настроек, нажав кнопку в правом верхнем углу панели управления, а затем нажмите «Update Password».
Обновление вашего ZenML Server на HF Spaces
По умолчанию пространство будет автоматически использовать последнюю версию ZenML. Если вы хотите обновить версию, просто выберите опцию ‘Factory reboot’ во вкладке ‘Settings’ пространства. Обратите внимание, что это удалит все данные, содержащиеся в пространстве, поэтому, если вы не используете постоянную базу данных MySQL (как описано выше), вы потеряете все данные, содержащиеся в вашем развертывании ZenML в пространстве. Вы также можете настроить пространство для использования более ранней версии, обновив оператор импорта FROM в самом верху Dockerfile.
Дальнейшие шаги
В качестве следующего шага ознакомьтесь с нашим Руководством для начинающих по MLOps с ZenML, представляющим собой серию коротких практических страниц о том, как быстро начать работу. Альтернативно, посмотрите наш пример quickstart, который является полным сквозным примером многих возможностей ZenML.
🤗 Обратная связь и поддержка
Если у вас возникают проблемы с сервером ZenML на Hugging Face Spaces, вы можете просмотреть журналы, нажав кнопку «Open Logs» в верхней части пространства. Это даст вам больше контекста о том, что происходит с вашим сервером.
Если у вас есть предложения или вам нужна конкретная поддержка по другим вопросам, которые не работают, пожалуйста, присоединяйтесь к сообществу ZenML в Slack, и мы будем рады помочь!
Update on GitHub