Ivan
@kittybytes
12 posts

DenseAttention: No-Compromise Exact All NxN Interactions Algorithm with O(N) Space and Time Complexity

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

Linear Quantization

Разобравшись в основах параллелизма моделей, перейдем к не менее актуальной теме - квантизации. Квантизация моделей машинного обучения стала одним из ключевых направлений оптимизации нейронных сетей в последние годы. Этот метод позволяет значительно уменьшить вычислительные затраты и объем памяти, необходимые для работы моделей, сохраняя при этом высокую точность предсказаний.

Large Parallelism Post: Part V. FSDP: Fully Sharded Data Parallel

FSDP - параллелизм с полным шардингом данных. Реализован за счет разбиения операции AllReduce на две - ReduceScatter и AllGather, а также за счет перегруппировки этих операций. Имея шард модели, данные весов собираются с других GPU за счет AllGather, далее происходит Forward pass, после чего снова собираются веса через AllGather, и только потом проиходит Backward pass. В конце градиенты обновляются с помощью ReduceScatter. Имеет 3 типа шардинга - DDP, Hybrid Sharding и Full Sharding.

Large Parallelism Post: Part IV. ZeRO: Memory Optimizations Toward Training Trillion Parameter Models

В данной статье разработан метод параллельного обучения моделей с большим количеством параметров (от 100млрд до 1трл). ZeRO позволяет параллельно хранить и вычислять параметры модели, градиенты и параметры оптимизатора, сохраняя при этом низкий объем коммуникаций и высокую гранулярность вычислений.

Large Parallelism Post: Part III. Mixed Precision Training

В статье предлагается способ снижения потребления памяти тренироки сетей в 2 раза за счет перевода величин из формата FP32 в FP16. Авторы статьи исследуют распределения полученных величин по экспоненте и вводят Loss Scaling для предовращения зануления значений активаций и увеличения точности. Последним дополнением является Arithmetic Precision - разграничение проводимых операций в FP32 и FP16 формате.

Large Parallelism Post: Part II. Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism

Во второй части мы углубимся в Tensor Parallelism на основе статьи Megatron-LM. В ней представлен способ параллельных вычислений внутри блоков MLP и Attention. Благодаря разделению весовых матриц по столбцам и строкам, становится возможным распараллелить блоки MLP и Attention между GPU с минимальными коммуникациями между нодами. Также разберем пайплайн TP+DP.

Large Parallelism Post: Part I

В этой части разобраны самые основные методы параллельного обучения сетей - Data Parallel, Distributed Data Parallel, Model Parallelism и Pipeline Parallelism.

xLSTM: Extended Long Short-Term Memory

В статье разработано улучшение сети LSTM с помощью двух архитектур - sLSTM и mLSTM. Каждая архитектура, направлена на решение проблем оригинальной сети. Добавлены параллельные вычисления, способность корректировать запоминание информации, а также матричное представление данных внутри сети. Эксперименты доказывают, что xLSTM сравнима с GPT моделями.

RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval

В статье разработана новая архитектура RAG на основе итерационного процесса кластеризации фрагментов текстов БД и их суммаризации. Архитектура позволяет сети отвечать на тематические запросы, требующие суммаризованного контекста всего документа (пример - краткий пересказ книги).

Advanced RAG Pipelines

Начиная писать этот материал я решил не вдаваться в подробности базовой архитектуры Retrieval-Augmented Generation (RAG), поскольку про нее и так много известно (но на крайний случай оставляю ссылки на краткое объяснение и полный гайд). Также хочу поделиться классным репозиторием от LangChain - в нескольких ноутбуках from scratch реализован RAG в нескольких вариантах для разных БД. Шпаргалка по работе RAG именно от туда: