Содержание
- Что такое Hugging Face и из чего состоит платформа
- Что на Hugging Face открыто без токена: прогон hf_probe.py
- Что учитывать при выборе модели на Hugging Face
- Hugging Face Spaces: что в демо-приложениях бесплатно
- Сколько GPU-времени даёт бесплатный ZeroGPU
- Лимиты запросов к Хабу и кредиты на инференс
- Библиотека transformers: как поставить и запустить первую модель
- Как скачать модель или датасет с Hugging Face
- Чек-лист: с чего начать работу с Hugging Face
Hugging Face: что это и что даёт бесплатный аккаунт
Черновик готовит редакция с помощью ИИ. За стандарт издания отвечает главный редактор — Валерий Курземнек.
Материал редакции Зерокодера. Цифры ниже сняты с документации и тарифных страниц Hugging Face 10 сентября 2026 года, ответы сервиса — собственным скриптом. Обновлено: сентябрь 2026.
Hugging Face — это хаб, где лежат открытые модели, наборы данных и демо-приложения, запускаемые прямо в браузере. Счётчик на странице моделей показывает 3 053 980 моделей, счётчик датасетов — 1 040 723 набора. Отдельной нейросети с таким именем не существует: под названием живёт площадка и компания. Каталог и файлы открытых моделей отдаются без регистрации, токен нужен для закрытых репозиториев и для инференса.
Главное:
- Три раздела Хаба: Models — веса моделей, Datasets — наборы данных, Spaces — работающие демо.
- Без токена открыты каталог и файлы открытых репозиториев, закрытая модель отвечает кодом HTTP 401.
- Суточная квота видеокарты в ZeroGPU: 2 минуты без входа, 5 минут бесплатному аккаунту, 40 минут подписке PRO.
- Создать свой Space на Gradio или Docker можно только на платном плане, статические Spaces бесплатны всем.
- Месячные кредиты на инференс: 0,10 доллара бесплатному аккаунту и 2 доллара подписчику PRO.
Что такое Hugging Face и из чего состоит платформа
Hugging Face устроен как хостинг git-репозиториев для машинного обучения: каждая модель, каждый датасет и каждое демо — отдельный репозиторий с историей коммитов. Разделов три, и путать их не стоит, потому что в каждом лежит своё.
| Раздел Хаба | Что лежит внутри | Объём по счётчику вендора |
|---|---|---|
| Models | веса моделей, конфиги, токенизаторы | 3 053 980 |
| Datasets | наборы данных для обучения и тестов | 1 040 723 |
| Spaces | запускаемые демо-приложения | «Browse 1M+ applications» на главной |
Модели на Хабе — чужие. Компания Hugging Face держит инфраструктуру, а веса выкладывают Meta, Alibaba, Black Forest Labs, DeepSeek и тысячи независимых команд. Поэтому вопрос «какая нейросеть у Hugging Face» ответа не имеет: там их три миллиона. Что за модель стоит за конкретным репозиторием — разбирается отдельно, как в тексте про DeepSeek, чьи веса лежат на Хабе обычным публичным репозиторием, или про ГигаЧат Сбера с его собственным бесплатным уровнем.
Границу «бесплатно и по подписке» Hugging Face проводит по вычислениям. Хранение и раздача открытых файлов бесплатны, деньги начинаются там, где крутится процессор или видеокарта. Тот же принцип разобран на примере n8n.
Мини-вывод: Hugging Face — это склад чужих моделей с бесплатным доступом к файлам и платным доступом к вычислениям.
Что на Hugging Face открыто без токена: прогон hf_probe.py
Чтобы не пересказывать документацию, редакция Зерокодера написала датчик hf_probe.py и прогнала его 10 сентября 2026 года на Python 3.14. Скрипт дёргает четыре поверхности Хаба без токена, печатает код ответа и дословный текст ошибки, а потом собирает карточку выбора модели из официального API. Зависимостей нет, копируется целиком:
"""hf_probe.py — датчик Hugging Face: что открыто без токена и что смотреть у модели."""
import sys, json, time, urllib.request, urllib.error
sys.stdout.reconfigure(encoding="utf-8")
UA = {"User-Agent": "hf-probe/1.0 (zerocoder)"}
MODELS = sys.argv[1:] or ["openai-community/gpt2", "Qwen/Qwen3-8B",
"meta-llama/Llama-3.1-8B-Instruct",
"black-forest-labs/FLUX.1-dev",
"deepseek-ai/DeepSeek-V3-0324"]
def call(url, method="GET", data=None, limit=2000):
"""(код, заголовки, тело). limit режет тело: у ошибки нужен текст, у файла — нет."""
h = dict(UA)
if data:
h["Content-Type"] = "application/json"
req = urllib.request.Request(url, data=data, headers=h, method=method)
try:
r = urllib.request.urlopen(req, timeout=45)
return r.status, dict(r.headers), r.read(limit).decode("utf-8", "replace")
except urllib.error.HTTPError as e:
return e.code, dict(e.headers), e.read(limit).decode("utf-8", "replace")
except Exception as e:
return 0, {}, f"{type(e).__name__}: {e}"
def hdr(headers, name):
for k, v in headers.items():
if k.lower() == name:
return v
return ""
SURFACES = [
("каталог моделей", "GET",
"https://huggingface.co/api/models?limit=1", None),
("файл открытой модели", "GET",
"https://huggingface.co/openai-community/gpt2/resolve/main/config.json", None),
("файл закрытой модели", "GET",
"https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct/resolve/main/config.json", None),
("свой профиль", "GET",
"https://huggingface.co/api/whoami-v2", None),
("роутер инференса", "POST",
"https://router.huggingface.co/v1/chat/completions",
json.dumps({"model": "deepseek-ai/DeepSeek-V3-0324",
"messages": [{"role": "user", "content": "ping"}]}).encode()),
]
print("== что отдаёт Hugging Face БЕЗ токена ==")
for name, method, url, body in SURFACES:
t0 = time.time()
code, headers, text = call(url, method, body)
msg = hdr(headers, "x-error-message") or hdr(headers, "x-error-code")
if not msg and code >= 400 and text.strip().startswith("{"):
try:
msg = json.loads(text).get("error", "")
except Exception:
msg = ""
print(f" HTTP {code:<4} {(time.time()-t0)*1000:5.0f} мс {name}"
+ (f"\n {msg}" if msg else ""))
print("\n== карточка выбора модели (поля из официального API) ==")
print(f" {'модель':<38} {'gated':<7} {'лицензия':<18} {'ГБ':>7} {'скачиваний':>11}")
for mid in MODELS:
code, _, text = call(f"https://huggingface.co/api/models/{mid}", limit=200_000)
if code != 200:
print(f" {mid:<38} HTTP {code}")
continue
d = json.loads(text) if text.strip().startswith("{") else {}
lic = next((t.split(":", 1)[1] for t in d.get("tags", [])
if t.startswith("license:")), "—")
gb = (d.get("usedStorage") or 0) / 1024**3
print(f" {mid:<38} {str(d.get('gated')):<7} {lic:<18} {gb:7.1f} {d.get('downloads', 0):11,}")
Первая половина прогона, дословно:
== что отдаёт Hugging Face БЕЗ токена ==
HTTP 200 333 мс каталог моделей
HTTP 200 819 мс файл открытой модели
HTTP 401 286 мс файл закрытой модели
Access to model meta-llama/Llama-3.1-8B-Instruct is restricted. You must
have access to it and be authenticated to access it. Please log in.
HTTP 401 291 мс свой профиль
Invalid username or password.
HTTP 401 193 мс роутер инференса
Читается это так. Каталог моделей и файлы открытого репозитория Hugging Face отдаёт анониму: скачать веса gpt2 или Qwen можно вообще без аккаунта. Три отказа разные по смыслу: у закрытой модели сервер добавляет заголовок X-Error-Code: GatedRepo, профиль и роутер инференса просто требуют токен.
Контрольный прогон нужен, чтобы отличить отсутствие доступа от опечатки. Запуск hf_probe.py openai-community/gpt2 zerocoder/model-kotorogo-net на несуществующем репозитории вернул HTTP 401, а вовсе не 404. Вывод практический: код 401 сам по себе не говорит, что модель закрыта анкетой — ровно так же Hugging Face отвечает на неверно набранное имя.
Честная граница замера: выход в интернет у нашей машины европейский (IP 130.17.14.168, Fornex Hosting, Швеция), поэтому прогон судит о поведении Хаба и ничего не утверждает про доступ из российской сети. Скрипт затем и приведён целиком, чтобы вы сняли те же пять строк на своём канале.
Мини-вывод: hf_probe.py за пять секунд показывает, где у Hugging Face проходит граница анонимного доступа, и отличает закрытый репозиторий от опечатки.
Что учитывать при выборе модели на Hugging Face
Вторая половина того же прогона собирает карточку выбора: четыре поля из официального API, по которым видно, скачается ли модель и во что она обойдётся по диску.
модель gated лицензия ГБ скачиваний
openai-community/gpt2 False mit 11.2 14,981,665
Qwen/Qwen3-8B False apache-2.0 42.3 13,046,829
meta-llama/Llama-3.1-8B-Instruct manual llama3.1 29.9 5,630,964
black-forest-labs/FLUX.1-dev auto other 64.7 807,843
deepseek-ai/DeepSeek-V3-0324 False mit 641.3 934,873
Поле gated принимает три значения, и разница между ними стоит времени. Справка Hugging Face объясняет: репозиторий с включёнными запросами доступа называется gated, при автоматическом подтверждении «access to the model is automatically granted to the user when requesting it», при ручном владелец одобряет каждого руками. В таблице выше auto у FLUX.1-dev означает анкету и мгновенный доступ, manual у Llama-3.1-8B-Instruct — ожидание решения Meta. Та же справка добавляет ограничение, о котором узнают поздно: «Requesting access can only be done from your browser» — из скрипта запрос доступа не отправить.
Поле usedStorage переводит выбор в гигабайты диска до скачивания. Разброс на пяти моделях — от 11,2 ГБ у gpt2 до 641,3 ГБ у DeepSeek-V3-0324, то есть флагман весит в 57 раз больше учебной модели. Лицензия читается из тегов репозитория: mit и apache-2.0 разрешают коммерческое использование, llama3.1 и other требуют открыть текст лицензии и прочитать его. Столбец скачиваний — счётчик скользящий, у повторного прогона он будет свой: цифры выше сняты 10 сентября 2026 года.
Мини-вывод: перед скачиванием модели с Hugging Face стоит посмотреть четыре поля — gated, лицензию, вес и число загрузок, и все четыре отдаёт публичный API без токена.
Hugging Face Spaces: что в демо-приложениях бесплатно
Spaces — это раздел с работающими демо: модель, обёрнутая в веб-интерфейс, запускается по ссылке без установки. Документация Hugging Face перечисляет три варианта сборки: «The Hub offers three SDK options: Gradio, Docker and static HTML».
Правило создания своего Space жёстче, чем описывают обзоры. Дословно со страницы Spaces Overview: «Static Spaces are free for everyone. Gradio and Docker Spaces run on compute and require a paid plan to create: PRO for personal accounts, Team or Enterprise for organizations. Free personal accounts in good standing can still host up to 2 Gradio Spaces running on ZeroGPU». То есть статическая страница бесплатна всем, полноценное демо на Gradio требует подписки, и бесплатному личному аккаунту оставлено ровно два исключения на ZeroGPU.
Ограничения бесплатного железа тоже прописаны числами: «Each Spaces environment is limited to 16GB RAM, 2 CPU cores and 50GB of (not persistent) disk space by default». Диск непостоянный, всё записанное теряется при перезапуске. Space на бесплатном железе засыпает: «On free hardware, your Space will “go to sleep” and stop executing after a period of time if unused». Сеть урезана до трёх портов — 80, 443 и 8080, остальные запросы блокируются.
Мини-вывод: смотреть и запускать чужие Spaces на Hugging Face можно бесплатно и без аккаунта, хостинг своего демо на Gradio открыт подписчикам, и бесплатному аккаунту оставлены два Space на ZeroGPU.
Сколько GPU-времени даёт бесплатный ZeroGPU
ZeroGPU — общая видеокарта, которую Hugging Face выдаёт демо только на время расчёта. Документация называет железо прямо: «It dynamically allocates and releases NVIDIA RTX Pro 6000 Blackwell GPUs as needed». Квота считается минутами GPU в сутки и зависит от типа аккаунта.
| Тип аккаунта | Суточная квота GPU | Приоритет в очереди |
|---|---|---|
| Без входа в аккаунт | 2 минуты | низкий |
| Бесплатный аккаунт | 5 минут | средний |
| Подписка PRO | 40 минут, продлеваемых | высший |
| Участник организации Team | 40 минут, продлеваемых | высший |
| Участник организации Enterprise | 60 минут, продлеваемых | высший |
Счётчик обнуляется не в полночь: «Included daily quota resets exactly 24 hours after your first GPU usage». Остаток квоты влияет на место в очереди, поэтому под конец суток чужое демо отвечает медленнее. Докупить время могут только платные аккаунты, по ставке «$1 per 10 minutes of GPU time».
Хостинг своих ZeroGPU-демо ограничен отдельно: бесплатному личному аккаунту разрешено два, и то при условии «verified email, account older than 30 days», подписке PRO — десять, организации — пятьдесят.
Мини-вывод: пять минут видеокарты в сутки — реальный бесплатный уровень ZeroGPU: хватает попробовать чужое демо, дальше начинается очередь, где остаток квоты решает приоритет.
Лимиты запросов к Хабу и кредиты на инференс
Помимо GPU у Hugging Face есть второй ограничитель — частота запросов. Документация раскладывает трафик на три корзины: обращения к API, резолверы файлов (адреса с /resolve/ внутри, ими тянут веса библиотеки transformers и vLLM и приложения вроде LM Studio, Jan и Ollama) и обычные веб-страницы. Все квоты считаются пятиминутными фиксированными окнами.
| Тип аккаунта | API | Резолверы файлов | Веб-страницы |
|---|---|---|---|
| Аноним (по IP-адресу) | 500 | 3 000 | 100 |
| Бесплатный аккаунт | 1 000 | 5 000 | 200 |
| Подписка PRO | 2 500 | 12 000 | 400 |
| Организация Enterprise | 6 000 | 50 000 | 600 |
При превышении Хаб отдаёт код 429, а первым лекарством документация называет токен: «make sure you always pass a HF_TOKEN, and it is passed downstream to all libraries or applications that download stuff». По API и веб-страницам зарегистрированный получает вдвое больше анонима, по резолверам файлов — 5 000 против 3 000. Стоит это одной регистрации.
Отдельная валюта — кредиты на Inference Providers, платный запуск моделей на чужом железе через Хаб. Бесплатному аккаунту начисляют «$0.10, subject to change» в месяц, подписке PRO — 2 доллара, организациям Team и Enterprise — 2 доллара на место. Наценки Hugging Face не берёт: «Hugging Face charges you the same rates as the provider, with no additional fees». Старый бесплатный Inference API никуда не делся, он переименован — «This service used to be called “Inference API (serverless)” prior to Inference Providers» — и с июля 2025 года сосредоточен в основном на процессорных задачах: эмбеддинги, классификация, небольшие модели вроде BERT и GPT-2.
Подписка PRO стоит 9 долларов в месяц, Team — 20 долларов за пользователя, Enterprise — 50. Почасовое железо для Spaces начинается с бесплатного CPU Basic (2 vCPU, 16 ГБ), дальше CPU Upgrade за 0,03 доллара в час, Nvidia T4 small за 0,40, L4 за 0,80 и A100 large за 2,50 доллара в час. Хранение оплачивается по терабайтам: 12 долларов за терабайт публичных репозиториев и 18 за терабайт приватных в месяц.
Ту же границу другой вендор описывает иначе — см. официальные лимиты Gemini.
Мини-вывод: бесплатный уровень Hugging Face щедр на файлы и скуп на вычисления — 0,10 доллара кредитов в месяц и 5 минут GPU в сутки.
Библиотека transformers: как поставить и запустить первую модель
Transformers — главная библиотека экосистемы Hugging Face. Вендор описывает её как каркас определения моделей: «Transformers acts as the model-definition framework for state-of-the-art machine learning models in text, computer vision, audio, video, and multimodal models, for both inference and training». На Хабе под неё лежит «over 1M+ Transformers model checkpoints».
Установка занимает одну строку. Документация Transformers ставит библиотеку сразу с PyTorch командой uv pip install "transformers[torch]", обычным пакетным менеджером это pip install "transformers[torch]". Проверку установки вендор предлагает однострочником, который заодно работает минимальным примером запуска модели:
python -c "from transformers import pipeline; print(pipeline('sentiment-analysis')('hugging face is the best'))"
Редакция Зерокодера прогнала эту строку 10 сентября 2026 года на Python 3.14.3, transformers 5.17.0 и torch 2.11.0+cpu. Вывод дословно:
[transformers] No model was supplied, defaulted to distilbert/distilbert-base-uncased-finetuned-sst-2-english and revision 714eb0f.
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
[{'label': 'POSITIVE', 'score': 0.999839186668396}]
Три вещи видны прямо в выводе. Модель никто не называл — pipeline подставил distilbert/distilbert-base-uncased-finetuned-sst-2-english и зафиксировал ревизию 714eb0f, а веса скачались с Хаба без токена. Библиотека сама просит выставить HF_TOKEN ради лимитов и скорости — та же рекомендация, что на странице лимитов Хаба. И третье: у нас score 0.999839186668396, в документации на той же строке стоит 0.9998704791069031, так что сверять прогоны стоит по метке POSITIVE, хвост дроби гуляет от версии и железа.
Когда нужен контроль над загрузкой весов, вместо pipeline берут классы Auto. Минимальная пара из документации Transformers:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf", dtype="auto", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b-hf")
model_inputs = tokenizer(["The secret to baking a good cake is "], return_tensors="pt").to(model.device)
Метод from_pretrained тянет веса и конфиг с Хаба в класс модели и в токенизатор, device_map="auto" раскладывает веса по самому быстрому доступному устройству, dtype="auto" поднимает их в том типе, в котором они лежат в репозитории. Модель из этого примера закрыта анкетой: прогон hf_probe.py по meta-llama/Llama-2-7b-hf даёт gated: manual, лицензию llama2 и 50,2 ГБ весов, поэтому без токена код упрётся в HTTP 401.
Мини-вывод: pip install "transformers[torch]" и одна строка с pipeline дают работающий запуск модели, а AutoModelForCausalLM и AutoTokenizer через from_pretrained нужны там, где важно управлять устройством и типом весов.
Как скачать модель или датасет с Hugging Face
Скачивать можно тремя путями. Через браузер — кнопкой на вкладке Files репозитория. Через консоль — утилита называется hf и ставится вместе с пакетом: pip install -U "huggingface_hub", дальше hf download gpt2 config.json для одного файла и hf download HuggingFaceH4/ultrachat_200k --repo-type dataset для целого датасета. Из кода — функцией load_dataset("lhoestq/demo1") библиотеки datasets, причём версию стоит закреплять параметром revision, иначе завтрашний прогон возьмёт другие данные. Соседние библиотеки делят работу так: datasets грузит наборы данных, diffusers отвечает за диффузионные модели, huggingface_hub связывает код с Хабом.
Токен создаётся в настройках аккаунта и бывает трёх ролей: fine-grained — доступ к конкретным репозиториям, read — только чтение, write — запись. Вход в консоль делается командой hf auth login. В git токен подставляется вместо пароля, в вызовы Inference Providers уходит bearer-токеном. Для закрытых моделей это единственный способ: доступ запрашивается из браузера, а скачивается уже скриптом с токеном.
Мини-вывод: связка pip install -U "huggingface_hub", hf auth login и hf download закрывает загрузку файлов с Hugging Face, а load_dataset — работу с наборами данных.
Чек-лист: с чего начать работу с Hugging Face
- Запустите
hf_probe.pyи посмотрите, что ваш канал получает от Хаба без токена. - Проверьте установку одной строкой:
pip install "transformers[torch]"и однострочный запускpipeline('sentiment-analysis'). - Перед скачиванием проверьте поле gated:
Falseкачается сразу,autoтребует анкеты,manual— ожидания владельца. - Сверьте вес репозитория из поля usedStorage с местом на диске: разброс от 11,2 до 641,3 ГБ на пяти популярных моделях.
- Прочитайте лицензию из тегов:
mitиapache-2.0проще,otherпридётся открывать и читать. - Заведите аккаунт ради лимитов: анониму 500 запросов к API за пять минут, зарегистрированному 1 000.
- Планируете своё демо — учтите, что Gradio-Space требует подписки, а бесплатному аккаунту оставлено два ZeroGPU-исключения.
- Считайте GPU-время: 5 минут в сутки на бесплатном аккаунте, продление доступно только платным по ставке 1 доллар за 10 минут.
- Закрепляйте версию модели и датасета параметром
revision, чтобы прогон воспроизводился.
