К развитию генеративного искусственного интеллекта для архитектуры моделей

Прогресс в развитии генеративного искусственного интеллекта в архитектурной моделировке

Как «MAD» ИИ поможет нам открыть следующего трансформера

Кредит: https://unsplash.com/photos/person-wearing-gas-mask-in-grayscale-photography-2PV6wdWVAMM

Переворот в сфере глубокого обучения, вызванный моделью «Attention is All You Need», имел глубокое влияние на проектирование архитектур моделей. Недолго после появления BERT появились RoBERTa, ALBERT, DistilBERT, SpanBERT, DeBERTa и многие другие. Кроме того, были созданы ERNIE (который до сих пор продолжает развиваться с версией «Ernie 4.0»), серия GPT, BART, T5 и так далее. На боковой панели HuggingFace сформировалась своего рода музей архитектур трансформеров, а темпы создания новых моделей только ускоряются. Pythia, Zephyr, Llama, Mistral, MPT и многие другие, каждый из них оказывает влияние на точность, скорость, эффективность обучения и другие метрики.

Под архитектурой модели я подразумеваю вычислительный граф, лежащий в основе выполнения модели. Ниже приведен отрывок из Netron, показывающий часть вычислительного графа T5. Каждый узел представляет собой либо операцию, либо переменную (вход или выход операции), формируя архитектуру графа узлов.

Картинка автора

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

Идея разумного Модельного Архитектурного Дизайна (MAD) заключается в том, что генеративный ИИ может направлять ученых и исследователей ИИ к лучшим и более эффективным модельным архитектурам быстрее и проще. Мы уже видим, как большие языковые модели (LLM) приносят огромную ценность и творчество во всем, начиная от резюмирования, анализа, генерации изображений, помощи в написании кода и многого другого. Вопрос в том, можем ли мы использовать ту же разумную помощь и творчество для проектирования архитектур моделей? Исследователи могли бы руководствоваться интуицией и подавать идеи ИИ-системе, например, такие, как «самовнимание, масштабирующееся иерархически», или даже для более конкретных действий, например, «добавьте LoRA к моей модели на последний слой». Связывая текстовые описания модельных архитектур, например, с помощью Papers with Code, мы могли бы узнать, какие техники и названия связаны с определенными модельными архитектурами.

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

Возвращение модельно-центричного ИИ

Подход Эндрю Нга и введение понятия «центрированного на данных» ИИ имели огромное значение для сферы ИИ. С глубоким обучением возвращение на инвестиции от чистых и высококачественных данных огромно, и это проявляется на каждом этапе обучения. Для понимания контекста, эпоха, предшествовавшая модели BERT в мире классификации текстов, была эпохой, когда вы хотели иметь достаточное количество данных, даже в ущерб качеству. Было важнее иметь представительство через примеры, чем чтобы примеры были идеальными. Это связано с тем, что многие ИИ-системы не использовали предварительно обученные эмбеддинги (или они не были достаточно хороши), которые могли бы быть использованы моделью для достижения практической обобщаемости. BERT стал прорывом для последующих текстовых задач, но потребовалось еще больше времени для достижения согласия среди лидеров и практиков, и идея «центрированного на данных» ИИ помогла изменить способ подачи данных в модели ИИ.

Изображение от автора

Сегодня многие считают текущую архитектуру достаточно хорошей и сосредотачиваются на улучшении качества данных, а не на редактировании модели. В настоящее время создаются качественные наборы данных для обучения, например, Red Pajama Data. Мы видим, что многие улучшения в LLM не заключаются в архитектуре модели, а в качестве данных и методологии их подготовки.

В то же время каждую неделю появляется новый метод, который показывает отличные результаты в эффективности обучения, скорости вывода или общей точности. Когда статья утверждает, что это “новый трансформер”, как это сделала статья RETNET, все обсуждают. Потому что, хотя существующие архитектуры хороши, новый прорыв, например, в само-внимании, окажет глубокое влияние на область и на то, что искусственный интеллект сможет достичь. Даже для маленьких прорывов обучение требует больших затрат, поэтому важно минимизировать количество циклов обучения. Таким образом, если у вас есть конкретная цель, MAD также важна для получения наибольшей отдачи от вложенных средств.

Трансформерные архитектуры огромны и сложны, что делает сложнее сосредотачиваться на модельно-ориентированном искусственном интеллекте. Мы находимся во времена, когда алгоритмы генеративного искусственного интеллекта становятся более продвинутыми, и MAD становится вполне реальной задачей.

https://arxiv.org/pdf/1808.05377.pdf

Цель поиска нейроархитектуры (NAS) совпадает с интеллектуальным MAD, с целью облегчения бремени исследователей, занимающихся разработкой и нахождением наилучших архитектур. Обычно это реализуется в виде AutoML, где гиперпараметры включают в себя архитектурные решения. Я видел, что это включено в множество конфигураций гиперпараметров.

Набор данных NAS (т.е. бенчмарк NAS) – это набор данных машинного обучения, <X, Y>, где X – это архитектура машинного обучения, выражаемая графом, а Y – это метрика оценки, когда эта архитектура обучается и тестируется на определенном наборе данных. Бенчмарки NAS все еще развиваются. Изначально представление в бенчмарках NAS было просто упорядоченными списками, где каждый список представлял собой нейронную архитектуру в виде последовательности операций, например: [3x3Conv, 10x10Conv, …] и т.д. Однако это не достаточно низкоуровнево, чтобы учитывать частичное упорядочение, которое мы видим в современных архитектурах, таких как “пропускающие соединения”, где слои передают информацию не только прямо, но и к более поздним слоям модели. Позже в представлении DARTS для представления использовались узлы, представляющие переменные, и ребра, представляющие операции. Недавно были созданы новые методы для NAS, которые позволяют избежать предопределенного пространства поиска, такие как AGNN, применяемый для обучения GNN с целью повышения производительности на графовых наборах данных.

В конечном итоге в библиотеке глубокого обучения, такой как TensorFlow или PyTorch, существует всего около 250 низкоуровневых операций над тензорами. Если пространство поиска рассматривает все возможные модели с начала, то оно должно включать в себя новые вариации архитектуры, ближайшие к SOTA. Однако на практике поиск нейроархитектуры не устроен таким образом. Иногда требуются эквивалентные вычислительные мощности, соответствующие 10 годам использования графических процессоров, когда пространство поиска расслаблено и ограничено различными способами. Таким образом, поиск нейроархитектуры в основном был нацелен на перекомбинацию существующих компонентов моделей. Например, NAS-BERT использовал объект маскированного моделирования для обучения более маленьких вариаций архитектуры BERT, хорошо исполняющихся на вспомогательных задачах GLUE, таким образом, сжимая себя в меньшее количество параметров. Аналогичное сделала модель Autoformer с использованием другого пространства поиска.

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

Текстовые модели MAD против графовых моделей MAD

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

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

С другой стороны, графовые нейронные сети (Graph Neural Networks, GNNs), такие как графовые трансформеры, являются очень эффективными, потому что графовая структура присутствует повсюду, включая MAD. Преимущество прямой работы с графами заключается в том, что модель обучается на базовом представлении данных, ближе к истинной сущности, чем поверхностное текстовое представление. Даже при некоторых недавних работах по улучшению способности языковых моделей генерировать графы, таких как InstructGLM, графовые трансформеры обещают показать свои преимущества, особенно совместно с языковыми моделями.

https://arxiv.org/pdf/2308.07134.pdf

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

Существует несколько способов представления модельных архитектур в виде графов, и здесь я рассмотрю только несколько категорий. Во-первых, существуют компиляторы машинного обучения, такие как GLOW, MLIR и Apache TVM. Они могут компилировать код, например код PyTorch, в промежуточное представление в виде графа. TensorFlow уже имеет промежуточное графовое представление, которое можно визуализировать с помощью TensorBoard. Есть также формат ONNX, который можно скомпилировать из существующей сохраненной модели, например, с использованием HuggingFace, так просто:

optimum-cli export onnx --model google/flan-t5-small flan-t5-small-onnx/

Сериализованный граф ONNX выглядит примерно так (небольшой отрывок):

Изображение автора

Одна проблема с этими скомпилированными промежуточными представлениями заключается в том, что их трудно понять на высоком уровне. Граф ONNX T5 в Netron является огромным. Более подходящим для визуализации графов модельных архитектур является Graphbook. Эта платформа, доступная для всех, позволяет просматривать значения, генерируемые каждой операцией в графе, показывать несоответствия формы единиц тензоров и их типов, а также поддерживает редактирование. Кроме того, модели, генерируемые ИИ, могут быть несовершенными, поэтому иметь простой способ войти внутрь и редактировать граф, а также находить причины его неработоспособности, очень полезно.

