2.4 Три опоры AI-революции: end-to-end-подход

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

В этом параграфе мы расскажем про последнюю опору — end-to-end-подход, который позволяет держать сложность системы под контролем.

Вначале мы взглянем на типичный инженерный подход к борьбе со сложностью на примере задачи машинного перевода, а также на присущие ему недостатки. Затем посмотрим, как борется со сложностью end-to-end-подход. И наконец, построим мостик к применению этого подхода в Physical AI.

Пайплайновый подход для борьбы со сложностью

Наверняка вам знакома фраза: «Слона нужно есть по частям». Обычно её говорят, когда сталкиваются со сложной и/или абстрактной задачей — вместо того, чтобы пытаться «проглотить» её сразу, задачу стоит нарезать на более маленькие кусочки.

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

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

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

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

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

Пример: машинный перевод

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

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

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

Вот пример типичного пайплайна системы машинного перевода Apertium:

Источник

Apertium состоит из нескольких лексических модулей обработки информации на базе конечных автоматов.

Конечный автомат

Это концепция, которая описывает систему, обладающую следующими характеристиками:

  • есть ограниченный набор состояний;
  • в единицу времени система находится только в одном состоянии.

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

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

Для определения частей речи, одного из важных морфологических модулей, используются скрытые марковские модели.

Скрытые марковские модели

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

Когда Apertium появился в середине 2000-х, его архитектура соответствовала лучшим стандартам разработки сложных систем. Вдобавок Apertium был открытым, понятным и работал из коробки. Всё это отличало переводчик от конкурентов вроде Systran, Eurotra.

Но у архитектуры пайплайнов были и недостатки — их мы рассмотрим подробнее.

Недостатки пайплайнов

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

Например:

  1. Сложность построения
  2. Лавинообразное усиление ошибок
  3. Дороговизна масштабирования

Давайте рассмотрим их подробнее.

1. Сложность построения

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

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

Мы так старались уменьшить сложность за счёт декомпозиции, но по факту превратили внутреннюю сложность задачи в композиционную сложность работы с большим числом модулей. Хорошо, что в нашем случае модули взаимодействуют последовательно, выстроившись в цепочку.

А если каждый из модулей начнёт общаться с несколькими модулями? Если добавить в общение асинхронности? Ну как тут удержишь в голове все взаимодействия и возникающие цепи обратной связи и другие системные эффекты при добавлении новой функциональности!

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

2. Лавинообразное усиление ошибок

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

Если пользователь допустил синтаксическую ошибку, то она тоже может испортить результат.

3. Дороговизна масштабирования

Добавление нового языка — огромный пласт работы.

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

Только вдумайтесь: каждый модуль для каждого языка нужно написать отдельно. Всё вместе делает масштабирование на десятки языков крайне дорогим.


В 2010-х появился альтернативный подход к созданию сложных систем. Он базируется на нейронных сетях и двух важных концепциях: end-to-end и data-driven. Для начала разберём концепцию end-to-end (или E2E, для краткости).

End-to-end-подход для борьбы со сложностью

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

Еnd-to-end – это антипайплайн без вороха независимо развиваемых модулей.

На вход модели подаются данные, максимально похожие на вход в целевую задачу. Также ко входным данным применяется минимум предобработки. Если модель должна работать с изображениями, то на вход поступают нормализованные данные с сенсоров. В случае работы с текстами вход — это последовательности токенов. Текстовые токены просто переводят слова в числовую форму.

В самом простейшем случае каждому слову (или последовательности букв) приписывается номер из зафиксированного словаря. На выходе E2E-модели получается решение целевой задачи. Например, в задаче детекции это класс и положение объекта на изображении, в задаче перевода — переведённая фраза (в виде токенов), в задаче манипуляции — команда для системы управления робота.

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

Качественный датасет и настройка обучения — вот что является основными рычагами в data-driven-подходе.

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

Особняком в E2E-подходе стоит инфраструктура по работе с данными, которой нет в классическом подходе: здесь есть и выделенный контур хранения больших датасетов, и система обучения и мониторинга за расхождениями. Подробней про этом мы расскажем в главе 4.

E2E-подход захватил область машинного перевода с 2010-х годов. От RNN-моделей, использующих признаки из классических методов, индустрия пришла к моделям на базе трансформеров. Новая область стала называться NMT (англ. Neural Machine Translation).

Типичная архитектура машинного перевода теперь выглядит так:

Источник

Как E2E-подход решает проблемы пайплайнов

Наверное, вы уже и сами догадались, что в новом подходе мы минуем детальное проектирование системы.

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

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

Причём добавление даже экзотических языков с новой грамматикой — это просто задача сбора дополнительных данных. Появление новой архитектуры или внедрение нового подхода к подготовке данных повышают качество перевода сразу на многих языках, как это произошло с Google Translate в 2019‒2020 годы. Этот подход оказался более экономным для больших систем, чем пайплайны и сотни человеко-лет инженерных изысканий.

Источник

E2E-модели более гладко ведут себя при возникновении орфографических ошибок, умеют успешно работать с конструкциями, которые ранее не встречались в обучении. Вы, наверное, сами замечали, как ChatGPT игнорировал неправильно написанное слово и точно отвечал на поставленный вопрос.

Переход на новую парадигму в машинном переводе породил кучу сомнений вроде «нейросетевая модель никогда не выучит ничего похожего на системы, которые мы проектируем уже десятки лет». На практике оказалось, что модели и не нужно было выучивать все подмодули. Даже без этого NMT-подход с конца 2010-х годов стал лидером машинного перевода.

Архитектура классического робота

Мы разобрали несколько методов для борьбы со сложностью в больших системах на примере задачи перевода. А как дела обстоят у роботов?

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

COMMDESIGN-105922

Из этой схемы можно сделать два вывода:

  1. Классический робот отдалённо напоминает систему машинного перевода, где входные данные (сенсоры, целевой маршрут) переводятся в управляющую последовательность. То есть по сути представляет собой пайплайн.
  2. Даже при всех упрощениях структурная сложность пайплайна робота сильно выше за счёт переплетения множества компонентов, петель обратной связи и взаимодействия с реальным миром.

На более детальную схему архитектуры вместе с описанием компонентов, а заодно и на пайплайновые ошибки мы посмотрим в главе 3. Сейчас же хочется, чтобы вы почувствовали, каких высот можно достигнуть в роботах, если перейти от классического пайплайна к end-to-end-подходу. При этом современные системы Physical AI уже нацелились на end-to-end, но до конца переход не реализовали. Всё только впереди. Дерзайте!

Мы разобрали последнюю опору AI-революции, end-to-end. Теперь самое время собрать знания обо всех опорах вместе и переосмыслить, что такое Physical AI. Этим мы и займёмся в следующем параграфе.

Чтобы добавить в заметки выделенный текст, нажмите Ctrl + E
Предыдущий параграф2.3. Три опоры AI-революции: масштаб
Следующий параграф2.5. Определение Physical AI: второй подход