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
- Зайдите на huggingface.co/new-space
- Выберите SDK: Gradio (рекомендуется), Streamlit или Docker
- Выберите hardware: Free CPU, GPU T4 ($0.06/ч), A10G ($0.60/ч), A100 ($4.13/ч)
- Создайте
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())
Стоимость
| Тариф | Цена | Ограничения |
|---|---|---|
| Бесплатный | $0 | Rate 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. Скорость скачивания моделей — стандартная, без ограничений.