🗺️ Гид23 мин20 января 2026 г.

Hugging Face: полный гид по платформе для AI

Всё о Hugging Face: хаб моделей, Spaces, библиотека Transformers, Inference API, fine-tuning. GitHub для мира AI.

Hugging Face — это «GitHub для искусственного интеллекта». Платформа, на которой хранятся более 800 000 моделей, 200 000 датасетов и 300 000 демо-приложений. Если вы работаете с AI — вы неизбежно окажетесь на Hugging Face. В этом гиде — как пользоваться платформой на максимум.

Что такое Hugging Face

Hugging Face — это одновременно:

  • Hub — хранилище моделей, датасетов и приложений (как GitHub для кода)
  • Библиотеки — Transformers, Diffusers, Datasets, Tokenizers (Python-пакеты)
  • Spaces — хостинг демо-приложений с бесплатным GPU
  • Inference API — API для запуска моделей без своего сервера
  • Сообщество — форумы, обсуждения, соревнования

Компания основана в 2016 году, начинала как чатбот для подростков, а сегодня оценивается в $4.5 миллиарда и является ключевой инфраструктурой мирового AI-сообщества.

Hub: навигация и поиск моделей

Поиск моделей

На хабе (huggingface.co/models) хранятся модели для любых задач. Навигация:

  • По задаче (Task): Text Generation, Image Classification, Translation, Text-to-Image, Automatic Speech Recognition и ещё 30+ категорий
  • По библиотеке: Transformers, Diffusers, GGUF, ONNX, JAX, TensorFlow
  • По языку: фильтр по поддерживаемым языкам (включая русский)
  • По лицензии: Apache 2.0, MIT, CC-BY, и др.
  • По количеству загрузок: сортировка по популярности

Карточка модели (Model Card)

Каждая модель имеет README.md с информацией:

  • Описание модели и архитектура
  • Результаты бенчмарков
  • Примеры использования (код)
  • Лицензия и ограничения
  • Обучающие данные

Скачивание моделей

# Через CLI
pip install huggingface_hub
huggingface-cli download meta-llama/Llama-3.2-8B-Instruct

# Конкретный файл
huggingface-cli download TheBloke/Llama-2-7B-GGUF   --include "llama-2-7b.Q4_K_M.gguf"   --local-dir ./models

# Через Python
from huggingface_hub import hf_hub_download
path = hf_hub_download(
    repo_id="meta-llama/Llama-3.2-8B-Instruct",
    filename="config.json"
)

Загрузка своей модели

from huggingface_hub import HfApi

api = HfApi()

# Создать репозиторий
api.create_repo("my-awesome-model", private=False)

# Загрузить файлы
api.upload_folder(
    folder_path="./my_model",
    repo_id="username/my-awesome-model",
    repo_type="model",
)

Spaces: бесплатный GPU для демо

Spaces — это хостинг для интерактивных приложений. Вы можете развернуть Gradio/Streamlit приложение с бесплатным CPU, а при необходимости — с платным GPU.

Создание Space

  1. Зайдите на huggingface.co/new-space
  2. Выберите SDK: Gradio (рекомендуется), Streamlit или Docker
  3. Выберите hardware: Free CPU, GPU T4 ($0.06/ч), A10G ($0.60/ч), A100 ($4.13/ч)
  4. Создайте app.py и requirements.txt

Пример Space (Gradio + модель)

import gradio as gr
from transformers import pipeline

# Загружаем модель один раз
generator = pipeline("text-generation", model="Qwen/Qwen2.5-0.5B-Instruct")

def generate(prompt, max_length=200):
    result = generator(
        prompt,
        max_new_tokens=max_length,
        temperature=0.7,
        do_sample=True,
    )
    return result[0]["generated_text"]

demo = gr.Interface(
    fn=generate,
    inputs=[
        gr.Textbox(label="Промпт", lines=3),
        gr.Slider(50, 500, value=200, label="Макс. длина"),
    ],
    outputs=gr.Textbox(label="Результат", lines=10),
    title="Генератор текста",
    description="Демо модели Qwen 2.5 0.5B",
)

demo.launch()

Файл requirements.txt:

transformers
torch
gradio

Полезные Spaces

  • Open LLM Leaderboard — рейтинг всех открытых LLM по бенчмаркам
  • LMSYS Chatbot Arena — слепое сравнение чатботов
  • Flux.1 Demo — генерация изображений через Flux
  • Whisper Web — транскрипция аудио в браузере

Библиотека Transformers

Transformers — основная Python-библиотека Hugging Face. Единый интерфейс для работы с тысячами моделей.

Установка

pip install transformers torch

Pipeline: самый простой способ

from transformers import pipeline

# Генерация текста
gen = pipeline("text-generation", model="Qwen/Qwen2.5-7B-Instruct")
result = gen("Что такое machine learning?", max_new_tokens=200)
print(result[0]["generated_text"])

# Перевод
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ru-en")
print(translator("Привет, как дела?"))

# Классификация настроения
sentiment = pipeline("sentiment-analysis",
                     model="blanchefort/rubert-base-cased-sentiment")
print(sentiment("Этот фильм мне очень понравился!"))

# Распознавание речи
whisper = pipeline("automatic-speech-recognition",
                   model="openai/whisper-large-v3")
result = whisper("audio.mp3")
print(result["text"])

Прямое использование модели

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_name = "Qwen/Qwen2.5-7B-Instruct"

tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.bfloat16,
    device_map="auto",  # автоматически на GPU
)

messages = [
    {"role": "system", "content": "Ты полезный ассистент. Отвечай на русском."},
    {"role": "user", "content": "Объясни, что такое RAG в AI"}
]

text = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=500,
        temperature=0.7,
        do_sample=True,
    )

response = tokenizer.decode(outputs[0][inputs.input_ids.shape[-1]:],
                            skip_special_tokens=True)
print(response)

Inference API

Inference API позволяет использовать модели через HTTP-запросы без своего сервера. Бесплатный тариф — с ограничениями по скорости, платный — для production.

import requests

API_URL = "https://api-inference.huggingface.co/models/Qwen/Qwen2.5-7B-Instruct"
headers = {"Authorization": "Bearer hf_ваш_токен"}

response = requests.post(API_URL, headers=headers, json={
    "inputs": "Что такое квантовые вычисления?",
    "parameters": {
        "max_new_tokens": 200,
        "temperature": 0.7,
    }
})

print(response.json())

Стоимость

ТарифЦенаОграничения
Бесплатный$0Rate limits, только популярные модели, CPU
Pro ($9/мес)$9/месБольший rate limit, приоритетная очередь
Inference Endpointsот $0.06/чВыделенный GPU, любая модель, no rate limits

Fine-tuning с Trainer

Hugging Face Trainer — высокоуровневый API для дообучения моделей. Скрывает сложность обучения за простым интерфейсом.

from transformers import (
    AutoTokenizer,
    AutoModelForSequenceClassification,
    TrainingArguments,
    Trainer,
)
from datasets import load_dataset

# Загрузка датасета и модели
dataset = load_dataset("imdb")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained(
    "bert-base-uncased", num_labels=2
)

def tokenize(examples):
    return tokenizer(
        examples["text"], padding="max_length",
        truncation=True, max_length=512
    )

tokenized = dataset.map(tokenize, batched=True)

# Настройка обучения
training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=8,
    per_device_eval_batch_size=16,
    warmup_steps=500,
    weight_decay=0.01,
    logging_dir="./logs",
    eval_strategy="epoch",
    save_strategy="epoch",
    load_best_model_at_end=True,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized["train"].select(range(5000)),
    eval_dataset=tokenized["test"].select(range(1000)),
)

trainer.train()

# Сохранение и загрузка на Hub
trainer.save_model("./my-fine-tuned-model")
trainer.push_to_hub("my-imdb-classifier")

Fine-tuning LLM (QLoRA)

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset
import torch

# 4-bit квантизация для экономии памяти
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
)

model_name = "Qwen/Qwen2.5-7B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
    model_name, quantization_config=bnb_config
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# LoRA конфигурация
lora_config = LoraConfig(
    r=16,
    lora_alpha=32,
    lora_dropout=0.05,
    target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
    task_type="CAUSAL_LM",
)

model = prepare_model_for_kbit_training(model)
model = get_peft_model(model, lora_config)

# Датасет (пример с инструкциями)
dataset = load_dataset("json", data_files="training_data.jsonl")

# Обучение
training_config = SFTConfig(
    output_dir="./qwen-finetuned",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    gradient_accumulation_steps=4,
    learning_rate=2e-4,
    max_seq_length=2048,
    logging_steps=10,
    save_steps=100,
)

trainer = SFTTrainer(
    model=model,
    args=training_config,
    train_dataset=dataset["train"],
    tokenizer=tokenizer,
)

trainer.train()

Сообщество и тренды

Что отслеживать

  • Daily Papers (huggingface.co/papers) — ежедневная подборка важных AI-статей
  • Open LLM Leaderboard — актуальный рейтинг открытых моделей
  • Trending Models — самые популярные модели за неделю
  • Blog (huggingface.co/blog) — анонсы и туториалы от команды HF

Тренды 2026

  • GGUF доминирует — формат стал стандартом для локального запуска
  • Мультимодальные модели — текст + изображения + аудио в одной модели
  • Специализированные модели — fine-tune для медицины, права, финансов
  • Inference Endpoints — managed hosting моделей набирает популярность
  • Synthetic data — генерация обучающих данных для fine-tuning

Практические советы

  • Всегда читайте Model Card — перед скачиванием модели проверяйте лицензию, ограничения и бенчмарки
  • Используйте кэширование — Hugging Face кэширует модели в ~/.cache/huggingface/. Очищайте периодически, модели могут занимать сотни ГБ
  • Токен авторизации — для доступа к gated-моделям (Llama, Gemma) нужен токен и принятие лицензии на сайте
  • Git LFS — большие файлы моделей хранятся через Git LFS. При клонировании git lfs install обязателен
  • Приватные модели — можно хранить модели приватно (бесплатно). Полезно для корпоративных fine-tune

FAQ

Hugging Face бесплатный?

Хаб, библиотеки и Spaces (CPU) — бесплатные. Inference API (бесплатный тариф) — с ограничениями. Платные: GPU Spaces ($0.06–4.13/ч), Pro ($9/мес), Enterprise (от $20/мес за пользователя).

Нужна ли регистрация?

Для скачивания публичных моделей — нет. Для gated-моделей (Llama, Gemma), загрузки своих моделей и Spaces — нужна бесплатная регистрация.

Чем Hugging Face отличается от GitHub?

GitHub хранит код. Hugging Face хранит модели, датасеты и демо-приложения. Технически это тоже Git-репозитории, но оптимизированные для больших файлов (модели по 10–100 ГБ) через Git LFS.

Можно ли использовать из России?

Да, Hugging Face доступен из России без VPN. Скорость скачивания моделей — стандартная, без ограничений.

Понравилась статья?

Поделитесь с коллегами и друзьями

Читайте также

Хотите больше таких статей?

Подпишитесь на еженедельный дайджест — новые инструменты, промпты и гиды каждую неделю

Подписаться бесплатно
ещё 3
Сравнить (0)