Hugging Face Transformers: работа с моделями машинного обучения

Hugging Face Transformers: работа с моделями машинного обучения

Hugging Face Transformers — это библиотека для работы с современными моделями машинного обучения, поддерживающая текст, изображения, аудио и многомодальные данные, как для обучения, так и для инференса.

Библиотека предназначена для упрощения работы с моделями, основанными на архитектуре трансформеров. Она отличается от других фреймворков более удобной интеграцией, готовыми моделями и обширной документацией. Подходит как для исследователей, так и для разработчиков, которые хотят быстро внедрить ML-модели в свои проекты без глубоких знаний в области ИИ.

Проект написан на Python и доступен для установки через pip. Важно отметить, что библиотека требует современное окружение и совместимость с библиотеками для работы с графическими процессорами (CUDA), чтобы ускорить обучение и инференс. Лицензия Apache 2.0 позволяет использовать её как в коммерческих, так и в некоммерческих проектах без особых ограничений.

Проект Transformers от команды Hugging Face является мощной библиотекой для работы с передовыми моделями машинного обучения в различных областях, включая текст, компьютерное зрение, аудио и мультимодальные задачи. Эта библиотека позволяет как проводить инференс, так и обучать модели.

Библиотека централизует определение моделей, обеспечивая согласованность в экосистеме. Если определение модели поддерживается, оно будет совместимо с большинством фреймворков для тренировки (таких как PyTorch, DeepSpeed и др.) и библиотек для инференса. В Transformers доступно более 1 миллиона предобученных контрольных точек моделей, которые можно использовать в собственных проектах.

Установка

Для работы с Transformers потребуется Python версии 3.10 или выше и PyTorch версии 2.5 или выше.

Создай и активируй виртуальное окружение, используя venv или uv:

# venv
python -m venv .my-env
source .my-env/bin/activate
# uv
uv venv .my-env
source .my-env/bin/activate

Установи библиотеку в виртуальном окружении:

# pip
pip install "transformers[torch]"

# uv
uv pip install "transformers[torch]"

Если ты хочешь использовать последние изменения из библиотеки или планируешь участвовать в её разработке, установи Transformers из исходного кода:

git clone https://github.com/huggingface/transformers.git
cd transformers

# pip
pip install '.[torch]'

# uv
uv pip install '.[torch]'

Быстрый старт

Ты можешь быстро начать работать с Transformers через API Pipeline, который поддерживает задачи обработки текста, аудио и изображения. Этот интерфейс обрабатывает ввод и возвращает соответствующий вывод.

Вот пример, как использовать Pipeline для генерации текста:

from transformers import pipeline

pipeline = pipeline(task="text-generation", model="Qwen/Qwen2.5-1.5B")
pipeline("the secret to baking a really good cake is ")
[{'generated_text': 'the secret to baking a really good cake is 1) to use the right ingredients...'}]

Также можно использовать Pipeline для общения с моделью, создав историю чата:

chat = [
    {"role": "system", "content": "You are a sassy, wise-cracking robot."},
    {"role": "user", "content": "Hey, can you tell me any fun things to do in New York?"}
]

pipeline = pipeline(task="text-generation", model="meta-llama/Meta-Llama-3-8B-Instruct", dtype=torch.bfloat16, device_map="auto")
response = pipeline(chat, max_new_tokens=512)
print(response[0]["generated_text"][-1]["content"])

Почему использовать Transformers?

  • Простота в использовании: высокопроизводительные модели с низким порогом входа для исследователей и разработчиков.
  • Экономия вычислительных ресурсов и снижение углеродного следа: делись предобученными моделями вместо того, чтобы обучать их с нуля.
  • Гибкость выбора фреймворков: тренируй модели всего в три строки кода и меняй фреймворки по своему усмотрению.
  • Легкость в кастомизации моделей: предоставляются примеры для каждой архитектуры, что позволяет воспроизводить результаты оригинальных авторов.

Когда не стоит использовать Transformers?

  • Библиотека не является модульным инструментом для сборки нейросетей. Код в файлах моделей не реорганизован с дополнительными абстракциями намеренно.
  • API для тренировки оптимизирован для работы с моделями PyTorch, предоставляемыми библиотекой. Для более универсальных случаев использования стоит обратиться к другим библиотекам.
  • Примеры в example scripts могут не работать "из коробки" для твоих конкретных случаев использования и требуют адаптации.

Радар проекта: 94 из 100 — зрелый и живой проект

ИмпульсТемпЗрелостьСообществоСвежестьСтартПродакшенДовериеДокументацияЭкосистема94
  • Импульс 76 ≈ 56 звёзд в день
  • Темп разработки 100 1251 коммит за 12 недель
  • Зрелость 100 проекту 8 лет, больше 100 релизов
  • Сообщество 100 4210 участников, 35057 форков
  • Свежесть 99 последний коммит — 1 день назад
  • Быстрый старт 75 есть: команда установки, сайт/демо, примеры
  • Готовность к продакшену 90 релиз v5.22.1, автосборка, тесты
  • Безопасность и доверие 100 лицензия Apache-2.0, SECURITY.md, организация
  • Документация 100 README 17.1 тыс. знаков, 13 разделов, папка docs
  • Экосистема 100 1240 подписчиков на обновления, 19 тем
Как считаем

Только открытые данные GitHub на 31.10.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.

  • Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
  • Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
  • Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
  • Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
  • Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
  • Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
  • Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
  • Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
  • Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
  • Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.

Открыть на GitHub: huggingface/transformers →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте