Новая высокопроизводительная нейросеть потребляет всего 13 Вт энергии, что сопоставимо с питанием электрической лампочки - благодаря новым алгоритмам

Аватар пользователя Topmember

Устраняя самый дорогостоящий с точки зрения вычислений элемент большой языковой модели, инженеры значительно повышают энергоэффективность при сохранении производительности, сообщает 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

Авторство: 
Авторская работа / переводика
Комментарий редакции раздела Альтернативный Интеллект

Инфа пока что - прогноз намерений. Без каких-либо гарантий и подтверждений. 

Как неоднократно отмечалось - сейчас все любыми силами будут стараться хайповать на ИИ и стричь лохов "пока не началось". Конечно, хотелось бы, чтобы описываемый в материале подход - привел к заявленным результатам. Но верится с трудом.

Продолжаем наблюдать.

Комментарии

Аватар пользователя ТШУ
ТШУ(1 год 10 месяцев)

Основополагающими понятиями современной математики являются понятия сходимости и предела.

Отсутствие сходимости - большая проблема. И не только в математике.

Функция развития человечества и функция его же взросления - похоже  функции расходящиеся. Признаки этого множатся.

Аватар пользователя Корректор
Корректор(7 лет 7 месяцев)

Функция развития человечества и функция его же взросления - похоже  функции расходящиеся. Признаки этого множатся.

Добро пожаловать в цивилизационный коллапс и необратимое изменение человечества. 

smile3.gifsmile3.gifsmile3.gif

Аватар пользователя ДеМонтаж
ДеМонтаж(2 года 7 месяцев)

Добро пожаловать в цивилизационный коллапс и необратимое изменение человечества. 

Вот умеете Вы поднять настроение!... smile3.gif

Но ведь надо что-то делать... ;-)

Аватар пользователя Корректор
Корректор(7 лет 7 месяцев)

Но ведь надо что-то делать... ;-)

Зачем? smile8.gif smile3.gif

Аватар пользователя Siberian
Siberian(5 лет 11 месяцев)

Функция развития человечества и функция его же взросления - похоже  функции расходящиеся

всего человечества или все же только некоторых стран?

Аватар пользователя Сергей Чернышев

Некоторые страны деградируют медленнее и это выдают за прогресс.

Аватар пользователя ДеМонтаж
ДеМонтаж(2 года 7 месяцев)

Есть вот такое представление об историческом развитии. :-)

https://aftershock.news/?q=node/1224547&ts=0&comment_requested_thread=0e.00.00.00.01.00.00.00.00/#comments

Аватар пользователя father_gorry
father_gorry(8 лет 11 месяцев)

Есть еще индетерминизм, нестабильность, неравновесность. 

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

На аппаратном уровне реинкарнация Сетуни. 

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

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

  • Там, где умножение выдает "0", что можно интерпретировать как ХЗ (нет данных) четыре раза, то сложение выдает "0" только три раза, что увеличивает количество значимых ответов там, на самом деле ХЗ.
  • И сложение прописывает ХЗ на место двух отрицательных ответов, которые выдаёт умножение.

Так что как бы не оказалось, что ребята из Микрософта не зря не стали заменять умножение на сложение.

В общем, из текста не очевидно, что они делают, и за счёт чего экономия. Может, вообще пропускают операции над ячейками, содержащими ноль? Но, опять же, что с семантикой?

Аватар пользователя Topmember
Topmember(12 лет 7 месяцев)

Подробности должны быть тут: https://arxiv.org/abs/2406.02528

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

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

Пусть Академия Наук разбирается, они за это бапки получают. Ну или Корректор прибежит, он как юрист-антрополог объяснит, что это означает сингулярность.

Аватар пользователя Корректор
Корректор(7 лет 7 месяцев)

Пусть Академия Наук разбирается, они за это бапки получают. Ну или Корректор прибежит, он как юрист-антрополог объяснит, что это означает сингулярность.

Я не знаю что это. Но ваши отсылки к истории "Сетунь" мне кажутся ошибочными. 

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

Я отсылал не к истории Сетуни, а к первой на планете Земля аппаратной реализации троичной логики в Сетуни.

Аватар пользователя Корректор
Корректор(7 лет 7 месяцев)

Я прекрасно вас понял насчет троичной логики. Я еще помню историю электроники в СССР. Но на мой взгляд, вы путаете тепло и мягкое. 

