MultiRay — это платформа, разработанная Meta (Facebook) для предоставления приложений глубокого обучения для различных вариантов использования при одновременном сохранении затрат на разумном уровне. MulitRay используется более чем в 125 приложениях Meta.

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

Три вывода

  • Общие встраивания различных приложений в организации.
  • Кэш — компромисс между вычислениями и хранилищем для встраивания.
  • MultiRay обрабатывает 20 миллионов запросов в секунду (QPS), обслуживая 800 миллиардов запросов в день.

Введение

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

Например, давайте быстро взглянем на BLOOM, модель, опубликованную в 2022 году. BLOOM — это мощная многоязычная модель, она обучена 46 различным языкам и 13 языкам программирования. Однако за это приходится платить: эта модель содержит 176 миллиардов параметров и дает общий размер модели 352 ГБ (в bf16). При квантовании размер модели можно уменьшить на 50%.

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

Первый и самый быстрый уровень — это быстрый, но небольшой локальный кэш для каждого хоста в оперативной памяти каждого сервера MultiRay. Последний уровень и самый медленный уровень глобально распределенного кэша во флэш-памяти. Преимуществом является необработанный объем памяти.

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

Неконтролируемое межъязыковое репрезентативное обучение в масштабе

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

Были разные модели с разным количеством языков (15, 30, 60 и 100 языков), обученные анализировать эффекты. Используемым набором данных был набор данных CommonCrawls, который содержит 2,5 ТБ текстовых данных. Модели обучались полностью без присмотра, а это означает, что никаких человеческих ярлыков не требуется. Чтобы быть более точным, он был предварительно обучен с целью моделирования маскированного языка (MLM). В каждом обучающем предложении 15% входных слов маскируются случайным образом. Все замаскированное предложение является входом для модели, модель должна предсказать недостающие слова входного предложения.

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

Встраивание текста общего назначения из предварительно обученных языковых моделей для масштабируемого вывода

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

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

  1. Точная настройка для одной задачи показана на рисунке: кодировщик полностью настраивается для конкретной задачи, что означает оптимизацию всех весов модели.

2. Многозадачное предварительное обучение показано на b и c: на первом этапе многозадачный кодировщик обучается на k-1 задачах. На следующем этапе, точной настройке без исключения задачи, веса многозадачного кодировщика фиксируются и обучается k-я задача. k-я задача неизвестна модели. Таким образом, можно проанализировать обобщение кодировщика на новые задачи.

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

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

Внедрение кэширования

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

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

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

Проблемы

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

  • управление клиентами
  • отнесение затрат
  • квоты

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

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

Заключение и перспективы

Это было первое понимание внутренней работы MultiRay от Meta. Как я уже упоминал в начале, существуют подходы к созданию вложений изображений и видео в одно и то же пространство для встраивания. В случае с Meta это особенно полезно для подключения к платформе таких сервисов, как Reell.

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