Hub documentation

モデルのダウンロード

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

モデルのダウンロード

統合ライブラリ

Hub上のモデルが対応ライブラリに紐付けられている場合、モデルの読み込みは数行のコードで完了します。モデルへのアクセス方法については、モデルページの「Use in Library」ボタンをクリックすると、その方法を確認できます。例えば、distilbert/distilgpt2では、以下のように🤗 Transformersでの読み込み方法を示しています。

Hugging Face クライアントライブラリを使用する

huggingface_hub ライブラリを使用して、リポジトリの作成、削除、更新、情報の取得を行うことができます。例えば、コマンドラインから HuggingFaceH4/zephyr-7b-beta モデルをダウンロードするには、以下を実行します。

hf download HuggingFaceH4/zephyr-7b-beta

詳細については、CLIダウンロードのドキュメントを参照してください。

ご自身のライブラリに統合することもできます。例えば、数行のコードでScikit-learnモデルを素早く読み込むことができます。

from huggingface_hub import hf_hub_download
import joblib

REPO_ID = "YOUR_REPO_ID"
FILENAME = "sklearn_model.joblib"

model = joblib.load(
    hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
)

Gitの使用

Model Hub上のすべてのモデルはXetベースのGitリポジトリであるため、git-xetをインストールして以下を実行することで、モデルをローカルにクローンできます。

git xet install
git lfs install
git clone git@hf.co:<MODEL ID> # example: git clone git@hf.co:bigscience/bloom

特定のモデルリポジトリへの書き込みアクセス権がある場合、モデルの改訂をコミットしてプッシュすることもできます。

変更をプッシュしたり、プライベートリポジトリにアクセスしたりするには、SSH公開鍵をユーザー設定に追加してください。

より高速なダウンロード

ダウンロード速度をテストする

Hugging Face の CDN からのダウンロード速度は、fast.hf.co でテストできます。これは最寄りの HF エッジサーバーに対して簡単な帯域幅テストを実行し、設定を調整する前にベースラインのスループットを把握するのに役立ちます。

hf-speedtest CLI拡張機能を使用して、ターミナルから直接ダウンロード速度を測定することもできます。

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

hf_xetによる適応的並行性

hf_xet は Rust 製のパッケージで、Xet ストレージバックエンド を活用してチャンクベースの重複排除によりファイル転送を最適化します。デフォルトでは、hf_xet は適応型並行性を使用します。リアルタイムのネットワーク状況に基づいて並列転送ストリームの数を自動的に調整し、保守的な設定(1ストリーム)から開始し、帯域幅が許す限り最大 64 の同時ストリームまでスケールアップします。

ほとんどのマシン(データセンター環境を含む)では、デフォルトの設定で利用可能なネットワーク帯域幅を十分に活用できます。高帯域幅かつ高速ディスクを備えたマシンで高度な設定を行うユーザーには、HF_XET_HIGH_PERFORMANCE=1 を設定することで並行処理の上限を引き上げ、メモリバッファサイズを拡大できます。これにより、多数の大容量ファイルを並行してダウンロードする際の性能向上が期待できます。

HF_XET_HIGH_PERFORMANCE=1 hf download ...

hf_xet 1.7.0 以降、ダウンロードバッファサイズは、HF_XET_HIGH_PERFORMANCE=1 を使用する場合としない場合を問わず、コンテナのメモリ制限を含む hf_xet が使用可能なメモリに基づいて決定されます。以前のバージョンでは、HF_XET_HIGH_PERFORMANCE=1 は、少なくとも 64 GB の RAM を備えたマシンでのみ使用してください。使用される値については、ダウンロードバッファ を参照してください。

hf-mountの使用

大規模モデルでは、リポジトリ全体をダウンロードする代わりに、hf-mountを使用してリポジトリをローカルファイルシステムとしてマウントできます。ファイルは遅延取得されます。つまり、コードが読み取るバイトのみがネットワークを介して取得されます。

brew install hf-mount
hf-mount start repo openai-community/gpt2 /tmp/gpt2

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

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

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