Hub documentation

下载数据集

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

下载数据集

集成库

如果 Hub 上的数据集关联了某个受支持的库,只需几行代码即可加载该数据集。有关访问数据集的信息,您可以点击数据集页面上的“使用此数据集”按钮来查看具体方法。例如,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 公钥添加到用户设置中,以推送更改和/或访问私有仓库。

更快的下载速度

您可以在 fast.hf.co 上测试从 Hugging Face CDN 的下载速度。该工具会对最近的 HF 边缘服务器执行快速带宽测试,帮助您了解基线吞吐量。您也可以在终端中使用 hf-speedtest CLI 扩展来测量下载速度:

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 主机名,如果这些主机名无法访问,即使 huggingface.co 本身已在白名单中,load_dataset / hf download 也会失败。

允许以下主机名(全部通过 HTTPS / 端口 443):

主机名目的
huggingface.coHub API、元数据和下载重定向
cas-server.xethub.hf.coXet 协议 API,下载和上传(美国)
cas-server.xethub-eu.hf.coXet 协议 API,下载和上传(欧盟)
transfer.xethub.hf.coXet 存储下载 API(美国)
transfer.xethub-eu.hf.coXet 存储下载 API(欧盟)
us.aws.cdn.hf.coCDN 边缘(美国)
us.gcp.cdn.hf.coCDN 边缘(美国)
cdn-lfs-us-1.hf.coLFS CDN(美国)
cdn-lfs-eu-1.hf.coLFS CDN(欧盟)

下载会从 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 下的欧盟主机,且 *.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