跳到主要内容

受限数据集

为了让数据集作者更好地控制数据使用方式,Hub 允许他们为数据集启用访问请求。启用后,用户必须同意将自己的联系方式(用户名和邮箱)分享给数据集作者才能访问数据集文件。数据集作者也可以配置额外的自定义字段。启用访问请求的数据集称为受限数据集(gated dataset)。访问请求始终针对个人用户,而非整个组织。受限数据集的常见用途是在全面公开之前向早期研究者提供访问权限。

作为数据集作者管理受限数据集

前往数据集的设置页面即可启用访问请求。默认情况下,数据集未受限。在页面右上角点击 Enable Access request

启用访问请求启用访问请求

默认情况下,用户提交请求后会自动获得数据集访问权限,这称为自动批准。在此模式下,用户一旦同意分享个人信息,即可访问数据集。

启用访问请求启用访问请求

如果希望手动批准哪些用户可以访问数据集,需要切换到手动批准模式,此时会出现更多选项:

  • Add access:搜索任意用户,即使对方未发起请求也可直接授予访问权限。
  • Notification frequency:设置接收新请求通知的频率,可选每日一次或实时。默认情况下,会发送邮件到你的主邮箱;若数据集归属某组织,默认会发送给组织的前 5 名管理员。无论个人或组织,都可在 Notifications email 字段中指定其他邮箱。
审核访问请求审核访问请求

审核访问请求

启用访问请求后,无论是手动还是自动批准,你都可以完全掌控数据集的访问情况。请求可通过界面或 API 审核管理。

通过界面

在数据集的设置页面点击 Review access requests 按钮,即可查看谁已拥有访问权限。弹出窗口分为三类用户:

  • pending:等待批准的用户列表。仅在启用 manual approval 时有内容。你可以选择 AcceptReject。若拒绝,请求者无法访问数据集,也无法再次发起请求。
  • accepted:已拥有访问权限的用户列表。无论审批模式为何,都可以随时 Reject 某位用户的访问,或 Cancel 批准令其回到 pending 列表。
  • rejected:被你手动拒绝的用户列表。这些用户无法访问数据集,访问仓库时会看到提示 Your request to access this repo has been rejected by the repo's authors
审核访问请求审核访问请求

通过 API

你也可以使用 API 自动化审批流程。需要提供对该受限仓库具有 write 权限的 token。生成令牌请前往用户设置

MethodURIDescriptionHeadersPayload
GET/api/datasets/{repo_id}/user-access-request/pending获取待审批请求列表{"authorization": "Bearer $token"}
GET/api/datasets/{repo_id}/user-access-request/accepted获取已批准请求列表{"authorization": "Bearer $token"}
GET/api/datasets/{repo_id}/user-access-request/rejected获取被拒绝请求列表{"authorization": "Bearer $token"}
POST/api/datasets/{repo_id}/user-access-request/handle将指定请求状态更新为 status{"authorization": "Bearer $token"}{"status": "accepted"/"rejected"/"pending", "user": "username", "rejectionReason": "可选,拒绝理由,将展示给用户(最多 200 字符)。"}
POST/api/datasets/{repo_id}/user-access-request/grant为指定用户授予访问权限{"authorization": "Bearer $token"}{"user": "username"}

上述 HTTP 端点的基础 URL 为 https://huggingface.co

新功能! 我们已在 Python 客户端 huggingface_hub 中正式支持这些接口。可通过 list_pending_access_requestslist_accepted_access_requestslist_rejected_access_requests 查看请求,也可使用 accept_access_requestcancel_access_requestreject_access_request 进行操作。此外还可以通过 grant_access 直接授予访问权限。

下载访问报告

点击 download user access report 按钮即可下载受限数据集的访问请求报告。下载的是一个包含用户列表的 json 文件,每条记录包含:

  • user:用户 ID,例如 julien-c
  • fullname:Hub 上的用户名,例如 Julien Chaumond
  • status:请求状态,可能为 "pending""accepted""rejected"
  • email:用户邮箱。
  • time:用户发起请求的时间。

自定义请求内容

默认情况下,访问受限数据集的用户需要点击 Agree and send request to access repo 按钮,并同意分享邮箱与用户名。

自定义请求内容自定义请求内容

如果你希望收集更多信息,可以在 Settings 标签中配置附加字段。方法是,在数据集卡片元数据中添加 extra_gated_fields 属性,以下是字段类型:

  • text:单行文本输入。
  • checkbox:复选框。
  • date_picker:日期选择器。
  • country:国家下拉列表,基于 ISO 3166-1 alpha-2 标准。
  • select:下拉列表,在 options 中定义选项。示例:options: ["option 1", "option 2", {label: "option3", value: "opt3"}]

此外,还可以通过 extra_gated_prompt 自定义页面上的提示信息。

以下示例展示了如何要求用户填写公司名称、国家,并勾选同意仅用于非商业用途:

---
extra_gated_prompt: "You agree to not use the dataset to conduct experiments that cause harm to human subjects."
extra_gated_fields:
Company: text
Country: country
Specific date: date_picker
I want to use this dataset for:
type: select
options:
- Research
- Education
- label: Other
value: other
I agree to use this dataset for non-commercial use ONLY: checkbox
---

某些场景下,还可修改默认的标题、描述与按钮文案,可通过 extra_gated_headingextra_gated_descriptionextra_gated_button_content 实现:

---
extra_gated_heading: "Acknowledge license to accept the repository"
extra_gated_description: "Our team may take 2-3 days to process your request"
extra_gated_button_content: "Acknowledge license"
---

作为组织管理受限数据集(Enterprise Hub)

Enterprise Hub 订阅用户可以创建 Gating Group Collection,一次性批准或拒绝对集合内所有模型与数据集的访问。

更多详情请参阅专门文档

作为用户访问受限数据集

若想使用受限数据集,你需要发起访问请求,这意味着必须先登录 Hugging Face 账号。

提交请求只能通过浏览器进行。访问数据集页面后,会提示你填写信息:

自定义请求内容自定义请求内容

点击 Agree 即表示同意将用户名与邮箱分享给数据集作者。若存在额外字段,请尽量完整填写,以便作者决定是否授予访问权限。

发送请求后有两种情况:若采用自动批准,你会立即获得访问权限;否则需要作者手动审批,可能需要一定时间。

注意

数据集作者对访问权限拥有绝对控制权。他们可以在任何时间、无须通知地撤销你的访问,不受审批机制限制,即便先前已批准。

下载文件

要下载受限数据集中的文件,需要先完成身份验证。若使用浏览器,只要登录即可;若通过脚本访问,则需要提供用户令牌。在 Hugging Face Python 生态(transformersdiffusersdatasets 等)中,可使用 huggingface_hub 登录:

hf auth login

也可以在脚本或 notebook 中使用 login()

>>> from huggingface_hub import login
>>> login()

此外,大部分加载方法(from_pretrainedhf_hub_downloadload_dataset 等)都可以接受 token 参数,直接在脚本中指定。

关于登录的更多信息,请查看登录指南

限制欧盟用户访问

对于受限数据集,可额外限制来自欧盟国家的用户访问。若许可证或使用条款禁止在欧盟分发数据集,可启用此功能。

只需在数据集卡片的元数据中添加 extra_gated_eu_disallowed: true。请注意,该属性仅在数据集已受限(gated: true)时生效。

---
license: mit
gated: true
extra_gated_eu_disallowed: true
---

系统会根据用户的 IP 地址判断其所在地区。