Репозиторий моделей
Ключевая концепция функции репозитория моделей заключается в предоставлении системы хранения с версионным контролем на основе Git для моделей машинного обучения, что позволяет командам управлять файлами моделей, отслеживать версии и совместно работать между tenant'ами. Для хранения больших файлов используется Git LFS, а также обеспечивается интеграция с рабочими процессами MLOps, чтобы связать разработку и развертывание моделей.
Преимущества
Нативное для Git управление версиями
- Отслеживайте изменения моделей с помощью commits/branches/tags, обеспечивая воспроизводимость.
Высокоскоростная передача
- Загрузки через CLI/Notebook используют пропускную способность внутренней сети.
Совместное использование между tenant'ами
- Общие модели можно использовать в разных namespaces (например,
publicкак marketplace моделей).
Бесшовная интеграция
- Развертывайте модели из репозитория напрямую в inference services.
Основные возможности
Создание и удаление репозитория моделей
- Создавайте пустой repository на базе Git с метаданными (name/description/visibility).
- Удаляйте модели после проверки зависимостей (например, убедитесь, что нет активных inference services).
Управление файлами
- CLI/Git LFS
- Используйте
git lfs trackдля больших файлов (например,*.bin,*.h5). - Пример:
- Используйте
Управление версиями
- Ветвление
- Поддерживайте параллельные версии (например, ветви
experimentalиmain).
- Поддерживайте параллельные версии (например, ветви
- Тегирование
- Помечайте релизы через UI/CLI (например,
git tag -a v2.0 -m "Stable release").
- Помечайте релизы через UI/CLI (например,
- Синхронизация метаданных
- Автоматически считывайте
README.mdиз ветви по умолчанию для описаний моделей.
- Автоматически считывайте
Совместное использование между tenant'ами
- Общие модели
- Установите visibility в "Shared" при создании, чтобы обеспечить доступ между tenant'ами.
- Публичный marketplace
- Используйте namespace
publicдля публикации open-source моделей (например, конверсий HuggingFace).
- Используйте namespace
Интеграция с MLOps
- Готовность к развертыванию
- Запуск inference service в один клик из tagged версий модели.
- Интеграция с Notebook
- Загружайте модели напрямую в AML Notebooks для тестирования:
Технические примечания
- Требование Git LFS
- Необходимо включить
.gitattributes, чтобы указать файлы, отслеживаемые через LFS (например,*.zip filter=lfs diff=lfs merge=lfs).
- Необходимо включить
- Правила для ветви по умолчанию
- Неправильно настроенные метаданные
README.mdмогут блокировать развертывание inference.
- Неправильно настроенные метаданные
Создание репозитория моделей
Перед началом убедитесь, что в вашей системе установлены Git и Git LFS.
$ git lfs version
Шаг 1: Клонируйте или инициализируйте repository
Если у вас уже есть удаленный repository, клонируйте его. В противном случае вы можете инициализировать новый Git repository локально.
Шаг 2: Инициализация Git LFS
Инициализация Git LFS
Шаг 3: Скопируйте файл модели в каталог repository (опционально)
Шаг 4: Настройте режим отслеживания Git LFS (выберите один из двух вариантов)
-
Вы можете заранее создать файл
.gitattributes, чтобы указать типы файлов для отслеживания. -
Либо используйте команду git lfs migrate, чтобы автоматически проверить и перенести большие файлы.
-
Вариант 1: Активное отслеживание через
.gitattributes(рекомендуется для новых проектов)TIPЕсли в вашем repository уже есть файлы, которые нужно отслеживать через Git LFS, после внесения изменений в
.gitattributesрекомендуется выполнить следующую команду, чтобы Git повторно обработал эти файлы и преобразовал их в LFS pointers:git add --renormalize .
-
Вариант 2: Используйте git lfs migrate для проверки и миграции (рекомендуется для существующих repositories или исторических файлов)
Команда
git lfs migrateможет найти и перенести большие файлы, которые уже существуют в истории Git (но не отслеживаются LFS). Это переписывает историю — согласуйте это с участниками совместной работы. При push переписанной истории предпочтительно использовать--force-with-lease.TIPДля shared repositories: уведомите участников совместной работы перед миграцией, а при push переписанной истории используйте:
git push --force-with-lease
Шаг 5: Добавьте, зафиксируйте и отправьте изменения
После настройки LFS добавьте файлы в staging area, зафиксируйте их и отправьте в удаленный repository.