Вычисления прямо в памяти на мемристорных матрицах открывают путь к более быстрым и энергоэффективным нейросетям, но физика реального оборудования создаёт препятствие. Шум ячеек накапливается по слоям модели и разрушает точность. Исследователи из Гонконга и Шэньчжэня разработали метод BSQ, который приспосабливает готовые модели к этим физическим ограничениям без их переобучения.
В обычном компьютере процессор постоянно загружает параметры модели из памяти, выполняет операции и записывает результаты обратно. Это требует времени и энергии. Compute-in-memory убирает лишние переносы: мемристорная матрица одновременно хранит веса и выполняет векторно-матричные операции, которые составляют основу работы нейросетей. В результате снижается задержка и потенциально экономится энергия.
Проводимость мемристоров нельзя установить идеально точно, и записанные значения меняются из-за физических флуктуаций. При низкой разрядности ошибки отдельных ячеек складываются слой за слоем. На глубоких сетях такой аппаратный шум может серьёзно испортить результат.
BSQ разбивает каждый вес на несколько бинарных слоёв, где ячейке нужны только два устойчивых состояния: включено и выключено. Каждый слой получает обучаемый коэффициент, а схема на периферии складывает их вклад и восстанавливает более точное значение. Алгоритм не пытается заставить мемристор надёжно хранить множество уровней проводимости, а использует его сильные стороны.
Метод также учитывает распределение исходных весов и подбирает уровни квантования неравномерно. При подготовке в бинарные слои вводят шум, соответствующий измеренным характеристикам реальных ячеек. Такой аппаратно-программный подход компенсирует дефекты мемристорных массивов, но BSQ нацелен на низкоразрядный запуск обычных нейросетей.
На распознавании рукописных цифр двухбитная BSQ-модель сохранила точность 98,2% при 5-процентном разбросе проводимости. Обычное равномерное квантование в тех же условиях показало 82,2%. Даже при намного более сильном шуме результат BSQ снизился только с 98,28% до 95,75%, тогда как разница с традиционным методом оставалась значительной.
На анализе тональности преимущество оказалось скромнее. Трёхбитная TextCNN на наборе SST-2 набрала 80,6% при моделируемом 5-процентном разбросе против 80,1% у обычного квантования. Полноточная версия показывала 81,08%. Авторы важнее всего видели здесь подтверждение того, что выигрыш сохраняется не только на простом распознавании изображений.
На LLaMA-3.1-8B результаты были впечатляющими. В трёхбитном режиме с моделируемым аппаратным шумом BSQ набрала 55,36% на HellaSwag против 35,28% у GPTQ — разрыв в 20,08 процентного пункта. В двухбитном режиме преимущества на отдельных тестах были ещё больше, а BSQ продолжала выдавать корректные результаты там, где сравнительный метод становился нестабильным.
Результаты с большой языковой моделью пока получены на симуляции аппаратного шума, а не на запуске всей LLaMA-3.1-8B на реальной мемристорной матрице. Параметры симуляции авторы откалибровали по измерениям реального оборудования. Для аппаратной части они изготовили кроссбар 512 × 512 по 40-нм техпроцессу с резистивными ячейками на основе оксида тантала.
BSQ работает после обучения модели, поэтому переобучение многомиллиардной сети под конкретный массив не требуется. При масштабировании такой подход может приблизить нейросети к устройствам, где хранение параметров и основные матричные операции происходят в одном блоке. Вычисления прямо в памяти уже применяют для периферийного ИИ, где критичны энергопотребление и задержка.
