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 (имя пользователя и адрес электронной почты) передаются авторам модели, если только авторы не отказались от их сбора. Авторы моделей также могут добавлять пользовательские поля. Модель, для которой включены запросы на доступ, называется моделью с ограниченным доступом. Запросы на доступ всегда выдаются отдельным пользователям, а не целым организациям. Распространенный сценарий использования моделей с ограниченным доступом — предоставление доступа к ранним исследовательским моделям до их широкого релиза.

Управление моделями с ограниченным доступом в качестве автора модели

Чтобы включить запросы на доступ, перейдите на страницу настроек модели. По умолчанию модель не защищена. Нажмите Enable Access request в правом верхнем углу.

По умолчанию доступ к модели автоматически предоставляется пользователю при его запросе. Это называется автоматическим одобрением. В этом режиме любой пользователь может получить доступ к вашей модели, как только он передаст вам свои персональные данные.

Если вы хотите вручную одобрять пользователей, которым разрешён доступ к вашей модели, установите значение manual approval. В этом случае вы увидите дополнительные параметры:

  • Добавить доступ позволяет найти пользователя и предоставить ему доступ, даже если он не подавал запрос.
  • Параметр Notification frequency позволяет настроить, когда вы будете получать уведомления о новых запросах на доступ. Можно выбрать ежедневные уведомления или уведомления в реальном времени. По умолчанию письмо отправляется на ваш основной адрес электронной почты. Для моделей, размещённых в организации, письма по умолчанию отправляются первым 5 администраторам организации. В обоих случаях (пользователь или организация) вы можете указать другой адрес электронной почты в поле Notifications email.

Обзор запросов на доступ

После включения запросов на доступ вы получаете полный контроль над тем, кто может получить доступ к вашей модели, независимо от того, используется ли ручной или автоматический режим одобрения. Просматривать и управлять запросами можно как через интерфейс, так и через API.

Из интерфейса

Вы можете просмотреть, кто имеет доступ к вашей модели с ограниченным доступом, на странице её настроев, нажав кнопку Review access requests. Откроется модальное окно со списками пользователей:

  • pending: список пользователей, ожидающих одобрения доступа к вашей модели. Этот список пуст, если вы не выбрали manual approval. Вы можете Accept или Reject запрос. Если запрос отклонён, пользователь не сможет получить доступ к вашей модели и не сможет отправить запрос повторно.
  • accepted: полный список пользователей, имеющих доступ к вашей модели. Вы можете в любой момент Reject доступ для любого пользователя, независимо от того, установлен ли ручной или автоматический режим одобрения. Также можно Cancel одобрение, что переместит пользователя в список pending.
  • rejected: список пользователей, которых вы отклонили вручную. Эти пользователи не могут получить доступ к вашим моделям. Если они перейдут в репозиторий вашей модели, они увидят сообщение Ваш запрос на доступ к этому репозиторию был отклонен авторами репозитория.

Через API

Вы можете автоматизировать одобрение запросов на доступ с помощью API. Необходимо передать token с правами write на репозиторий с ограниченным доступом. Чтобы создать токен, перейдите в настройки вашего пользователя.

МетодURIОписаниеЗаголовкиПараметры
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"}

Базовый URL для указанных выше HTTP-эндпоинтов — 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: идентификатор запроса.
  • user: идентификатор пользователя. Пример: 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, полное имя и аватар отправителя запроса. Запросы отображаются с идентификатором запроса и могут быть приняты или отклонены, как и любой другой запрос.
  • Сбор адреса электронной почты: сбор адреса электронной почты профиля Hugging Face запрашивающего пользователя. Требует Сбора имени пользователя.

Вы по-прежнему получаете ответы на ваши пользовательские поля формы, поэтому можете запрашивать там любые необходимые контактные данные. Эти настройки применяются только к новым запросам: существующие запросы сохраняют настройки, действовавшие на момент их создания.

Для моделей в Gating Group Collection эти параметры настраиваются на уровне коллекции.

Настройка запрашиваемой информации

By default, users landing on your gated model will be asked to share their Hugging Face information (email and username, unless you disabled their collection) by clicking the Agree and send request to access repo button.

