Hub documentation

Загрузка наборов данных

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Загрузка наборов данных

Интегрированные библиотеки

Если набор данных на Hub привязан к поддерживаемой библиотеке, его загрузка выполняется всего в несколько строк. Чтобы узнать, как получить доступ к набору данных, нажмите кнопку «Use this dataset» на странице набора данных. Например, samsum показывает, как это сделать с помощью datasets, ниже.

Использование клиентской библиотеки Hugging Face

Вы можете использовать библиотеку huggingface_hub для создания, удаления, обновления и получения информации о репозиториях. Например, чтобы скачать датасет HuggingFaceH4/ultrachat_200k из командной строки, выполните

hf download HuggingFaceH4/ultrachat_200k --repo-type dataset

См. документацию по загрузке в HF CLI для получения дополнительной информации.

Вы также можете интегрировать это в собственную библиотеру! Например, с помощью Pandas можно быстро загрузить набор данных в формате CSV всего несколькими строками кода.

from huggingface_hub import hf_hub_download
import pandas as pd

REPO_ID = "YOUR_REPO_ID"
FILENAME = "data.csv"

dataset = pd.read_csv(
    hf_hub_download(repo_id=REPO_ID, filename=FILENAME, repo_type="dataset")
)

Использование Git

Поскольку все наборы данных на Hub представляют собой Git-репозитории с поддержкой Xet, вы можете клонировать их локально, установив git-xet и выполнив:

git xet install
git lfs install
git clone git@hf.co:datasets/<dataset ID> # example: git clone git@hf.co:datasets/allenai/c4

Если у вас есть права на запись в конкретном репозитории датасета, вы также сможете коммитить и пушить ревизии датасета.

Добавьте ваш публичный SSH-ключ в настройки пользователя, чтобы отправлять изменения и/или получать доступ к закрытым репозиториям.

Более быстрая загрузка

Вы можете проверить скорость загрузки с CDN Hugging Face на fast.hf.co. Это запускает быстрое тестирование пропускной способности по отношению к ближайшему edge-серверу HF, что помогает понять базовую пропускную способность вашего соединения. Также вы можете измерить скорость загрузки из терминала с помощью расширения CLI hf-speedtest:

hf extensions install julien-c/hf-speedtest
hf speedtest

Для более быстрого переноса данных Hub использует бэкенд хранения Xet с адаптивной конкурентностью, которая автоматически настраивает параллельные потоки в зависимости от условий сети. Подробности о параметрах настройки, таких как HF_XET_HIGH_PERFORMANCE=1, см. в разделе Быстрая загрузка моделей.

Использование hf-mount

Для больших наборов данных вместо загрузки всего репозитория вы можете смонтировать его как локальную файловую систему с помощью hf-mount. Файлы загружаются лениво — в сеть отправляются только те байты, которые читает ваш код. Это полезно, когда ваш рабочий процесс ожидает локальные пути к файлам (например, tarfile, zipfile, imagefolder), а не итераторы Python.

brew install hf-mount
hf-mount start repo datasets/stanfordnlp/imdb /tmp/imdb

Репозитории монтируются только для чтения. См. Монтирование как локальную файловую систему для подробностей настройки, вариантов бэкенда и кэширования.

Загрузка через прокси или межсетевой экран

Если ваша сеть ограничивает исходящий трафик с помощью файрвола или прокси, для загрузки наборов данных недостаточно доступа только к huggingface.co. Содержимое файлов предоставляется с отдельных хостов хранения и CDN, и load_dataset / hf download завершатся с ошибкой, если эти хосты недоступны, даже если сам huggingface.co добавлен в белый список.

Добавьте следующие имена хостов в список разрешённых (все по HTTPS / порт 443):

Имя хостаНазначение
huggingface-proxy-6ci.pages.devHub API, метаданные и перенаправления загрузок
cas-server.xethub.hf.coAPI протокола Xet, загрузка и выгрузка (США)
cas-server.xethub-eu.hf.coAPI протокола Xet, загрузка и выгрузка (ЕС)
transfer.xethub.hf.coAPI для загрузки данных из хранилища Xet (США)
transfer.xethub-eu.hf.coAPI для загрузки из хранилища Xet (ЕС)
us.aws.cdn.hf.coCDN-узел (США)
us.gcp.cdn.hf.coCDN-узел (США)
cdn-lfs-us-1.hf.coLFS CDN (США)
cdn-lfs-eu-1.hf.coLFS CDN (ЕС)

Загрузки следуют HTTP-редиректам с huggingface.co на эти имена хостов, поэтому добавления только huggingface.co в белый список недостаточно. Ошибка ReadTimeoutError (а не ошибка подключения) в процессе загрузки обычно означает, что начальное соединение было установлено, но хост хранилища или CDN заблокирован.

Поведение подстановочных символов зависит от того, как ваш прокси сопоставляет домены. Многие корпоративные прокси трактуют запись в списке разрешённых доменов как совпадение по суффиксу, охватывающее поддомены на любой глубине. Если ваш прокси работает так, самый простой вариант — добавить в список разрешённых суффиксы hf.co и huggingface.co — они покрывают все текущие и будущие конечные точки хранения и CDN.

Если ваш прокси поддерживает только одноуровневые маски (где *.hf.co совпадает с cdn-lfs-us-1.hf.co, но не с более глубокими us.aws.cdn.hf.co или cas-server.xethub.hf.co), добавьте в белый список явные имена хостов из таблицы выше. Обратите внимание, что *.xethub.hf.co не покрывает хосты ЕС под xethub-eu.hf.co, а *.cdn.hf.co не покрывает двухуровневые us.aws.cdn.hf.co / us.gcp.cdn.hf.co.

Эти имена хостов могут меняться по мере развития нашей инфраструктуры хранения и CDN. Если ваша политика безопасности позволяет, добавьте в белый список суффиксы hf.co и huggingface.co (все поддомены), чтобы ваши правила не ломались при смене конкретного конечного пункта.

Список в машиночитаемом формате

Перечисленные выше имена хостов также публикуются в формате JSON по адресу https://huggingface.co/.well-known/meta.json, поэтому вы можете сгенерировать правила прокси или файрвола на основе этого файла, а не копировать таблицу вручную.

Файл изменяется по мере добавления и удаления конечных точек. Загружайте его при построении правил, а не фиксируйте копию.

Update on GitHub