"Неточные" языковые модели меньше, быстрее и почти так же верны

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

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

Как сделать 1-битный LLM

Существует два общих подхода. Один подход, называемый квантованием после обучения (PTQ), заключается в квантовании параметров сети с полной точностью. Другой подход, обучение с учетом квантования (QAT), заключается в обучении сети с нуля для получения параметров с низкой точностью. До сих пор PTQ был более популярен среди исследователей.

В феврале команда, в которую вошли Хаотонг Цинь (Haotong Qin) из ETH Zürich, Сянлун Лю (Xianglong Liu) из Университета Бейханг и Вэй Хуанг (Wei Huang) из Университета Гонконга, представила метод PTQ под названием BiLLM. Он аппроксимирует большинство параметров сети с помощью 1 бита, но некоторые важные веса, наиболее влияющие на производительность, представляет с помощью 2 битов. В одном из тестов команда провела бинаризацию версии LLM компании Meta - LLaMa, содержащей 13 миллиардов параметров.

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

-Фуру Вэй, Исследовательский отдел Microsoft в Азии

Для оценки эффективности исследователи использовали метрику под названием "perplexity" (недоумение, замешательство), которая, по сути, является мерой того, насколько удивил обученную модель каждый последующий фрагмент текста. Для одного набора данных исходная модель имела показатель perplexity около 5, а версия BiLLM - около 15, что намного лучше, чем у ближайшего конкурента с бинаризацией, который набрал около 37 баллов (для perplexity более низкие цифры лучше). При этом модель BiLLM потребовала примерно десятую часть объема памяти по сравнению с оригиналом.

PTQ имеет ряд преимуществ перед QAT, говорит Ваньсянь Че (Wanxiang Che), специалист по информатике из Харбинского технологического института (Китай). Для PTQ не требуется собирать обучающие данные, не нужно обучать модель с нуля, а сам процесс обучения более стабилен. С другой стороны, QAT может сделать модели более точными, поскольку квантование заложено в модель с самого начала.

1-битные LLM успешно противостоят своим более крупным кузенам

В прошлом году команда под руководством Фуру Вэя (Furu Wei) и Шуминга Ма (Shuming Ma) из Исследовательского отдела Microsoft в Азии (Microsoft Research Asia) в Пекине, создала BitNet, первый 1-битный метод QAT для LLM. После изменения скорости, с которой сеть корректирует свои параметры, чтобы стабилизировать обучение, они создали LLM, которые показали лучшие результаты, чем те, что были созданы с помощью методов PTQ. Они все еще не были так хороши, как сети с полной точностью, но были примерно в 10 раз более энергоэффективны.

В феврале команда Вэя анонсировала BitNet 1.58b, в которой параметры могут быть равны -1, 0 или 1, что означает, что они занимают примерно 1,58 бит памяти на параметр. Модель BitNet с 3 миллиардами параметров справилась с различными языковыми задачами так же хорошо, как и модель LLaMA с полной точностью, с тем же количеством параметров и объемом обучения, но при этом она была в 2,71 раза быстрее, использовала на 72 % меньше памяти GPU и потребляла на 94 % меньше энергии GPU. Вэй назвал это "моментом истины". Кроме того, исследователи обнаружили, что по мере обучения более крупных моделей эффективность повышается.

Модель BitNet с 3 миллиардами параметров справилась с различными языковыми задачами так же хорошо, как и модель LLaMA с полной точностью.

В этом году команда под руководством Че из Харбинского технологического института опубликовала предварительный отчет о другом методе бинаризации LLM под названием OneBit. OneBit сочетает в себе элементы PTQ и QAT. Он использует предварительно обученный LLM с полной точностью для генерации данных для обучения квантованной версии. На одном наборе данных модель с 13 миллиардами параметров достигла оценки perplexity около 9, в то время как для модели LLaMA с 13 миллиардами параметров этот показатель составил 5. При этом OneBit занимала всего на 10 процентов больше памяти. Предположительно, на специализированных чипах она могла бы работать гораздо быстрее.

По словам Вэя из Microsoft, квантованные модели имеют множество преимуществ. Они могут помещаться на более компактных чипах, требуют меньше передачи данных между памятью и процессором и позволяют быстрее обрабатывать данные. Однако нынешнее оборудование не может в полной мере использовать преимущества этих моделей. LLM часто работают на графических процессорах, таких как Nvidia, которые представляют веса с высокой точностью и тратят большую часть энергии на их умножение. Новые аппаратные средства могли бы представлять каждый параметр как -1 или 1 (или 0), а затем просто складывать и вычитать значения, избегая умножения. "Однобитные LLM открывают новые возможности для разработки специального оборудования и систем, оптимизированных для работы с однобитными LLM", - говорит Вэй.