Если вы хотите собирать дополнительные сведения о пользователях, вы можете настроить дополнительные поля. Эта информация будет доступна на вкладке Settings. Для этого добавьте свойство 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.
    • Примером этого стал первоначальный релиз Llama 2 от Meta, когда пользователям приходилось запрашивать доступ на сайте Meta.
    • Вы можете запросить у пользователей их имя пользователя HF в процессе предоставления доступа, а затем использовать скрипт для программного принятия запросов пользователей на Hub на основе заданного вами набора условий.
  • Если вы хотите ограничить доступ к модели в зависимости от завершения процесса оплаты (обратите внимание, что сам процесс оплаты происходит вне Hub).

Доступ к гейту для членов организации

Для моделей с ограниченным доступом, размещённых в организации, можно также потребовать, чтобы сами участники организации подавали запрос на доступ. На странице настроек модели, в разделе параметров ограничения доступа, включите опцию Также ограничивать доступ для участников {org}.

Когда этот параметр включен, участники организации должны запрашивать доступ к модели, как и любые другие пользователи. Следующие роли обходят запрос и сохраняют прямой доступ:

  • Администраторы организации
  • Пользователь, создавший репозиторий
  • администраторы группы ресурсов, если модель принадлежит группе ресурсов

Все остальные участники должны пройти процесс запроса доступа. Это касается участников с ролью read, contributor или write в организации, а также участников группы ресурсов без роли admin.

Управление моделями с ограниченным доступом в организации (Team & Enterprise)

Подписчики Team & Enterprise могут создать Gating Group Collection, чтобы предоставить (или отказать) доступ ко всем моделям и наборам данных в коллекции одним действием.

Подробнее о Gating Group Collections можно узнать в нашей специальной документации.

Доступ к моделям с ограниченным доступом в качестве пользователя

Если вы хотите использовать модель с ограниченным доступом, вам необходимо запросить к ней доступ. Это означает, что вы должны быть авторизованы в аккаунте Hugging Face.

Запросить доступ можно только из браузера. Перейдите к модели на Hub, и вам будет предложено предоставить свои данные:

Нажимая Agree, вы соглашаетесь на передачу авторам модели информации, которую вы вводите в форму запроса (если это применимо), а также вашего имени пользователя и адреса электронной почты в Hugging Face, если авторы выбрали их сбор. Чтобы помочь авторам модели принять решение о предоставлении вам доступа, постарайтесь заполнить все поля формы как можно полнее.

После отправки запроса на доступ возможны два варианта. Если механизм одобрения автоматический, вы сразу получаете доступ к файлам модели. В противном случае запросы должны быть одобрены вручную авторами, что может занять больше времени.

Авторы модели имеют полный контроль над доступом к ней. В частности, они могут в любой момент заблокировать ваш доступ к модели без предварительного уведомления, независимо от механизма согласования или того, было ли ваше запрос уже одобрено.

Загрузка файлов

Чтобы скачать файлы из модели с ограниченным доступом, требуется аутентификация. В браузере это происходит автоматически, если вы вошли в свой аккаунт. Если вы используете скрипт, вам нужно предоставить токен пользователя. В экосистеме Python Hugging Face (transformers, diffusers, datasets и т. д.) вы можете выполнить вход на своем устройстве с помощью библиотеки huggingface_hub, запустив в терминале:

hf auth login

В качестве альтернативы вы можете выполнить вход в систему программно с помощью login() в ноутбуке или скрипте:

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

Вы также можете передать параметр token в большинство методов загрузки в библиотеках (from_pretrained, hf_hub_download, load_dataset и т. д.) непосредственно из своих скриптов.

Для получения подробной информации о том, как войти в систему, ознакомьтесь с руководством по входу.

Ограничение доступа для пользователей из ЕС

Для моделей с ограниченным доступом можно добавить дополнительный уровень контроля доступа, чтобы конкретно ограничить пользователей из стран Европейского союза. Это полезно, если лицензия или условия использования вашей модели запрещают её распространение в ЕС.

Чтобы включить эту функцию, добавьте свойство extra_gated_eu_disallowed: true в метаданные карточки вашей модели.

Важно: Эта функция будет активирована только в том случае, если ваша модель уже имеет ограничение доступа. Если gated: false или это свойство не задано, данное ограничение не будет применяться.

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

Система определяет местоположение пользователя на основе его IP-адреса.

Update on GitHub