Пример просмотра графа Graphbook, Изображение автора

Хотя модели Graphbook представлены в формате JSON, они иерархичны и, следовательно, позволяют использовать более высокий уровень абстракции для слоев модели. Ниже представлено боковое изображение иерархической структуры архитектуры GPT2.

Изображение, показывающее иерархическую структуру графов Graphbook, с примером GPT. Полное изображение: https://photos.app.goo.gl/rgJch8y94VN8jjZ5A, изображение автора

MAD Steps

Это обзор предложения о генерации MAD. Я хотел включить эти подэтапы, чтобы быть более конкретным о том, как подойти к задаче.

  1. Code-to-Graph. Создайте набор данных MAD из кода, такого как карта модели HuggingFace, преобразовав модель в графический формат, такой как ONNX или Graphbook.
  2. Создайте наборы данных. Это могут быть наборы данных, такие как классификация типа операции в графе, классификация самого графа, маскировка/восстановление операций и связей, обнаружение неполного графа, преобразование неполного графа в полный и т.д. Это может быть самоуправляемым.
  3. Графический токенизатор. Токенизируйте граф. Например, позвольте каждой переменной в графе быть уникальным идентификатором словаря и сгенерируйте матрицу смежности, которую можно передать в слои GNN.
  4. Проектирование GNN. Разработайте GNN, который использует результат работы графического токенизатора для передачи через слои трансформатора.
  5. Обучение и тестирование. Проверьте работу GNN на наборах данных и итерируйте.

Как только эти шаги будут разработаны подробнее, их можно использовать в рамках подхода NAS для помощи в проектировании GNN (шаг 4).

Заключительное замечание: Влияние саморазвития

Изображение автора

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

  1. Изначально ИИ имеет данную архитектуру модели, обучается на конкретных данных для генерации архитектур моделей и может быть побужден генерировать архитектуры. Он имеет доступ к источнику обучения, в который входит его собственное проектирование архитектуры, и источники обучения включают различные тесты по задачам архитектуры, таким как классификация графа, классификация операций/узлов, завершение связей и т.д. Эти задачи связаны с обычными задачами, которые встречаются в Open Graph Benchmark.
  2. Изначально на уровне приложения есть некий агент, который может обучать и тестировать архитектуры моделей и добавлять их в источник обучения ИИ, и, возможно, он может подсказывать ИИ инструкции о том, что работает и что не работает.
  3. Итеративно ИИ генерирует наборы новых архитектур моделей, и агент (назовем его MAD-agent) их обучает и проверяет, ставит им оценку, добавляет их в источник обучения, направляет модель на повторное обучение и так далее.

В сущности, вместо того, чтобы лишь использовать AutoML/NAS для поиска пространства архитектур моделей, изучите архитектуры моделей в виде графов и затем используйте графовые трансформаторы для изучения и генерации. Позвольте самому набору данных, основанному на графиках, быть представленным в виде архитектуры модели, представленной графами. Архитектуры моделей, представляющие графические наборы данных, и пространство возможных архитектур моделей для изучения графических наборов данных становятся одним и тем же.

Какая здесь имеется подразумевается? Когда система имеет способность улучшаться сама по себе, возникает потенциальный риск нежелательного эффекта. Если вы разработали вышеуказанное и оно было спроектировано в контексте более сложного агента, способного бесконечно выбирать источники данных и задачи и координировать себя таким образом, чтобы стать системой глубокого обучения end-to-end с несколькими триллионами параметров, то, возможно, существует некоторый риск. Но сказанной сложной частью является проектирование более сложного агента, распределение ресурсов, а также множество трудностей в поддержке более широкого набора возможностей.

Заключение

Техники искусственного интеллекта в автономном проектировании архитектуры моделей ИИ-агентов (MAD) могут помочь исследователям в будущем открыть новые прорывные техники. Исторически MAD решалась через поиск нейронной архитектуры (NAS). В сочетании с генеративным ИИ и трансформерами могут возникнуть новые возможности для помощи исследователям и для совершения открытий.