Hub documentation
Gated 模型
Gated 模型
为了更精细地控制模型的使用方式,Hub 允许模型作者为其模型启用访问请求。启用后,用户必须提交访问请求才能获取模型文件,该请求会将用户的 Hugging Face 信息(用户名和电子邮件地址)共享给模型作者,除非作者选择放弃收集这些信息。模型作者还可以添加自定义字段。启用了访问请求的模型被称为门控模型。访问请求始终授予个人用户,而非整个组织。门控模型的一个常见用例是在正式发布前,为早期研究模型提供访问权限。
以模型作者身份管理受控模型
要启用访问请求,请前往模型设置页面。默认情况下,模型未设置访问限制。点击右上角的 启用访问请求。

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

如果您想手动批准哪些用户可以访问您的模型,必须将其设置为 manual approval。在这种情况下,您会注意到更多选项:
- 添加访问权限 允许您搜索用户并授予其访问权限,即使该用户未提出请求。
- 通知频率允许你配置在新用户请求访问权限时何时收到通知。可以设置为每天一次或实时。默认情况下,邮件会发送到你的主要邮箱地址。对于托管在组织下的模型,邮件默认会发送到该组织的前 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/models/{repo_id}/user-access-request/{status} | 列出具有指定 status 的请求:pending、accepted、rejected 或 reset。每个请求都有一个 requestId,如果收集了用户名,则还有一个 user。 | {"authorization": "Bearer $token"} | |
POST | /api/models/{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/models/{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和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 model 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 model for:
type: select
options:
- Research
- Education
- label: Other
value: other
I agree to use this model 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"
---以编程方式管理访问请求的示例用例
以下是我们在社区中自然涌现的、通过编程方式管理受限仓库访问请求的几个有趣用例。 提醒一下,模型仓库需要设置为手动审批,否则用户会自动获得访问权限。
程序化管理的潜在用例包括:
- 如果您有高级用户请求筛选需求(例如高级合规要求),或者希望在 Hub 之外处理用户请求。
- 一个例子是 Meta 的 Llama 2 初始发布,当时用户需要在 Meta 网站上申请访问权限。
- 您可以在访问流程中要求用户提供其 HF 用户名,然后使用脚本根据您设定的条件在 Hub 上以编程方式接受用户请求。
- 如果您希望根据是否完成支付流程(请注意,实际的支付流程发生在 Hub 之外)来控制对模型的访问权限。
- 这是来自 TrelisResearch 的一个示例仓库,其中使用了该用例。
- @RonanMcGovern 发布了一段关于该流程的视频,并分享了实施技巧。
为组织成员设置访问权限
对于托管在组织下的门控模型,您还可以要求该组织的成员提交访问请求。在模型设置页面中,在门控选项下,启用同时为 {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