Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Start Career in DS
📚Deep Learning: теоретический справочник по базовым концепциям

🔥Предыдущий пост в виде справочника по Machine Learning обрадовал нас вашей реакцией, и поэтому хотим сделать аналогичную подборку для изучения Deep Learning.

1️⃣ Введение в Deep Learning:
- Знакомство с полносвязанными нейронными сетями на Яндекс Учебнике
- Лекция от Нейчева Радослава по «Введению в нейронные сети»
- Поверхностное погружение в глубинное обучение
- Русский перевод «Что же такое нейронная сеть» от 3Blue1Brown на YouTube
- Как обучаются нейронные сети или про метод обратного распространения ошибки
- Видео на YouTube про градиентный спуск в нейронных сетях

2️⃣ Функции активации:
- Статья на Хабре про самые распространенные функции активации и как выбрать подходящую для вашей задачи
- Статья с разбором основных функций активаций
- Видео-обзор на YouTube про функции активации нейронных сетей с практикой

3️⃣ Оптимизаторы в нейронных сетях:
- Принципы работы оптимизаторов - объяснение на пальцах
- Методы оптимизации в Deep Learning от Яндекс Учебника
- Наиболее распространенные методы оптимизации с математическим объяснением для более продвинутых
- Optimizers for Neural Networks на Medium

4️⃣ Регуляризация глубоких нейронных сетей:
- Про инициализацию весов в нейронных сетях и виды регуляризации на Яндекс Учебнике
- Dropout - как метод решения проблемы переобучения нейронных сетей
- Что такое Weight Decay - простой объяснение на LinkedIn
- Огромная презентация с подробным объяснением методов регуляризации в нейронных сетях

5️⃣ Нормализация в нейронных сетях:

- Про все виды нормализации в нейронных сетях на Medium
- Что такое Batch Normalization
- Доступное объяснение нормализации в нейронных сетях на русском
- RMSNorm на GitHub

📌 Что ещё:
- Ответы на интересные вопросы нашего квиза по Deep Learning
- С этих постов можно начать изучение LLM - тут, тут и тут
- Пост про ТОП-вопросов из собеседований по NLP
- Самый популярный фреймворк для любой работы с нейронными сетями PyTorch и статья на Хабре о его возможностях
- Бесплатный курс видео-лекций по Deep Learning от Сергея Балакирева на YouTube
- Курс с лекциями от преподавателей МФТИ, начиная с Введения в Deep Learning и заканчивая более продвинутыми темами
- Немного практики для новичков
- Краткий курс по нейронным сетям в виде большой статьи на Хабре
- Книга с теорией + практика в Jupyter-ноутбуках: Understanding Deep Learning

Ставьте ❤️ и 🔥 если ждете подобные справочники и материалы для изучения Computer Vision и NLP!
Делитесь своими ресурсами в комментариях!
До встречи👋
Forwarded from DevFM
Снова о необходимости архитектурных схем

Продолжим пост об архитектурных схемах с более практической стороны.

– Как-то так повелось, что мы используем C4 model. Не нагромождённая и достаточно лаконичная. Если вдруг кому-то кажется, что C4 – это какая-то новомодная модель, спешу разочаровать. Придумана она была почти 20 лет назад.

– C4 model не предусматривает никакой описательной части, поэтому ко всем архитектурным схемам у нас имеется тезисное описание всех компонентов, изображённых на схеме.

– C4 несложная, но глаз может замылиться, а всё ли сделано правильно? На этот случай на официальном сайте есть чеклист (там же можно скачать pdf), по которому можно быстро проверить вашу схему на соответствие правилам и адекватность.

– Хотя я очень люблю делать схемы в визуальных редакторах, но понимаю, что реюзабельность такого творчества страдает, поэтому правильно готовить такие схемы в виде кода. Хорошим решением будет Structurizr. Опенсорсная селфхостед штуковина. Помимо самих схем, там же можно документировать своё решение.

– По моему опыту очень полезной может оказаться Deployment диаграмма. Её можно немного извратить, отойти от канонов и получить примерно такое изображение. Особенно удобно, когда существует целый зоопарк самых разнообразных сервисов. Все они в разных закрытых сетевых контурах, с разными командами поддержки. Кто-то должен предоставить вам кубер, кто-то базы, кто-то s3. Что-то будет в Harvester, что-то в Proxmox. Такая диаграмма поможет разобраться во всём этом и как-то структурировать. А новый девопс на вашем проекте скажет за такое большое человеческое спасибо.

#devfm #systemdesign #tools
Forwarded from Инжиниринг Данных (Dmitry)
Тут возможно самый полный сборник всего, что есть по DE или около того. https://github.com/DataExpert-io/data-engineer-handbook

Забавно получается, чем больше материалов, ссылок, книг, курсов в одно месте, тем сложнее в этом разобраться. 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from grokaem себя
🥸 - взрослый дядя собеседующий
👩🏻‍💻 - я и вы

🥸 32. Как считаете attention? (доп. для какой задачи его предложили? и почему?)
👩🏻‍💻Attention intro

You compare the query with the keys to get scores/weights for the values (Сравниваем query с keys, чтобы получить веса для обновления values)

- key - относительно кого считаем, исходный текст на языке оригинала
- query - для кого считаем, переведенный текст на таргет языке
- value - на чем мы считаем, снова исходный текст

Вернулись к фразе. Понимаем суть - мы должны сделать такие вектора слов в этом заданном контексте, чтобы каждое слово брало информацию только от важного для себя.


Внутри функция для attention может быть разной. Главное - нам нужны скоры, чтобы обновить наши эмбеддинги.

1. dot product - базовая и самая используемая функция: просто перемножаем)
допом можно делать scaled dot product - это когда вы перед тем, как добавлять softmax, нормализуете на квадратный корень от dimension эмбеддингов. Это нужно для стабилите, когда dimension большой))

2. additive attention он же concat, soft and global (Bahdanau attention) - родоначальник attention, скор считается с помощью дополнительной фидфорвад сети
одна из имплементаций

история от Андрея Карпатова, как ему Bahdanau рассказал, как он придумал attention

3. Luong-Attention он же general, location based и любимый dot product (они все разные)
Немного про различия


🥸 33. Сложность attention? Сравните с сложностью в RNN?
👩🏻‍💻Computation:

Attention: вычислительная сложность O(n² * d), где n — длина последовательности, d — размерность эмбеддингов.
RNN: O(n * d²), где n — длина последовательности, d — размерность hidden state.
Attention сложнее при больших последовательностях, но имеет преимущество за счет параллелизации вычислений. RNN, напротив, обрабатывает последовательность шаг за шагом, что может быть выгоднее для длинных последовательностей, но из-за проблемы исчезающего градиента теряет в эффективности.

В дополнение, self-attention работает быстрее, когда длина последовательности меньше размерности эмбеддингов. Источник для глубокого погружения — Transformer arXiv.
Forwarded from grokaem себя
🥸 36. Объясните маскирование в attention.
👩🏻‍💻 Если говорить кратко, то в encoder transformer части мы используем только self-attention, в decoder части в первом transformer блоке мы используем также self-attention с маскированием, а вот во втором cross attention.

Мы можем разделить два понимания маскирования. Если например у нас есть паддинги, мы все равно будем их маскировать в attention и encoder. Почему? Если у нас последовательности разной длины и вы используете padding, то в attention части нам не нужно брать 'влияние' padding токенов.
masked softmax implementation

В causal attention мы используем другой вид маскирования, мы маскируем только будущие токены. Почему? Потому что в causal language modelling мы делаем предсказания только на основе предыдущих примеров.

интерактивная визуализация для bert и gpt эмбеддингов
статья про интерпретацию

🥸37. Какая размерность у матриц self-attention?
👩🏻‍💻Размерность матрицы self-attention зависит от числа входных элементов и параметров модели. Обычно она имеет форму (seq_length, seq_length), где seq_length - это длина последовательности, для которой применяется механизм self-attention. Таким образом, если у нас есть seq_length элементов во входной последовательности, мы имеем квадратную матрицу размером seq_length x seq_length.

