О чём эта новость
- Кросс-репозиторное копирование позволяет переносить файлы и папки между любыми репозиториями без локальной загрузки.подробнее →
- SSH-доступ к Spaces через Dev Mode упрощает отладку и быструю итерацию в средах разработки.подробнее →
- Новая CLI-команда
hf repos lsпредоставляет детальный обзор репозиториев пользователя с информацией о хранилище.подробнее → - Фильтр «Только базовые модели» на Models Hub улучшает поиск, скрывая тонкие настройки и адаптеры.подробнее →
Hugging Face объявила о выпуске версии 1.17.0 своего клиента Hugging Face Hub, представляющей ряд обновлений, направленных на повышение эффективности работы разработчиков. Этот релиз включает такие ключевые функции, как кросс-репозиторное копирование файлов и папок, прямой SSH-доступ к средам Hugging Face Spaces в режиме Dev Mode, а также улучшенную поддержку таблиц в CLI.
Кросс-репозиторное копирование файлов: упрощенный перенос данных
Новая функция кросс-репозиторного копирования в Hugging Face Hub v1.17.0 позволяет пользователям переносить файлы и целые папки между различными типами репозиториев — будь то модели, наборы данных или Spaces — без необходимости сначала загружать данные на локальную машину и затем повторно их загружать ([v1.17.0] Cross-repo copies, ssh to Spaces, smarter CLI tables(https://github.com/huggingface/huggingface_hub/releases/tag/v1.17.0), huggingface.co(https://huggingface.co/docs/huggingface_hub/main/en/guides/upload#copy-files-between-repositories)). Это оптимизирует рабочие процессы, особенно при работе с большими файлами и сложными проектами, где данные часто должны перемещаться между различными компонентами инфраструктуры. Ранее для дублирования наборов данных или моделей требовались сложные обходные пути, включающие создание нового репозитория, загрузку моментального снимка в временную директорию и последующую загрузку папки, что было источником неудобств для пользователей (github.com).
С технической точки зрения, функция реализована через методы CommitOperationCopy, который принимает src_repo_id и src_repo_type для определения исходного репозитория ([v1.17.0] Cross-repo copies, ssh to Spaces, smarter CLI tables(https://github.com/huggingface/huggingface_hub/releases/tag/v1.17.0)). Для файлов, управляемых LFS (Large File Storage), Hugging Face Hub использует серверную дедупликацию через конечную точку /lfs-files/duplicate, что позволяет избежать избыточной передачи данных. Обычные файлы, не являющиеся LFS-объектами, извлекаются из исходного репозитория и фиксируются как обычные полезные данные. Это обеспечивает эффективное и быстрое копирование независимо от размера файла или его типа.
Эта функция упрощает рабочие процессы разработчиков, позволяя легко переносить обученные модели в новые Spaces для демонстрации, копировать наборы данных между пользовательскими пространствами для экспериментов или дублировать репозитории моделей для дальнейшей тонкой настройки. Благодаря поддержке любых комбинаций репозиториев (модель к модели, модель к набору данных и т. Д.) пользователи получают гибкость в управлении своими активами. Например, можно скопировать целую папку, используя copy_files в Python API или hf buckets cp в CLI, указывая исходный и целевой URL-адреса Hugging Face ([v1.17.0] Cross-repo copies, ssh to Spaces, smarter CLI tables(https://github.com/huggingface/huggingface_hub/releases/tag/v1.17.0)).
Использование кросс-репозиторного копирования через Python API выглядит следующим образом:
From huggingface_hub import copy_files
# Копирование целой папки
Copy_files(
## SSH-доступ к Spaces через Dev Mode: отладка и быстрая итерация
С выпуском v1.17.0 Hugging Face Hub представил **прямой SSH-доступ к контейнерам Hugging Face Spaces в режиме Dev Mode**, что революционизирует процесс отладки и быстрой итерации для разработчиков ([[v1.17.0] Cross-repo copies, ssh to Spaces, smarter CLI tables](https://github.com/huggingface/huggingface_hub/releases/tag/v1.17.0)(https://github.com/huggingface/huggingface_hub/releases/tag/v1.17.0)). **Dev Mode** — это ключевая функция для отладки приложений и ускорения итераций в Spaces, доступная PRO-подписчикам, а также командам и организациям уровня Enterprise (huggingface.co, huggingface.co). Традиционно, при каждом изменении кода в Space, базовый образ Docker перестраивался, а затем для нового контейнера выделялась новая виртуальная машина, что приводило к задержкам. Dev Mode устраняет эту необходимость, позволяя обновлять Space быстрее за счет переопределения образа Docker.
В режиме Dev Mode приложение запускается как дочерний процесс, что позволяет перезапускать его без остановки самого контейнера Space. Кроме того, в фоновом режиме запускаются SSH-сервер (для локальных редакторов и терминалов) и VS Code-сервер (для встроенного веб-интерфейса VS Code), что обеспечивает прямое подключение к Space. Это открывает ряд **ключевых преимуществ** (huggingface.co):
* **Изменения кода без пересборки Docker-образа:** Разработчики могут вносить изменения в код приложения, не дожидаясь каждый раз полной пересборки Docker-образа. Это ускоряет процесс разработки и тестирования.
* **Отладка запущенного приложения и мониторинг ресурсов в реальном времени:** Возможность прямого доступа к работающему контейнеру позволяет отлаживать приложение в его рабочей среде и отслеживать использование ресурсов, что критически важно для выявления и устранения проблем.
* **Ускоренное экспериментирование:** В целом, Dev Mode делает разработку и экспериментирование со Spaces гораздо быстрее, исключая фазу пересборки Docker-образа.
Для подключения к Space через SSH используется новая CLI-команда `hf spaces ssh`. Пользователю необходимо зарегистрировать свой открытый SSH-ключ в настройках учетной записи Hugging Face. Если Dev Mode еще не включен для Space, CLI предложит его активировать. Команда также поддерживает флаг `--dry-run` для вывода команды SSH без ее выполнения или `-i` для перенаправления конкретного ключа ([[v1.17.0] Cross-repo copies, ssh to Spaces, smarter CLI tables](https://github.com/huggingface/huggingface_hub/releases/tag/v1.17.0)(https://github.com/huggingface/huggingface_hub/releases/tag/v1.17.0), [huggingface.co](https://huggingface.co/docs/huggingface_hub/main/en/guides/cli#ssh-into-a-space-dev-mode)(https://huggingface.co/docs/huggingface_hub/main/en/guides/cli#ssh-into-a-space-dev-mode)). Например:
```bash
$ hf spaces ssh username/my-space
# Вывод команды SSH без ее запуска
$ hf spaces ssh username/my-space --dry-run
В отличие от традиционного рабочего процесса, где изменения в Spaces загружаются через Git и требуют перезапуска контейнера, Dev Mode позволяет напрямую модифицировать код и перезапускать приложение внутри контейнера, просто нажимая кнопку «Refresh» на странице Space. Изменения, сделанные в Dev Mode, не сохраняются автоматически в репозитории Space; их необходимо явно зафиксировать и объединить, чтобы они стали постоянными (huggingface.co). В источниках не указано, планируются ли дополнительные улучшения или расширения для Dev Mode в Spaces, например, интеграция с другими инструментами отладки или более детализированный мониторинг ресурсов.
Новые CLI-команды: эффективное управление репозиториями
В рамках обновления v1.17.0 клиент Hugging Face Hub получил новую команду командной строки — hf repos ls, предназначенную для упрощенного просмотра и управления всеми репозиториями пользователя ([v1.17.0] Cross-repo copies, ssh to Spaces, smarter CLI tables(https://github.com/huggingface/huggingface_hub/releases/tag/v1.17.0)). Эта команда позволяет быстро получить обзор всех ваших репозиториев, включая модели, наборы данных, Spaces и бакеты. Основная функция hf repos ls — отображение информации о размере хранилища, занимаемом каждым репозиторием, и его процента от общего пространства имени пользователя, с сортировкой по использованию хранилища. Это предоставляет разработчикам ценные данные для отслеживания и оптимизации использования ресурсов.
Команда hf repos ls поддерживает различные параметры фильтрации и сортировки, что делает ее инструментом для навигации по большому количеству репозиториев. Пользователи могут фильтровать результаты по --type (типу репозитория), --search (поисковому запросу), --namespace (пространству имен) и --limit (количеству отображаемых результатов), где --limit 0 покажет все репозитории. Кроме того, поддерживается стандартное семейство --format для настройки вывода. Эта команда улучшает возможности управления репозиториями, предоставляя централизованный и детализированный способ мониторинга и организации активов на Hugging Face Hub.
Фильтр «Только базовые модели» на Models Hub: фокус на оригиналах
Для улучшения навигации и поиска моделей на платформе Hugging Face Hub был представлен новый фильтр «Base only» на странице Models Hub (Filter Models page by Base Models only(https://huggingface.co/changelog/filter-models-by-base-models-only)). Этот фильтр разработан для решения проблемы избытка производных моделей, которые могут затруднять поиск оригинальных, базовых версий. Он позволяет пользователям скрыть все тонкие настройки (finetunes), адаптеры, слияния (merges) и квантованные версии моделей, оставляя видимыми только исходные базовые модели.
Проблема, которую решает этот фильтр, заключается в том, что страница Models Hub часто переполнена тысячами вариаций одних и тех же моделей, что затрудняет идентификацию и выбор оригинальной архитектуры или первичной версии. Фильтр «Base only» упрощает этот процесс, позволяя исследователям и разработчикам сосредоточиться на фундаментальных моделях, которые служат основой для дальнейших модификаций. Это особенно полезно для тех, кто хочет изучить базовые архитектуры или начать разработку с чистого листа.
В отличие от других опций фильтрации, которые могут сужать поиск по задачам, количеству параметров, библиотекам или поставщикам инференса (huggingface.co), фильтр «Base only» фокусируется на отношении между моделями, выделяя родительские версии. Для тех, кому нужен обратный подход – список только одного типа отношений, например, все адаптеры или все квантованные модели – существует фильтр «Other → Model Tree». Это дополнение делает навигацию по огромному каталогу моделей Hub более интуитивно понятной и эффективной, помогая пользователям быстрее находить наиболее релевантные модели для своих проектов.
Что это значит
Обновление Hugging Face Hub v1.17.0 предоставляет разработчикам более гибкие и инструменты для управления своими ИИ-проектами. Возможность копирования данных между репозиториями без промежуточной загрузки и прямой SSH-доступ в Spaces в режиме Dev Mode ускоряют рабочие процессы. В сочетании с улучшенными функциями CLI и фильтрации моделей на Hub, эти изменения способствуют более эффективной разработке и развертыванию ИИ-приложений.