rLLM (relationLLM) - библиотека PyTorch, разработанная для удовлетворения растущей потребность в эффективных и экономичных методах применения LLM к огромным объемам структурированных данных, хранящихся в реляционных базах данных.
rLLM достигает этой цели путем декомпозиции современных графовых нейронных сетей (GNN), LLM и табличных нейронных сетей (TNN) на стандартизированные модули. Такой подход позволяет быстро создавать новые RTL-модели путем объединения, выравнивания и совместного обучения этих модулей.
Парадигма "combine, align, co-train" позволяет гибко конструировать модели, адаптируясь к уникальным характеристикам различных наборов данных реляционных таблиц.
Библиотека включает в себя несколько слоев:
Чтобы продемонстрировать возможности rLLM, авторы представляют BRIDGE, простой RTL-метод, который использует TNN для обработки табличных данных и GNN для анализа отношений между таблицами на основе внешних ключей. BRIDGE сочетает сильные стороны обоих типов сетей для обучения на основе информации, содержащейся в реляционных базах данных.
Для исследовательских и обучающих целей rLLM предлагает коллекцию данных под названием SJTUTables, которая состоит из трех наборов данных реляционных таблиц:
@ai_machinelearning_big_data
#AI #ML #RTL #rLLM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍13❤8
Лютира Абейкун и Криш Чхаджер из Университета Торонто взяли microGPT Андрея Карпатого и переписали его на языке описания цифровых схем 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: SystemVerilog-ядро, тестбенч под ModelSim, Python-утилиты для экспорта весов и запуска инференса через JTAG, скрипты под Quartus.
@ai_machinelearning_big_data
#AI #ML #FPGA #RTL #Transformer #TALOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤89🤩50👏34👍22🔥6💯4❤🔥3🤝2🤷1