Внутри файла и в notion ответы на следующие вопросы:
🥸 34. Сравните RNN и attention. Когда лучше использовать каждый из них?
🥸35. Напишите attention с нуля.
🥸38. В чем разница между BERT и GPT в рамках подсчета attention?
🥸39. Какая размерность у эмбединового слоя в трансформере?

🥸40. Почему эмбеддинги называются контекстуальными? Как это работает?
🥸41. Что используется в трансформере layer norm или batch norm и почему?
🥸42. Зачем в трансформерах PreNorm и PostNorm?
🥸43. Объясните разницу между soft и hard (local/global) attention?
🥸44. Объясните multihead attention.
🥸45. Какие другие виды механизмов внимания вы знаете? На что направлены эти модификации?
🥸46. На сколько усложнится self-attention при увеличении числа голов?


notion
файл в комментариях
Forwarded from Fless (Victor Rogulenko @flesspro)
В продолжение рубрики #casestudies расскажу о структурировании подхода к бренд-маркетингу.

(Бренд-маркетинг -- продвижение компании на широкой аудитории без немедленной конверсии в продажу. Пример -- реклама Кока-колы по ТВ)

Приходит один известный бренд и говорит: Слушай, помоги нам разобраться с бренд-макретингом.
- Стратегию написали.
- Позиционирование бренда сформулировано.
- С performance маркетингом всё ок.
- А вот с бренд-маркетингом до сей поры работали оппортунистически, выбирая проекты по бинарной оценке "круто или зашквар". Теперь же хотим вложить Х00М руб., и так дело не пойдёт.

Вопросы:
- Как должен выглядеть механизм выбора проектов?
- Как оценивать эффективность?
- Какую команду под это направление нанимать?

У меня нет готовых ответов на эти вопросы. Но, как всегда, у меня есть готовые структурированные вопросы 😁 для систематического поиска ответов на эти исходные вопросы. Вот так они выглядят:

(Ради тренировки попробуйте сами набросать структуру вопросов или попросите ЧатГПТ, а потом сравните с моим подходом)

Часть 1. Что мы хотим сообщить?
- Цели маркетинговой коммуникации компании и её связь со стратегией
- Ключевые характеристики компании на основе позиционирования бренда
- Вытекающие из них принципы консистентного развития бренда

Часть 2. Кому и где мы хотим это сообщить?
- Что мы знаем о нашей аудитории: вспомним имеющиеся наработки
- Где можно до неё достучаться, а куда – не стоит соваться?
- Уточнение принципов развития бренда на основе знаний об аудитории

Часть 3. Как оценить отдельные инициативы до их реализации?
- Как можно типизировать инициативы?
- Какие варианты оценки инициатив существуют? В чём их плюсы и минусы?
- Схема принятия решений по инициативам в рамках целей
- Тест-драйв схемы на прошлых и потенциальных инициативах

Часть 4. Как оценить работу пост-фактум?
- Какие варианты оценки эффективности бренд-маркетинга существуют?
- Выбор подходящего набор инструментов оценки эффективности
- Как реализовать эту оценку на практике?

Часть 5. Дальнейшие шаги по бренд-маркетингу?
- Список будущих инициатив (как внешних, так и внутренних)
- Зоны ответственности (для дальнейшей формулировки ролей в команде)

Результат поиска ответов на эти вопросы, вероятно, вы скоро увидите вокруг вас. Где именно, раскрыть не могу.

✈️Метод McKinsey на примерах: @flesspro
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from GoPractice!
Как пройти путь от РМ до СРО. Этапы развития и практические шаги

Путь к продуктовому лидерству совсем не похож на A → B. Он сложнее и куда извилистее.

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

Но все же этой теме можно придать системный и структурный вид. Именно поэтому мы попросили Геворга Казаряна, Group Product Manager в Adobe, поделиться своим опытом прохождения пути к продуктовому лидерству.

🔗 https://gopractice.ru/skills/from-pm-to-cpo/

Как определять возможности роста своего продукта, вы узнаете в нашем «Симуляторе управления ростом продукта».

В нем вы получите знания и навыки, необходимые для управляемого роста продуктов, что также поможет вам сделать следующий шаг в карьере.
Forwarded from Knowledge Accumulator
Direct Preference Optimization: Your Language Model is Secretly a Reward Model [2023] - продолжаем LLM-ликбез

В прошлый раз мы разбирали стандартный RLHF, теперь давайте глянем на самого популярного из конкурентов и наследников, DPO. Авторы статьи говорят про RLHF следующее:

1) Reward model у нас не особо круто работает, особенно вне data distribution, поэтому полноценный её максимизатор будет плохим.
2) Существует ещё и проблема разнообразия, которого при идеальной максимизации не будет.
3) Наши RL методы сами по себе неидеальны и дороги в вычислении и реализации/отладке.

Вместо этого они хотят сформулировать задачу для обучения более простым образом. Давайте посмотрим, что из этого вышло.

Я не погружался в доказательства вывода, изложу своё понимание результата. Авторы замечают, что двухшаговая процедура из обучения Reward Model и затем RL можно переформулировать как одношаговую процедуру обучения на задачу с одной функцией ошибки и без дополнительной Reward Model.

Почему это возможно? Во-первых, в отличие от обычного RL, никаких настоящих наград не существует, а также нет никакого онлайн-взаимодействия со средой. У нас есть только зафиксированный датасет из троек [запрос ; хороший ответ ; плохой ответ].

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

Практического опыта у меня нет, но в статье DPO вроде бы обходит RLHF на задачах. Чуваки в статье про Llama3 пишут, что используют DPO, так что, наверное, метод действительно лучше с учётом простоты реализации.

Замечу, что метод не решает обозначенные мною проблемы в посте про RLHF. Они вытекают из самих данных с человеческой разметкой, которые, во-первых, зафиксированы, а значит, не происходит GAN-подобного обучения, в котором данные пытаются "атаковать" модель в её слабые места и тем самым позволяя ей улучшаться, а, во-вторых, недостаточно велики и разнообразны, чтобы для решения поставленной задачи нужно было обучаться логическому размышлению и построению качественной картины мира.

Наверняка для RLHF/DPO придумали множество модификаций (в том числе всякие конструкции поверх LLM типа CoT), которые дают более крутой результат, но с таким соотношением пространства параметров и объёма данных решить задачу по-нормальному пока что вряд ли получится.

@knowledge_accumulator
Forwarded from эйай ньюз
🔥Molmo: Outperforming Proprietary Multimodal Language Models

Приношу вам самый сок. Кажется, это самый лучший доклад за сегодня.

За два часа до релиза Llama 3.2 челы выложили семейство открытых моделей Molmo (и нет, это не совпадение):
- 1B
- 7B
- 72B

По качеству на визуальных задачах Molmo выдаёт +- перформанс как Llama 3.2: где-то лучше, где-то хуже, и приближается к GPT-4o.

- Но, пре-трейн модель они делали всего на 700k размеченных парах картинка-текст (PixMo-Cap). В то время как Llama тренили на 6 млрд!
- Использовали в 9000 раз меньше данных, но гораздо более высокого качества.
- Люди не любят печатать, люди любят говорить. Поэтому разметчиков просили не печатать описание картинки, а описывать её ГОЛОСОМ 60-90 секунд. Далее запись автоматически переводили в текст. Это гораздо эффективнее, проще и помогает быстро собрать очень длинные и детальные описания картинок.
- Дополнительно разметчиков просили тыкать точками на объекты, про которые они говорят. Это помогло научить модель связывать пиксели с текстом, выдавая точки на картинке, когда она описывает какой-то объект.

Все это очень сильно подняло качество модели. Это прям крутые идеи.

По архитектуре ничего необычного – transformer с late fusion. То есть токены картинок пропускаются через обучаемый коннектор, а затем кормятся в LLM.

Трейн в два стейджа, ничего не замораживая:
(1) multimodal pre-training для генерации описаний на новом датасете – 700k картинок; (2) supervised fine-tuning на instruction-датасете, который они тоже собрали сами (там и точки на картинках, и документы, прочие задачи) – тут около 1.9 млн картинок (возможно, пересекается с претрейн-датасетом).

Трейн и эвал код и датасет (PixMo) выложат в течение 2 месяцев – я им верю!

Блогпост про модели
Arxiv

@ai_newz
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM