Datasets documentation

Устранение неполадок

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Устранение неполадок

Это руководство призвано предоставить вам инструменты и знания, необходимые для решения ряда типичных проблем. Если перечисленные здесь рекомендации не покрывают вашу ситуацию, обратитесь к разделу Как попросить о помощи, чтобы узнать, где можно найти поддержку по вашей конкретной проблеме.

Проблемы при загрузке наборов данных с помощью push_to_hub

Проблемы с аутентификацией

Если при публикации набора данных на 🤗 Hub с помощью Dataset.push_to_hub() и токена доступа Hugging Face возникают проблемы с аутентификацией:

  • Убедитесь, что токен Hugging Face, который вы используете для аутентификации, имеет разрешение write.
  • В ОС X может помочь очистка всех паролей huggingface.co в доступе к ключам, а также повторная настройка git config --global credential.helper osxkeychain перед использованием hf auth login.

В качестве альтернативы вы можете использовать SSH-ключи для аутентификации — подробнее в документации 🤗 Hub.

Потеря соединения при загрузке крупного набора данных

При загрузке больших наборов данных в Hub, если количество фрагментов набора велико, это может привести к созданию слишком большого количества коммитов в Hub за короткий промежуток времени. В результате возникнет ошибка соединения. Ошибка соединения также может быть вызвана ошибкой HTTP 500, возвращаемой внутренним бакетом AWS S3, который использует Hub. В любом из этих случаев вы можете повторно запустить Dataset.push_to_hub(), чтобы продолжить загрузку набора данных. Hub проверит SHA уже загруженных фрагментов, чтобы избежать их повторной загрузки. Мы работаем над тем, чтобы сделать процесс загрузки более устойчивым к временным ошибкам, поэтому всегда рекомендуется обновляться до последней версии библиотеки.

Слишком много запросов

Загрузка больших наборов данных с помощью push_to_hub() может привести к ошибке:

HfHubHTTPError: 429 Client Error: Too Many Requests for url: ...
You have exceeded our hourly quotas for action: commit. We invite you to retry later.

Если вы столкнулись с этой проблемой, необходимо обновить библиотеку datasets до последней версии (или как минимум до 2.15.0).

Проблемы при создании наборов данных из собственных данных

Загрузка изображений и аудио из папки

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

Подробнее о требуемой структуре каталогов см. в соответствующих страницах документации:

Проблемы с pickle

Проблемы с pickle при использовании Dataset.from_generator

When creating a dataset, IterableDataset.from_generator() and Dataset.from_generator() expect a “picklable” generator function. This is required to hash the function using pickle to be able to cache the dataset on disk.

Хотя функции-генераторы, как правило, «picklable», объекты генераторов таковыми не являются. Поэтому, если вы используете объект генератора, вы столкнётесь с TypeError такого вида:

TypeError: cannot pickle 'generator' object

Эта ошибка также может возникать при использовании функции-генератора, которая обращается к глобальному объекту, не поддерживающему сериализацию (pickling), например, к соединению с БД. В таком случае инициализируйте такой объект непосредственно внутри функции-генератора, чтобы избежать этой ошибки.

Проблемы с сериализацией в Dataset.map

Ошибки сериализации (pickling) также могут возникать в многопроцессном Dataset.map() — объекты сериализуются для передачи дочерним процессам. Если объекты, используемые в преобразовании, не поддерживают сериализацию, результат map невозможно закэшировать, что приводит к возникновению ошибки.

Вот несколько способов решить эту проблему:

  • Универсальное решение проблем с pickle — убедиться, что объекты (или классы генераторов) можно сериализовать вручную, реализовав __getstate__ / __setstate__ / __reduce__.
  • Вы также можете указать собственный уникальный хеш в map с помощью аргумента new_fingerprint.
  • Вы также можете отключить кэширование, вызвав datasets.disable_caching(), однако это нежелательно - узнайте больше о важности кэша

Обращение за помощью

Если вышеприведённые рекомендации по устранению неполадок не помогли вам решить проблему, обратитесь за помощью к сообществу и команде.

Форумы

Обратитесь за помощью на форумах Hugging Face — опубликуйте свой вопрос в категории 🤗Datasets. Убедитесь, что ваш пост содержит подробное описание проблемы, релевантный контекст о вашей конфигурации и воспроизводимый код, чтобы максимально повысить шансы на решение вашей задачи!

Discord

Задайте вопрос в Discord, и команда и сообщество помогут вам.

Обсуждения сообщества на 🤗 Hub

Если у вас возникают проблемы с созданием пользовательского набора данных на Hub, вы можете обратиться за помощью к команде Hugging Face, открыв обсуждение на вкладке Community вашего набора данных с таким сообщением:

# Dataset rewiew request for <Dataset name>

## Description

<brief description of the dataset>

## Files to review

- file1
- file2
- ...

cc @lhoestq @albertvillanova

GitHub Issues

Наконец, если вы подозреваете, что нашли ошибку, связанную с самой библиотекой, создайте Issue в репозитории GitHub 🤗 Datasets. Укажите контекст проблемы: фрагмент кода для воспроизведения, сведения об окружении и данных и т. д., чтобы помочь нам разобраться, что пошло не так, и найти способ исправить это.

Update on GitHub