跳到主要内容

受限模型

为了更好地控制模型的使用方式,Hub 允许模型作者为其模型启用访问请求。启用后,用户必须同意与模型作者共享其联系信息(用户名和电子邮件地址)才能访问模型文件。模型作者可以使用其他字段配置此请求。启用访问请求的模型称为受限模型。访问请求始终授予个人用户,而不是整个组织。受限模型的常见用例是在广泛发布之前提供对早期研究模型的访问。

作为模型作者管理受限模型

要启用访问请求,请转到模型设置页面。默认情况下,模型不受限制。点击右上角的启用访问请求

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

默认情况下,当用户请求时,会自动授予对模型的访问权限。这称为自动批准。在此模式下,任何用户一旦与你共享了他们的个人信息,就可以访问你的模型。

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

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

  • 添加访问允许你搜索用户并授予他们访问权限,即使他们没有请求。
  • 通知频率允许你配置何时收到新用户请求访问的通知。可以设置为每天一次或实时。默认情况下,电子邮件会发送到你的主要电子邮件地址。对于在组织下托管的模型,默认情况下电子邮件会发送给组织的前 5 名管理员。在这两种情况下(用户或组织),你可以在通知电子邮件字段中设置不同的电子邮件地址。
手动批准访问请求手动批准访问请求

审查访问请求

一旦启用访问请求,无论批准模式是手动还是自动,你都可以完全控制谁可以访问你的模型。你可以通过 UI 或 API 审查和管理请求。

从 UI

你可以通过点击审查访问请求按钮从设置页面审查谁有权访问你的受限模型。这将打开一个包含 3 个用户列表的模态框:

  • 待处理:等待批准以访问你的模型的用户列表。除非你选择了手动批准,否则此列表为空。你可以接受拒绝请求。如果请求被拒绝,用户无法访问你的模型,也无法再次请求访问。
  • 已接受:有权访问你的模型的完整用户列表。无论批准模式是手动还是自动,你都可以随时选择拒绝任何用户的访问。你也可以取消批准,这会将用户移动到待处理列表。
  • 已拒绝:你手动拒绝的用户列表。这些用户无法访问你的模型。如果他们访问你的模型仓库,他们会看到消息你访问此仓库的请求已被仓库作者拒绝
待处理用户列表待处理用户列表

通过 API

你可以使用 API 自动化访问请求的批准。你必须传递一个对受限仓库具有 write 访问权限的 token。要生成令牌,请转到你的用户设置

方法URI描述请求头负载
GET/api/models/{repo_id}/user-access-request/pending检索待处理请求列表。{"authorization": "Bearer $token"}
GET/api/models/{repo_id}/user-access-request/accepted检索已接受请求列表。{"authorization": "Bearer $token"}
GET/api/models/{repo_id}/user-access-request/rejected检索已拒绝请求列表。{"authorization": "Bearer $token"}
POST/api/models/{repo_id}/user-access-request/handle将给定访问请求的状态更改为 status{"authorization": "Bearer $token"}{"status": "accepted"/"rejected"/"pending", "user": "username", "rejectionReason": "可选拒绝原因,将对用户可见(最多 200 个字符)。"}
POST/api/models/{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 授予用户访问权限。

下载访问报告

你可以使用下载用户访问报告按钮下载受限模型的所有访问请求报告。点击它以下载包含用户列表的 json 文件。对于每个条目,你有:

  • user:用户 ID。示例:julien-c
  • fullname:用户在 Hub 上的名称。示例:Julien Chaumond
  • status:请求的状态。"pending""accepted""rejected" 之一。
  • email:用户的电子邮件。
  • time:用户最初提出请求的日期时间。

自定义请求的信息

默认情况下,访问你的受限模型的用户将被要求通过点击同意并发送访问仓库请求按钮来共享他们的联系信息(电子邮件和用户名)。

用户请求访问受限模型用户请求访问受限模型

如果你想收集更多用户信息,可以配置其他字段。此信息可从设置选项卡访问。为此,请在你的模型卡片元数据中添加一个 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_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"
---

以编程方式管理访问请求的示例用例

以下是我们看到在社区中自然出现的几个以编程方式管理受限仓库访问请求的有趣用例。 提醒一下,模型仓库需要设置为手动批准,否则用户会自动获得访问权限。

程序化管理的可能用例包括:

  • 如果你有高级用户请求筛选要求(用于高级合规要求等),或者你希望在 Hub 外部处理用户请求。
    • 这方面的一个例子是 Meta 的 Llama 2 初始发布,用户必须在 Meta 网站上请求访问。
    • 你可以在访问流程中要求用户提供他们的 HF 用户名,然后使用脚本根据你设置的条件在 Hub 上以编程方式接受用户请求。
  • 如果你想根据完成支付流程来条件化对模型的访问(请注意,实际支付流程发生在 Hub 外部)。

作为组织管理受限模型(Enterprise Hub)

Enterprise Hub 订阅者可以创建门控组集合,以一次性授予(或拒绝)对集合中所有模型和数据集的访问。

有关门控组集合的更多信息,请参阅我们的专门文档

作为用户访问受限模型

作为用户,如果你想使用受限模型,需要请求访问权限。这意味着你必须登录 Hugging Face 用户账户。

请求访问只能从浏览器完成。转到 Hub 上的模型,系统会提示你共享你的信息:

用户请求访问受限模型用户请求访问受限模型

通过点击同意,你同意与模型作者共享你的用户名和电子邮件地址。在某些情况下,可能会请求其他字段。为了帮助模型作者决定是否授予你访问权限,请尽可能完整地填写表单。

一旦发送访问请求,有两种可能。如果批准机制是自动的,你立即获得对模型文件的访问权限。否则,请求必须由作者手动批准,这可能需要更多时间。

注意

模型作者完全控制模型访问。特别是,他们可以随时决定阻止你访问模型,而无需事先通知,无论批准机制如何,或者你的请求是否已被批准。

下载文件

要从受限模型下载文件,你需要进行身份验证。在浏览器中,只要你使用账户登录,这是自动的。如果你使用脚本,你需要提供一个用户令牌。在 Hugging Face Python 生态系统(transformersdiffusersdatasets 等)中,你可以使用 huggingface_hub 库登录你的机器,并在终端中运行:

hf auth login

或者,你可以在笔记本或脚本中使用 login() 以编程方式登录:

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

你还可以在库中的大多数加载方法(from_pretrainedhf_hub_downloadload_dataset 等)中直接提供 token 参数。

有关如何登录的更多详细信息,请查看登录指南

限制欧盟用户访问

对于受限模型,你可以添加额外的访问控制层,以专门限制来自欧盟国家的用户。如果你的模型许可证或使用条款禁止在欧盟分发,这很有用。

要启用此功能,请将 extra_gated_eu_disallowed: true 属性添加到模型卡片的元数据中。

重要提示: 此功能只有在你的模型已经受限时才会激活。如果 gated: false 或未设置该属性,此限制将不适用。

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

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