Datasets documentation

トラブルシューティング

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 権限を持つトークンであることを確認してください。
  • OSX では、hf auth login を使用する前に、キーチェーンアクセスから huggingface.co のパスワードをすべて削除し、git config --global credential.helper osxkeychain を再設定すると、問題の解決に役立つ場合があります。

代わりに、SSHキーを使用して認証することもできます。詳細は🤗 Hubのドキュメントを参照してください。

大規模なデータセットのアップロード中に接続が切断されました

Hub への大容量データセットのアップロード時、データセットのシャード数が多すぎると、短時間で Hub へのコミット数が多くなりすぎて接続エラーが発生する可能性があります。 また、Hub が内部で使用している AWS S3 バケットから HTTP 500 エラーが返される場合も、接続エラーの原因となります。 いずれの場合も、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)にアップグレードする必要があります。

カスタムデータからデータセットを作成する際の問題

フォルダから画像とオーディオを読み込む

フォルダからデータセットを作成する際、最もよくある問題の一つは、ファイル構造が期待される形式に従っていないこと、またはメタデータファイルに問題があることです。

必要なフォルダ構造の詳細については、対応するドキュメントページを参照してください:

ピクルス化の問題

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.

ジェネレーター関数は一般的に「pickle 可能」ですが、ジェネレーターオブジェクトはそうではありません。したがって、ジェネレーターオブジェクトを使用している場合、次のようなTypeErrorが発生します。

TypeError: cannot pickle 'generator' object

このエラーは、DB接続などの「picklable」でないグローバルオブジェクトを使用するジェネレーター関数を使用する場合にも発生する可能性があります。その場合は、このエラーを回避するために、そのようなオブジェクトをジェネレーター関数の内部で直接初期化できます。

Dataset.mapでのピクルングの問題

ピクルス化のエラーは、マルチプロセスの Dataset.map() でも発生する可能性があります。オブジェクトはピクルス化されてから子プロセスに渡されます。 変換で使用されるオブジェクトがピクルス化できない場合、map の結果をキャッシュすることができず、エラーが発生します。

この問題を解決するためのいくつかの方法を以下に示します。

  • pickleの問題に対する普遍的な解決策は、__getstate__ / __setstate__ / __reduce__ を実装して、オブジェクト(またはジェネレータークラス)が手動でpickle可能であることを確認することです。
  • mapのnew_fingerprint引数に、独自のハッシュを指定することもできます。
  • datasets.disable_caching()を呼び出すことでキャッシュを無効にすることもできますが、これは望ましくありません。キャッシュの重要性について詳しくはこちら

ヘルプを依頼する

上記のトラブルシューティングのアドバイスで問題が解決しない場合は、コミュニティやチームにサポートを依頼してください。

フォーラム

Hugging Face フォーラムで助けを求めましょう - 🤗Datasets カテゴリに質問を投稿してください。問題が解決される可能性を最大限に高めるために、セットアップに関する関連するコンテキストと再現可能なコードを含む、説明の十分な投稿を書くようにしてください!

Discord

Discordに質問を投稿し、チームやコミュニティのサポートを受けてください。

🤗 Hub でのコミュニティディスカッション

Hubでカスタムデータセットの作成に問題が発生している場合は、データセットのCommunityタブでディスカッションを開き、以下のメッセージを添えてHugging Faceチームにサポートを依頼できます。

# Dataset rewiew request for <Dataset name>

## Description

<brief description of the dataset>

## Files to review

- file1
- file2
- ...

cc @lhoestq @albertvillanova

GitHub Issues

最後に、ライブラリ自体に関連するバグを発見した可能性がある場合は、🤗 Datasets の GitHub リポジトリ に Issue を作成してください。バグに関するコンテキストを含めてください。再現するためのコードスニペット、環境やデータの詳細など、何が問題でどのように修正できるかを特定するために役立つ情報を提供してください。

Update on GitHub