Практика работы с предобученными моделями
Hugging Face Hub — каталог тысяч чекпоинтов с единым API: from_pretrained, pipeline, Trainer. Эта статья — практический минимум для русского и multilingual NLP без обучения с нуля.
Fine-tuning — статья 4. LLM-чаты и RAG — модели и инструменты, разработка ИИ.
Установка и первый pipeline
pip install transformers torch sentencepiece accelerate
from transformers import pipeline
clf = pipeline(
"sentiment-analysis",
model="blanchefort/rubert-base-cased-sentiment",
)
print(clf("Отличный сервис, быстро ответили поддержке."))
# [{'label': 'POSITIVE', 'score': 0.98}]
pipeline скрывает tokenize → model → postprocess. Для кастомной логики вызывают модель напрямую.
Русскоязычные и multilingual чекпоинты
| Модель | Назначение | Размер |
|---|---|---|
DeepPavlov/rubert-base-cased | Encoder, классификация, NER base | ~178M |
cointegrated/rubert-tiny2 | Лёгкий encoder, edge | ~29M |
ai-forever/ruBert-large | Качество на GLUE-ru | ~435M |
ai-forever/sbert_large_nlu_ru | Sentence embeddings, semantic search | ~435M |
ai-forever/ruT5-base | Seq2seq, summarization | ~220M |
ai-forever/ruGPT-3.5-13B | Генерация (тяжёлый inference) | 13B |
Qwen/Qwen2.5-7B-Instruct | Multilingual chat | 7B |
intfloat/multilingual-e5-large | Embeddings RU+EN | ~560M |
Проверяйте лицензию (apache-2.0, mit, custom) и card на Hub — domain, метрики, ограничения.
Явный inference
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
name = "cointegrated/rubert-tiny2"
tokenizer = AutoTokenizer.from_pretrained(name)
model = AutoModelForSequenceClassification.from_pretrained(name)
model.eval()
text = "Продукт разочаровал, верну деньги."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
logits = model(**inputs).logits
pred = logits.argmax(dim=-1).item()
Для NER — AutoModelForTokenClassification + выравнивание subword → word (word_ids в fast tokenizer).
Embeddings и semantic search
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("ai-forever/sbert_large_nlu_ru")
emb = model.encode(["как оформить возврат", "политика возврата товара"])
# cosine similarity между emb[0] и emb[1] — для поиска по FAQ / RAG
Связь с векторными БД — NoSQL / embeddings, RAG.
spaCy + transformers
Для production-NER удобен spaCy 3 с transformer pipeline:
import spacy
nlp = spacy.load("ru_core_news_lg") # или ru_core_news_sm для легче
doc = nlp("ООО Ромашка заключила контракт в Казани.")
for ent in doc.ents:
print(ent.text, ent.label_)
Под капотом может быть CNN или transformer в зависимости от пакета модели.
Оптимизация inference
| Подход | Когда |
|---|---|
| ONNX Runtime | Стабильный CPU/GPU без PyTorch в prod |
optimum + quantization | int8 на CPU |
| Batching | Много запросов — dynamic batch |
| Distilled model | Latency < 50 ms на CPU |
| GPU + half() | fp16/bf16 на NVIDIA |
Микро-ML в каждом сервисе — статья про микро-ML.
Чек-лист перед продом
- Версия tokenizer и model зафиксированы (pin commit на Hub).
- Max length и padding согласованы с обучением.
- Preprocessing текста (lower case, emoji) как в train.
- Мониторинг drift по распределению входов и confidence.
- Fallback при низком score — эскалация человеку.
- GDPR / 152-ФЗ — логирование без PII или с маскированием.
Дальше
- Дообучение на задачи NLP
- Облачные Cognitive Services — альтернатива self-host
- Мультимодальные трансформеры
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Обработка естественного языка — задачи, корпуса, токенизация, метрики и типичный pipeline от сырого текста до модели. Transformer — attention, encoder и decoder, positional encoding, multi-head attention и отличия encoder-only, decoder-only и seq2seq. Минимальная реализация Transformer encoder block на PyTorch — attention, FFN, residual, LayerNorm и учебный forward pass. Fine-tuning трансформеров — classification head, token classification, seq2seq, LoRA, PEFT и выбор стратегии под объём данных. Семейства Transformer — BERT, GPT, T5, RoBERTa, ALBERT, DistilBERT, Longformer и выбор архитектуры под задачу NLP. Хронология NLP от ELMo и ULMFiT до GPT-3 — pre-training, transfer learning, бенчмарки GLUE и SuperGLUE, scaling laws. ViT, DETR, Whisper, CLIP и Audio Spectrogram Transformer — как attention переносится с текста на изображения и аудио. Краткие итоги раздела "Трансформеры и NLP" — задачи NLP, attention, архитектуры, fine-tuning и практика с предобученными моделями. Чек-лист самопроверки по разделу Трансформеры и NLP — вопросы для закрепления материала.NLP и работа с текстом
Что такое трансформер — архитектура и особенности
Устройство трансформеров — теория и практика с нуля
Дообучение моделей на конкретные задачи NLP
Обзор и разбор трансформерных архитектур
Современные тренды в NLP (2018–2021)
Трансформеры в разных модальностях — текст, зрение, звук
Трансформеры и NLP — итоги
Трансформеры и NLP — чек-лист