Forwarded from Борис опять
Яндекс опубликовал на Хабре статью об использовании YandexGPT для генерации объявлений.
Я вообще не знал о такой функции: оказывается продавец большого количества товаров может отдать Яндекс.Директу их описания и получить автоматически сгенерированные объявления.
Отличная задача на ML System Design. Нужно объединить несколько источников данных, задействовать очень тяжёлую генеративную модель , эмбеддер и ранжирование, поддерживать большую нагрузку и все в условиях ограниченных ресурсов GPU. Хоть на собеседованиях давай.
Порадовал момент "сервис обрабатывает ВСЕГО ЛИШЬ 10 тысяч объявлений в секунду, поэтому нам пришлось ускорять :(".
Очень круто описан кейс оптимизации через асинхронную обработку, партицирование, параллелизацию, повышение утилизации GPU, дистилляцию эмбеддера и ранжировщика, устранение CPU бутылочных горлышек. Результаты впечатляют: RPS подняли до 70к+, снизили количество реплик в самом нагруженном месте на порядок.
Мне даже оказалось релевантно по работе, потому что обрабатывать много товаров тяжелым ML это прямо наш домен.
Один из самых клевых примеров применения LLM, что я видел.
Я вообще не знал о такой функции: оказывается продавец большого количества товаров может отдать Яндекс.Директу их описания и получить автоматически сгенерированные объявления.
Отличная задача на ML System Design. Нужно объединить несколько источников данных, задействовать очень тяжёлую генеративную модель , эмбеддер и ранжирование, поддерживать большую нагрузку и все в условиях ограниченных ресурсов GPU. Хоть на собеседованиях давай.
Порадовал момент "сервис обрабатывает ВСЕГО ЛИШЬ 10 тысяч объявлений в секунду, поэтому нам пришлось ускорять :(".
Очень круто описан кейс оптимизации через асинхронную обработку, партицирование, параллелизацию, повышение утилизации GPU, дистилляцию эмбеддера и ранжировщика, устранение CPU бутылочных горлышек. Результаты впечатляют: RPS подняли до 70к+, снизили количество реплик в самом нагруженном месте на порядок.
Мне даже оказалось релевантно по работе, потому что обрабатывать много товаров тяжелым ML это прямо наш домен.
Один из самых клевых примеров применения LLM, что я видел.
Forwarded from Kapitsa.AI
Часть 1. Речь 🗣
Начнём душнить с разбора звуковой дорожки. Как мы уже писали, скрипт для цифрового двойника подготовил человек. Далее разработчики среди видеоматериалов в открытом доступе интервью с наиболее хорошим качеством звука и отделили аудиодорожку с помощью средства ffmpeg. Поскольку качество аудио было неидеальным, его почистили от шума с помощью библиотеки noisereduce, работающей на основе технологии DSP (об этой технологии подробнее и на русском можно почитать тут).
Дальше нужно было найти решение, с помощью которого голосом Сергея Капицы зазвучал бы текст, который он никогда не зачитывал. Для этого разработчики выбрали библиотеку Coqui-AI, дописав буквально несколько строк на Python, и протестировали несколько нейросетей: xtts_v2, fairseq и silero.
Наилучший результат на нашем материале выдала нейросеть xtts_v2, но и тот оказался неидеальным. Чтобы успеть доделать речь к старту, артефакты звуковой дорожки разработчики вычистили вручную. В дальнейшем же мы будем стараться достичь более высокого качества генерации звука и более точных интонаций (признаться, мы уже продвинулись в этом направлении — следите за обновлениями).
Вся описанная выше работа с речью заняла у разработчика целый день.
Проект поддержан Министерством науки и высшего образования РФ.
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Начнём душнить с разбора звуковой дорожки. Как мы уже писали, скрипт для цифрового двойника подготовил человек. Далее разработчики среди видеоматериалов в открытом доступе интервью с наиболее хорошим качеством звука и отделили аудиодорожку с помощью средства ffmpeg. Поскольку качество аудио было неидеальным, его почистили от шума с помощью библиотеки noisereduce, работающей на основе технологии DSP (об этой технологии подробнее и на русском можно почитать тут).
Дальше нужно было найти решение, с помощью которого голосом Сергея Капицы зазвучал бы текст, который он никогда не зачитывал. Для этого разработчики выбрали библиотеку Coqui-AI, дописав буквально несколько строк на Python, и протестировали несколько нейросетей: xtts_v2, fairseq и silero.
Наилучший результат на нашем материале выдала нейросеть xtts_v2, но и тот оказался неидеальным. Чтобы успеть доделать речь к старту, артефакты звуковой дорожки разработчики вычистили вручную. В дальнейшем же мы будем стараться достичь более высокого качества генерации звука и более точных интонаций (признаться, мы уже продвинулись в этом направлении — следите за обновлениями).
Вся описанная выше работа с речью заняла у разработчика целый день.
Проект поддержан Министерством науки и высшего образования РФ.
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Forwarded from Kapitsa.AI
Мы сделали дипфейк с помощью самого доступного и качественного фреймворка Wav2Lip. Программа синхронизирует мимику человека на фрагменте видео с новой аудиодорожкой. Мы взяли фрагмент из передачи «Очевидное невероятное», написали свой приветственный текст о наших грандиозных планах, озвучили его, а нейросетевые алгоритмы заменили движения рта и губ Сергея Петровича. В итоге ит ис вот ит ис.
Но из Wav2Lip вышло видео низкого разрешения с обилием артефактов (отчасти это связано с качеством исходного видео). Чтобы это исправить, мы использовали нейросетевые инструменты, которые улучшают качество изображения. Первый из них — Codeformer. Эта нейросеть повышает разрешение видео, делает его четче. Однако плата за это — потеря плавности движений и, как следствие, правдоподобности.
Тогда мы запустили нейросеть TAPE. Она как раз возвращает герою видео человечность, делает мимику более правдоподобной. Комбинация нейросетей Codeformer и TAPE позволяет получить видео достаточно высокого качества и не сильно пугающее. Но есть одно но.
TAPE — довольно тяжелый инструмент. Если мы захотим задавать Капице вопросы в режиме реального времени, ответов мы не дождемся. TAPE просто не сможет все качественно прогрузить. А у нас есть цель задавать Капице вопросы в режиме реального времени, так что мы двигаемся дальше.
Проект поддержан Министерством науки и высшего образования РФ. #десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Но из Wav2Lip вышло видео низкого разрешения с обилием артефактов (отчасти это связано с качеством исходного видео). Чтобы это исправить, мы использовали нейросетевые инструменты, которые улучшают качество изображения. Первый из них — Codeformer. Эта нейросеть повышает разрешение видео, делает его четче. Однако плата за это — потеря плавности движений и, как следствие, правдоподобности.
Тогда мы запустили нейросеть TAPE. Она как раз возвращает герою видео человечность, делает мимику более правдоподобной. Комбинация нейросетей Codeformer и TAPE позволяет получить видео достаточно высокого качества и не сильно пугающее. Но есть одно но.
TAPE — довольно тяжелый инструмент. Если мы захотим задавать Капице вопросы в режиме реального времени, ответов мы не дождемся. TAPE просто не сможет все качественно прогрузить. А у нас есть цель задавать Капице вопросы в режиме реального времени, так что мы двигаемся дальше.
Проект поддержан Министерством науки и высшего образования РФ. #десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Forwarded from Kapitsa.AI
Из всего разнообразия моделей Fine-Tune мы взяли нейросеть xtts_v2. Она поддерживает 16 языков, причём с русским справляется лучше многих конкурентов. Ещё она умеет понимать контекст и с опорой на него расставлять паузы, ударения и делать интонационные акценты. А если нейросеть дообучить на речи конкретного человека, то она сможет имитировать индивидуальные особенности его речи. Перед тем, как записать вторую дорожку, мы показали модели образцы речи Сергея Петровича и, кажется, она смогла отчасти скопировать его манеру.
Теперь мы планируем продолжать дообучение этой модели, чтобы добиться не только естественного звучания, но и большей похожести речи цифрового двойника на Сергея Капицу.
Проект поддержан Министерством науки и высшего образования РФ.
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Теперь мы планируем продолжать дообучение этой модели, чтобы добиться не только естественного звучания, но и большей похожести речи цифрового двойника на Сергея Капицу.
Проект поддержан Министерством науки и высшего образования РФ.
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Forwarded from Kapitsa.AI
Хочу свой 3D-аватар. Как его делать?
Предупреждаем сразу: создать свою 3D-модель — до сих пор не самая простая задача. Если вы хотите попробовать «оцифровать» себя самостоятельно, мы собрали несколько инструкций по MetaHuman Animator в Unreal Engine 5.2, которые могут помочь:
✏️ Руководство MetaHuman (EpicGames, английский)
🎥 Видео Unreal Engine: как создавать реалистичные цифровые модели в MetaHuman Creator, как использовать Mesh Data (английский)
✏️ Руководство по настройке и использованию MetaHuman (английский)
✏️ MetaHuman Creator. The starting point of the metaverse (Доклад на International Symposium on Computer Technology and Information Science (ISCTIS), 2021. Английский)
Изображение: dev.epicgames.com
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Предупреждаем сразу: создать свою 3D-модель — до сих пор не самая простая задача. Если вы хотите попробовать «оцифровать» себя самостоятельно, мы собрали несколько инструкций по MetaHuman Animator в Unreal Engine 5.2, которые могут помочь:
✏️ Руководство MetaHuman (EpicGames, английский)
🎥 Видео Unreal Engine: как создавать реалистичные цифровые модели в MetaHuman Creator, как использовать Mesh Data (английский)
✏️ Руководство по настройке и использованию MetaHuman (английский)
✏️ MetaHuman Creator. The starting point of the metaverse (Доклад на International Symposium on Computer Technology and Information Science (ISCTIS), 2021. Английский)
Изображение: dev.epicgames.com
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Forwarded from Kapitsa.AI
Как развивались языковые модели. Схема
В посте про языковые модели мы, конечно же, упомянули не все — объяснили только базовые принципы. Вот — схема для более глубокого погружения в тему LLM. Навигация такая:
— Модели на основе трасформаторов показаны не-серым цветом — голубым отмечены декодеры, розовым — энкодеры, зеленым — энкодеры-декодеры;
— Временная шкала показывает год их выпуска;
— Модели с открытым исходным кодом — квадраты с цветовой заливкой, с закрытым исходным кодом — пустые;
— Столбчатая диаграмма в правом нижем углу показывает количество моделей по компаниям.
Источник: Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
В посте про языковые модели мы, конечно же, упомянули не все — объяснили только базовые принципы. Вот — схема для более глубокого погружения в тему LLM. Навигация такая:
— Модели на основе трасформаторов показаны не-серым цветом — голубым отмечены декодеры, розовым — энкодеры, зеленым — энкодеры-декодеры;
— Временная шкала показывает год их выпуска;
— Модели с открытым исходным кодом — квадраты с цветовой заливкой, с закрытым исходным кодом — пустые;
— Столбчатая диаграмма в правом нижем углу показывает количество моделей по компаниям.
Источник: Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Forwarded from Kapitsa.AI
Как работает квантованная версия (4 бита) LLaMa3.1-8b
Для тех, кто хочет разобраться в LLAma 3.1-8b глубже — короткий обзор структуры.
Эта языковая модель работает по принципам трансформерных архитектур, о которых мы рассказывали ранее (тут — про языковое моделирование, а тут — про LLaMa). В LLaMA используется декодер-ориентированная трансформерная модель для предсказания следующего токена в последовательности. Что еще:
Механизм внимания (Self-attention): он позволяет модели эффективно обрабатывать длинные последовательности текста, фокусируясь на самых релевантных частях входного текста при предсказании следующего слова.
Распределённые представления (Embeddings): Каждый входной токен (слово или символ) преобразуется в векторное представление через embedding-слой. Эти векторы содержат информацию о контексте и значении слова, что помогает модели строить более точные прогнозы.
Число параметров модели — это показатель её мощности. Параметры — это веса, которые оптимизируются в процессе обучения. Чем больше параметров, тем более сложные паттерны и зависимости может выявить модель, что улучшает её способность генерировать контекстно точные и осмысленные тексты. В нашем случае — это 8 млрд параметров.
Обучение модели
LLaMA 3.1-8B обучена на огромных корпусах текстов, включающих разнообразные источники информации — книги, статьи, форумы, веб-страницы и т. д. Обучение происходит на основе задачи предсказания следующего слова в предложении (Language Modeling). Модель обрабатывает текст последовательно и на каждом шаге предсказывает следующий токен, используя контекст предыдущих слов.
Используется параллельное обучение — для оптимизации производительности: веса перераспределены между несколькими видеокартами. Как в примере на картинке — 16 видеокарт разбиты на две группы по каждому из четырех признаков. Задействовано четыре вида параллелизма:
— Тензорный параллелизм (разбивает веса слоя нейросети на порции для разных устройств)
— Параллелизм пайплайна (вертикальная разбивка модели по слоям)
— Параллелизм контекста (разделение входа на сегменты для уменьшения перегрузки памяти для длинных последовательностей)
— Параллелизм данных (разные обучающие примеры обсчитываются на разных устройствах)
Трёхстадийное пред-обучение
Претрейн – последовательно увеличивается длина последовательности (4к, 8к) и размер батча (части датасета, проходящего через нейросеть), в обучающие данные добавляется больше мультиязычных данных, математические данные используются с увеличенной частотой, добавляются последние данные из поисковых запросов, частота низкокачественных данных снижается.
Претрейн на длинном контексте – до 128к токенов. Последовательно увеличивается длина контекста. Обучение с фиксированной длиной происходит до тех пор, пока не восстанавливается качество на коротких контекстах и модель способна решить задачу «поиска иголки в стоге сена» для заданного контекста.
Запекание\отжиг (annealing) – последовательное уменьшение learning rate для длинного контекста с последующим усреднением нескольких моделей.
Постобучение
В процессе пост-обучения происходит шесть итераций. На каждой итерации выбираются аннотированные данные (из тройки Отвергнутый Ответ – Принятый Ответ – Улучшенный ответ), на которых обучается Учитель (Reward Model). Затем происходит SFT (Supervised Finetuning – донастройка модели с учителем). После этого производится DPO (Direct Preference Optimization). И наконец, полученные таким образом модели с разных итераций взвешиваются между собой.
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Для тех, кто хочет разобраться в LLAma 3.1-8b глубже — короткий обзор структуры.
Эта языковая модель работает по принципам трансформерных архитектур, о которых мы рассказывали ранее (тут — про языковое моделирование, а тут — про LLaMa). В LLaMA используется декодер-ориентированная трансформерная модель для предсказания следующего токена в последовательности. Что еще:
Механизм внимания (Self-attention): он позволяет модели эффективно обрабатывать длинные последовательности текста, фокусируясь на самых релевантных частях входного текста при предсказании следующего слова.
Распределённые представления (Embeddings): Каждый входной токен (слово или символ) преобразуется в векторное представление через embedding-слой. Эти векторы содержат информацию о контексте и значении слова, что помогает модели строить более точные прогнозы.
Число параметров модели — это показатель её мощности. Параметры — это веса, которые оптимизируются в процессе обучения. Чем больше параметров, тем более сложные паттерны и зависимости может выявить модель, что улучшает её способность генерировать контекстно точные и осмысленные тексты. В нашем случае — это 8 млрд параметров.
Обучение модели
LLaMA 3.1-8B обучена на огромных корпусах текстов, включающих разнообразные источники информации — книги, статьи, форумы, веб-страницы и т. д. Обучение происходит на основе задачи предсказания следующего слова в предложении (Language Modeling). Модель обрабатывает текст последовательно и на каждом шаге предсказывает следующий токен, используя контекст предыдущих слов.
Используется параллельное обучение — для оптимизации производительности: веса перераспределены между несколькими видеокартами. Как в примере на картинке — 16 видеокарт разбиты на две группы по каждому из четырех признаков. Задействовано четыре вида параллелизма:
— Тензорный параллелизм (разбивает веса слоя нейросети на порции для разных устройств)
— Параллелизм пайплайна (вертикальная разбивка модели по слоям)
— Параллелизм контекста (разделение входа на сегменты для уменьшения перегрузки памяти для длинных последовательностей)
— Параллелизм данных (разные обучающие примеры обсчитываются на разных устройствах)
Трёхстадийное пред-обучение
Претрейн – последовательно увеличивается длина последовательности (4к, 8к) и размер батча (части датасета, проходящего через нейросеть), в обучающие данные добавляется больше мультиязычных данных, математические данные используются с увеличенной частотой, добавляются последние данные из поисковых запросов, частота низкокачественных данных снижается.
Претрейн на длинном контексте – до 128к токенов. Последовательно увеличивается длина контекста. Обучение с фиксированной длиной происходит до тех пор, пока не восстанавливается качество на коротких контекстах и модель способна решить задачу «поиска иголки в стоге сена» для заданного контекста.
Запекание\отжиг (annealing) – последовательное уменьшение learning rate для длинного контекста с последующим усреднением нескольких моделей.
Постобучение
В процессе пост-обучения происходит шесть итераций. На каждой итерации выбираются аннотированные данные (из тройки Отвергнутый Ответ – Принятый Ответ – Улучшенный ответ), на которых обучается Учитель (Reward Model). Затем происходит SFT (Supervised Finetuning – донастройка модели с учителем). После этого производится DPO (Direct Preference Optimization). И наконец, полученные таким образом модели с разных итераций взвешиваются между собой.
#десятилетиенауки #МинобрнаукиРоссии #популяризациянауки #KapitsaAI
Forwarded from Заскуль питона (Data Science)
This media is not supported in your browser
VIEW IN TELEGRAM
Градиентный спуск (ч. 1)
😔 Всем привет! Сегодня я бы хотел вам рассказать про то, что такое градиентный спуск и вообще для чего он применяется, в каких направлениях и для чего. Градиент отражает направление скорейшего возрастания функции
💳 Начнем с линейной ргерессии, для тех кто не помнит / не знает, уравнение прямой задается yi = wi * xi, где yi - значение целевого признака. Это конечно замечательно, но истинные значения (если мы живем в непрерывном пространстве будут всегда различаться от предсказанных (какая-то ошибка возникнет).
🍦 Решение задачи - минимизировать ошибки, возникаемые при изучении модели. Но как мы это можем сделать, если у нас xi, yi заданы? Правильно, повлиять как-то на веса признаков. Для линейной регрессии обычно используется такая функция потерь, как MSE, которую мы хотим минимизировать. Градиентный спуск позволяет найти веса модели, при которых ошибка будет минимальна (осторожно, модель может найти локальный / глобальный минимум). Мы хотим понять, при каких значения wi наше значение ошибки будет минимально. Почему берется MSE, могу рассказать в следующих частях
👌 У градиентного спуска есть 3 параметра:
1) начальная точка, в нашем контексте - это вектор весов признаков (выбираются случайно)
2) количество итераций, мы определяем заранее сколько итеративно нам нужно пройтись, чтобы прийти к точке, близкой к минимуму
3) коэффициент скорости обучения (Learning Rate). Если мы будем выбирать слишком маленький шаг, то можем за ограниченное количество итераций не прийти в точку минимума (функции потерь в нашем случае), а если Learning Rate будет слишком большим, то мы можем перепрыгнуть точку минимума.
4*) количество эпох и размер батчей - это используется для стохастического градиентного спуска.
в общем виде:
Это позволит нам найти минимум функции итерационно, в нашем контексте - функции потерь.
Игрушечный пример с градиентным спуском.
В этом примере minimum = argmin(x), т.е. точка в которой достигается минимум функции, а соответствующее значение можно найти, если подставить значения в loss_function(minimum).
Эта техника применяется в различных моделях машинного обучения, в нейронных сетях и др., о чем я более подробно хочу написать в следующих постах.
Где можно почитать подробней?
Учебник Яндекса (с формулками)
Статья на Хабр
Презентация от Александра Дьяконова
Если хотите больше постов, связанных с ML или около того, ставьте реакции, пишите комментарии!
1) начальная точка, в нашем контексте - это вектор весов признаков (выбираются случайно)
2) количество итераций, мы определяем заранее сколько итеративно нам нужно пройтись, чтобы прийти к точке, близкой к минимуму
3) коэффициент скорости обучения (Learning Rate). Если мы будем выбирать слишком маленький шаг, то можем за ограниченное количество итераций не прийти в точку минимума (функции потерь в нашем случае), а если Learning Rate будет слишком большим, то мы можем перепрыгнуть точку минимума.
4*) количество эпох и размер батчей - это используется для стохастического градиентного спуска.
в общем виде:
start_point = i
iterations = n
learning_rate = t
for _ in range(iterations):
start_point -= t * gradient(x)
start_point, func(start_point)
Это позволит нам найти минимум функции итерационно, в нашем контексте - функции потерь.
Игрушечный пример с градиентным спуском.
import numpy as np
def loss_function(x):
return x ** 2 * np.sin(x)
def gradient(x):
return 2 * x * np.sin(x) + x**2 * np.cos(x)
def gradient_descent(starting_point, learning_rate, num_iterations):
x = starting_point
for _ in range(num_iterations):
x -= learning_rate * gradient(x)
return x
starting_point = 3 # Начальная точка, выбирается случайно
learning_rate = 0.01 # Скорость обучения
num_iterations = 100 # Количество итераций
minimum = gradient_descent(starting_point, learning_rate, num_iterations)
В этом примере minimum = argmin(x), т.е. точка в которой достигается минимум функции, а соответствующее значение можно найти, если подставить значения в loss_function(minimum).
Эта техника применяется в различных моделях машинного обучения, в нейронных сетях и др., о чем я более подробно хочу написать в следующих постах.
Где можно почитать подробней?
Учебник Яндекса (с формулками)
Статья на Хабр
Презентация от Александра Дьяконова
Если хотите больше постов, связанных с ML или около того, ставьте реакции, пишите комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Kali Novskaya
🌸FAANG собеседования. Behavioral 🌸
#собеседования
За последние года два я пособесилась в десяток компаний с сильным ML, и где-то ещё десяток не очень AI-native.
🌸Мой опыт
Прошла до конца в Meta, Snapchat, Spotify, HuggingFace, несколько стартапов.
Этот опыт был для меня совсем не лёгким, часто изнуряющим, но позволил мне лучше понять свои силы и научил объективно сравнивать себя с другими и закрывать пробелы. Делюсь с вами советами!
Собеседовалась и на менеджера, и на IC, поэтому за это время у меня были все секции:
ML fundamentals, Leetcode, ML Coding, ML home assignment, ML system design, просто System Design, Research Philisophy (что? да!), Research presentation, Leadership, Teamwork, People management, Project management.
Поскольку про тех собесы написано уже очень много, сегодня сосредоточусь на последних — они называются behavioral секции.
🌸Основы Behave
Чтобы пройти хорошо бихейв-интервью,нужно хорошо себя вести. Нет, не нужно! Нужно продемонстрировать поведение, соответствующее уровню вакансии (L4, L5, L6...) и принципам компании.
Leadership principles:
— Google
— Meta
— Amazon
(гуглите про свою компанию)
Сделать это все нужно, рассказывая истории в формате STAR — Situation, Task, Action, Results. Хороший пост на тему
🌸Как рассказывать про свой опыт?
Западному айти-рынку 20+ лет, все стандартизовано.
Вам надо иметь в запасе штук 6-8 историй из своего опыта.
— Истории должны покрывать следующие вопросы: 1-2 явных истории успеха, 1-2 явных истории неудачи, 1 случай где вы спасли всех, 1 случай где вы разрулили конфликт, пара примеров, как вы растили коллег вокруг себя. Для менеджеров дополнительно — как вы повышали и увольняли людей, как вы поддерживали команду, ваш стиль управления.
— Истории должны показывать ваш уровень, не надо брать истории, когда вы были мидлом, если вы собеситесь на сеньора. Максимальный импакт, масштаб, метрики.
— Хорошая привычка в карьере вообще — отслеживать импакт своей работы и знать его. То же справедливо и для резюме, по резюме должно быть видно, что и насколько было исправлено вами.
— Придумывать истории не надо. В каждой истории нужно показать, что вы можете доносить мысль и навигировать на разных уровнях дискуссии — и быстро объяснить, в чем суть, и в то же время в деталях прокомментировать технический челлендж. Человек, который не может — либо не участвовал в проекте на самом деле, либо врёт, либо плохой менеджер.
🟣 Хороший пример, как это делать, и вообще youtube канал
🟣 Хороший канал с примерами STAR — self made millenial
🟣 В какой-то момент мне нужна была поддержка и хотелось мок-интервью, я брала их здесь и мне помогло. Брать карьерные консультации — осмысленно!
🌸Джентльменский набор
Итого, перед собеседованием у вас должно получиться в результате:
0) понимание уровня позиции и принципов компании.
1) Отточенное интро про себя из 3 предложений. Что вы делаете, пара ключевых тем и проектов, и почему вы хотите и подходите на эту позицию.
2) STAR-шпаргалка из ваших историй, которую вы за час до интервью перечитаете, чтобы не забыть детали. Истории вы на лету будете немного менять, чтобы подсветить конкретные принципы компании.
3) Список из 3 статей, которые вы хорошо помните и готовы поболтать про них. Желательно посмотреть накануне, кто вас будет собеседовать, и попробовать найти пересечение вашего опыта и опыта интервьюера.
🌸Вуаля! Вы восхитительны
В след раз поговорим про офферы и про реферралы
#собеседования
За последние года два я пособесилась в десяток компаний с сильным ML, и где-то ещё десяток не очень AI-native.
🌸Мой опыт
Прошла до конца в Meta, Snapchat, Spotify, HuggingFace, несколько стартапов.
Этот опыт был для меня совсем не лёгким, часто изнуряющим, но позволил мне лучше понять свои силы и научил объективно сравнивать себя с другими и закрывать пробелы. Делюсь с вами советами!
Собеседовалась и на менеджера, и на IC, поэтому за это время у меня были все секции:
ML fundamentals, Leetcode, ML Coding, ML home assignment, ML system design, просто System Design, Research Philisophy (что? да!), Research presentation, Leadership, Teamwork, People management, Project management.
Поскольку про тех собесы написано уже очень много, сегодня сосредоточусь на последних — они называются behavioral секции.
🌸Основы Behave
Чтобы пройти хорошо бихейв-интервью,
Leadership principles:
— Meta
— Amazon
(гуглите про свою компанию)
Сделать это все нужно, рассказывая истории в формате STAR — Situation, Task, Action, Results. Хороший пост на тему
🌸Как рассказывать про свой опыт?
Западному айти-рынку 20+ лет, все стандартизовано.
Вам надо иметь в запасе штук 6-8 историй из своего опыта.
— Истории должны покрывать следующие вопросы: 1-2 явных истории успеха, 1-2 явных истории неудачи, 1 случай где вы спасли всех, 1 случай где вы разрулили конфликт, пара примеров, как вы растили коллег вокруг себя. Для менеджеров дополнительно — как вы повышали и увольняли людей, как вы поддерживали команду, ваш стиль управления.
— Истории должны показывать ваш уровень, не надо брать истории, когда вы были мидлом, если вы собеситесь на сеньора. Максимальный импакт, масштаб, метрики.
— Хорошая привычка в карьере вообще — отслеживать импакт своей работы и знать его. То же справедливо и для резюме, по резюме должно быть видно, что и насколько было исправлено вами.
— Придумывать истории не надо. В каждой истории нужно показать, что вы можете доносить мысль и навигировать на разных уровнях дискуссии — и быстро объяснить, в чем суть, и в то же время в деталях прокомментировать технический челлендж. Человек, который не может — либо не участвовал в проекте на самом деле, либо врёт, либо плохой менеджер.
🌸Джентльменский набор
Итого, перед собеседованием у вас должно получиться в результате:
0) понимание уровня позиции и принципов компании.
1) Отточенное интро про себя из 3 предложений. Что вы делаете, пара ключевых тем и проектов, и почему вы хотите и подходите на эту позицию.
2) STAR-шпаргалка из ваших историй, которую вы за час до интервью перечитаете, чтобы не забыть детали. Истории вы на лету будете немного менять, чтобы подсветить конкретные принципы компании.
3) Список из 3 статей, которые вы хорошо помните и готовы поболтать про них. Желательно посмотреть накануне, кто вас будет собеседовать, и попробовать найти пересечение вашего опыта и опыта интервьюера.
🌸Вуаля! Вы восхитительны
В след раз поговорим про офферы и про реферралы
Please open Telegram to view this post
VIEW IN TELEGRAM
www.developing.dev
FAANG Career Ladder: Junior (L3) vs Mid-level (L4)
L3 and L4 engineers are the most similar on the IC ladder. The differences come from the stronger technical skills L4s are expected to have. This allows them to handle more scope with less guidance. Here’s how FAANG-like companies judge L3 vs L4 engineers.