Устраняя самый дорогостоящий с точки зрения вычислений элемент большой языковой модели, инженеры значительно повышают энергоэффективность при сохранении производительности, сообщает news.ucsc.edu
Доказано, что большие языковые модели, такие как ChaptGPT, способны выдавать удивительно интеллектуальные результаты, но энергетические и денежные затраты, связанные с запуском этих масштабных алгоритмов, заоблачно высоки. По последним оценкам, запуск ChatGPT 3.5 обходится в 700 000 долларов в день в виде затрат на электроэнергию и оставляет после себя огромный углеродный след.
В новом препринте исследователи из Калифорнийского университета в Санта-Крус показывают, что можно исключить самый дорогостоящий с точки зрения вычислений элемент запуска моделей большого языка, называемый матричным умножением, при сохранении производительности.
Избавившись от матричного умножения и запустив свой алгоритм на специализированном оборудовании, исследователи обнаружили, что они могут обеспечить работу языковой модели с миллиардом параметров всего на 13 ваттах, что примерно равно энергии, потребляемой лампочкой и более чем в 50 раз эффективнее, чем [это делает] обычное оборудование.
Даже при упрощенном алгоритме и гораздо меньшем потреблении энергии новая модель с открытым исходным кодом достигает той же производительности, что и современные модели, такие как Meta Llama.
«Мы получили ту же производительность при гораздо меньших затратах — все, что нам пришлось сделать, это в корне изменить принцип работы нейронных сетей», — говорит Джейсон Эшрагиан, доцент кафедры электротехники и вычислительной техники в Школе инженерии Баскина и ведущий автор статьи. «Затем мы сделали еще один шаг вперед и создали специальное оборудование».
Понимание стоимости
До сих пор все современные нейронные сети — алгоритмы, на основе которых строятся большие языковые модели, — использовали технику, называемую матричным умножением.
В больших языковых моделях слова представляются в виде чисел, которые затем организуются в матрицы. Матрицы умножаются друг на друга для создания языка, выполняя операции, которые взвешивают важность определённых слов или выделяют связи между словами в предложении или предложениями в абзаце. Языковые модели более крупного масштаба содержат триллионы таких чисел.
“Нейронные сети, в некотором смысле, являются прославленными машинами для умножения матриц”, — сказал Эшрагиан. “Чем больше ваша матрица, тем большему количеству вещей может научиться ваша нейронная сеть”.
Чтобы алгоритмы могли перемножать матрицы, матрицы необходимо где-то хранить, а затем извлекать, когда придет время вычисления.
Это решается путем хранения матриц на сотнях физически разделенных графических процессоров (GPU), которые представляют собой специализированные схемы, предназначенные для быстрого выполнения вычислений на очень больших наборах данных, разработанные такими аппаратными гигантами, как Nvidia.
Чтобы умножить числа из матриц на разных графических процессорах, данные необходимо перемещать — процесс, который создает большую часть затрат нейронной сети с точки зрения времени и энергии.
Отказ от матричного умножения
Исследователи разработали стратегию, позволяющую избежать использования матричного умножения, используя два основных метода. Первый — это метод, позволяющий заставить все числа внутри матриц быть троичными, что означает, что они могут принимать одно из трех значений: отрицательное, нулевое или положительное. Это позволяет свести вычисления к суммированию чисел, а не к умножению.
С точки зрения информатики эти два алгоритма можно закодировать совершенно одинаково, но метод команды Эшрагяна позволяет избежать массы затрат на аппаратную часть.
«С точки зрения разработчика схем, вам не нужны расходы на умножение, которые влекут за собой целую кучу затрат», — говорит Эшрагян.
Вдохновением для этой стратегии послужила работа компании Microsoft, которая показала возможность использования троичных чисел в нейронных сетях, но не зашла так далеко, чтобы избавиться от умножения матриц или выложить свою модель на всеобщее обозрение. Для этого исследователи изменили стратегию взаимодействия матриц друг с другом.
Вместо того чтобы умножать каждое число в одной матрице на каждое число в другой матрице, как это обычно бывает, исследователи разработали стратегию, позволяющую получить те же математические результаты. При таком подходе матрицы накладываются друг на друга, и выполняются только самые важные операции.
«По сравнению с умножением матриц это довольно легкая операция», — говорит Руй-Цзе Чжу, первый автор статьи и аспирант в группе Эшрагяна. «Мы заменили дорогостоящую операцию более дешевой».
Несмотря на сокращение количества операций, исследователи смогли сохранить производительность нейронной сети, внедрив в процесс обучения модели вычисления, основанные на времени.
Это позволяет сети сохранять в “памяти” важную информацию, которую она обрабатывает, повышая производительность. Этот метод оправдал себя — исследователи сравнили свою модель с ультрасовременным алгоритмом Meta под названием Llama и смогли достичь той же производительности даже в масштабе миллиардов параметров модели.
Индивидуальные/пользовательские чипы
Исследователи разработали свою нейронную сеть для работы на графических процессорах, поскольку они стали повсеместно использоваться в индустрии ИИ, что позволило сделать программное обеспечение команды легкодоступным и полезным для всех, кто захочет его использовать.
На стандартных графических процессорах нейронная сеть потребляла в 10 раз меньше памяти и работала на 25 % быстрее, чем другие модели. Сокращение объема памяти, необходимого для запуска мощной языковой модели большого объема, могло бы проложить путь к тому, чтобы алгоритмы работали на полную мощность на устройствах с меньшим объемом памяти, таких как смартфоны.
Nvidia, ведущий мировой производитель графических процессоров, разрабатывает свое оборудование таким образом, чтобы оно было максимально оптимизировано для выполнения матричного умножения, что позволило ему доминировать в отрасли и сделать ее одной из самых прибыльных компаний в мире. Однако это оборудование не полностью оптимизировано для троичных операций.
Чтобы добиться еще большей экономии энергии, команда в сотрудничестве с доцентом Дастином Ричмондом и преподавателем Итаном Сифферманом с факультета компьютерных наук и инженерии Baskin Engineering создала специальное оборудование.
В течение трех недель команда создала прототип своего аппаратного обеспечения на схеме с широкими возможностями настройки, называемой программируемой вентильной матрицей (FPGA). Это оборудование позволяет им в полной мере использовать все функции энергосбережения, которые они запрограммировали в нейронной сети.
Благодаря этому аппаратному обеспечению модель превосходит человекочитаемую производительность, то есть выдает слова быстрее, чем читает человек, потребляя всего 13 ватт энергии.
Использование графических процессоров потребовало бы около 700 Вт энергии, а это означает, что специальное оборудование достигло более чем в 50 раз большей эффективности, чем графические процессоры.
Исследователи считают, что при дальнейшей разработке они смогут еще больше оптимизировать технологию для повышения энергоэффективности.
«Эти цифры уже очень солидные, но их очень легко сделать гораздо лучше», — говорит Эшрагян. «Если нам удастся уложиться в 13 ватт, только представьте, что мы сможем сделать с вычислительной мощностью целого центра обработки данных. У нас есть все эти ресурсы, но давайте использовать их эффективно».
Источник перевода: newsstreet.ru
Больше интересных статей, которые я не успеваю переводить, но которые можно почитать через онлайн-перевод, можно найти здесь: t.me/murrrzio
Комментарии
При 60Mhz на тестовой карте за +-10K$ ) А другая часть продолжает считаться на GPU )
У SSD накопителей есть один существенный недостаток - малое количество записей.
Ячейки флеш-памяти NAND выдерживают ограниченное количество циклов перезаписи.
Однобитная SLC на этапе анонса технологии NAND выдерживала 100 тысяч циклов перезаписи, двухбитная MLC/DLC — уже 10 тысяч.
Это на самом деле немного если знать, что винда при каждом обращении к файлу перезаписывает его атрибуты (не всё!) ))
Алгоритмы - наше все! Да. Упрощение самого числа, т.е. сокращение/упрощение мантиссы - то, что нужно для задач нейросетей. "Оптимальщики" этим давно занимаются для получения начальных приближений при поиске локальных минимумов сложных функционалов. Рост эффективности алгоритмов на пару порядков - вполне реально.
Ну те разговор идет о том что для выкраивания бюджета на FPGA тяжелые блоки заменили более легкими, а сам выигрыш в энергопотреблении это переход с общевычислительных процов на FPGA. Что как бы делается постоянно и в куче мест.
Непонятно, что обсуждать. Обычный обмен точности на быстродействие. Вместо весовых коэффициентов нолики и единички расставили. Вопрос, как это будет работать, если и вес миллион и вес один заменить на один. Вот тут то и кроется корень хайпа. Вся идеология создания, так называемого "интеллекта" - воплощение "метода тыка" . Этот вопрос будут долго исследовать, десятки статей напишут и, лет через пять, после переваривания денег на исследования, нам расскажут, что того же качества языковой модели удалось добиться за счёт увеличения числа сложений в 1000 раз.
Коде для GPU лежит здесь, FPGA кода пока нет, коли кому интересно: https://github.com/ridgerchu/matmulfreellm
Доказано, что большие языковые модели, такие как ChaptGPT, способны выдавать удивительно интеллектуальные результаты
Человек способен выдавать намного лучшие результаты. Но для начала надо стать Человеком и тренировать свой интеллект. ИИ - обычный демон ни чем не ограничен, кроме нравственности программиста и задаваемым им алгоритмов.
Человек, с соответствующей нравственностью и строем психики, для обработки информации использует интеллект, чувства, интуицию, совесть, различение от Всевышнего. Обычный калькулятор ИИ, лишённый всего этого. Для специфических задач подойдет. Задача ИИ быстро смешивать краски, зная где они лежат, пока человек творит.
Пусть ИИ ответит на простой вопрос:
Почему все нетривиальные (то есть имеющие ненулевую мнимую часть) нули дзета-функции Римана имеют действительную часть 1/2.
Интересно, но пока не понятно. Не понятно качество получившегося ИИ. В отличии от производительности о качестве ни слова?
И, да, думаю всем же понятно, что человеческий мозг не занимается умножением на прямую (типа матричного, как в схемотехнике) в том числе и подбирая слова - все же мучались изучая таблицу умножения (думаю, что те, кто не мучился - пропустили эту статью) и умножение столбиком?
700к баксов в день, чтоб я получил этот ответ 🥴
Вы не тот вопрос задали. Вот там предлагают подписаться на канал про технологии @naebnet. Поэтому я и задал соответствующий вопрос: naebnet ili ne naebnet? Ответ был краток: naebnet.
ИИшникам выкинуть предыдущие системы нвидии и купить новые, в 50 раз эффективнее.
Вот вот, Nvidia is new dotcom , enron ) Чувствую, уронят они биржу )
Не уронят.
Они в принципе не стоят даже одной Мартеновской печи.
Годный срач. Ахтунг - пахнет трольчатиной! Автор, нет ли в обсуждении упырей? Сим повелеваю - внести запись в реестр самых обсуждаемых за день.
Страницы