Самообучающиеся агенты для ускорения PyTorch

Автор: Денис Аветисян


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

☕️

Читаем отчёты, пьём кофе, ждём дивиденды. Если тебе надоел хайп и ты ищешь скучную, но стабильную гавань — добро пожаловать.

Бесплатный Телеграм канал
Логическая схема, определяющая функционирование многоагентных систем, раскрывает последовательность шагов оптимизации процесса вывода в PyTorch, где ключевые параметры и опции тесно связаны с соответствующими этапами, обеспечивая тонкую настройку и повышение эффективности.
Логическая схема, определяющая функционирование многоагентных систем, раскрывает последовательность шагов оптимизации процесса вывода в PyTorch, где ключевые параметры и опции тесно связаны с соответствующими этапами, обеспечивая тонкую настройку и повышение эффективности.

Исследование показывает, что стратегии, ориентированные на эксплуатацию, с механизмом исправления ошибок превосходят подходы, основанные на исследовании, в задаче оптимизации инференса PyTorch на GPU.

Оптимизация производительности ИИ-вычислений на доступном аппаратном обеспечении остается сложной задачей, требующей значительных усилий по ручной настройке или разработке специализированных компиляторов. В работе ‘Optimizing PyTorch Inference with LLM-Based Multi-Agent Systems’ исследуется новый подход, основанный на использовании многоагентных систем, управляемых большими языковыми моделями, для автоматической оптимизации PyTorch-инференса. Полученные результаты демонстрируют, что стратегии, ориентированные на эксплуатацию существующих возможностей, в сочетании с агентами, исправляющими ошибки, превосходят подходы, основанные на активном исследовании, и позволяют добиться в среднем 2.88-кратного ускорения на GPU H100. Какие перспективы открываются для дальнейшего развития подобных систем и адаптации их к различным аппаратным платформам и задачам машинного обучения?


Энтропия вычислений: проблема современной ИИ

Глубокое обучение, и в особенности архитектура трансформеров, стало движущей силой современного прогресса в области искусственного интеллекта, демонстрируя впечатляющие результаты в задачах обработки естественного языка, компьютерного зрения и других областях. Однако, этот прогресс сопряжен с постоянно растущими вычислительными требованиями. Каждый новый прорыв в архитектуре моделей, увеличение их размера и сложности, требует экспоненциального увеличения вычислительных ресурсов для обучения и развертывания. Например, обучение крупных языковых моделей, таких как GPT-3, требует огромных затрат энергии и доступа к специализированному оборудованию, такому как графические процессоры (GPU) и тензорные процессоры (TPU). Эта тенденция создает серьезные препятствия для дальнейшего развития, ограничивая доступ к передовым технологиям и увеличивая их стоимость, что делает необходимым поиск более эффективных методов обучения и оптимизации моделей. По сути, дальнейшее масштабирование и усовершенствование глубокого обучения напрямую зависит от преодоления этого растущего вычислительного «узкого места».

Современные методы оптимизации, такие как стохастический градиентный спуск и его варианты, испытывают значительные трудности при обучении всё более сложных моделей глубокого обучения. Увеличение числа параметров в нейронных сетях, особенно в архитектурах на основе трансформеров, приводит к экспоненциальному росту вычислительных затрат и времени обучения. Это не только замедляет прогресс в области искусственного интеллекта, но и значительно увеличивает финансовые издержки, связанные с обучением и развертыванием этих моделей. Поиск более эффективных алгоритмов оптимизации становится критически важным для преодоления этого «узкого места» и обеспечения дальнейшего развития мощных систем ИИ, особенно учитывая ограниченность доступных вычислительных ресурсов и стремление к снижению энергопотребления при обучении $f(x) = \sum_{i=1}^{n} w_i x_i + b$.

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

На графике показано, что предложенные нами подходы демонстрируют значительное ускорение по сравнению с PyTorch Eager на H100, при фиксированном бюджете в 300 запросов к большой языковой модели.
На графике показано, что предложенные нами подходы демонстрируют значительное ускорение по сравнению с PyTorch Eager на H100, при фиксированном бюджете в 300 запросов к большой языковой модели.

PIKE: Многоагентная система для автоматизированной оптимизации

PIKE представляет собой логическую структуру, использующую многоагентные системы на базе больших языковых моделей (LLM) для автоматизации оптимизации моделей PyTorch. В основе подхода лежит декомпозиция процесса оптимизации на отдельные роли, выполняемые специализированными агентами. Эта структура позволяет LLM-агентам совместно решать задачи оптимизации, используя свои рассуждения и возможности генерации кода. Автоматизация охватывает различные аспекты оптимизации, включая выбор алгоритмов, настройку гиперпараметров и рефакторинг кода, что позволяет значительно сократить время и усилия, необходимые для достижения высокой производительности моделей.

В основе PIKE лежит декомпозиция процесса оптимизации, где различные этапы выполняются специализированными агентами. Например, агент начального мозгового штурма (Initial Brainstorming Agent) генерирует потенциальные стратегии оптимизации, а агент оптимизации кода (Code Optimization Agent) реализует и оценивает эти стратегии. Такая модульная структура позволяет системе исследовать широкий спектр подходов к оптимизации, разделяя сложную задачу на более мелкие, управляемые компоненты, каждый из которых решает конкретный аспект. Другие агенты могут включать в себя агента анализа производительности и агента, ответственного за интеграцию изменений в основной код.

В основе PIKE лежит способность больших языковых моделей (LLM) к рассуждениям, что позволяет системе исследовать значительно более широкий спектр стратегий оптимизации по сравнению с традиционными методами. Вместо ограниченного набора заранее определенных правил или эвристик, PIKE использует LLM для генерации и оценки различных подходов к оптимизации, таких как изменение порядка операций, выбор оптимальных алгоритмов и настройка гиперпараметров. Это позволяет системе находить нетривиальные и эффективные решения, которые могли бы быть упущены традиционными методами, особенно в сложных задачах оптимизации производительности моделей машинного обучения, где пространство возможных решений чрезвычайно велико и неоднородно.

В ходе экспериментов, фреймворк PIKE продемонстрировал передовые результаты по ускорению выполнения задач на усовершенствованном наборе тестов KernelBench. Наилучшее решение, полученное с использованием PIKE, обеспечило ускорение в 28.67x для задачи VisionAttention. Данный результат свидетельствует о значительном превосходстве PIKE над существующими методами оптимизации, особенно в контексте вычислительно-интенсивных задач, связанных с обработкой изображений и вниманием в нейронных сетях. Улучшения производительности были зафиксированы благодаря автоматизированному поиску оптимальных стратегий оптимизации с использованием многоагентной системы на основе больших языковых моделей.

Результаты показывают, что различные реализации PIKE демонстрируют зависимость между средней скоростью выполнения задач 5-го уровня и количеством запросов к LLM или стоимостью в долларах на задачу при использовании H100.
Результаты показывают, что различные реализации PIKE демонстрируют зависимость между средней скоростью выполнения задач 5-го уровня и количеством запросов к LLM или стоимостью в долларах на задачу при использовании H100.

Баланс исследования и эксплуатации: реализация PIKE

PIKE использует две основные реализации: PIKE-B и PIKE-O, каждая из которых представляет собой отдельную стратегию оптимизации. PIKE-B ориентирована на мутационный эволюционный поиск, применяя такие методы, как Kernel Fusion и Precision Reduction для повышения производительности. В свою очередь, PIKE-O использует платформу OpenEvolve для исследования различных конфигураций, дополненную Error Fixing Agent, обеспечивающим корректность генерируемого кода. Такой подход позволяет PIKE эффективно решать задачу баланса между исследованием новых конфигураций и эксплуатацией наиболее перспективных, максимизируя потенциал оптимизации.

Реализация PIKE-B использует стратегию эволюционного поиска на основе мутаций, направленную на оптимизацию производительности. Ключевыми методами, применяемыми в PIKE-B, являются Kernel Fusion и Precision Reduction. Kernel Fusion объединяет несколько операций модели в одно ядро CUDA, что снижает накладные расходы, связанные с запуском отдельных ядер и передачей данных. Precision Reduction подразумевает снижение разрядности используемых данных (например, переход от FP32 к FP16 или INT8), что уменьшает требования к памяти и увеличивает скорость вычислений. Комбинация этих техник позволяет PIKE-B эффективно исследовать пространство параметров и находить оптимальные конфигурации для ускорения работы моделей.

