Хотите зарабатывать на больших моделях? Это могущественное новое лицо решило сначала снизить стоимость рассуждений.
Первоисточник: Heart of the Machine
Источник изображения: Generated by Unbounded AI
Сколько денег сжигает масштабный модельный бизнес? Некоторое время назад статья в Wall Street Journal дала справочный ответ.
Согласно отчету, бизнес Microsoft GitHub Copilot (поддерживаемый моделью OpenAI GPT) взимает 10 долларов в месяц, но по-прежнему стоит в среднем 20 долларов за пользователя. Поставщики услуг ИИ сталкиваются со значительными экономическими проблемами — эти сервисы не только дороги в создании, но и очень дороги в эксплуатации.
Кто-то сравнил это с тем, что «использовать ИИ для подведения итогов электронного письма — это все равно, что просить Lamborghini доставить пиццу».
OpenAI подсчитала более детальный отчет об этом: когда длина контекста равна 8 КБ, стоимость каждого входного токена в 1 КБ составляет 3 цента, а стоимость выхода — 6 центов. В настоящее время OpenAI имеет 180 миллионов пользователей и получает более 10 миллионов запросов в день. Таким образом, чтобы работать с такой моделью, как ChatGPT, OpenAI необходимо инвестировать около 7 миллионов долларов в день в необходимое вычислительное оборудование, которое, можно сказать, является пугающе дорогим.
Снижение затрат на логический вывод для LLM является обязательным условием, а увеличение скорости логического вывода является доказанным критически важным путем. **
На самом деле, исследовательское сообщество предложило ряд технологий для ускорения задач логического вывода LLM, включая DeepSpeed, FlexGen, vLLM, OpenPPL, FlashDecoding и TensorRT-LLM. Естественно, у этих технологий тоже есть свои преимущества и недостатки. Среди них FlashDecoding — это современный метод, предложенный авторами FlashAttention и Три Дао и др. из команды Стэнфордского университета в прошлом месяце, который значительно повышает скорость логического вывода LLM за счет параллельной загрузки данных и считается имеющим большой потенциал. Но в то же время это приводит к ненужным вычислительным накладным расходам, так что все еще есть много возможностей для оптимизации.
Чтобы еще больше решить эту проблему, совместная команда из Infinigence-AI, Университета Цинхуа и Шанхайского университета Цзяо Тун недавно предложила новый метод, FlashDecoding++, который не только обеспечивает большее ускорение, чем предыдущий метод (может ускорить инференс GPU в 2-4 раза), но, что более важно, поддерживает графические процессоры NVIDIA и AMD! Его основная идея состоит в том, чтобы достичь истинного параллелизма в вычислениях внимания с помощью асинхронного подхода и ускорить вычисления на этапе декодирования для оптимизации «массивного» матричного продукта. **
Адрес:
Ускоряет инференс графического процессора в 2-4 раза,
Как это делает FlashDecoding++? **
Задача вывода LLM, как правило, заключается во вводе фрагмента текста (лексемы) и продолжении создания текста или других форм содержимого с помощью вычисления модели LLM.
Вычисление вывода LLM можно разделить на два этапа: Предварительное заполнение и Декодирование, где этап Предварительное заполнение генерирует первую лексему, понимая входной текст; На этапе декодирования последующие маркеры выводятся последовательно. В два этапа вычисление логического вывода LLM можно разделить на две основные части: вычисление внимания и вычисление умножения матриц.
Для вычислений внимания существующие разработки, такие как FlashDecoding, реализуют параллельную загрузку данных с помощью оператора softmax в вычислениях внимания с шардингом. Этот метод вводит 20% вычислительных накладных расходов при вычислениях внимания из-за необходимости синхронизации максимальных значений в разных частях softmax. Для вычислений умножения матриц на этапе декодирования матрицы умножения влево в основном отображаются как «массивные» матрицы, то есть количество строк обычно невелико (например, <=8), и существующий механизм логического вывода LLM расширяет количество строк до 64, дополняя 0 для ускорения архитектурой, такой как тензорные ядра, что приводит к большому количеству недопустимых вычислений (умноженных на 0).
Для решения вышеуказанных задач основная идея “FlashDecoding++” заключается в реализации истинного параллелизма вычисления внимания с помощью асинхронных методов, а также ускорении вычислений на этапе декодирования для оптимизации умножения матриц “Шалтай-Болтай”. **
*Рисунок 1 Асинхронные вычисления Softmax в параллельной секции
В предыдущей работе в качестве коэффициента масштабирования было введено максимальное значение для каждой части вычисления softmax, чтобы избежать переполнения экспоненты e при вычислении softmax, что приводило к накладным расходам на синхронизацию различных частей вычисления softmax (рис. 1(a)(b)).
“FlashDecoding++” указывает на то, что для большинства LLM распределение входного сигнала softmax является более концентрированным. Как показано на рисунке 2, более 99,99% входного softmax для Llama2-7B сосредоточено в диапазоне [-16.8, 6.5]. Поэтому “FlashDecoding++” предлагает использовать фиксированное максимальное значение для некоторых расчетов softmax (рис. 1, c)), тем самым избегая частой синхронизации между различными вычислениями softmax. Когда входные данные с малой вероятностью выходят за пределы заданного диапазона, расчет softmax этой части “FlashDecoding++” вырождается в исходный метод расчета.
Оптимизация продукта матрицы Шалтая-Болтая
Рис.3 Шардинг умножения матриц Шалтая-Болтая и механизм двойного кэширования
Поскольку входными данными для этапа декодирования является один или несколько векторов маркеров, матричное произведение для этого этапа ведет себя в виде «фрагментов». Возьмем в качестве примера матрицу A×B=C, где форма матриц A и B равна M×K и K×N, а матрица «Шалтай-Болтай» умножает M, когда M меньше. “FlashDecoding++” указывает на то, что матрица “Шалтай-Болтай” ограничена общим кэшем, и предлагает методы оптимизации, такие как механизм двойного кэширования для ее ускорения (рис. 3).
Figure 4 Адаптивная реализация умножения матриц
Кроме того, “FlashDecoding++” далее указывает, что на этапе логического вывода LLM значения N и K фиксированы для конкретной модели. Поэтому “FlashDecoding++” адаптивно подбирает оптимальную реализацию матричного произведения по величине M.
Ускоряет инференс графического процессора в 2-4 раза
Рис. 5 “FlashDecoding++” Логический вывод LLM между NVIDIA и платформой AMD (модель Llama2-7B, batchsize=1)
В настоящее время FlashDecoding++ может ускорить логический вывод LLM на серверной части нескольких графических процессоров, таких как NVIDIA и AMD (рис. 5). Ускоряя генерацию первого маркера на этапе предварительного заполнения и скорость генерации каждого маркера на этапе декодирования, “FlashDecoding++” может ускорить генерацию как длинных, так и коротких текстов. ** FlashDecoding++ ускоряет инференс в среднем на 37% на NVIDIA A100 по сравнению с FlashDecoding и до 2-4 раз быстрее, чем Hugging Face на бэкендах NVIDIA и AMD с несколькими графическими процессорами. **
Новичок в области предпринимательства с использованием больших моделей ИИ: Wuwen Core Dome
Тремя соавторами исследования являются доктор Дай Гохао, главный научный сотрудник Wuwen Core Dome и доцент Шанхайского университета Цзяо Тун, Хун Кэ, стажер-исследователь Wuwen Core Dome и магистрант Университета Цинхуа, и Сюй Цзямин, стажер-исследователь Wuwen Core Dome и докторант Шанхайского университета Цзяо Тун. Авторами-корреспондентами являются профессор Дай Гохао из Шанхайского университета Цзяо Тун и профессор Ван Юй, декан факультета электронной инженерии Университета Цинхуа.
Основанная в мае 2023 года, цель состоит в том, чтобы создать лучшее решение для интеграции программного и аппаратного обеспечения для больших моделей, а FlashDecoding++ был интегрирован в вычислительный движок для больших моделей «Infini-ACC». При поддержке «Infini-ACC» компания Wuwen Core Dome разрабатывает ряд крупномасштабных программных и аппаратных интеграционных решений, в том числе крупномасштабную модель «Infini-Megrez», программно-аппаратную машину «все в одном» и т.д.
Понятно, что “Infini-Megrez” очень хорошо зарекомендовал себя в работе с длинными текстами, увеличив длину текста, который может быть обработан, до рекордных 256 тыс. токенов**, и фактическая обработка около 400 000 слов всей “Three-Body Problem 3: Death Eternal” не является проблемой. Это самая большая длина текста, которая может быть обработана большой моделью на сегодняшний день.
Кроме того, большая модель “Infini-Megrez” достигла производительности алгоритма первого уровня на таких наборах данных, как C (СРЕДНИЙ), MMLU (АНГЛИЙСКИЙ), CMMLU (средний) и AGI, и постоянно развивается на основе вычислительного движка “Infini-ACC”.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
GPU-инференс ускоряется в 4 раза, а контекст 256K является самым длинным в мире: Wuwen Core Dome установил новый рекорд по оптимизации больших моделей
Первоисточник: Heart of the Machine
Сколько денег сжигает масштабный модельный бизнес? Некоторое время назад статья в Wall Street Journal дала справочный ответ.
Согласно отчету, бизнес Microsoft GitHub Copilot (поддерживаемый моделью OpenAI GPT) взимает 10 долларов в месяц, но по-прежнему стоит в среднем 20 долларов за пользователя. Поставщики услуг ИИ сталкиваются со значительными экономическими проблемами — эти сервисы не только дороги в создании, но и очень дороги в эксплуатации.
Кто-то сравнил это с тем, что «использовать ИИ для подведения итогов электронного письма — это все равно, что просить Lamborghini доставить пиццу».
OpenAI подсчитала более детальный отчет об этом: когда длина контекста равна 8 КБ, стоимость каждого входного токена в 1 КБ составляет 3 цента, а стоимость выхода — 6 центов. В настоящее время OpenAI имеет 180 миллионов пользователей и получает более 10 миллионов запросов в день. Таким образом, чтобы работать с такой моделью, как ChatGPT, OpenAI необходимо инвестировать около 7 миллионов долларов в день в необходимое вычислительное оборудование, которое, можно сказать, является пугающе дорогим.
На самом деле, исследовательское сообщество предложило ряд технологий для ускорения задач логического вывода LLM, включая DeepSpeed, FlexGen, vLLM, OpenPPL, FlashDecoding и TensorRT-LLM. Естественно, у этих технологий тоже есть свои преимущества и недостатки. Среди них FlashDecoding — это современный метод, предложенный авторами FlashAttention и Три Дао и др. из команды Стэнфордского университета в прошлом месяце, который значительно повышает скорость логического вывода LLM за счет параллельной загрузки данных и считается имеющим большой потенциал. Но в то же время это приводит к ненужным вычислительным накладным расходам, так что все еще есть много возможностей для оптимизации.
Чтобы еще больше решить эту проблему, совместная команда из Infinigence-AI, Университета Цинхуа и Шанхайского университета Цзяо Тун недавно предложила новый метод, FlashDecoding++, который не только обеспечивает большее ускорение, чем предыдущий метод (может ускорить инференс GPU в 2-4 раза), но, что более важно, поддерживает графические процессоры NVIDIA и AMD! Его основная идея состоит в том, чтобы достичь истинного параллелизма в вычислениях внимания с помощью асинхронного подхода и ускорить вычисления на этапе декодирования для оптимизации «массивного» матричного продукта. **
Ускоряет инференс графического процессора в 2-4 раза,
Как это делает FlashDecoding++? **
Задача вывода LLM, как правило, заключается во вводе фрагмента текста (лексемы) и продолжении создания текста или других форм содержимого с помощью вычисления модели LLM.
Вычисление вывода LLM можно разделить на два этапа: Предварительное заполнение и Декодирование, где этап Предварительное заполнение генерирует первую лексему, понимая входной текст; На этапе декодирования последующие маркеры выводятся последовательно. В два этапа вычисление логического вывода LLM можно разделить на две основные части: вычисление внимания и вычисление умножения матриц.
Для вычислений внимания существующие разработки, такие как FlashDecoding, реализуют параллельную загрузку данных с помощью оператора softmax в вычислениях внимания с шардингом. Этот метод вводит 20% вычислительных накладных расходов при вычислениях внимания из-за необходимости синхронизации максимальных значений в разных частях softmax. Для вычислений умножения матриц на этапе декодирования матрицы умножения влево в основном отображаются как «массивные» матрицы, то есть количество строк обычно невелико (например, <=8), и существующий механизм логического вывода LLM расширяет количество строк до 64, дополняя 0 для ускорения архитектурой, такой как тензорные ядра, что приводит к большому количеству недопустимых вычислений (умноженных на 0).
Для решения вышеуказанных задач основная идея “FlashDecoding++” заключается в реализации истинного параллелизма вычисления внимания с помощью асинхронных методов, а также ускорении вычислений на этапе декодирования для оптимизации умножения матриц “Шалтай-Болтай”. **
Асинхронные параллельные частичные вычисления Softmax
В предыдущей работе в качестве коэффициента масштабирования было введено максимальное значение для каждой части вычисления softmax, чтобы избежать переполнения экспоненты e при вычислении softmax, что приводило к накладным расходам на синхронизацию различных частей вычисления softmax (рис. 1(a)(b)).
“FlashDecoding++” указывает на то, что для большинства LLM распределение входного сигнала softmax является более концентрированным. Как показано на рисунке 2, более 99,99% входного softmax для Llama2-7B сосредоточено в диапазоне [-16.8, 6.5]. Поэтому “FlashDecoding++” предлагает использовать фиксированное максимальное значение для некоторых расчетов softmax (рис. 1, c)), тем самым избегая частой синхронизации между различными вычислениями softmax. Когда входные данные с малой вероятностью выходят за пределы заданного диапазона, расчет softmax этой части “FlashDecoding++” вырождается в исходный метод расчета.
Оптимизация продукта матрицы Шалтая-Болтая
Поскольку входными данными для этапа декодирования является один или несколько векторов маркеров, матричное произведение для этого этапа ведет себя в виде «фрагментов». Возьмем в качестве примера матрицу A×B=C, где форма матриц A и B равна M×K и K×N, а матрица «Шалтай-Болтай» умножает M, когда M меньше. “FlashDecoding++” указывает на то, что матрица “Шалтай-Болтай” ограничена общим кэшем, и предлагает методы оптимизации, такие как механизм двойного кэширования для ее ускорения (рис. 3).
Кроме того, “FlashDecoding++” далее указывает, что на этапе логического вывода LLM значения N и K фиксированы для конкретной модели. Поэтому “FlashDecoding++” адаптивно подбирает оптимальную реализацию матричного произведения по величине M.
Ускоряет инференс графического процессора в 2-4 раза
В настоящее время FlashDecoding++ может ускорить логический вывод LLM на серверной части нескольких графических процессоров, таких как NVIDIA и AMD (рис. 5). Ускоряя генерацию первого маркера на этапе предварительного заполнения и скорость генерации каждого маркера на этапе декодирования, “FlashDecoding++” может ускорить генерацию как длинных, так и коротких текстов. ** FlashDecoding++ ускоряет инференс в среднем на 37% на NVIDIA A100 по сравнению с FlashDecoding и до 2-4 раз быстрее, чем Hugging Face на бэкендах NVIDIA и AMD с несколькими графическими процессорами. **
Новичок в области предпринимательства с использованием больших моделей ИИ: Wuwen Core Dome
Тремя соавторами исследования являются доктор Дай Гохао, главный научный сотрудник Wuwen Core Dome и доцент Шанхайского университета Цзяо Тун, Хун Кэ, стажер-исследователь Wuwen Core Dome и магистрант Университета Цинхуа, и Сюй Цзямин, стажер-исследователь Wuwen Core Dome и докторант Шанхайского университета Цзяо Тун. Авторами-корреспондентами являются профессор Дай Гохао из Шанхайского университета Цзяо Тун и профессор Ван Юй, декан факультета электронной инженерии Университета Цинхуа.
Основанная в мае 2023 года, цель состоит в том, чтобы создать лучшее решение для интеграции программного и аппаратного обеспечения для больших моделей, а FlashDecoding++ был интегрирован в вычислительный движок для больших моделей «Infini-ACC». При поддержке «Infini-ACC» компания Wuwen Core Dome разрабатывает ряд крупномасштабных программных и аппаратных интеграционных решений, в том числе крупномасштабную модель «Infini-Megrez», программно-аппаратную машину «все в одном» и т.д.
Понятно, что “Infini-Megrez” очень хорошо зарекомендовал себя в работе с длинными текстами, увеличив длину текста, который может быть обработан, до рекордных 256 тыс. токенов**, и фактическая обработка около 400 000 слов всей “Three-Body Problem 3: Death Eternal” не является проблемой. Это самая большая длина текста, которая может быть обработана большой моделью на сегодняшний день.