
torchao: библиотека PyTorch, ускоряющая и уменьшающая модели с помощью низкобитовых типов, квантования и разреженности
Основные возможности torchao
— Предоставляет обширную поддержку различных моделей искусственного интеллекта, таких как Llama 3 и модели диффузии, обеспечивая совместимость и простоту использования.
— Демонстрирует впечатляющий прирост производительности, достигая до 97% ускорения и значительного снижения использования памяти во время обучения и вывода моделей.
— Предлагает разнообразные методы квантования, включая низкобитовые типы, такие как int4 и float8, для оптимизации моделей для вывода и обучения.
— Поддерживает динамическое квантование активации и разреженность для различных типов, улучшая гибкость оптимизации модели.
Продвинутые методы квантования
Одной из ключевых особенностей torchao является его надежная поддержка квантования. Алгоритмы вывода библиотеки работают с любыми моделями PyTorch, содержащими слои ‘nn.Linear’, предоставляя квантование только весов и динамическое квантование активации для различных типов и разреженных структур. Разработчики могут выбирать наиболее подходящие методы квантования с помощью API на верхнем уровне ‘quantize_’. Это API предлагает варианты для моделей, ограниченных по памяти, такие как int4_weight_only и int8_weight_only, а также для моделей, требующих вычислений. Для моделей, требующих вычислений, torchao может выполнять квантование float8, обеспечивая дополнительную гибкость для высокопроизводительной оптимизации модели. Кроме того, методы квантования torchao легко комбинируются, позволяя сочетать разреженность и квантование для улучшения производительности.
Квантование с учетом обучения (QAT)
Torchao решает проблему снижения точности, связанную с квантованием после обучения, особенно для моделей, квантованных менее чем на 4 бита. Библиотека включает поддержку квантования с учетом обучения (QAT), которое позволяет восстановить до 96% снижения точности на сложных тестах, таких как Hellaswag. Эта функция интегрирована как полный цикл в torchtune, с минимальным руководством по реализации. Внедрение QAT делает torchao мощным инструментом для обучения моделей с квантованием на низкобитовых типах, сохраняя точность.
Оптимизация обучения с низкой точностью
Помимо оптимизации вывода, torchao предлагает обширную поддержку для низкоточного вычисления и коммуникации во время обучения. Библиотека включает простые рабочие процессы для снижения точности вычислений обучения и распределенной коммуникации, начиная с float8 для слоев `torch.nn.Linear`.
Torchao продемонстрировал впечатляющие результаты, такие как ускорение в 1,5 раза для предварительного обучения Llama 3 70B при использовании float8. Библиотека также предоставляет экспериментальную поддержку для других оптимизаций обучения, таких как NF4 QLoRA в torchtune, прототипное обучение int8 и ускоренное разреженное обучение 2:4. Эти функции делают torchao привлекательным выбором для пользователей, желающих ускорить обучение при минимизации использования памяти.
Низкобитовые оптимизаторы
Вдохновленный пионерской работой Bits and Bytes в области низкобитовых оптимизаторов, torchao вводит прототипную поддержку 8-битных и 4-битных оптимизаторов как замену широко используемому оптимизатору AdamW. Эта функция позволяет пользователям перейти к низкобитовым оптимизаторам без изменения значительной части их существующего кода, дополнительно улучшая эффективность обучения модели.
Интеграции и будущие разработки
Torchao активно интегрирован в некоторые из самых значительных проектов с открытым исходным кодом в сообществе машинного обучения. Эти интеграции включают использование в качестве выводного интерфейса для HuggingFace transformers, вклад в diffusers-torchao для ускорения моделей диффузии, а также предоставление рецептов QLoRA и QAT в torchtune. Техники квантования на 4 и 8 бит torchao также поддерживаются в проекте SGLang, что делает его ценным инструментом для тех, кто работает над исследованиями и развертыванием в производственных средах.
В заключение, запуск torchao является значительным шагом вперед для PyTorch, предоставляя разработчикам мощный инструментарий для ускорения и оптимизации моделей в области обучения и вывода.
Если вам нужны советы по внедрению ИИ, пишите нам на https://t.me/itinai. Следите за новостями об ИИ в нашем Телеграм-канале https://t.me/aisalesbotnews
Попробуйте AI Sales Bot https://saile.ru/. Это AI ассистент для продаж, он помогает отвечать на вопросы клиентов, генерировать контент для отдела продаж, снижать нагрузку на первую линию.
Узнайте, как ИИ может изменить процесс продаж в вашей компании с решением от saile.ru — будущее уже здесь!