PIKE-O использует OpenEvolve для исследования различных конфигураций оптимизации, автоматически генерируя и тестируя множество вариантов. Для обеспечения корректности сгенерированного кода в PIKE-O интегрирован агент исправления ошибок (Error Fixing Agent), который выявляет и устраняет синтаксические и логические ошибки, возникающие в процессе автоматической генерации кода. Такой подход позволяет расширить пространство поиска оптимальных конфигураций, сохраняя при этом работоспособность и надежность итогового решения.

Обе реализации PIKE, PIKE-B и PIKE-O, направлены на решение проблемы баланса между исследованием (exploration) и эксплуатацией (exploitation) при оптимизации. Стратегия исследования позволяет системе исследовать различные конфигурации параметров и архитектур, расширяя пространство поиска оптимального решения. Одновременно, стратегия эксплуатации фокусируется на улучшении уже найденных перспективных конфигураций. Такой подход позволяет PIKE эффективно использовать вычислительные ресурсы, избегая застревания в локальных оптимумах и максимизируя потенциал оптимизации, что подтверждается достигнутыми ускорениями, такими как 15.01x на Mamba2 (Level 3-pike) и 10.81x на Mamba2 (Level 5) за счет объединения операций в единое CUDA-ядро.

В ходе оптимизации модели Mamba2, PIKE достиг ускорения в 15.01x для Level 3 (pike) и 10.81x для Level 5, благодаря объединению всех операций модели в единое CUDA-ядро. Данный подход позволяет значительно снизить накладные расходы, связанные с последовательным выполнением отдельных операций, и эффективно использовать параллельные вычислительные ресурсы графического процессора. Реализация предполагает, что все вычисления, ранее выполнявшиеся как отдельные шаги, теперь выполняются в рамках одного ядра, что минимизирует передачу данных между центральным и графическим процессорами и повышает общую производительность.

Реализация PIKE-B обеспечивает параллельную оценку и исправление ошибок, за которыми следуют отбор лучших k вариантов и мутация для оптимизации процесса.
Реализация PIKE-B обеспечивает параллельную оценку и исправление ошибок, за которыми следуют отбор лучших k вариантов и мутация для оптимизации процесса.

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

В ходе тестирования с использованием KernelBench, фреймворк PIKE продемонстрировал существенное увеличение производительности по сравнению со стандартными реализациями PyTorch. Данный прирост достигается за счет оптимизированного выполнения вычислительных ядер, что позволяет значительно ускорить обработку данных и повысить эффективность алгоритмов. Результаты бенчмарков подтверждают, что PIKE способен обеспечить более быструю и эффективную работу моделей машинного обучения, открывая новые возможности для разработки и применения искусственного интеллекта. В частности, оптимизация операций над тензорами и параллельное выполнение задач позволяют добиться значительного ускорения, особенно при работе с большими объемами данных и сложными моделями.

Значительное повышение производительности PIKE достигается благодаря оптимизированному исполнению ядер, использующих возможности технологий CUDA и CUDA Graphs. Вместо последовательного выполнения операций, CUDA Graphs позволяют PIKE компилировать несколько CUDA операций в один поток, минимизируя накладные расходы на запуск и синхронизацию. Это, в свою очередь, снижает задержки и повышает пропускную способность, особенно при работе с большими объемами данных и сложными вычислениями. Оптимизация исполнения ядер позволяет более эффективно использовать ресурсы графического процессора, что приводит к существенному ускорению обработки данных и повышению общей эффективности системы. Данный подход позволяет PIKE эффективно масштабироваться и обрабатывать более сложные модели искусственного интеллекта.

Исследования демонстрируют, что разработанный фреймворк обладает значительным потенциалом для масштабирования на более сложные модели искусственного интеллекта. Это открывает путь к эффективной разработке и обучению нейронных сетей, требующих всё больше вычислительных ресурсов. Способность системы адаптироваться к возрастающей сложности моделей позволяет снизить затраты на обучение и повысить производительность, что особенно важно для ресурсоёмких задач, таких как обработка естественного языка и компьютерное зрение. Перспективы масштабирования подразумевают возможность создания более мощных и эффективных AI-систем, способных решать задачи, которые ранее были недоступны из-за ограничений в вычислительной мощности и времени обучения.

Интеграция Triton позволила значительно повысить эффективность вычислительных ядер при обработке ресурсоемких задач. В частности, при использовании модели HunyuanDec, разработана и применена специализированная реализация механизма flash attention на базе Triton, что привело к впечатляющему 8.72-кратному ускорению производительности. Данный подход демонстрирует потенциал Triton в оптимизации критически важных операций глубокого обучения, позволяя существенно сократить время вычислений и повысить общую эффективность моделей искусственного интеллекта. Такая оптимизация особенно важна для больших языковых моделей, где скорость обработки является ключевым фактором.

Результаты показывают, что различные реализации PIKE демонстрируют различную эффективность в задачах Level 3-pike, измеряемую как ускорение средней геометрической скорости в зависимости от количества LLM-запросов и стоимости в долларах на задачу, при использовании H100.
Результаты показывают, что различные реализации PIKE демонстрируют различную эффективность в задачах Level 3-pike, измеряемую как ускорение средней геометрической скорости в зависимости от количества LLM-запросов и стоимости в долларах на задачу, при использовании H100.

Будущее автоматизированной оптимизации ИИ

Система PIKE знаменует собой фундаментальный сдвиг в подходе к оптимизации искусственного интеллекта, существенно уменьшая потребность в ручной настройке и глубоких экспертных знаниях. Традиционно, достижение максимальной производительности нейронных сетей требовало кропотливой работы специалистов, проводящих бесчисленные эксперименты с различными параметрами. PIKE, напротив, использует автоматизированные алгоритмы для самостоятельного поиска оптимальных конфигураций, что позволяет значительно сократить время и ресурсы, необходимые для разработки и развертывания передовых моделей. Этот переход к автоматизации не только повышает эффективность процесса, но и открывает новые возможности для исследователей и практиков, не обладающих глубокой экспертизой в области машинного обучения, позволяя им создавать и использовать мощные ИИ-системы с большей легкостью и независимостью.

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

Перспективы интеграции передовых техник оптимизации, таких как FlashAttention, открывают новые горизонты для повышения эффективности искусственного интеллекта. FlashAttention, благодаря инновационному подходу к обработке внимания в моделях, значительно снижает потребность в памяти и ускоряет процесс обучения, особенно в задачах, требующих работы с длинными последовательностями данных. Внедрение подобных методов в автоматизированные системы оптимизации, такие как PIKE, позволит не только достичь более высоких показателей производительности, но и расширить возможности применения моделей искусственного интеллекта к более сложным и ресурсоемким задачам. Это создает условия для разработки более мощных и эффективных алгоритмов, способных решать задачи, которые ранее считались недостижимыми из-за ограничений вычислительных ресурсов.

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

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

Исследование демонстрирует, что эффективная оптимизация требует не столько широкого поиска, сколько углубленной эксплуатации найденных решений. Подобный подход к эволюционным стратегиям, ориентированный на исправление ошибок вместо постоянного исследования, соответствует принципам долговечности систем. Как заметил Дональд Кнут: «Преждевременная оптимизация — корень всех зол». Эта фраза особенно актуальна в контексте оптимизации PyTorch, где стремление к немедленному результату может привести к созданию хрупких и неэффективных решений. Вместо этого, статья подчеркивает важность устойчивых стратегий, способных адаптироваться к изменяющимся условиям и сохранять свою эффективность на протяжении времени, что согласуется с идеей о том, что системы должны стареть достойно.

Что дальше?

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

Технический долг, неизбежно возникающий в процессе оптимизации, — это закладка прошлого, которую приходится оплачивать настоящим. Вопрос не в том, чтобы избежать его, а в том, чтобы грамотно им управлять, понимая, что каждая строка кода, каждая оптимизация — это компромисс между текущей производительностью и будущей поддерживаемостью. Будущие исследования, вероятно, будут направлены на разработку систем, способных самодиагностировать и самокорректировать этот долг, подобно механизмам, обеспечивающим гомеостаз в живых организмах.

Очевидно, что поле для исследований остаётся обширным. Необходимо исследовать более сложные стратегии, учитывающие не только производительность, но и устойчивость к изменениям в данных и архитектуре моделей. И, возможно, самое главное — признать, что в конечном счёте, идеальной оптимизации не существует — лишь достойное старение.


Оригинал статьи: https://arxiv.org/pdf/2511.16964.pdf

Связаться с автором: https://www.linkedin.com/in/avetisyan/

Смотрите также:

2025-11-25 01:14