TransformerFAM: Feedback attention is working memory
#transformer #rnn
Разобрал одну из новых архитектур трансформеров. Меня привлекла идея реализовать rnn через архитектуру attention и применение feedback токенов.
Работает все довольно просто - будем разбивать текст на блоки токенов и накапливать информацию каждого блока в обучаемых feedback токенах. А дальше каждый feedback токен помимо текстовой информации, будет брать значение предыдущего feedback токена (на этом моменте я вспомнил старые добрые лекции Andrew Ng о rnn🚶♀️ )
Заметил, что тема rnn становится популярна в последнее время (отсылка к новой статье xLSTM, которую я разберу позднее⏰ )
Читать больше в Teletype🔄
Arxive👦
#transformer #rnn
Разобрал одну из новых архитектур трансформеров. Меня привлекла идея реализовать rnn через архитектуру attention и применение feedback токенов.
Работает все довольно просто - будем разбивать текст на блоки токенов и накапливать информацию каждого блока в обучаемых feedback токенах. А дальше каждый feedback токен помимо текстовой информации, будет брать значение предыдущего feedback токена (на этом моменте я вспомнил старые добрые лекции Andrew Ng о rnn
Заметил, что тема rnn становится популярна в последнее время (отсылка к новой статье xLSTM, которую я разберу позднее
Читать больше в Teletype
Arxive
Please open Telegram to view this post
VIEW IN TELEGRAM
GPT-4o
#openai
1) Статьи нет
2) Параметров нет
3) Контекстное окно 128k - круто, но у Gemini 1.5 контекст 1M (а выпущена она в феврале этого года). *Поправка от 14.05.2024 - уже 2M
4) Кода (естественно) тоже нет🚬
Классный инструмент. В целом полезен для стартапов и прохождения собесов в Яндекс. А еще понравилось, что код генерит лучше, чем GPT-3.5
Конечно буду ждать подробности архитектуры, квантизации и оптимизации работы сетки, но сомневаюсь, чтоCloseAI OpenAI решит поделиться этим
#openai
1) Статьи нет
2) Параметров нет
3) Контекстное окно 128k - круто, но у Gemini 1.5 контекст 1M (а выпущена она в феврале этого года). *Поправка от 14.05.2024 - уже 2M
4) Кода (естественно) тоже нет
Классный инструмент. В целом полезен для стартапов и прохождения собесов в Яндекс. А еще понравилось, что код генерит лучше, чем GPT-3.5
Конечно буду ждать подробности архитектуры, квантизации и оптимизации работы сетки, но сомневаюсь, что
Please open Telegram to view this post
VIEW IN TELEGRAM
Leave No Context Behind: Efficient Infinite Context Transformers with Infini-attention
#transformer #optimization #memory #context
Пока во всех каналах идет шумиха о новой модели, я подготовил еще один разбор статьи. На этот раз погрузился в тему бесконечного контекста и линейной алгебры.
Очередной трансформер - авторы выделяют дополнительную память для итерационного сохранения векторов K и V по всем токенам текста в структуре Linear Attention, который работает параллельно оригинальному Multi-Head Attention (на выходе считают их взвешенную сумму с обучаемым параметром). Это позволяет не увеличивать сложность расчетов (которая и так O(N^2) в оригинальном Attention), а также запоминать сколь угодно много контекста. По результатам Infini-Transformer довольно хорошо справляется с задачей суммаризации (по бенчмаркам лучше, чем BART) и, очевидно👍 , эфективнее работает с длинным контекстом.
Читать больше в Teletype🔄
Arxive👦
#transformer #optimization #memory #context
Пока во всех каналах идет шумиха о новой модели, я подготовил еще один разбор статьи. На этот раз погрузился в тему бесконечного контекста и линейной алгебры.
Очередной трансформер - авторы выделяют дополнительную память для итерационного сохранения векторов K и V по всем токенам текста в структуре Linear Attention, который работает параллельно оригинальному Multi-Head Attention (на выходе считают их взвешенную сумму с обучаемым параметром). Это позволяет не увеличивать сложность расчетов (которая и так O(N^2) в оригинальном Attention), а также запоминать сколь угодно много контекста. По результатам Infini-Transformer довольно хорошо справляется с задачей суммаризации (по бенчмаркам лучше, чем BART) и, очевидно
Читать больше в Teletype
Arxive
Please open Telegram to view this post
VIEW IN TELEGRAM
Добавлю пару тезисов о GPT-4o
#openai
- Модель обучена и способна работать на трех модальностях одновременно: аудио, текст и изображение. Этим и обусловлена скорость ее работы (раньше было 3 разных модели, работающих по каждой модальности отдельно)
- Дешевизна модели обусловлена новым мультиязычным токенайзером (поддерживает >50 языков), который из входного текста генерит в ~3 раза меньше токенов, а значит и обработка промпта становится выгоднее
#openai
- Модель обучена и способна работать на трех модальностях одновременно: аудио, текст и изображение. Этим и обусловлена скорость ее работы (раньше было 3 разных модели, работающих по каждой модальности отдельно)
- Дешевизна модели обусловлена новым мультиязычным токенайзером (поддерживает >50 языков), который из входного текста генерит в ~3 раза меньше токенов, а значит и обработка промпта становится выгоднее
Forwarded from Душный NLP
⚗️ Что такое дистилляция и как она применяется в LLM — часть I
Чем больше модель, тем сложнее ее инферить и дороже обучать. Решить проблему призвана, в том числе, дистилляция — передача знаний от тяжёлой модели («учителя») более лёгкой («ученика»). Расскажем, какие типы дистилляции существуют и как их используют.
Классический способ предложил Джеффри Хинтон в статье 2015 года. Учёный выдвигает гипотезу, что распределение классов, которые модель предлагает в качестве ответа, само по себе содержит немало знаний. Поэтому имеет смысл тренировать «ученика» не на ответах, а на распределении классов «учителя», используя Softmax с температурой. В качестве лосса использовали кросс-энтропию между двумя распределениями — ответами учителя и ученика.
Одна из первых моделей, которую дистиллировали на претрейне, — DistilBERT. Результат получился впечатляющим: language understanding удалось сохранить на 97%, а скорость по заявлению авторов выросла на 60%. Интересно, что дистиллировали веса, а в архитектуре модели изначально было вдвое меньше энкодер-блоков, чем у базовой BERT — 6 против 12. В основе обучения — перекрестная энтропия ответов «учителя» и «ученика», MLM и L cos — косинусная близость между эмбеддингами на скрытых слоях. Идеи DistilBERT позднее применяли, например, в DistilGPT.
Самый простой из современных методов — имитация модели. Его суть — добиться, чтобы небольшая модель копировала поведение крупной. Для этого «учителя» просят генерировать ответы на разные запросы, а потом на них обучают «ученика».
Маленькие модели отлично подражают большим, но не развивают собственные навыки. Поэтому «ученики» не получают новые знания, зато неплохо справляются с тем, чтобы извлекать имеющиеся. Этот метод подходит, когда нужно натренировать модель под конкретные задачи, например, для суммаризации или разметки данных.
Для дистилляции знаний в «младшую» модель можно использовать метод Chain-of-Thought Prompting. Суть: просить LLM давать не только ответ, но и описывать цепочку рассуждений, которые к нему привели. Как показывают исследования, такой подход существенно увеличивает качество ответов на некоторых датасетах.
К примеру, авторы статьи Distilling Step-by-Step! попросили «ученика» предсказывать не только ответы «учителя», но и обоснования, чередуя запросы. Так маленькая модель тренируется думать как большая LLM, а не просто копирует ответы и поведение — на некоторых датасетах этот подход даёт отличный результат.
Кроме того, можно использовать датасет, составленный по reward-модели. В этом случае «ученик» будет тренироваться не на всех ответах «учителя», а только на тех, которые reward-модель считает хорошими, что тоже может улучшить результаты.
Наконец, можно расширить датасет, на котором учится младшая модель, с помощью генерации с разными параметрами вроде температуры или seed. Набор данных по одному промту получится более разнообразным, а поведение «ученика» в теории должно больше походить на поведение «учителя».
На этом всё. Спасибо, что прочитали! Делитесь опытом и впечатлениями от поста в комментариях! А во второй части текста мы разберём другие методы дистилляции и, конечно, затронем MiniLLM. Оставайтесь на связи!
Разбор помог подготовить❣ Сергей Воробьев
@stuffyNLP
Чем больше модель, тем сложнее ее инферить и дороже обучать. Решить проблему призвана, в том числе, дистилляция — передача знаний от тяжёлой модели («учителя») более лёгкой («ученика»). Расскажем, какие типы дистилляции существуют и как их используют.
Классический способ предложил Джеффри Хинтон в статье 2015 года. Учёный выдвигает гипотезу, что распределение классов, которые модель предлагает в качестве ответа, само по себе содержит немало знаний. Поэтому имеет смысл тренировать «ученика» не на ответах, а на распределении классов «учителя», используя Softmax с температурой. В качестве лосса использовали кросс-энтропию между двумя распределениями — ответами учителя и ученика.
Одна из первых моделей, которую дистиллировали на претрейне, — DistilBERT. Результат получился впечатляющим: language understanding удалось сохранить на 97%, а скорость по заявлению авторов выросла на 60%. Интересно, что дистиллировали веса, а в архитектуре модели изначально было вдвое меньше энкодер-блоков, чем у базовой BERT — 6 против 12. В основе обучения — перекрестная энтропия ответов «учителя» и «ученика», MLM и L cos — косинусная близость между эмбеддингами на скрытых слоях. Идеи DistilBERT позднее применяли, например, в DistilGPT.
Самый простой из современных методов — имитация модели. Его суть — добиться, чтобы небольшая модель копировала поведение крупной. Для этого «учителя» просят генерировать ответы на разные запросы, а потом на них обучают «ученика».
Маленькие модели отлично подражают большим, но не развивают собственные навыки. Поэтому «ученики» не получают новые знания, зато неплохо справляются с тем, чтобы извлекать имеющиеся. Этот метод подходит, когда нужно натренировать модель под конкретные задачи, например, для суммаризации или разметки данных.
Для дистилляции знаний в «младшую» модель можно использовать метод Chain-of-Thought Prompting. Суть: просить LLM давать не только ответ, но и описывать цепочку рассуждений, которые к нему привели. Как показывают исследования, такой подход существенно увеличивает качество ответов на некоторых датасетах.
К примеру, авторы статьи Distilling Step-by-Step! попросили «ученика» предсказывать не только ответы «учителя», но и обоснования, чередуя запросы. Так маленькая модель тренируется думать как большая LLM, а не просто копирует ответы и поведение — на некоторых датасетах этот подход даёт отличный результат.
Кроме того, можно использовать датасет, составленный по reward-модели. В этом случае «ученик» будет тренироваться не на всех ответах «учителя», а только на тех, которые reward-модель считает хорошими, что тоже может улучшить результаты.
Наконец, можно расширить датасет, на котором учится младшая модель, с помощью генерации с разными параметрами вроде температуры или seed. Набор данных по одному промту получится более разнообразным, а поведение «ученика» в теории должно больше походить на поведение «учителя».
На этом всё. Спасибо, что прочитали! Делитесь опытом и впечатлениями от поста в комментариях! А во второй части текста мы разберём другие методы дистилляции и, конечно, затронем MiniLLM. Оставайтесь на связи!
Разбор помог подготовить
@stuffyNLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Админ выпускается из универа и меняет работу, поэтому долго не было постов
Просьба понять и простить🤵
*звуки скрипки...
PS
Однако я не мог сидеть без дела, поэтому погрузился в RAG и его архитектуры. В итоге подготовил для вас обзорную документацию по его эффективным архитектурам
Просьба понять и простить
*звуки скрипки...
PS
Однако я не мог сидеть без дела, поэтому погрузился в RAG и его архитектуры. В итоге подготовил для вас обзорную документацию по его эффективным архитектурам
Please open Telegram to view this post
VIEW IN TELEGRAM
Advanced RAG Pipelines
#rag #context
Исследования 2023 года показали, что длина контекста не сильно помогает LLM давать точные ответы:
- В этой статье показано, что при наличии нерелевантного (мусорного) контекста производительность модели резко снижается
- А вот здесь доказали, что LLM в основном фокусируется на начале контекста и его конце
Поэтому RAG, полагаю, еще некоторое время будет актуален.
Retrieval-Augmented Generation (RAG) помогает по запросу пользователя извлечь наиболее релевантный контекст документов из БД, чтобы подать их в виде контекста в LLM вместе с запросом пользователя. Это помогает модели отвечать на точные вопросы, такие как "Какое влияние оказали первые реформы Столыпина на экономику Российской Империи?".
Краткое содержание разобранных архитектур и когда они применяются:
- Document Hierarchies - когда необходима точность сравнения нескольких фактов из большой БД документов
- Knowledge Graphs - в случае семантических соединений объектов друг с другом в БД и когда одинаково важны сущности данных и их отношения с другими объектами
- Hypothetical Document Embeddings - подходит в случае "общих" запросов и «холодного старта» без первоначального контекста
- Contextual Compressors & Filters - используется при необходимости фильтрации лишнего контекста для входа в LLM
- Multi-Query Retrieval - когда пользователь ничего не знает о запрашиваемом объекте и составляет запрос общего характера
- RAG-Fusion - когда необходимо устранить разрыв между тем,
что пользователь явно задает в запросе и тем, что он собирается спрашивать
- Multimodal RAG - используется в мультимодальных LLM
Читать больше в Teletype🔄
#rag #context
Исследования 2023 года показали, что длина контекста не сильно помогает LLM давать точные ответы:
- В этой статье показано, что при наличии нерелевантного (мусорного) контекста производительность модели резко снижается
- А вот здесь доказали, что LLM в основном фокусируется на начале контекста и его конце
Поэтому RAG, полагаю, еще некоторое время будет актуален.
Retrieval-Augmented Generation (RAG) помогает по запросу пользователя извлечь наиболее релевантный контекст документов из БД, чтобы подать их в виде контекста в LLM вместе с запросом пользователя. Это помогает модели отвечать на точные вопросы, такие как "Какое влияние оказали первые реформы Столыпина на экономику Российской Империи?".
Краткое содержание разобранных архитектур и когда они применяются:
- Document Hierarchies - когда необходима точность сравнения нескольких фактов из большой БД документов
- Knowledge Graphs - в случае семантических соединений объектов друг с другом в БД и когда одинаково важны сущности данных и их отношения с другими объектами
- Hypothetical Document Embeddings - подходит в случае "общих" запросов и «холодного старта» без первоначального контекста
- Contextual Compressors & Filters - используется при необходимости фильтрации лишнего контекста для входа в LLM
- Multi-Query Retrieval - когда пользователь ничего не знает о запрашиваемом объекте и составляет запрос общего характера
- RAG-Fusion - когда необходимо устранить разрыв между тем,
что пользователь явно задает в запросе и тем, что он собирается спрашивать
- Multimodal RAG - используется в мультимодальных LLM
Читать больше в Teletype
Please open Telegram to view this post
VIEW IN TELEGRAM
RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval
#rag
Сегодня продолжу развивать тему RAG, поэтому подготовил для вас разбор свежей статьи RAPTOR. Этот подход устраняет проблему, когда LLM задают тематические вопросы, требующие полного знания целого документа или даже нескольких. Примером такого запроса может быть "Как именно князь Гвидон достиг своего могущества?". Любая система RAG извлечет множество релевантных фрагментов текста по данному запросу, однако они не дадут полной картины, потому что для этого нужно знать все содержание книги. И мы получаем проблему - чем больше фрагментов текста вы включаете в запрос, тем меньше вам нужен RAG.
Что же делает RAPTOR?🦖
Вместо разделения документов на маленькие фрагменты и сохранения их в векторную БД для последующего извлечения, RAPTOR сначала их кластеризует, а после суммаризует каждый кластер с помощью LLM. Он повторяет этот процесс итерационно, пока не остается один, финальный фрагмент текста, в котором содержится вся информация документа. Все это извлекается в общих чертах с готовой суммаризированной информацией, а если необходимы факты, то можно опуститься на слой ниже и извлечь более детальное summary.
Читать больше в Teletype🔄
Arxive🤓
#rag
Сегодня продолжу развивать тему RAG, поэтому подготовил для вас разбор свежей статьи RAPTOR. Этот подход устраняет проблему, когда LLM задают тематические вопросы, требующие полного знания целого документа или даже нескольких. Примером такого запроса может быть "Как именно князь Гвидон достиг своего могущества?". Любая система RAG извлечет множество релевантных фрагментов текста по данному запросу, однако они не дадут полной картины, потому что для этого нужно знать все содержание книги. И мы получаем проблему - чем больше фрагментов текста вы включаете в запрос, тем меньше вам нужен RAG.
Что же делает RAPTOR?
Вместо разделения документов на маленькие фрагменты и сохранения их в векторную БД для последующего извлечения, RAPTOR сначала их кластеризует, а после суммаризует каждый кластер с помощью LLM. Он повторяет этот процесс итерационно, пока не остается один, финальный фрагмент текста, в котором содержится вся информация документа. Все это извлекается в общих чертах с готовой суммаризированной информацией, а если необходимы факты, то можно опуститься на слой ниже и извлечь более детальное summary.
Читать больше в Teletype
Arxive
Please open Telegram to view this post
VIEW IN TELEGRAM
xLSTM: Extended Long Short-Term Memory
#rnn
Как и обещал, подготовил для вас подробный разбор статьи xLSTM. Знаю, что за это время вышло уже несколько разборов этой архитектуры, но на русскоязычных ресурсах наиболее детального обзора xLSTM на данный момент я не видел (сам не похвалишь, никто не похвалит😃 ).
В статье разработано улучшение сети LSTM с помощью двух архитектур - sLSTM и mLSTM. Каждая архитектура, направлена на решение проблем оригинальной сети. Добавлены параллельные вычисления в mLSTM, способность корректировать запоминание информации, а также введено матричное представление данных внутри сети. Эксперименты доказывают, что xLSTM сравнима с GPT моделями, а результаты предсказания лексем SlimPajama превосходят по точности Llama 1.3B.
Читать больше в Teletype🔄
Arxive🤓
#rnn
Как и обещал, подготовил для вас подробный разбор статьи xLSTM. Знаю, что за это время вышло уже несколько разборов этой архитектуры, но на русскоязычных ресурсах наиболее детального обзора xLSTM на данный момент я не видел (сам не похвалишь, никто не похвалит
В статье разработано улучшение сети LSTM с помощью двух архитектур - sLSTM и mLSTM. Каждая архитектура, направлена на решение проблем оригинальной сети. Добавлены параллельные вычисления в mLSTM, способность корректировать запоминание информации, а также введено матричное представление данных внутри сети. Эксперименты доказывают, что xLSTM сравнима с GPT моделями, а результаты предсказания лексем SlimPajama превосходят по точности Llama 1.3B.
Читать больше в Teletype
Arxive
Please open Telegram to view this post
VIEW IN TELEGRAM
Large Parallelism Post: Part I
#parallelism
Я долго ничего не публиковал, потому что решил сделать большой пост о параллелизме в нейросетях. Как оказалось, эта тема довольно обширная и с регулярными публикациями. Пришлось потратить много времени на сбор информации, структуризацию и написание текста. В конечном итоге материала оказалось так много, что я решил разбить его на серию постов.
В первой части собраны базовые методы параллелизма:
Data Parallel - самый простой метод параллелизма, в котором мы копируем модель на все GPU, и обучаем каждую ее копию, после чего аккумулируем градиенты🚬
Distributed Data Parallel - обновление метода Data Parallel с возможностью параллелизма модели на нескольких нодах💪
Model Parallelism - если у нас большая модель, то давайте просто порежем ее слои🔪
Pipeline Parallelism - улучшение Model Parallelism, который разработали ребята из Google, позволяющий избегать простоя GPU с помощью разделения данных на micro-batches📈
Читать больше в Teletype🔄
Если чтиво вам покажется довольно простым, то советую дождаться разбора методов Tensor Parallelism и ZeRO😳
#parallelism
Я долго ничего не публиковал, потому что решил сделать большой пост о параллелизме в нейросетях. Как оказалось, эта тема довольно обширная и с регулярными публикациями. Пришлось потратить много времени на сбор информации, структуризацию и написание текста. В конечном итоге материала оказалось так много, что я решил разбить его на серию постов.
В первой части собраны базовые методы параллелизма:
Data Parallel - самый простой метод параллелизма, в котором мы копируем модель на все GPU, и обучаем каждую ее копию, после чего аккумулируем градиенты
Distributed Data Parallel - обновление метода Data Parallel с возможностью параллелизма модели на нескольких нодах
Model Parallelism - если у нас большая модель, то давайте просто порежем ее слои
Pipeline Parallelism - улучшение Model Parallelism, который разработали ребята из Google, позволяющий избегать простоя GPU с помощью разделения данных на micro-batches
Читать больше в Teletype
Если чтиво вам покажется довольно простым, то советую дождаться разбора методов Tensor Parallelism и ZeRO
Please open Telegram to view this post
VIEW IN TELEGRAM
Large Parallelism Post: Part II
Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism
#parallelism
Во второй части нашего ралли по методам параллелизма я подробно разобрал Tensor Parallelism на основе статьи Megatron-LM🌿
Сама суть методики заключается в параллелизме не просто слоев модели, а ее блоков. В статье разработан пайплайн разделения блоков трансформера (MLP и Attention) с помощью column и row parallelism - так достигается корректность матричных вычислений и нелинейных функций. Особое внимание уделено минимизации коммуникации между GPU - на Forward и Backward приходится всего 4 AllReduce. Также исследован совмещенный пайплайн: Tensor Parallelism + Data Parallel🪑
Читать больше в Teletype🔄
Arxive🤓
Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism
#parallelism
Во второй части нашего ралли по методам параллелизма я подробно разобрал Tensor Parallelism на основе статьи Megatron-LM
Сама суть методики заключается в параллелизме не просто слоев модели, а ее блоков. В статье разработан пайплайн разделения блоков трансформера (MLP и Attention) с помощью column и row parallelism - так достигается корректность матричных вычислений и нелинейных функций. Особое внимание уделено минимизации коммуникации между GPU - на Forward и Backward приходится всего 4 AllReduce. Также исследован совмещенный пайплайн: Tensor Parallelism + Data Parallel
Читать больше в Teletype
Arxive
Please open Telegram to view this post
VIEW IN TELEGRAM
Large Parallelism Post: Part III
Mixed Precision Training
#parallelism #optimization
В третьей части разберем не столько способ параллелизма, сколько оптимизации тренировки моделей, без которого уже невозможно работать с большими моделями🗯
В Mixed Precision (MP) почти все значения переводятся из FP32 формата в FP16, чем достигается уменьшение потребления памяти в 2 раза. Однако не все так просто - авторам пришлось ввести Loss Scaling для предотвращения зануления многих параметров, которые выходили за пределы диапазона FP16. Более того, некоторые вычисления (такие как векторное произведение) требуют накопления результатов в формате FP32, а только потом перевод в формат FP16 для хранения в памяти🤏
Не смотря на такие доработки, результаты впечатляющие - во всех задачах (CNNs Detection, Speech Recognition, Machine Translation, Language Modeling, GANs) MP показал сравнительную, а нередко даже превосходящую точность над Baseline расчетами в FP32 формате😎
Читать больше в Teletype🔄
Arxive🤓
Mixed Precision Training
#parallelism #optimization
В третьей части разберем не столько способ параллелизма, сколько оптимизации тренировки моделей, без которого уже невозможно работать с большими моделями
В Mixed Precision (MP) почти все значения переводятся из FP32 формата в FP16, чем достигается уменьшение потребления памяти в 2 раза. Однако не все так просто - авторам пришлось ввести Loss Scaling для предотвращения зануления многих параметров, которые выходили за пределы диапазона FP16. Более того, некоторые вычисления (такие как векторное произведение) требуют накопления результатов в формате FP32, а только потом перевод в формат FP16 для хранения в памяти
Не смотря на такие доработки, результаты впечатляющие - во всех задачах (CNNs Detection, Speech Recognition, Machine Translation, Language Modeling, GANs) MP показал сравнительную, а нередко даже превосходящую точность над Baseline расчетами в FP32 формате
Читать больше в Teletype
Arxive
Please open Telegram to view this post
VIEW IN TELEGRAM
Large Parallelism Post: Part IV
ZeRO: Memory Optimizations Toward Training Trillion Parameter Models
#parallelism
Админ вернулся из отпуска🍷 втянулся в работу😮💨 и готов продолжить марафон по параллелизму.
Сегодня разберем один из самых эффективных (и непростых) методов параллелизма очень больших💪 моделей - ZeRO. Он позволяет эффективно обучать LLM (размером до 1трлн) за счет параллельного хранения и вычисления параметров модели, градиентов и параметров оптимизатора, сохраняя при этом низкий объем коммуникаций и высокую гранулярность вычислений. Мало кто знает, но он состоит из двух частей - ZeRO-DP и ZeRO-R. ZeRO-DP как раз параллелит параметры модели/градиентов/оптимизатора, а ZeRO-R оптимизирует память, сохраняя промежуточные активации/определяя размер буфера/дефрагментируя память.
Думаю о результатах говорить подробно излишне - ZeRO позволил начать тренировать огромные модели в индустрии, а также вдохновил на создание метода FSDP. Подробный разбор, как всегда, читайте в teletype.
Читать больше в Teletype🔄
Arxive📖
ZeRO: Memory Optimizations Toward Training Trillion Parameter Models
#parallelism
Админ вернулся из отпуска
Сегодня разберем один из самых эффективных (и непростых) методов параллелизма очень больших
Думаю о результатах говорить подробно излишне - ZeRO позволил начать тренировать огромные модели в индустрии, а также вдохновил на создание метода FSDP. Подробный разбор, как всегда, читайте в teletype.
Читать больше в Teletype
Arxive
Please open Telegram to view this post
VIEW IN TELEGRAM
Large Parallelism Post: Part V
FSDP: Fully Sharded Data Parallel
#parallelism
Заключительный пост марафона по параллелизму посвящается методу FSDP - параллелизму с полным шардингом данных🥰
Реализован за счет разбиения операции AllReduce на две - ReduceScatter и AllGather, а также за счет перегруппировки этих операций. Имея шард модели, данные весов собираются с других GPU за счет AllGather, далее происходит Forward pass, после чего снова собираются веса через AllGather, и только потом проиходит Backward pass. В конце градиенты обновляются с помощью ReduceScatter. Имеет 3 типа шардинга - DDP, Hybrid Sharding и Full Sharding👀
Осветив подробно мир параллелизма больших моделей, мне захотелось погрузиться в квантизацию🥺 поэтому ожидайте следующих постов👴
Читать больше в Teletype🔄
Arxive📖
FSDP: Fully Sharded Data Parallel
#parallelism
Заключительный пост марафона по параллелизму посвящается методу FSDP - параллелизму с полным шардингом данных
Реализован за счет разбиения операции AllReduce на две - ReduceScatter и AllGather, а также за счет перегруппировки этих операций. Имея шард модели, данные весов собираются с других GPU за счет AllGather, далее происходит Forward pass, после чего снова собираются веса через AllGather, и только потом проиходит Backward pass. В конце градиенты обновляются с помощью ReduceScatter. Имеет 3 типа шардинга - DDP, Hybrid Sharding и Full Sharding
Осветив подробно мир параллелизма больших моделей, мне захотелось погрузиться в квантизацию
Читать больше в Teletype
Arxive
Please open Telegram to view this post
VIEW IN TELEGRAM
ML System Design
#mlsys
Все знают, что для высоких грейдов в ML айтишке вы обязательно будете проходить собес по системному дизайну. Более того, именно на этом собесе проверяется ваш уровень "сеньёрности", а значит и ваша зп. Сложность интервью заключается в том, что к нему трудно подготовиться - здесь важное значение играет как опыт инженера, так и его кругозор
Сам собес выглядит просто - вам дается задача, про которую надо рассказать, как вы будете ее решать. Пример - "Разработайте систему рекомендаций в видеохостинге". После этого начинается ваш монолог-рассуждение о том, какие метрики будете мерить (online/offline), как будет выглядеть логика MVP, какие данные у вас есть, как они хранятся, как вы их будете обрабатывать, есть ли у компании ассесоры, какие фичи вы будете выделять в данных и как их будете представлять итд...
Задача может быть любой - от рекомендаций в любой сфере (финансы, маркетплейс, видеохостинг, онлайн-объявления...) до создания распределенной системы семантического поиска (по тексту/фото/видео/звуку)
Сегодня хочу вам порекомендовать литературу и источники, которые помогут вам подготовиться к такому собеседованию и расширят ваш кругозор по проектированию ML систем (что поможет вам даже на текущей работе)
🖥 Репа alirezadir - короткий markdown файл с описанием основных вопросов, на которые вы должны ответить при построении ML системы + порядка 20-30 решений популярных задач с ml sysdes интервью
🥰 EvidentlyAI - база данных 450 кейсов по проектированию ML систем в 100+ компаниях мира. Изучить все сразу сложно, но теперь вы знаете что можно читать в метро/на выходных/на парах
🌿 Stanford MLSys Seminars - почти 100 семинаров по системному дизайну трехлетней давности от стэнфорда. Классика актуальна всегда и вы точно преисполнитесь полезной информацией. Каждый семинар ведут разные люди из разных компаний, на которых подробно рассказывают, как устроены системы в FAANG и что нужно знать для прохождения собесов в эти компании
🦜 ODS ML System Design - если вам не заходят англоязычные лекторы, то есть отечественный 💪 аналог таких лекций от российского коммьюнити
🧖 Babushkin - то, с чего начинал я. В ходе лекции и последующих трех тренировочных интервью со студентами Валера разбирает основы системного дизайна + дает неплохую вводную и понимание чего от вас ожидают на этом интервью и чего говорить точно не нужно. Видосы не находятся в каком-то отдельном месте, поэтому прикреплю сразу 4 ссылки:
Лекция; Собес1; Собес2; Собес3
Если есть, что добавить, то предлагайте в комментариях🍿
@kitty_bytes
#mlsys
Все знают, что для высоких грейдов в ML айтишке вы обязательно будете проходить собес по системному дизайну. Более того, именно на этом собесе проверяется ваш уровень "сеньёрности", а значит и ваша зп. Сложность интервью заключается в том, что к нему трудно подготовиться - здесь важное значение играет как опыт инженера, так и его кругозор
Сам собес выглядит просто - вам дается задача, про которую надо рассказать, как вы будете ее решать. Пример - "Разработайте систему рекомендаций в видеохостинге". После этого начинается ваш монолог-рассуждение о том, какие метрики будете мерить (online/offline), как будет выглядеть логика MVP, какие данные у вас есть, как они хранятся, как вы их будете обрабатывать, есть ли у компании ассесоры, какие фичи вы будете выделять в данных и как их будете представлять итд...
Задача может быть любой - от рекомендаций в любой сфере (финансы, маркетплейс, видеохостинг, онлайн-объявления...) до создания распределенной системы семантического поиска (по тексту/фото/видео/звуку)
Сегодня хочу вам порекомендовать литературу и источники, которые помогут вам подготовиться к такому собеседованию и расширят ваш кругозор по проектированию ML систем (что поможет вам даже на текущей работе)
Лекция; Собес1; Собес2; Собес3
Если есть, что добавить, то предлагайте в комментариях
@kitty_bytes
Please open Telegram to view this post
VIEW IN TELEGRAM