Hub documentation

受控数据集

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

受控数据集

为了更精细地控制数据集的使用方式,Hub 允许数据集作者为其数据集启用访问请求。启用后,用户必须提交请求才能访问数据集文件,该请求会将用户的 Hugging Face 信息(用户名和电子邮件地址)共享给数据集作者,除非作者选择放弃收集这些信息。数据集作者还可以添加自定义字段。启用了访问请求的数据集被称为门控数据集。访问请求始终授予个人用户,而非整个组织。门控数据集的一个常见用例是在正式发布前,提供对早期研究数据集的访问权限。

以数据集作者身份管理受控数据集

要启用访问请求,请前往数据集设置页面。默认情况下,数据集未启用访问控制。点击右上角的 启用访问请求。

默认情况下,当用户请求访问数据集时,系统会自动授予该用户访问权限。这被称为自动批准。在此模式下,任何用户只要向您共享了个人信息,即可访问您的数据集。

如果您想手动批准哪些用户可以访问您的数据集,必须将其设置为手动批准。在这种情况下,您会注意到更多选项:

  • 添加访问权限 允许您搜索用户并授予其访问权限,即使该用户未提出请求。
  • 通知频率允许你配置在新用户请求访问权限时何时收到通知。可以设置为每天一次或实时。默认情况下,邮件会发送到你的主要邮箱地址。对于托管在组织下的数据集,邮件默认会发送到该组织的前 5 位管理员。在这两种情况(用户或组织)下,你都可以在 通知邮箱 字段中设置不同的邮箱地址。

审查访问请求

启用访问请求后,无论审批模式是手动还是自动,您都可以完全控制谁可以访问您的数据集。您可以通过 UI 或 API 来审核和管理请求。

从 UI

您可以在数据集的设置页面中,通过点击 Review access requests 按钮来查看谁有权访问您的受限数据集。这将打开一个包含三个用户列表的模态框:

  • pending:等待批准以访问您数据集的用户列表。除非您选择了manual approval,否则此列表为空。您可以选择Accept或Reject该请求。如果请求被拒绝,该用户将无法访问您的数据集,也无法再次申请访问权限。
  • accepted:拥有您数据集访问权限的完整用户列表。无论审批模式是手动还是自动,您都可以随时为任何用户选择 Reject(拒绝)访问。您还可以 Cancel(取消)审批,这将把该用户移至 pending(待处理)列表。
  • rejected:您手动拒绝的用户列表。这些用户无法访问您的数据集。如果他们访问您的数据集仓库,将会看到一条消息:您访问此仓库的请求已被仓库作者拒绝。

通过 API

您可以使用 API 自动批准访问请求。您必须传递一个具有对受限制仓库write访问权限的token。要生成 token,请前往您的用户设置。

方法URI描述请求头Payload
GET/api/datasets/{repo_id}/user-access-request/{status}列出具有指定 status 的请求:pending、accepted、rejected 或 reset。每个请求都有一个 requestId,如果收集了用户名,则还有一个 user。{"authorization": "Bearer $token"}
POST/api/datasets/{repo_id}/user-access-request/handle将指定访问请求的状态更改为 status。{"authorization": "Bearer $token"}{"status": "accepted"/"rejected"/"pending"/"reset", "user": "username" (or "requestId": "request id"), "rejectionReason": "Optional rejection reason that will be visible to the user (max 200 characters).", "resetReason": "Optional reset reason that will be included in the email sent to the user (max 200 characters)."}
POST/api/datasets/{repo_id}/user-access-request/grant允许特定用户访问您的仓库。{"authorization": "Bearer $token"}{"user": "username"}

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

将请求设置为 reset 会撤销先前的决定并要求用户重新开始:他们将失去对该数据集的访问权限,收到一封通知其请求已被重置的电子邮件(其中包含可选的 resetReason),并在下次访问数据集页面时被提示同意门控条款并提交新请求。这与 pending 不同,后者保持现有请求不变,只是将其重新放回审核队列;也与 rejected 不同,后者会阻止用户再次申请访问权限。

新功能!这些端点现已在我们的 Python 客户端 huggingface_hub 中正式获得支持。您可以使用 list_pending_access_requests、list_accepted_access_requests 和 list_rejected_access_requests 来列出针对您数据集的访问请求。此外,您还可以使用 accept_access_request、cancel_access_request 和 reject_access_request 来接受、取消或拒绝访问请求。最后,您可以使用 grant_access 授予用户访问权限。

下载访问报告

您可以使用 download user access report 按钮下载所有受限数据集的访问请求报告。点击该按钮即可下载一个包含用户列表的 json 文件。每个条目包含:

  • requestId:请求的 ID。
  • user:用户 ID。示例:julien-c。
  • fullname:用户在 Hub 上的名称。示例:Julien Chaumond。
  • status:请求的状态。可以是 "pending"、"accepted"、"rejected" 或 "reset"。
  • email:用户的电子邮件地址。
  • time:用户最初发出请求的时间。
  • reviewedAt:请求被接受或拒绝的时间。对于待处理请求,此字段未设置。

user、fullname 和 email 仅在发起请求时选择 收集这些信息 的情况下才会存在。所有请求始终可以通过其 requestId 进行识别。

选择 Hugging Face 与您共享哪些个人资料数据

默认情况下,Hugging Face 会将请求者的用户名和主要电子邮件地址共享给您。您有责任处理任何个人身份信息(PII),并根据适用法律披露您的处理方式(例如,通过链接到您自己的隐私政策)。您可以在数据集设置页面的访问控制选项中更改此设置:

  • 收集用户名:取消勾选后,你将不会收到请求者的 Hugging Face 用户名、全名和头像。请求将以请求 ID 的形式列出,并且可以像其他请求一样被接受或拒绝。
  • 收集电子邮件:收集请求者的 Hugging Face 个人资料电子邮件。需要 收集用户名。

您仍然会收到自定义表单字段的答案,因此您可以在其中索取所需的任何联系方式。这些设置仅适用于新请求:现有请求将保留其创建时生效的设置。

对于位于 Gating Group Collection 中的数据,这些选项将在集合上进行配置。

自定义请求的信息

默认情况下,访问您的受控数据集的用户将被要求通过点击同意并发送访问仓库请求按钮来共享他们的 Hugging Face 信息(邮箱和用户名,除非您已禁用其收集)。

如果您希望请求更多用户信息以提供访问权限,可以配置额外的字段。此信息可在 设置 选项卡中访问。为此,请在您的 数据集卡片元数据 中添加一个 extra_gated_fields 属性,其中包含一个键值对列表。键 是字段的名称,值 是其类型或一个包含 type 字段的对象。字段类型列表如下:

  • 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_heading、extra_gated_description 和 extra_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"
---

为组织成员设置访问权限

对于托管在组织下的受控数据集,您还可以要求该组织的成员提交访问请求。在数据集设置页面中,在访问控制选项下,启用同时限制{org}成员的访问。

启用此选项后,组织成员必须像其他用户一样申请数据集的访问权限。以下角色可绕过申请流程并保留直接访问权限:

  • 组织管理员
  • 创建该仓库的用户
  • 当数据集属于资源组时,资源组管理员

所有其他成员都必须通过访问请求流程。这包括具有 read、contributor 或 write 组织角色的成员,以及不具有 admin 角色的资源组成员。

以组织(团队和企业)身份管理受控数据集

Team & Enterprise 订阅用户可以创建一个 Gating Group Collection,以一次性授予(或拒绝)对集合中所有模型和数据集的访问权限。

有关 Gating Group Collections 的更多信息,请参阅我们的专用文档。

以用户身份访问受控数据集

作为用户,如果您想使用受控数据集,需要申请访问权限。这意味着您必须已登录 Hugging Face 用户账户。

申请访问权限只能通过浏览器完成。前往 Hub 上的数据集,系统会提示您共享您的信息:

点击 同意 即表示您同意将您在请求表单中填写的信息(如适用)与数据集作者共享,同时,如果作者选择收集,您的 Hugging Face 用户名和电子邮件地址也将被共享。为了帮助数据集作者决定是否授予您访问权限,请尽可能完整地填写表单中的各项内容。

提交访问请求后,会出现两种情况。如果审批机制是自动的,您将立即获得数据集文件的访问权限。否则,请求需要由作者手动批准,这可能需要更长的时间。

数据集作者对数据集的访问权限拥有完全的控制权。具体而言,无论采用何种审批机制,也无论您的请求是否已获批准,他们都可以随时在无需提前通知的情况下阻止您访问该数据集。

下载文件

要从受控数据集中下载文件,需要进行身份验证。在浏览器中,只要您已登录账户,此过程会自动完成。如果您使用的是脚本,则需要提供一个用户令牌。在 Hugging Face Python 生态系统(transformers、diffusers、datasets 等)中,您可以使用 huggingface_hub 库登录您的机器,并在终端中运行:

hf auth login

或者,您可以在笔记本或脚本中通过编程方式使用 login() 进行登录:

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

您还可以在大多数库的加载方法(from_pretrained、hf_hub_download、load_dataset 等)中直接提供 token 参数,从您的脚本中直接调用。

有关登录的更多详细信息,请参阅登录指南。

限制欧盟用户的访问

对于受控数据集,您可以添加额外的访问控制层,专门限制来自欧盟国家的用户。如果您的数据集许可证或条款禁止在欧盟境内分发,这将非常有用。

要启用此功能,请在您的数据集卡元数据中添加 extra_gated_eu_disallowed: true 属性。

重要:仅当您的数据集已设置为受限时,此功能才会生效。如果 gated: false 或未设置该属性,则此限制不适用。

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

系统根据用户的 IP 地址识别其位置。

Update on GitHub