Практическая суть моделей LLM в формировании "отражении" реальной действительности посредством его прямого заимствования из "отражения" материальной культуры человечества. Зеркало отражающее зеркало. А какая там логика, это уже другой вопрос.

На самом деле мы не знаем что собой в действительности представляет наше "отражение" содержащееся в материальной культуре общества. Это мы просто научились создавать LLM как "отражения" нашего языка. Но более важно, что мы пока не понимаем что в действительности отражает "отражение отражения", поскольку на сегодня у нас нет адекватных методов математического анализа материальной культуры общества. Мы только пытаемся их создать. Но самый важный вопрос - Что такое "оригинал"? Который "отражают" все эти отражения.

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

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

Как и ожидалось, пришёл юрист-антрополог, и всё объяснил.

Аватар пользователя utx
utx(8 лет 10 месяцев)

Да класть на "логику моделей". Тут суть чтоб запихнуть в FPGA алгоритм пришлось использовать троичную систему как на Сетуне. А дальше хайповые заголовки с chatGPT и прочим. Так то китайцы должны на камеры с распознаванием лиц молится начинать. Этож где это виданно модель с GPU запихнули на FPGA, никогда такого не было.

Аватар пользователя Корректор
Корректор(7 лет 7 месяцев)

Этож где это виданно модель с GPU запихнули на FPGA, никогда такого не было.

Понятно что так можно сделать. Непонятно можно ли так реализовать LLM. Как минимум мне не понятно что будет в случае такое реализации. 

Аватар пользователя utx
utx(8 лет 10 месяцев)

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

Аватар пользователя Корректор
Корректор(7 лет 7 месяцев)

Я понял в чем оптимизация, я не понимаю какой будет результат в случае LLM. Насколько получится реализовать точную модель человеческого языка таким методом, и соответственно, какая получится "виртуальная нейронная сеть" второго уровня?

Аватар пользователя utx
utx(8 лет 10 месяцев)

Ну по их графикам все красиво ) И чем больше модель тем красивее. Насколько это масштабируется, вопрос ) 

Аватар пользователя Корректор
Корректор(7 лет 7 месяцев)

Насколько это масштабируется, вопрос ) 

Тут вопрос даже не в масштабировании, а в смысле масштабирования. :)))

Аватар пользователя utx
utx(8 лет 10 месяцев)

Конспиролог on

Может чтоб продать больше Intel PAC FPGA Stratix 10 SX или Xeon Gold 6138P ?!

Конспиролог off )

Аватар пользователя Andrew74-22
Andrew74-22(5 лет 1 месяц)

Во всём этом - два состояния.
Третье, и любое другое количество измерений обрабатывается переводом в двоичную систему.

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

За перевод комиссию берут.

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

Аватар пользователя Harsky
Harsky(12 лет 7 месяцев)

Аппаратно в Сетуни как раз обычная двоичная логика работала, троичность эмулировалась.

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

Как-то свою мысль развернуть и аргументировать можете?

Аватар пользователя Harsky
Harsky(12 лет 7 месяцев)

Предельно упрощая - никаких троичных аппаратных тригеров и элементов И-ИЛИ-НЕ в Сетуни не было. Троичный бит (как сигнал при передаче данных из одной области в другую) не по одной линии шел, а по двум. Всё.

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

Ну, реализовали как смогли на том техническом уровне.

Аватар пользователя Harsky
Harsky(12 лет 7 месяцев)

Тогда о какой аппаратной реализации можно вести речь? С таким же успехом это можно было реализовать чисто программно, модифицировав какой-либо ЯВУ, либо создав новый. В реляционной логике SQL троичность присутствует в полный рост и для этого не требуется никакой аппаратной поддержки. Ну и по мелочи, куча скриптовых языков любят ограниченную троичность - true/false/undefine. Короче, достижение, которое не было достижением и в момент существования не пригодилось. 

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

Если выдвигать условие всё впихнуть в один элемент, то не троично. А если это условие снять, то в Сетуни аппаратная реализация троичной логики.

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

Аватар пользователя Harsky
Harsky(12 лет 7 месяцев)

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

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

Если по одной линии, то требуется 3-х ступенчатый сигнал. Решили, что два шнурка кинуть проще. чем на один шнурок три уровня сигнала подавать и три уровня с него считывать. Тогда другая элементая база была.

Аватар пользователя utx
utx(8 лет 10 месяцев)