"Они должны расти вместе", - говорит Хуанг из Университета Гонконга о 1-битных моделях и процессорах. "Но это долгий путь для разработки нового оборудования".

Комментарии (11)


  1. NeoCode
    16.06.2024 16:32
    +6

    Где однобитное, там сразу в голову приходит что-то низкоуровневое, всякие переключательные функции и карты Карно:) Т.е. от нейросетей как-то незаметно вновь вернулись к основам вычислительной техники... Ну а {-1, 0, +1} это же в чистом виде троичная логика, "триты" и все такое:)


    1. riv9231
      16.06.2024 16:32
      +7

      Где-то читал, что человеческий нейроны обмениваются информацией с помощью спайков - пачек импульсов. При этом они могут:
      молчат - если распознаваемый паттерн, совсем не то
      1 импульс - нейрон как бы говорит, возможно это то
      2 импульса - это, скорее всего, то
      3 импульса - совершенно точно, это то самое!

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


      1. momai
        16.06.2024 16:32

        Тоже на уровне что-то где-то слышал:

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


      1. qeeveex
        16.06.2024 16:32

        никем не принимается во внимание

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

        Нельзя сравнивать нейросети с их нулями и единицами в основе с нейронами в головном мозге. Это разные вселенные.

        RTFM как говорится.


      1. The_KOPACb
        16.06.2024 16:32
        +1

        Там ещё много химии вокруг, так что 4 модно возвести в какую-то степень.


      1. phenik
        16.06.2024 16:32
        +3

        Где-то читал, что человеческий нейроны обмениваются информацией с помощью спайков - пачек импульсов. При этом они могут:
        молчат - если распознаваемый паттерн, совсем не то
        1 импульс - нейрон как бы говорит, возможно это то
        2 импульса - это, скорее всего, то
        3 импульса - совершенно точно, это то самое!

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

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

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

        Да, это вам не формальные нейрончики в ИНС) Более точно свойства биологических нейронов моделируются в импульсный нейросетях с учетом STDP, которые используются в нейроморфных решениях.

        В целом мозг не цифровая система, скорее аналоговая. Использующая метастабильные состояния (1, 2) и критические фазовые состояния на грани хаоса (1, 2, на Хабре).


    1. yMad
      16.06.2024 16:32

      Т.е. от нейросетей как-то незаметно вновь вернулись к основам вычислительной техники... Ну а {-1, 0, +1} это же в чистом виде троичная логика, "триты" и все такое:)

      есть шанс что можно сразу к кубитам [0;1], эмулировав суперпозицию путем представления того что 0 содержит еще и -1.


    1. Dayder
      16.06.2024 16:32
      +1

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

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

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

      И это поверх выигрыша от использования в ~10 раз меньше памяти/пропускной способности, замены float на int, умножения на сложение, или даже битовые операции, а точности с 16 до 1 бита или трита (будут пока нет оборудования паковать в бОльшие типы данных, или использовать 2 бита на вес).

      Чую выигрыш в производительности на ватт для инференса в 100-10 000 раз :D

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

      Сжатие KV кэша.

      Mixture of Experts

      Sparse activation

      И многое другое.

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

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


  1. blood_develop
    16.06.2024 16:32
    +2

    Я немного далек от темы обучений нейронок. Может кто подробней объяснить, каким образом [-1, 0, 1] могут предоставить такую же точность вычислений, как и числа в 4 или 8 байт (int, double)?


    1. riv9231
      16.06.2024 16:32
      +10

      Рекомендую почитать про современные способы квантования: https://habr.com/ru/companies/yandex/articles/800945/

      В крадце, выделяются области похожих по масштабу значений (а это феном llm, что где-то рядом расположены числа, условно 1,2,3,5 а где-то 100,250,500, ещё есть выбросы - единичные значения типа 8 166 852, но их сохраняют отдельно) и квантуют области, уменьшая их точность, но при этом при инференсе все значения области умножаются на некую сохраненную константу, свою для каждой области, грубо восстанавливая масштаб. Кроме того, отдельно тренируют LoRA с полной точностью, которая восполняет точность вычислений там, где квантование ухудшило модель.

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

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


      1. liaf4_4
        16.06.2024 16:32
        +9

        Спасибо за «в крадце» ). В копилку