受限模型
为了更好地控制模型的使用方式,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"} |
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_requests`、`list_accepted_access_requests` 和 `list_rejected_access_requests` 列出模型的访问请求。您还可以使用 `accept_access_request`、`cancel_access_request`、`reject_access_request` 接受、取消和拒绝访问请求。最后,您可以使用 `grant_access` 授予用户访问权限。
下载访问报告
您可以使用 **下载用户访问报告** 按钮下载受限模型的所有访问请求的报告。点击它下载包含用户列表的 json 文件。对于每个条目,您都有
- **用户**:用户 ID。例如:julien-c。
- **全名**:用户在 Hub 上的姓名。例如:Julien Chaumond。
- **状态**:请求的状态。可以是 `“pending”`、`“accepted”` 或 `“rejected”`。
- **电子邮件**:用户的电子邮件。
- **时间**:用户最初发出请求时的日期时间。
自定义请求信息
默认情况下,访问您受限模型的用户将被要求通过点击 **同意并发送访问存储库的请求** 按钮来共享其联系信息(电子邮件和用户名)。
如果您想收集更多用户信息,可以配置额外的字段。这些信息可以通过**设置**选项卡访问。为此,请在您的模型卡元数据中添加一个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 发布了一个关于流程的视频,以及关于如何实现它的提示。
作为用户访问受限模型
作为用户,如果您想使用受限模型,则需要请求访问权限。这意味着您必须登录到 Hugging Face 用户帐户。
只能通过浏览器请求访问权限。转到 Hub 上的模型,系统会提示您共享您的信息。
点击**同意**,即表示您同意与模型作者共享您的用户名和电子邮件地址。在某些情况下,可能会请求其他字段。为了帮助模型作者决定是否授予您访问权限,请尽量完整填写表单。
发送访问请求后,有两种可能性。如果批准机制是自动的,您将立即获得对模型文件的访问权限。否则,请求必须由作者手动批准,这可能需要更多时间。
模型作者完全控制模型访问权限。特别是,他们可以随时决定阻止您访问模型,恕不另行通知,无论批准机制如何,或者您的请求是否已获批准。
下载文件
要下载受限模型中的文件,您需要进行身份验证。在浏览器中,只要您使用您的帐户登录,此操作就是自动的。如果您使用的是脚本,则需要提供用户令牌。在 Hugging Face Python 生态系统(transformers
、diffusers
、datasets
等)中,您可以使用huggingface_hub
库在您的终端中登录您的机器:
huggingface-cli login
或者,您可以在笔记本或脚本中使用login()
以编程方式登录。
>>> from huggingface_hub import login
>>> login()
您还可以将token
参数直接从您的脚本传递到库中的大多数加载方法(from_pretrained
、hf_hub_download
、load_dataset
等)。
有关如何登录的更多详细信息,请查看登录指南。
< > 在 GitHub 上更新