А эти сделали) Они просто отбрасывают среднее состояние. И работают в бинарной логике с 2/3 данных. ) 

Аватар пользователя Harsky
Harsky(12 лет 7 месяцев)

Ну, если бы Сетунь делали, что называется "как надо", то там тоже не мешало бы за ноль принять +0.5В - -0.5В, за единицу - +5В, за третье состояние - -5В (или как-то так, по аналогии). 

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

А потом удивляются бредогенерации - причём зашивают её на уровень работы с матрицами, а поверх того полируют вероятностями, типа правильно то, что более часто, а не то, что перед пользователем в реале.

Аватар пользователя utx
utx(8 лет 10 месяцев)

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

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

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

Ну и чем тут обратное распространение поможет?

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

Аватар пользователя utx
utx(8 лет 10 месяцев)

Ну и чем тут обратное распространение поможет?

Ну в одном канале признак выключается в другом он же усиливается. А при итерации обратного распространения все может поменяется во всех N каналах признак может усилится ну или полностью выключиться. 

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

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

Аватар пользователя utx
utx(8 лет 10 месяцев)

Честно не разбирался как они dW раскидывают, и активируют ли шо нить взад, просто предположил )

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

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

Но при взгляде по диагонали слишком много вопросов про увязку с интерпретацией в троичной логике "Да/Нет/Пшёл на й" и с семантикой предметных областей.

Аватар пользователя Andrew74-22
Andrew74-22(5 лет 1 месяц)

В реляционной логике SQL троичность присутствует
Там присутствует всё, что угодно. Включая логику любой размерности.
Один вопрос - смысл это делать?
Как это ускорит реализацию главного: Select... From... Where.... ?

Аватар пользователя Harsky
Harsky(12 лет 7 месяцев)

Один вопрос - смысл это делать?

Смысл в упрощении логики запроса. Не надо отдельно условия проверять на NULL, ибо его наличия работает как некое... супер-false, автоматически учитывается как отличное от false не истинное значение. Удобно. Это же и в скриптинге полезно, в том же Perl всё очень грамотно про undef сделано, без него гораздо менее удобно (в том же bash-скрипте - ох, как же этого не хватает).
 

Аватар пользователя Andrew74-22
Andrew74-22(5 лет 1 месяц)

Расскажите это разработчикам 1с )

Аватар пользователя Harsky
Harsky(12 лет 7 месяцев)

Бог миловал, мимо меня это счастье проскочило, хотя с SAP'ом (некоторыми продуктами) и пришлось познать всю боль мира в свое время... )))

Аватар пользователя Andrew74-22
Andrew74-22(5 лет 1 месяц)

Бог ни причём.
Программисты 1с sql запросы не пишут.
Их формирует 1с :)

Аватар пользователя utx
utx(8 лет 10 месяцев)

Как я понял они используют троичные веса те вес у них может быть 1 0 -1 тогда операция sum(xi*wi) заменяется сложением )

xi if wi==1

0 if wi==0

-xi if wi==-1

Вообщем матрицу чисел с плавающей запятой умножают на матрицу троичных битов и заменяют умножение сложением.

Так как там используется BF16 то они сильно экономят на блоке умножения fp 

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

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

А если xi и wi оба значения троичные в логике "Да/Нет/ХЗ", то, как следует из табличек в моем заглавном комменте, семантика умножения xi*wi и семантика сложения xi+wi разные - при умножении пять раз получается "0", оно же на уровне бытовой олигофрении логичное и интерпретируемое ХЗ, а при сложении "Да/Нет/ХЗ" перемешиваются и теряют исходные ХЗ, что при логической интерпретации откровенная шиза. 

Аватар пользователя utx
utx(8 лет 10 месяцев)

А если xi и wi оба значения троичные в логике "Да/Нет/ХЗ",

Нее только wi троичная, на третей странице в самом низу общая формула. Они откидывают все xi где wi == 0 а потом вычитают/складывают две оставшиеся матрицы.

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

лево-право пошел нафиг )

Как по мне вопрос насколько это масштабируемо при большом N.

Аватар пользователя Doc_Mike
Doc_Mike(6 лет 10 месяцев)

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

А если с точки зрения семантики, как в той же медицине, то идёт аккумуляция ошибок - если ХЗ, то надо добирать пропущенную инфу, легкие постучать-послушать-снимок сделать, а не ставить диагноз "температура + кашель = ОРВИ", пропустив туберкулёз или абсцесс легких.

Страницы