Учебник Hugging Face и Transformers для начинающих
Hugging Face — это центр современной open-source экосистемы машинного обучения. Здесь живут сотни тысяч предобученных моделей, тысячи датасетов и удобные библиотеки, которые превращают сложную работу с нейросетями в несколько строк кода. В этом курсе вы разберётесь, как устроен Hugging Face Hub, научитесь запускать готовые модели через pipeline(), поймёте, что такое токенизаторы и трансформеры, освоите дообучение моделей через Trainer API, работу с датасетами, эмбеддинги для семантического поиска, диффузионные модели и публикацию своих моделей. Курс рассчитан на тех, кто уже знает Python и хочет перейти от теории нейросетей к практическому применению. Мы свяжем материал с курсами по LLM, NLP, PyTorch, глубокому обучению и Stable Diffusion, чтобы вы видели цельную картину.
Курс «Hugging Face и Transformers» состоит из 6 разделов и 22 уроков: Знакомство с Hugging Face, Pipeline и токенизаторы, Спецтокены и модели, Датасеты, инференс и дообучение, Публикация, оптимизация и эмбеддинги и Диффузия, демо и ответственность. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Знакомство с Hugging Face
- Экосистема Hugging Face: зачем она нужна
Что такое Hugging Face, какие библиотеки и сервисы входят в экосистему и какую проблему они решают для ML-разработчика.
- Hub: модели, датасеты и Spaces
Как устроен Hugging Face Hub: карточки моделей, фильтры по задачам, датасеты и интерактивные демо Spaces.
- Предобученные модели и трансфер-обучение
Что такое предобученная модель и трансфер-обучение, почему дообучение дешевле обучения с нуля.
- pipeline(): самый быстрый способ применить модель
Как устроена функция pipeline() в transformers и почему это самый быстрый способ запустить готовую модель.
- Экосистема Hugging Face: зачем она нужна
2 Pipeline и токенизаторы
- Задачи pipeline: тональность, NER, генерация
Обзор частых задач pipeline(): анализ тональности, распознавание сущностей (NER) и генерация текста.
- Перевод и ответы на вопросы
Задачи pipeline для перевода (translation) и ответов на вопросы по контексту (question-answering).
- Что делает токенизатор
Зачем нужен токенизатор, как текст превращается в числа (input_ids) и почему модель не работает со словами напрямую.
- Subword и BPE
Как работает subword-токенизация и алгоритм BPE: дробление редких слов на части и борьба с неизвестными словами.
- Задачи pipeline: тональность, NER, генерация
3 Спецтокены и модели
- Специальные токены
Что такое специальные токены CLS, SEP, PAD, UNK, BOS, EOS и зачем модели нужны эти служебные метки.
- AutoModel и AutoTokenizer
Универсальные классы AutoModel и AutoTokenizer: как загрузить любую модель и токенизатор по одному идентификатору.
- Архитектура трансформера и attention
Краткое устройство трансформера и механизма внимания (attention) — основы современных языковых моделей.
- Encoder, decoder и encoder-decoder
Три семейства трансформеров: encoder (BERT), decoder (GPT) и encoder-decoder (T5) — чем отличаются и для чего.
- Специальные токены
4 Датасеты, инференс и дообучение
- Работа с датасетами: load_dataset и map
Библиотека datasets: загрузка наборов данных через load_dataset и эффективная обработка через map.
- Инференс: от входа к ответу
Как происходит инференс модели: текст в input_ids, прогон, логиты, softmax и финальный ответ.
- Дообучение с Trainer API
Как дообучить модель через Trainer API: TrainingArguments, датасет, цикл обучения без ручного кода.
- Метрики и оценка качества
Как оценивать модель: accuracy, precision, recall, F1 и почему точности недостаточно при дисбалансе классов.
- Работа с датасетами: load_dataset и map
5 Публикация, оптимизация и эмбеддинги
- Публикация модели на Hub
Как загрузить свою модель на Hugging Face Hub: push_to_hub, карточка модели и версионирование.
- Квантизация и оптимизация инференса
Обзор квантизации и способов ускорить инференс: int8/4-bit, уменьшение памяти, дистилляция и батчинг.
- Sentence Transformers и эмбеддинги
Эмбеддинги предложений через Sentence Transformers: семантический поиск, косинусная близость и связь с RAG.
- Публикация модели на Hub
6 Диффузия, демо и ответственность
- Диффузионные модели через diffusers
Обзор библиотеки diffusers и диффузионных моделей: как из шума рождается изображение, связь со Stable Diffusion.
- Spaces и Gradio: демо за минуты
Как собрать интерактивное демо модели на Gradio и опубликовать его в Hugging Face Spaces.
- Этика, лицензии и локальный запуск против API
Ответственное использование моделей: лицензии, ограничения, предвзятость, а также выбор между локальным запуском и API.
- Диффузионные модели через diffusers