Featured image for transformers ot hugging face vypuskaet versiyu 5 s fundamentalnymi izmeneniyami arhitektury

Transformers от Hugging Face выпускает версию 5 с фундаментальными изменениями архитектуры

Библиотека Transformers от Hugging Face выпускает пятую версию спустя пять лет после релиза v4.0.0rc-1, который состоялся 19 ноября 2020 года. За это время популярность библиотеки выросла в 150 раз: ежедневные установки через pip увеличились с 20 000 до 3 миллионов, а общее количество инсталляций превысило 1,2 миллиарда.

Экспоненциальный рост экосистемы

Экосистема Transformers значительно расширилась: если в версии v4 поддерживалось 40 архитектур моделей, то сегодня их количество превышает 400. Сообщество внесло огромный вклад — на Hugging Face Hub доступно более 750 000 модельных чекпоинтов, совместимых с Transformers, по сравнению с примерно 1 000 во время релиза v4.

Этот рост обусловлен развитием области искусственного интеллекта и его массовой доступностью. Как ведущая библиотека определения моделей в экосистеме, Transformers должна постоянно эволюционировать, чтобы оставаться релевантной. Reinvention — ключ к долголетию в мире ИИ.

Библиотека сотрудничает с множеством инструментов и приложений, включая llama.cpp, MLX, onnxruntime, Jan, LMStudio, vLLM, SGLang, Unsloth, LlamaFactory, dLLM, MaxText, TensorRT, Argmax и другие.

Основные направления развития v5

Для пятой версии команда сосредоточилась на четырех ключевых аспектах:

  • Простота — упрощение кодовой базы и процессов
  • Обучение — улучшение поддержки тренировки моделей
  • Вывод — оптимизация инференса
  • Продакшен — готовность к промышленному использованию

Упрощение архитектуры

Первостепенной задачей команды стала работа над простотой. Код рассматривается как продукт — интеграции моделей должны быть чистыми, чтобы экосистема могла полагаться на определения моделей и понимать, что действительно происходит под капотом.

Добавление новых моделей

Transformers остается инструментарием архитектур моделей в своей основе. Команда стремится включать все современные архитектуры и быть «источником истины» для определений моделей. Еженедельно добавляется от 1 до 3 новых моделей на протяжении 5 лет.

Хронология модульного подхода, показывающая сокращение объёма кода
Источник: huggingface.co

Модульный подход

За последний год активно продвигался модульный дизайн как значительный шаг вперед. Это позволяет упростить поддержку, ускорить интеграцию и улучшить сотрудничество в сообществе.

Количество строк кода для внесения вклада значительно сокращается при использовании модульного подхода:

При сохранении философии «Одна модель — один файл» вводятся абстракции для упрощения управления общими вспомогательными инструментами. Ярким примером является введение AttentionInterface, который предлагает централизованную абстракцию для методов внимания.

За последние пару лет растущее количество поддержки модельных архитектур с нулевого дня и стандартизация обработки внимания помогли упростить нашу поддержку посттренировки современных LLM. — Винг Лиан, Axolotl

Инструменты конвертации моделей

Разрабатываются инструменты для идентификации схожести новых моделей с существующими архитектурами. Эта функция использует машинное обучение для поиска сходств кода между независимыми файлами моделей. В дальнейшем планируется автоматизировать процесс конвертации путем открытия чернового PR для интеграции модели в формат transformers.

Сокращение кодовой базы

Упрощение файлов моделирования и токенизации

Файлы моделирования значительно улучшены благодаря модульному подходу и стандартизации между моделями. Стандартизация способствует абстрагированию большинства инструментов, которые не составляют модель, так что код моделирования содержит только релевантные части для прямого/обратного проходов модели.

Параллельно упрощаются файлы токенизации и обработки: в будущем фокус будет только на бэкенде tokenizers, удаляя концепцию «быстрых» и «медленных» токенизаторов.

Tokenizers будет использоваться как основной бэкенд токенизации, аналогично моделям на основе PyTorch. Будут предлагаться альтернативы для токенизаторов на базе Sentencepiece или MistralCommon, которые будут неподдерживаемыми по умолчанию, но доступными. Обработчики изображений теперь будут существовать только в своей быстрой версии, зависящей от бэкенда torchvision.

Наконец, поддержка Flax/TensorFlow прекращается в пользу фокусировки на PyTorch как единственном бэкенде. Однако команда работает с партнерами в экосистеме Jax для обеспечения совместимости между моделями и этой экосистемой.

С выпуском v5 transformers полностью переходит на PyTorch. Transformers выступает источником истины и основой для моделирования во всей области; мы работали с командой для обеспечения хорошей производительности по всему стеку. Мы рады продолжать продвигать это в будущем в обучении, выводе и развертывании. — Мэтт Уайт, исполнительный директор PyTorch Foundation

Обучение моделей

Обучение остается важным фокусом команды в v5: если ранее основное внимание уделялось тонкой настройке, а не предварительному/полному обучению в масштабе, то недавно была проделана значительная работа по улучшению поддержки последнего.

Предварительное обучение в масштабе

Поддержка предварительного обучения потребовала переработки инициализации моделей, обеспечения их работы в масштабе с различными парадигмами параллелизма и поставки поддержки оптимизированных ядер как для прямого, так и для обратного проходов.

Команда расширила совместимость с torchtitan, megatron, nanotron и другими инструментами предварительного обучения, заинтересованными в сотрудничестве.

Тонкая настройка и постобработка

Продолжается тесное сотрудничество со всеми инструментами тонкой настройки в экосистеме Python. Обеспечивается совместимость реализаций моделей с Unsloth, Axolotl, LlamaFactory, TRL и другими в экосистеме PyTorch, а также с такими инструментами, как MaxText в экосистеме JAX.

Transformers — основа сотен тысяч проектов, включая Unsloth. Мы строим на Transformers, чтобы помочь людям эффективно тонко настраивать и обучать модели, будь то BERT, преобразование текста в речь или другие; запускать быстрый вывод для обучения с подкреплением, даже когда модели еще не поддерживаются в других библиотеках. Мы в восторге от Transformers v5 и очень рады работать с командой Hugging Face! — Майкл Хан в Unsloth

Источник новости: Hugging Face

Похожие записи