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