Forwarded from Data Secrets
MIT перезапустили свой легендарный курс 6.S191: Introduction to Deep Learning
NLP, CV, LLM, приложения в медицине: тут все end-to-end, включая теорию и практику с актуальными версиями библиотек.
Подходит курс даже для тех, кто вкатывается с нуля: достаточно уметь брать производные и умножать матрицы, остальное обещают объяснить на ходу.
Лекции будут выходить в свободный доступ на YouTube по понедельникам, первая вышла вчера. Слайды, код и доп.материалы лежат здесь.
Такое не пропускаем
NLP, CV, LLM, приложения в медицине: тут все end-to-end, включая теорию и практику с актуальными версиями библиотек.
Подходит курс даже для тех, кто вкатывается с нуля: достаточно уметь брать производные и умножать матрицы, остальное обещают объяснить на ходу.
Лекции будут выходить в свободный доступ на YouTube по понедельникам, первая вышла вчера. Слайды, код и доп.материалы лежат здесь.
Такое не пропускаем
Forwarded from ML for Value / Ваня Максимов
Начало карьеры в DS
Последнее время много кто спрашивает меня про старт карьеры в DS от студентов и ребят из других профессий: разработчики, продакты и даже был один социолог! Кстати, я был удивлен, но на соцфаке капец как много матстата - это годная база для старта в DS. Собрал в кучу все эти разговоры и свои советы - делюсь с вами
Этап 1. А оно вам надо?
Многие идут в DS за деньгами 300к/секунду. Может, лет 5-10 назад и было легко залететь с минимальными знаниями и супер-быстро вырасти, но сейчас это не так. Поиск стажировки или junior позиции - кровавый океан с конкуренцией под 100 чел на место. Чтобы вырваться в этой гонке вперед пригодится сильная мотивация помимо денег:
- Сделать мир лучше: для HealthTech, Self-driving Cars, автоматизации производства и кучи других отраслей есть и правда социально полезное применение ML
- Применить 4 года изучения математики/программирования: и правда получится это делать. Но скорее всего несколько в другом виде (много математики+ml в логиситике и страховании, например) и не факт, что в ML-направлении. В той же продуктовой аналитике мат стата может быть по факту даже больше
- Быть на острие технологий/науки: GPT, GenAI, графовые сети, создание видео через AI - это действительно многим интересно. Но SOTA модели делают далеко не везде: учитывайте это
- Занятный разговор про мотивацию услышал в подкасте "AI в действии" от ребят из ecom.tech - таймкод 5:48, если интересно
Этап 2. Попробуй - точно надо?
Только не надо на этом этапе платить деньги) Есть куча бесплатных легендарных курсов
- Andrew Ng для олдов
- Курс от ODS
- Курсы от Стэнфорда типа CS231n
- Kaggle курсы, если вас драйвят ml-соревнования
- Бесплатные курсы на Coursera, Stepik и тд
Берите курс с изучением python + ml и обязательными домашками на код. Тут вы хотя бы минимально симитируете работу DS и поймете, а точно ли оно вам нравится? DS - sexy job со стороны, но в реальности 90% времени мы не делаем SOTA ml-модели, а выясняем суть задачи, чистим данные, строим фичи (предобрабатываем/токенизируем в llm/cv) и упорно растим какой-нибудь precision модели
Этап 3. Погружение
Понравилось? Теперь стоит выбрать предварительную специализацию: таблички, nlp или cv. И уже пройти более глубокий курс на эту тему. Тут советовать ничего не буду: есть годные и бесплатные, и платные курсы. Думайте сами - решайте сами
Специализация вам точно пригодится, потому что собесы проходят не по data science в общем (так было лет 7 назад), а по конкретным задачам команды. И как правило, даже для стажировки стоит довольно глубоко разбираться в специализации хотя бы в теории
Этап 4. Первая стажировка / работа
После завершения базового ml-курса + специализации рекомендую сделать такие пункты для стажировки или работы джуном
- Сделайте pet-проект и оформите его на github. В теме разберетесь, из толпы выделитесь. На финалах вас могут спросить о пет проекте, а не рандомный вопрос, который вам особо не знаком
- Сделайте хорошее CV на hh.ru и LinkedIn. Опыта работы у вас нет - опишите в деталях свои учебные и пет-проекты: что за задачу решали, какие метрики, что применяли и тд. Только пишите честно, что это учебные проект, а не работа (крик души нанимающего менеджера) 😅
- Активно подавайтесь в релевантные компании. В порядке убывания эффективности работают такие каналы: Личное знакомство > Рефералка от сотрудника > One day offer > карьерный день студента > Подача через сайт компании > подача через hh.ru
- Готовьтесь, что поиск работы может занять 2, 3, а то и 6 месяцев
- Предложил бы ориентироваться на интересность задач и потенуиал роста, а не на деньги. Деньги в IT в любом случае у вас появятся только от уровня middle и выше
Ну вот и все! Удачи во вкатывание в DS - все получится 🫰
Реклама. ООО «Умное пространство», ИНН: 7811554010. Ерид: 2W5zFJhD57N
Последнее время много кто спрашивает меня про старт карьеры в DS от студентов и ребят из других профессий: разработчики, продакты и даже был один социолог! Кстати, я был удивлен, но на соцфаке капец как много матстата - это годная база для старта в DS. Собрал в кучу все эти разговоры и свои советы - делюсь с вами
Этап 1. А оно вам надо?
Многие идут в DS за деньгами 300к/секунду. Может, лет 5-10 назад и было легко залететь с минимальными знаниями и супер-быстро вырасти, но сейчас это не так. Поиск стажировки или junior позиции - кровавый океан с конкуренцией под 100 чел на место. Чтобы вырваться в этой гонке вперед пригодится сильная мотивация помимо денег:
- Сделать мир лучше: для HealthTech, Self-driving Cars, автоматизации производства и кучи других отраслей есть и правда социально полезное применение ML
- Применить 4 года изучения математики/программирования: и правда получится это делать. Но скорее всего несколько в другом виде (много математики+ml в логиситике и страховании, например) и не факт, что в ML-направлении. В той же продуктовой аналитике мат стата может быть по факту даже больше
- Быть на острие технологий/науки: GPT, GenAI, графовые сети, создание видео через AI - это действительно многим интересно. Но SOTA модели делают далеко не везде: учитывайте это
- Занятный разговор про мотивацию услышал в подкасте "AI в действии" от ребят из ecom.tech - таймкод 5:48, если интересно
Этап 2. Попробуй - точно надо?
Только не надо на этом этапе платить деньги) Есть куча бесплатных легендарных курсов
- Andrew Ng для олдов
- Курс от ODS
- Курсы от Стэнфорда типа CS231n
- Kaggle курсы, если вас драйвят ml-соревнования
- Бесплатные курсы на Coursera, Stepik и тд
Берите курс с изучением python + ml и обязательными домашками на код. Тут вы хотя бы минимально симитируете работу DS и поймете, а точно ли оно вам нравится? DS - sexy job со стороны, но в реальности 90% времени мы не делаем SOTA ml-модели, а выясняем суть задачи, чистим данные, строим фичи (предобрабатываем/токенизируем в llm/cv) и упорно растим какой-нибудь precision модели
Этап 3. Погружение
Понравилось? Теперь стоит выбрать предварительную специализацию: таблички, nlp или cv. И уже пройти более глубокий курс на эту тему. Тут советовать ничего не буду: есть годные и бесплатные, и платные курсы. Думайте сами - решайте сами
Специализация вам точно пригодится, потому что собесы проходят не по data science в общем (так было лет 7 назад), а по конкретным задачам команды. И как правило, даже для стажировки стоит довольно глубоко разбираться в специализации хотя бы в теории
Этап 4. Первая стажировка / работа
После завершения базового ml-курса + специализации рекомендую сделать такие пункты для стажировки или работы джуном
- Сделайте pet-проект и оформите его на github. В теме разберетесь, из толпы выделитесь. На финалах вас могут спросить о пет проекте, а не рандомный вопрос, который вам особо не знаком
- Сделайте хорошее CV на hh.ru и LinkedIn. Опыта работы у вас нет - опишите в деталях свои учебные и пет-проекты: что за задачу решали, какие метрики, что применяли и тд. Только пишите честно, что это учебные проект, а не работа (крик души нанимающего менеджера) 😅
- Активно подавайтесь в релевантные компании. В порядке убывания эффективности работают такие каналы: Личное знакомство > Рефералка от сотрудника > One day offer > карьерный день студента > Подача через сайт компании > подача через hh.ru
- Готовьтесь, что поиск работы может занять 2, 3, а то и 6 месяцев
- Предложил бы ориентироваться на интересность задач и потенуиал роста, а не на деньги. Деньги в IT в любом случае у вас появятся только от уровня middle и выше
Ну вот и все! Удачи во вкатывание в DS - все получится 🫰
Реклама. ООО «Умное пространство», ИНН: 7811554010. Ерид: 2W5zFJhD57N
VK Видео
AI в действии | Как правильно изучать DS. Что нужно знать всем и помогает ли теория в работе
Где заканчивается теория и начинается практика? Когда нужно перестать читать книги и начать писать код? Что нужно знать, чтобы быть классным специалистом? А может быть, теория переоценена и нужно сразу идти соревноваться на kaggle? Обсуждали эти вопросы с…
Forwarded from VF | Science
DiffRhythm: Blazingly Fast and Embarrassingly Simple End-to-End Full Length Song Generation with Latent Diffusion
[paper] | [code] | [hf_demo]
Опенсурс для генерации музыки развивается👍
Теперь, в отличие от YuE у нас первая модель для генерации полного трека на латентной диффузии — DiffRhythm. Можно генерить треки длительностью до 4 минут 45 секунд с вокалом и аккомпанементом значительно быстрее всяких авторегрессионок, очевидно) Также можно указать тайминги для лирики, крутая фича. Модель основана на двух последовательно обученных компонентах: VAE и DiT (рис. 1).
VAE основан на Stable Audio 2 и отличается полностью сверточной архитектурой, чтобы обрабатывать аудио произвольной длины. Учится на реконструкцию качественных треков и для лучшей устойчивости делают аугментацию имитирующую MP3-сжатие. Входные данные случайно сжимаются с переменным битрейтом, а на выходе мы также хотим качественное аудио. Также накинули 2 лосса: multi-resolution STFT и adversarial, дискриминатор сделали в 4 раза больше, чем в Stable Audio, чтобы моделька видела больше деталей и реконструкция была лучше.
DiT в DiffRhythm отвечает за генерацию латентных представлений и адаптирован для работы с длинными музыкальными последовательностями. Принимает 3 кондишна:
*️⃣ Стиль. Короткий аудиофрагмент обрабатывается через LSTM, где финальное скрытое состояние используется как глобальная информация о стиле.
*️⃣ Временной шаг. Embedding текущего шага диффузии суммируется со стилевым признаком, формируя глобальное условие.
*️⃣ Текст песни. Преобразуется в фонемы через grapheme-to-phoneme (G2P) конверсию, затем встраивается в непрерывные эмбеддинги через слой embedding. Эти признаки конкатенируются с зашумлённым латентным представлением и подаются в DiT.
DiT состоит из 16 слоёв декодера LLaMA с 2048-мерным скрытым размером и 32 головами внимания (64 измерения на голову), что составляет 1.1 миллиарда параметров. Для оптимизации используются FlashAttention2, дабы ускорить вычисления внимания для длинных последовательностях и gradient checkpointing, дабы снизить потребление памяти при обучении. Также применяется 20% dropout к стилю и тексту для поддержки classifier-free guidance (CFG) с масштабом 4 на инференсе. Учится это все дело с conditional flow matching, где моделька учится преобразовывать шум в данные через ODE. Музыка генерится за 32 шага с Euler ODE солвером и на протяжении всего трека музыка остается цельной, то есть мы получаем не набор случайных звуков))
Но, пожалуй, самое главное в этой работе — это алаймент текста и латентных представлений. Вокальные сегменты часто прерываются длительными инструментальными частями, что создаёт разрывы в временной последовательности. Также одни и те же слова могут звучать по-разному из-за различного аккомпанемента, что усложняет выравнивание. Авторы сказали, что всякий кросс-аттеншн или прямая конкатенация фичей не позволяют генерить разборчивые песни. Поэтому авторы предлагают выравнивание на уровне предложений, требующее только аннотаций начала предложений t_i_start (рис. 2) и делают его так:
*️⃣ Преобразуют текст в последовательность фонем через G2P преобразование
*️⃣ Инициализуют последовательность для алаймента P_i длиной L_max (4м45с), которая полностью заполнена падингами
*️⃣ Размещение фонем p_i в P_i на позициях, соответствующих временным меткам (𝑓_𝑖_start=[𝑡_𝑖_start * 𝐹_𝑠], где 𝐹_𝑠=21.5Гц)
Такой алаймент уменьшает потребность в детальных аннотациях, расходы на подготовку датасета и разборчивость вокала становится лучше. Бьютифул.
А теперь мои мысли: делать ллама подобные сетки с кучей аудио токенов, каким то ризонингом на лирику здорово, но можно делать как DiffRhythm. Авторегрессия, к слову, хорошая тем, что с ней можно учить все, этот подход универсален. Foundation моделей на диффузии я пока не видел (upd: видел). Ну и наверное авторегрессия хорошая для бизнеса, который может дать деняк, взять авторегрессию и поскейлить модельки, чтобы решить большинство возникающих задач. Что думаете?
#music #papers
[paper] | [code] | [hf_demo]
Опенсурс для генерации музыки развивается
Теперь, в отличие от YuE у нас первая модель для генерации полного трека на латентной диффузии — DiffRhythm. Можно генерить треки длительностью до 4 минут 45 секунд с вокалом и аккомпанементом значительно быстрее всяких авторегрессионок, очевидно) Также можно указать тайминги для лирики, крутая фича. Модель основана на двух последовательно обученных компонентах: VAE и DiT (рис. 1).
VAE основан на Stable Audio 2 и отличается полностью сверточной архитектурой, чтобы обрабатывать аудио произвольной длины. Учится на реконструкцию качественных треков и для лучшей устойчивости делают аугментацию имитирующую MP3-сжатие. Входные данные случайно сжимаются с переменным битрейтом, а на выходе мы также хотим качественное аудио. Также накинули 2 лосса: multi-resolution STFT и adversarial, дискриминатор сделали в 4 раза больше, чем в Stable Audio, чтобы моделька видела больше деталей и реконструкция была лучше.
DiT в DiffRhythm отвечает за генерацию латентных представлений и адаптирован для работы с длинными музыкальными последовательностями. Принимает 3 кондишна:
DiT состоит из 16 слоёв декодера LLaMA с 2048-мерным скрытым размером и 32 головами внимания (64 измерения на голову), что составляет 1.1 миллиарда параметров. Для оптимизации используются FlashAttention2, дабы ускорить вычисления внимания для длинных последовательностях и gradient checkpointing, дабы снизить потребление памяти при обучении. Также применяется 20% dropout к стилю и тексту для поддержки classifier-free guidance (CFG) с масштабом 4 на инференсе. Учится это все дело с conditional flow matching, где моделька учится преобразовывать шум в данные через ODE. Музыка генерится за 32 шага с Euler ODE солвером и на протяжении всего трека музыка остается цельной, то есть мы получаем не набор случайных звуков))
Но, пожалуй, самое главное в этой работе — это алаймент текста и латентных представлений. Вокальные сегменты часто прерываются длительными инструментальными частями, что создаёт разрывы в временной последовательности. Также одни и те же слова могут звучать по-разному из-за различного аккомпанемента, что усложняет выравнивание. Авторы сказали, что всякий кросс-аттеншн или прямая конкатенация фичей не позволяют генерить разборчивые песни. Поэтому авторы предлагают выравнивание на уровне предложений, требующее только аннотаций начала предложений t_i_start (рис. 2) и делают его так:
Такой алаймент уменьшает потребность в детальных аннотациях, расходы на подготовку датасета и разборчивость вокала становится лучше. Бьютифул.
А теперь мои мысли: делать ллама подобные сетки с кучей аудио токенов, каким то ризонингом на лирику здорово, но можно делать как DiffRhythm. Авторегрессия, к слову, хорошая тем, что с ней можно учить все, этот подход универсален. Foundation моделей на диффузии я пока не видел (upd: видел). Ну и наверное авторегрессия хорошая для бизнеса, который может дать деняк, взять авторегрессию и поскейлить модельки, чтобы решить большинство возникающих задач. Что думаете?
#music #papers
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Quant Valerian
Про лидершип
Несмотря на мемы про природный лидершип, мне все-таки есть, что сказать по этому поводу.
В этой ветке мало теории. Поэтому ща одним постом выдам вам базу, которая на 90% покрывает всё, что я видел на эту тему.
Очень много армейского. Видимо, там очень важная компетенция, считается. Прям брошюры есть от армий разных стран. Содержание там примерно следующее:
- Leadership by example
- Веди себя нормально по отношению к подчиненным
Больше там ничего нет.
Вести себя нормально дано не всем. Очень много людей, которым нужно самоутверждаться за счет других, всюду показывать свою лычку начальника и вообще демонстрировать КТО ЗДЕСЬ ВЛАСТЬ.
Если вы такой (в текущий момент времени), не рекомендую идти в тимлиды, потому что нормальную команду собрать не получится. Вас либо размажут и сожрут взрослые дяди, либо будете сидеть и загнивать в сомнительном обществе.
А вот быть примером нужно учиться. Но чтобы научиться этому, нужно, блин, стараться. С майндсетом "я начальник, ты дурак" точно не получится. Нужно вести себя так, как ты хочешь, чтобы работали твои ребята:
- решали проблемы, а не закапывали под ковер
- бежали к цели, а не плыли по течению
- решали задачи в срок
- выполняли закоммиты
- признавали ошибки
- не опаздывали на встречи...
Вот, что вам надо — то выберите и делайте сами. Долго. Всегда.
Но как мне занять лидерскую позицию? Как получить уважение? А что, если я вообще не программист, а они все победители олимпиад?
А у тебя работа не программировать, а управлять. Вот ты покажи, что ты свою работу хорошо делаешь, прям вот круто, тогда и уважение получишь. Авторитет зарабатывается трек-рекордом. Тебе нужно быть последовательным, выполнять обещания, не отступать от заявленных правил.
Обещал уволить за еще один подобный факап? Сам виноват, теперь увольняй.
Обещал дать премию за успешное закрытие проекта? Не важно, как его закрыли, есть факт — давай деньги!
Обещал, что к следующему разу решишь вопрос? Придется решить. И прям к следующему разу.
Буквально все эти вещи выше — это про то, что вам важно, про приоритеты. Если тебе важно быть лидером — бери себя в руки и делай. Если тебе важно, чтобы работа работалась — работай сам, покажи пример. Люди верят не словам, а действиям. А когда ты раз сказал одноЮ а сделал другое, два... На третий раз никто уже и слушать не будет. А это буквально потеря авторитета.
P.S.:
Хотя на первом этапе знакомства с командой рассказы, какой ты крутой программист дают некоторую фору, дальше нужно всё-таки показать, какой ты управленец. А программировать можно и посредственно.
Несмотря на мемы про природный лидершип, мне все-таки есть, что сказать по этому поводу.
В этой ветке мало теории. Поэтому ща одним постом выдам вам базу, которая на 90% покрывает всё, что я видел на эту тему.
Очень много армейского. Видимо, там очень важная компетенция, считается. Прям брошюры есть от армий разных стран. Содержание там примерно следующее:
- Leadership by example
- Веди себя нормально по отношению к подчиненным
Больше там ничего нет.
Вести себя нормально дано не всем. Очень много людей, которым нужно самоутверждаться за счет других, всюду показывать свою лычку начальника и вообще демонстрировать КТО ЗДЕСЬ ВЛАСТЬ.
Если вы такой (в текущий момент времени), не рекомендую идти в тимлиды, потому что нормальную команду собрать не получится. Вас либо размажут и сожрут взрослые дяди, либо будете сидеть и загнивать в сомнительном обществе.
А вот быть примером нужно учиться. Но чтобы научиться этому, нужно, блин, стараться. С майндсетом "я начальник, ты дурак" точно не получится. Нужно вести себя так, как ты хочешь, чтобы работали твои ребята:
- решали проблемы, а не закапывали под ковер
- бежали к цели, а не плыли по течению
- решали задачи в срок
- выполняли закоммиты
- признавали ошибки
- не опаздывали на встречи...
Вот, что вам надо — то выберите и делайте сами. Долго. Всегда.
Но как мне занять лидерскую позицию? Как получить уважение? А что, если я вообще не программист, а они все победители олимпиад?
А у тебя работа не программировать, а управлять. Вот ты покажи, что ты свою работу хорошо делаешь, прям вот круто, тогда и уважение получишь. Авторитет зарабатывается трек-рекордом. Тебе нужно быть последовательным, выполнять обещания, не отступать от заявленных правил.
Обещал уволить за еще один подобный факап? Сам виноват, теперь увольняй.
Обещал дать премию за успешное закрытие проекта? Не важно, как его закрыли, есть факт — давай деньги!
Обещал, что к следующему разу решишь вопрос? Придется решить. И прям к следующему разу.
Буквально все эти вещи выше — это про то, что вам важно, про приоритеты. Если тебе важно быть лидером — бери себя в руки и делай. Если тебе важно, чтобы работа работалась — работай сам, покажи пример. Люди верят не словам, а действиям. А когда ты раз сказал одноЮ а сделал другое, два... На третий раз никто уже и слушать не будет. А это буквально потеря авторитета.
P.S.:
Хотя на первом этапе знакомства с командой рассказы, какой ты крутой программист дают некоторую фору, дальше нужно всё-таки показать, какой ты управленец. А программировать можно и посредственно.
Forwarded from Quant Valerian
Ожидания и реальность
Намедни обсуждали с коллегами ожидания от грейдов в нашей компании. Мои ожидания оказались где-то на пол грейда ниже, чем у соседа. Но даже с учетом этого, мои ожидания не всегда совпадают с реальностью в моих командах. Иногда думаю, что либо нанимаю плохо, либо в какой-то другой плоскости ожидаю навыков от людей — не знаю. Работа, главное, делается, но моя фантазия, что без меня делалось бы так же круто — это, похоже, фантазия. А про эту фантазию я уже даже пост хотел сегодня запостить, лол.
Потом запосчу 🌚
Давайте попробуем устроить срач в комментах!
Я ожидаю, что:
1. Джун пишет, который его просят написать. Например: "вот тут напиши функцию, которая будет принимать заказ, считать в нем сумму стоимостей всех товаров и возвращать её"
2. Миддл может решить хорошо поставленную задачку (что и как надо сделать). Например: "в этом сервисе нужно поддержать отправку коллбэков, сделай корутинку, которая будет отправлять, роутинг по конфигу, протокол обсуди с принимающей стороной"
3. Миддл+ может решать небольшие проблемы (есть что, но нет как). Например: "в сервисе Х почему-то подскочило потребление CPU с последним релизом, поправь, пожалуйста"
4. Сеньор уже будет решать проблемы масштаба команды. Например: "соседи жалуются, что у нашей системы сервисов неудобный API и data race какой-то, предложи решение"
5. А стафф будет проблемы находить и приносить, будет уметь срезать углы, уметь задачки на шаги разбивать и делать по частям, аналитику какую-то делать. Ты ему уже даже не говоришь, что на что-то конкретное жалуются. Он сидит такой, смотрит в дэш, который сам нашел/собрал, видит там какие-то данные, по ним идентифицирует, что идет не так и идет чинить. Либо узнает боли при общении, про которые люди и не знали, что их вообще можно решить. Например: "Приходил бизнес, у них есть вот такая проблема, так больно, аж жопа горит. Что можно сделать?" И вот он идёт, смотрит, в чем причина, потом ищет возможные решения, звонит своему корешу, который работает в компании, которая эту проблему как-то решила, звонит всем вендорам и регуляторам — находит варианты решения, короче. Потом он взвешивает и показывает трейдофы бизнесу. А потом относит сеньору делать 😁
От более сеньорных чуваков у меня пока никаких ожиданий нет. Какие ваши мысли?
Намедни обсуждали с коллегами ожидания от грейдов в нашей компании. Мои ожидания оказались где-то на пол грейда ниже, чем у соседа. Но даже с учетом этого, мои ожидания не всегда совпадают с реальностью в моих командах. Иногда думаю, что либо нанимаю плохо, либо в какой-то другой плоскости ожидаю навыков от людей — не знаю. Работа, главное, делается, но моя фантазия, что без меня делалось бы так же круто — это, похоже, фантазия. А про эту фантазию я уже даже пост хотел сегодня запостить, лол.
Потом запосчу 🌚
Давайте попробуем устроить срач в комментах!
Я ожидаю, что:
1. Джун пишет, который его просят написать. Например: "вот тут напиши функцию, которая будет принимать заказ, считать в нем сумму стоимостей всех товаров и возвращать её"
2. Миддл может решить хорошо поставленную задачку (что и как надо сделать). Например: "в этом сервисе нужно поддержать отправку коллбэков, сделай корутинку, которая будет отправлять, роутинг по конфигу, протокол обсуди с принимающей стороной"
3. Миддл+ может решать небольшие проблемы (есть что, но нет как). Например: "в сервисе Х почему-то подскочило потребление CPU с последним релизом, поправь, пожалуйста"
4. Сеньор уже будет решать проблемы масштаба команды. Например: "соседи жалуются, что у нашей системы сервисов неудобный API и data race какой-то, предложи решение"
5. А стафф будет проблемы находить и приносить, будет уметь срезать углы, уметь задачки на шаги разбивать и делать по частям, аналитику какую-то делать. Ты ему уже даже не говоришь, что на что-то конкретное жалуются. Он сидит такой, смотрит в дэш, который сам нашел/собрал, видит там какие-то данные, по ним идентифицирует, что идет не так и идет чинить. Либо узнает боли при общении, про которые люди и не знали, что их вообще можно решить. Например: "Приходил бизнес, у них есть вот такая проблема, так больно, аж жопа горит. Что можно сделать?" И вот он идёт, смотрит, в чем причина, потом ищет возможные решения, звонит своему корешу, который работает в компании, которая эту проблему как-то решила, звонит всем вендорам и регуляторам — находит варианты решения, короче. Потом он взвешивает и показывает трейдофы бизнесу. А потом относит сеньору делать 😁
От более сеньорных чуваков у меня пока никаких ожиданий нет. Какие ваши мысли?
Forwarded from Pavel Zloi
Всем привет!
После релиза R1-тюна на YandexGPT 5 Lite получил солидныйпинок фидбэк от ML-сообщества. Если кратко: по мнению сообщества моя модель - не R1, потому что я ограничился SFT без RL, в довесок мне выдали охапку ссылок на различные исследования и публикации, так что последние два дня я практически всё свободное время впитывал новую информацию аки губка.
Начну с первой партии ссылок и некоторыми моими комментариями о прочитанном.
SFT Memorizes, RL Generalizes: A Comparative Study of Foundation Model Post-training (arXiv:2501.17161)
Кратенько: Исследователи сравнили SFT и RL на задачах арифметики и анализе изображений. "Чистый" SFT идеален для запоминания формата ответов и на данных в пределах домена (ID in-domain), но фейлится на данных вне тренировочного домена (OOD out-of-domain). "Чистый" RL (особенно с outcome-based reward) обобщает даже на невиданные ранее сценарии (OOD), но плохо соблюдает формат ответа.
От себя: В общем надо делать SFT+RL пайплайн для наилучшего эффекта.
Towards Reasoning in Large Language Models: A Survey (arXiv:2212.10403)
Кратенько: Небольшой обзор про ризонинг в LLM. Чем крупнее модель, тем лучше она "цепляет" паттерны рассуждений. Плюс подчеркивается неопределенность в отношении истинного ризонинга у моделей, не является ли это просто переиспользованием шаблонов из обучающего датасета.
От себя: В публикации мне понравилась про декомпозицию сложных задач на множество маленьких (типа генерация шагов решения), чтобы получались эдакие Chain-of-Thoughts последовательности ризононига, и вроде как даже слабые модели неплохо с этим справляются, надо будет поискать датасеты подходящие.
Towards Large Reasoning Models: A Survey of Reinforced Reasoning with Large Language Models (arXiv:2501.09686)
Кратенько: Подробный разбор всех шагов необходимых для обучения ризонинг модели с упором на финальный alignment этап и методы вознаграждения (обратная связь).
От себя: В данной публикации понравилось про шаги обучения модели до reasoning уровня: 1. pre-train (на text corpora); 2. fine-tune (sft на инструкциях с правильным форматом); 3. alignment (на ризонинг датасетах). Далее было очень подробно про RLHF для многоэтапных CoT последовательностей и разные виды подобного обучения и под конец про алгоритмы поиска наилучшего ответа (мой любимый кворум упоминается), там из примечательного был Lookahead Search (arXiv:2403.02502).
Understanding Reasoning LLMs (сайт)
Кратенько: Разбор кейса DeepSeek-R1, в RL было несколько наград: проверка кода через LeetCode, соблюдение формата ответа (как я понял чтобы был <think> тег) и языка на котором модель отвечает (типа чтобы не переходила на китайский слишком часто).
От себя: Очень понравилась публикация, в ней подробнейшем образом разобрана тема ризонинга на примере модели DeepSeek-R1, разобраны отдельные шаги начиная с того как была получена через RL-only тюн первая R1-Zero, потом как с её помощью сгенерировали более сложный RL датасет и как потом при его помощи выполняли обучение полновесной R1 модели.
To be continued...
После релиза R1-тюна на YandexGPT 5 Lite получил солидный
Начну с первой партии ссылок и некоторыми моими комментариями о прочитанном.
SFT Memorizes, RL Generalizes: A Comparative Study of Foundation Model Post-training (arXiv:2501.17161)
Кратенько: Исследователи сравнили SFT и RL на задачах арифметики и анализе изображений. "Чистый" SFT идеален для запоминания формата ответов и на данных в пределах домена (ID in-domain), но фейлится на данных вне тренировочного домена (OOD out-of-domain). "Чистый" RL (особенно с outcome-based reward) обобщает даже на невиданные ранее сценарии (OOD), но плохо соблюдает формат ответа.
От себя: В общем надо делать SFT+RL пайплайн для наилучшего эффекта.
Towards Reasoning in Large Language Models: A Survey (arXiv:2212.10403)
Кратенько: Небольшой обзор про ризонинг в LLM. Чем крупнее модель, тем лучше она "цепляет" паттерны рассуждений. Плюс подчеркивается неопределенность в отношении истинного ризонинга у моделей, не является ли это просто переиспользованием шаблонов из обучающего датасета.
От себя: В публикации мне понравилась про декомпозицию сложных задач на множество маленьких (типа генерация шагов решения), чтобы получались эдакие Chain-of-Thoughts последовательности ризононига, и вроде как даже слабые модели неплохо с этим справляются, надо будет поискать датасеты подходящие.
Towards Large Reasoning Models: A Survey of Reinforced Reasoning with Large Language Models (arXiv:2501.09686)
Кратенько: Подробный разбор всех шагов необходимых для обучения ризонинг модели с упором на финальный alignment этап и методы вознаграждения (обратная связь).
От себя: В данной публикации понравилось про шаги обучения модели до reasoning уровня: 1. pre-train (на text corpora); 2. fine-tune (sft на инструкциях с правильным форматом); 3. alignment (на ризонинг датасетах). Далее было очень подробно про RLHF для многоэтапных CoT последовательностей и разные виды подобного обучения и под конец про алгоритмы поиска наилучшего ответа (мой любимый кворум упоминается), там из примечательного был Lookahead Search (arXiv:2403.02502).
Understanding Reasoning LLMs (сайт)
Кратенько: Разбор кейса DeepSeek-R1, в RL было несколько наград: проверка кода через LeetCode, соблюдение формата ответа (как я понял чтобы был <think> тег) и языка на котором модель отвечает (типа чтобы не переходила на китайский слишком часто).
От себя: Очень понравилась публикация, в ней подробнейшем образом разобрана тема ризонинга на примере модели DeepSeek-R1, разобраны отдельные шаги начиная с того как была получена через RL-only тюн первая R1-Zero, потом как с её помощью сгенерировали более сложный RL датасет и как потом при его помощи выполняли обучение полновесной R1 модели.
To be continued...
Forwarded from Pavel Zloi
И так, продолжаем разговор, ссылок набралось порядочно, так вот вторая пачка публикаций, их краткое саммари и мой небольшой комментарий.
Curated collection of papers and resources on how to unlock the reasoning ability of LLMs and MLLMs (ссылка)
Кратенько: По ссылке коллекция из 130+ ссылок на статьи про датасеты и техники обучения ризонингу вышедшие начиная с 2022 года, так что всё достаточно свежее, есть обзорные статьи, есть разные околотехнические статьи с анализом работы тех или иных моделей, есть статьи про техники обучения и тестирования ризонинга и так далее.
От себя: В проекте собрана великолепная подборка различных публикаций и проектов, однако, отдельно хочу отметить заинтересовавший меня проект google-research/cascades, который позволяет формировать "каскадные" CoT цепочки вызывая внешние тулы и используя механизмы обратной связи.
Training Language Models to Self-Correct via Reinforcement Learning (arXiv:2409.12917)
Кратенько: Эта публикация про метод Self-Correct via Reinforcement Learning (SCoRe), использующий RL для улучшения способности языковых моделей к самокоррекции через генерацию собственных данных, что по тестам позволило достичь хороших результатов на бенчмарках MATH и HumanEval.
От себя: Очень любопытная статья,. по тексту сложилось мнение что SCoRe это что-то среднее между RL и RLHF (только вместо хумана обучаемая модель). Как я понял модель в процессе обучения делает две генерации, после первой проверяет себя и генерируют инструкцию самокоррекции, после второй рассчитывается то насколько ответы похожи на правильный из датасета (при этом не показывая модели какой правильный) и из этого формируется RL-награда, финальная цель которой обучить модель либо с первого раза отвечать "как надо" либо с одной подсказкой.
Marco-o1: Towards Open Reasoning Models for Open-Ended Solutions (arXiv:2411.14405)
Кратенько: Эта публикация представляет модель Marco-o1 и методы её RL обучения используя Chain-of-Thought, MCTS и механизмы рефлексии.
От себя: В данной публикации очень подробно описан весь процесс, который сводится к SFT обучению на CoT инструкциях, после чего RL обучению который предполагает, что модель сама будет генерировать возможные варианты ответа (дерево решений), после через MCTS (Monte Carlo Tree Search) выбирать наиболее эффективный (через оценку top-k и softmax). Процесс "рассуждения" продолжается до тех пока не будет достигнут приемлемый результат.
Puzzle Solving using Reasoning of Large Language Models: A Survey (arXiv:2402.11291)
Кратенько: Любопытный обзор исследований, оценивающих способности LLM в решении головоломок.
От себя: Из интересного классификация видов загадок и обзор датасетов под каждый из примеров, но отдельно хочу отметить упоминаемую работу "Graph of Thoughts: Solving Elaborate Problems with Large Language Models" (arxiv:2308.09687) о фреймворке, который позволяет построить не просто цепочку, а граф размышлений.
Продолжение продолжит продолжаться...
Curated collection of papers and resources on how to unlock the reasoning ability of LLMs and MLLMs (ссылка)
Кратенько: По ссылке коллекция из 130+ ссылок на статьи про датасеты и техники обучения ризонингу вышедшие начиная с 2022 года, так что всё достаточно свежее, есть обзорные статьи, есть разные околотехнические статьи с анализом работы тех или иных моделей, есть статьи про техники обучения и тестирования ризонинга и так далее.
От себя: В проекте собрана великолепная подборка различных публикаций и проектов, однако, отдельно хочу отметить заинтересовавший меня проект google-research/cascades, который позволяет формировать "каскадные" CoT цепочки вызывая внешние тулы и используя механизмы обратной связи.
Training Language Models to Self-Correct via Reinforcement Learning (arXiv:2409.12917)
Кратенько: Эта публикация про метод Self-Correct via Reinforcement Learning (SCoRe), использующий RL для улучшения способности языковых моделей к самокоррекции через генерацию собственных данных, что по тестам позволило достичь хороших результатов на бенчмарках MATH и HumanEval.
От себя: Очень любопытная статья,. по тексту сложилось мнение что SCoRe это что-то среднее между RL и RLHF (только вместо хумана обучаемая модель). Как я понял модель в процессе обучения делает две генерации, после первой проверяет себя и генерируют инструкцию самокоррекции, после второй рассчитывается то насколько ответы похожи на правильный из датасета (при этом не показывая модели какой правильный) и из этого формируется RL-награда, финальная цель которой обучить модель либо с первого раза отвечать "как надо" либо с одной подсказкой.
Marco-o1: Towards Open Reasoning Models for Open-Ended Solutions (arXiv:2411.14405)
Кратенько: Эта публикация представляет модель Marco-o1 и методы её RL обучения используя Chain-of-Thought, MCTS и механизмы рефлексии.
От себя: В данной публикации очень подробно описан весь процесс, который сводится к SFT обучению на CoT инструкциях, после чего RL обучению который предполагает, что модель сама будет генерировать возможные варианты ответа (дерево решений), после через MCTS (Monte Carlo Tree Search) выбирать наиболее эффективный (через оценку top-k и softmax). Процесс "рассуждения" продолжается до тех пока не будет достигнут приемлемый результат.
Puzzle Solving using Reasoning of Large Language Models: A Survey (arXiv:2402.11291)
Кратенько: Любопытный обзор исследований, оценивающих способности LLM в решении головоломок.
От себя: Из интересного классификация видов загадок и обзор датасетов под каждый из примеров, но отдельно хочу отметить упоминаемую работу "Graph of Thoughts: Solving Elaborate Problems with Large Language Models" (arxiv:2308.09687) о фреймворке, который позволяет построить не просто цепочку, а граф размышлений.
Продолжение продолжит продолжаться...
Forwarded from Dealer.AI
Немного про LLM и реальность в проде (бизнес кейсы).
Дядя тут быканул на один постик про оркестрацию, метамодели и роутинг моделек вокруг/с LM. Закономерно получилотрицательную ОС. Но все же, чтобы там не думали, что автор с НИИ и все же прод.опыт имеющий, а не тварь дрожащая , расскажет вам Дядя про реальность чутка.
Интро. Борд хочет, чтобы all in на LLM и кидает в вас задачу на проникновение современных БЯМ в бизнес процессы, тех.решения и платформы. Ведь ему со всех углов уже налили в уши, что это рокет саенс и золотая пуля.Нет.
И вот Вы бедняга, берете под козырек тащить это в уже устоявшиеся пайпы, системы и процессы.
Кейс 1. Система распознавания намерений. Хочется взять описания основных сценариев взаимодействия с клиентом, ака интенты, взять фразы в чате юзера и сказать: LMушка а вызови подходящий сценарий по описанию и запросу. И по-началу у вас будет это работать, но есть нюанс. На десятке интентов это может и ок. Если ваша LMка норм,то даже и соточку потянет. Но в системе интентов бывает сотни сценариев, и некоторые модельки тут уже не тянут. Да еще и глючат при генерации названия интента. И поэтому хитрые прод. инженеры используют хаки. Например, мы вот имели ж до этого систему на классификаторах и tfidf/fasttext/bert и хорошо оно работало итак без LLM для сотни и даже тыс. интентов. А давайте, чтобы убрать глюки и проблемы масштабируемости просто будем с этих модулей старых выдавать топК кандидатов. Берем К кандидатов, их описание и фразу юзера, кидаем в LLM и профит она из ограниченного списка, с recall@K которого 0.95+ выберет вам с 100% вероятностью нужный ответ. И фигак ты и кпэ закрыл и как бы LMка в проде. А чтобы это было чисто на LMке тебе придется еще думать про скейлинг, сегодня у тебя 10 интентов, а завтра 20 и перетюнить LM ты задолбаешься, классификаторы быстрее ретюн.Конечно можно лорку гонять, да.
Ах и да, тут ещё важно,что на запросы отвечает всеравно старый добрый сценарный движок или qa система. Да, да это оч близкий подход к RAG.
Кейс 2. Поиск и LLM. Мы же понимаем,что из весов LM поисковик так себе? Тут возникает вопрос актуальности данных,постоянного из-за этого переобучения, да и еще до кучи — глюки. Поэтому тут как раз, был придуман RAG. А LMка получает роль или ризонера по выдаче или вообще пишет тлдр по выдаче. До кучи, конечно, это над присыпать ссылками на источники, чтобы повысить доверие, да еще пошарить с вами ответственность за верификацию выдачи. Но иногда, ребята идут дальше, например делают технологию блендера, когда ответ из весов LM и выдачи с поиска (иной любой системы) еще скорится доп.алгоритмом и выбирается лучший ответ. К примеру, тут вот ребята с Яндекс создавали рекламные тайтлы, используя такой подход.
Кейс 3. Про читчат и ассистентов.
Когда появились LMки аля ChGPT все говорили, что это новая эра для ассистентов. Но в итоге, эти LM-based системы всеравно у серьезных игроков опираются на тот самый блендер между старыми отлаженными модулями: intent recognition, retrieval и дерево сценариев. А роль БЯМ или переписывать ответы, или выбирать из уже порезанной выдачи ретривала/интент классификации и в остальных случаях вести беседу самостоятельно e2e. Вообщем в целом жизнеспособность only e2е LLM в таких задачах спорно. По крайней мере сейчас. У знакомых вообще долгое время retrieval based диалоговая система не уступала LLM-based причем метрику оценки формировала команда БЯМ. Да LLM дает больше разнообразия ответов, интересности, зато ретривал релевантности. Поэтому и тут-то тоже блендер схема зашла на ура.
К чему я это все, да оркестрация старых + склейка с новыми системами важна. Переиспользование старых стабильных, надежных и высокоэффективных модулей тоже не зазорно. Можно ли это блендить и мерджить с LLM? Нужно. И не стоит делать all in на LLM. Сложно ли это сделать? Да нелегко, но дорогу осилит идущий.
Дядя тут быканул на один постик про оркестрацию, метамодели и роутинг моделек вокруг/с LM. Закономерно получил
Интро. Борд хочет, чтобы all in на LLM и кидает в вас задачу на проникновение современных БЯМ в бизнес процессы, тех.решения и платформы. Ведь ему со всех углов уже налили в уши, что это рокет саенс и золотая пуля.
И вот Вы бедняга, берете под козырек тащить это в уже устоявшиеся пайпы, системы и процессы.
Кейс 1. Система распознавания намерений. Хочется взять описания основных сценариев взаимодействия с клиентом, ака интенты, взять фразы в чате юзера и сказать: LMушка а вызови подходящий сценарий по описанию и запросу. И по-началу у вас будет это работать, но есть нюанс. На десятке интентов это может и ок. Если ваша LMка норм,то даже и соточку потянет. Но в системе интентов бывает сотни сценариев, и некоторые модельки тут уже не тянут. Да еще и глючат при генерации названия интента. И поэтому хитрые прод. инженеры используют хаки. Например, мы вот имели ж до этого систему на классификаторах и tfidf/fasttext/bert и хорошо оно работало итак без LLM для сотни и даже тыс. интентов. А давайте, чтобы убрать глюки и проблемы масштабируемости просто будем с этих модулей старых выдавать топК кандидатов. Берем К кандидатов, их описание и фразу юзера, кидаем в LLM и профит она из ограниченного списка, с recall@K которого 0.95+ выберет вам с 100% вероятностью нужный ответ. И фигак ты и кпэ закрыл и как бы LMка в проде. А чтобы это было чисто на LMке тебе придется еще думать про скейлинг, сегодня у тебя 10 интентов, а завтра 20 и перетюнить LM ты задолбаешься, классификаторы быстрее ретюн.
Ах и да, тут ещё важно,что на запросы отвечает всеравно старый добрый сценарный движок или qa система. Да, да это оч близкий подход к RAG.
Кейс 2. Поиск и LLM. Мы же понимаем,что из весов LM поисковик так себе? Тут возникает вопрос актуальности данных,постоянного из-за этого переобучения, да и еще до кучи — глюки. Поэтому тут как раз, был придуман RAG. А LMка получает роль или ризонера по выдаче или вообще пишет тлдр по выдаче. До кучи, конечно, это над присыпать ссылками на источники, чтобы повысить доверие, да еще пошарить с вами ответственность за верификацию выдачи. Но иногда, ребята идут дальше, например делают технологию блендера, когда ответ из весов LM и выдачи с поиска (иной любой системы) еще скорится доп.алгоритмом и выбирается лучший ответ. К примеру, тут вот ребята с Яндекс создавали рекламные тайтлы, используя такой подход.
Кейс 3. Про читчат и ассистентов.
Когда появились LMки аля ChGPT все говорили, что это новая эра для ассистентов. Но в итоге, эти LM-based системы всеравно у серьезных игроков опираются на тот самый блендер между старыми отлаженными модулями: intent recognition, retrieval и дерево сценариев. А роль БЯМ или переписывать ответы, или выбирать из уже порезанной выдачи ретривала/интент классификации и в остальных случаях вести беседу самостоятельно e2e. Вообщем в целом жизнеспособность only e2е LLM в таких задачах спорно. По крайней мере сейчас. У знакомых вообще долгое время retrieval based диалоговая система не уступала LLM-based причем метрику оценки формировала команда БЯМ. Да LLM дает больше разнообразия ответов, интересности, зато ретривал релевантности. Поэтому и тут-то тоже блендер схема зашла на ура.
К чему я это все, да оркестрация старых + склейка с новыми системами важна. Переиспользование старых стабильных, надежных и высокоэффективных модулей тоже не зазорно. Можно ли это блендить и мерджить с LLM? Нужно. И не стоит делать all in на LLM. Сложно ли это сделать? Да нелегко, но дорогу осилит идущий.
Telegram
Dealer.AI
Не поиском едины.
Вчера вечером посмотрел интересное от Яндекса.
Митап ML в Белграде. Команда поиска рассказывала о своём опыте с LLM.
Мне были интересны первые два доклада. Поэтому мои заметки ниже.
Доклад 1. Про генерацию рекламных предложений в…
Вчера вечером посмотрел интересное от Яндекса.
Митап ML в Белграде. Команда поиска рассказывала о своём опыте с LLM.
Мне были интересны первые два доклада. Поэтому мои заметки ниже.
Доклад 1. Про генерацию рекламных предложений в…
Forwarded from black_samorez
Выложили запись моего семинара про оптимальнось квантизованного претрена с помощью QuEST.
YouTube
Andrei Panferov - QuEST: Stable Training of LLMs with 1 Bit Weights and Activations
Presenting a new low-bitwidth LLM pre-training scheme called QuEST and demonstrating its optimality at 4 bit training.
Bio: PhD student at ISTA and ELLIS researching novel approaches for efficient LLM training and inference.
Bio: PhD student at ISTA and ELLIS researching novel approaches for efficient LLM training and inference.
Forwarded from Data Blog
Привет, друзья!
✔️ Выложила видео про CAM на YouTube. Давно не было и вот он — базовый и живой, с котом, обзор!
CAM
Идея CAM очень простая, но универсальная. Давайте на основе карт, которые мы можем достать из модели посмотрим, какие регионы изображения наиболее значимы для классификации конкретного класса?
Это помогает интерпретировать, на какие признаки обращает внимание модель при прогнозировании в задаче классификации.
CAM извлекать не всегда просто. Поэтому в видео я разобрала неклассический случай построения карты — на примере VGG.
CAM advanced
Кроме того, извлекая не только карты, связанные с классом, но и просто карты (Activation Maps), можно увидеть, как постепенно признаки меняются внутри сети. Такой способ я описывала в туториале про YOLO. Как видите, идея масштабируется от простых моделек, вроде ResNet, до моделек более «звучных» на текущий период!
Зову смотреть! =)
Мы с котом старались!
Отличного вечера,
Ваш Дата-автор!
✔️ Выложила видео про CAM на YouTube. Давно не было и вот он — базовый и живой, с котом, обзор!
CAM
Идея CAM очень простая, но универсальная. Давайте на основе карт, которые мы можем достать из модели посмотрим, какие регионы изображения наиболее значимы для классификации конкретного класса?
Это помогает интерпретировать, на какие признаки обращает внимание модель при прогнозировании в задаче классификации.
CAM извлекать не всегда просто. Поэтому в видео я разобрала неклассический случай построения карты — на примере VGG.
CAM advanced
Кроме того, извлекая не только карты, связанные с классом, но и просто карты (Activation Maps), можно увидеть, как постепенно признаки меняются внутри сети. Такой способ я описывала в туториале про YOLO. Как видите, идея масштабируется от простых моделек, вроде ResNet, до моделек более «звучных» на текущий период!
Зову смотреть! =)
Мы с котом старались!
Отличного вечера,
Ваш Дата-автор!
YouTube
Построение карты активации классов (Class Activation Map)
В этом туториале разобраны карты активации классов (Class Activation Maps, CAM) — метод из области объяснимый ИИ (Explainable AI).
В процессе туториала, вы:
1. Научитесь извлекать части нейронной сети и цеплять к ним пользовательские функции для извлечения…
В процессе туториала, вы:
1. Научитесь извлекать части нейронной сети и цеплять к ним пользовательские функции для извлечения…