Студенты собрали GPT целиком в железе на учебной плате

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



Лютира Абейкун (https://www.luthira.com/) и Криш Чхаджер (https://www.krishchhajer.com/) из Университета Торонто взяли microGPT Андрея Карпатого и переписали (https://v2.talos.wtf/) его на языке описания цифровых схем SystemVerilog. Так родился проект TALOS-V2, который работает на образовательной плате DE1-SoC с FPGA Cyclone V, которую обычно дают в вузах для лабораторных работ.

Инференс на ней не выполняет ни GPU, ни PyTorch, ни даже CPU - каждый шаг трансформера, от эмбеддингов и самовнимания до нормализации, MLP и выбора следующего токена, превращён в физическую цепь из логических элементов.

Сама модель - символьный microGPT, обученный на датасете имён Карпатого: символ за символом она генерирует новые имена. Маленькая по меркам индустрии, но устроенная как взрослые генеративные модели: те же блоки, те же связи.

Внутри FPGA числа хранятся не как привычные дроби с плавающей точкой, а в формате Q4.12 - 16 бит, разделённые на целую и дробную часть.

Это компромисс: точности хватает для такой модели, а схема получается компактной и предсказуемой по времени работы.

Веса заранее переведены в шестнадцатеричные файлы и загружены прямо в постоянную память чипа.

Сердце схемы - один универсальный вычислительный блок на 16 параллельных каналов, который умеет умножать вектор на матрицу.

Он по очереди обслуживает все ключевые операции трансформера: проекции Q, K, V, выходную проекцию внимания, оба слоя MLP и LM-head.

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

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

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

В итоге плата устойчиво выдаёт больше 50 000 токенов в секунду, зафиксированный пик - около 53 000.

Проект открыт на GitHub (https://github.com/Luthiraa/TALOS-V2): SystemVerilog-ядро, тестбенч под ModelSim, Python-утилиты для экспорта весов и запуска инференса через JTAG, скрипты под Quartus.

Статья (https://v2.talos.wtf/)

GitHub (https://github.com/Luthiraa/TALOS-V2)


Телеграм: t.me/ainewsline

Источник: github.com

Комментарии: