Hub documentation

Downloading datasets

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Downloading datasets

統合ライブラリ

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上のすべてのデータセットはXetベースのGitリポジトリであるため、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公開鍵をユーザー設定に追加してください。

より高速なダウンロード

Hugging Face の CDN からのダウンロード速度は、fast.hf.co でテストできます。これは最寄りの HF エッジサーバーに対して簡単な帯域幅テストを実行し、ベースラインのスループットを把握するのに役立ちます。また、hf-speedtest CLI 拡張機能を使用して、ターミナルからダウンロード速度を測定することもできます。

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

より高速な転送のために、Hubはネットワーク状況に応じて並列ストリームを自動的に調整する適応的並行性を持つXetストレージバックエンドを使用しています。HF_XET_HIGH_PERFORMANCE=1などのチューニングオプションの詳細については、モデルのより高速なダウンロードを参照してください。

hf-mountの使用

大規模なデータセットでは、リポジトリ全体をダウンロードする代わりに、hf-mount を使用してリポジトリをローカルファイルシステムとしてマウントできます。ファイルは遅延取得されます。つまり、コードが読み取るバイトのみがネットワークを介して取得されます。Python のイテレータではなく、ローカルファイルパスを想定したワークフロー(例: tarfile、zipfile、imagefolder)で有用です。

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

リポジトリは読み取り専用でマウントされます。完全なセットアップの詳細、バックエンドのオプション、およびキャッシュについては、ローカルファイルシステムとしてマウントするを参照してください。

プロキシまたはファイアウォールを介したダウンロード

ネットワークがファイアウォールやプロキシによってアウトバウンドトラフィックを制限している場合、データのダウンロードにはhuggingface.coへのアクセスだけでは不十分です。ファイルの内容は別のストレージおよびCDNのホスト名から配信されるため、huggingface.co自体が許可リストに登録されていても、これらのホストに到達できない場合はload_dataset / hf downloadが失敗します。

次のホスト名を許可リストに追加してください(すべて HTTPS / ポート 443 経由):

ホスト名目的
huggingface.coHub API、メタデータ、ダウンロードリダイレクト
cas-server.xethub.hf.coXetプロトコルAPI、ダウンロードとアップロード(米国)
cas-server.xethub-eu.hf.coXetプロトコルAPI、ダウンロードおよびアップロード(EU)
transfer.xethub.hf.coXet ストレージのダウンロード API(米国)
transfer.xethub-eu.hf.coXet ストレージのダウンロード API(EU)
us.aws.cdn.hf.coCDNエッジ(米国)
us.gcp.cdn.hf.coCDNエッジ(米国)
cdn-lfs-us-1.hf.coLFS CDN (米国)
cdn-lfs-eu-1.hf.coLFS CDN (EU)

ダウンロードはhuggingface.coからこれらのホスト名へのHTTPリダイレクトに従うため、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 配下の EU ホストをカバーしておらず、*.cdn.hf.co は 2 ラベルの us.aws.cdn.hf.co / us.gcp.cdn.hf.co をカバーしていません。

これらのホスト名は、ストレージおよびCDNインフラストラクチャの進化に伴い変更される可能性があります。セキュリティポリシーが許可する場合は、hf.coおよびhuggingface.coサフィックス(すべてのサブドメイン)を許可リストに追加してください。これにより、特定のエンドポイントが変更されてもルールが破綻しません。

機械可読リスト

上記のホスト名は、https://huggingface.co/.well-known/meta.json でも JSON として公開されています。 そのため、テーブルを手動でコピーする代わりに、この JSON からプロキシやファイアウォールのルールを生成できます。

エンドポイントが追加・削除されるたびにファイルの内容が変更されます。コピーを固定するのではなく、ルールを構築する際に取得してください。

Update on GitHub