Forwarded from Dealer.AI
Балалайка, березка, Matryoshka.
Выпустили концептуальный гайд по эмбам матрехи на hf. Красивые картиносы матрех и схемы, концепты теории и примеры на sentence-transformers.
Ну че тут рассказывать? Все просто берем embs и вдоль dim нарезаем по нарастающей, сводим саб эмбы и эмбы в конвеере metric learning на нужной датке в NLI, STS или qa задачках. Хочешь сводишь все на одном и том же, хочешь каждому эмбу из нарезки сообщаешь свою таску.
В чем польза?
1. Меньше индекс - на поверхности.
2. Возможность строить быстрые каскадные пайпы ранжирования. Преранк, например, на full index с маленьким эмбом (так быстрее), далее сложные примеры на more big эмбах, итоговый реранк в топ1 на жирнючем.
Код в блоге присутствует. Поэтому дерзайте.
Выпустили концептуальный гайд по эмбам матрехи на hf. Красивые картиносы матрех и схемы, концепты теории и примеры на sentence-transformers.
Ну че тут рассказывать? Все просто берем embs и вдоль dim нарезаем по нарастающей, сводим саб эмбы и эмбы в конвеере metric learning на нужной датке в NLI, STS или qa задачках. Хочешь сводишь все на одном и том же, хочешь каждому эмбу из нарезки сообщаешь свою таску.
В чем польза?
1. Меньше индекс - на поверхности.
2. Возможность строить быстрые каскадные пайпы ранжирования. Преранк, например, на full index с маленьким эмбом (так быстрее), далее сложные примеры на more big эмбах, итоговый реранк в топ1 на жирнючем.
Код в блоге присутствует. Поэтому дерзайте.
huggingface.co
🪆 Introduction to Matryoshka Embedding Models
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
Forwarded from Start Career in DS
🐈 CatBoost - супер удобный градиентный бустинг
Про то, как работает градиентный бустинг можно почитать, например, в статье с обзором ансамблей машинного обучения или в хендбуке от Яндекса. Одна из самых лучших библиотек для градиентного бустинга над деревьями решений – CatBoost. С этой библиотекой побеждают в соревнованиях на kaggle, она используется для решения задач классификации в крупных компаниях
Её преимущества:
– Встроенная обработка категориальных данных (их не нужно предобрабатывать, просто выставить гиперпараметры)
– Уменьшенный риск переобучения
– Высокая скорость работы и эффективность на больших объемах данных
– Встроенная обработка пропущенных значений
– Классная визуализация
Чтобы разобраться с этой библиотекой, стоит:
– Почитать официальную документацию
– [ENG] Посмотреть тетрадку с обзором катбуста
– Почитать статью про катбуст
🦖[ENG] Посмотреть видео от StatQuest (часть 1 и часть 2)
🌶 Посмотреть видео от Computer Science Club
Ставьте огоньки 🔥 под этим постом, и пишите в комментариях, про что написать ещё)
Градиентный бустинг
- это техника машинного обучения для задач классификации и регрессии, которая строит модель предсказания в форме ансамбля слабых предсказывающих моделей, обычно деревьев решений.
Каждая следующая модель в ансамбле уменьшает ошибку предыдущей модели
Про то, как работает градиентный бустинг можно почитать, например, в статье с обзором ансамблей машинного обучения или в хендбуке от Яндекса. Одна из самых лучших библиотек для градиентного бустинга над деревьями решений – CatBoost. С этой библиотекой побеждают в соревнованиях на kaggle, она используется для решения задач классификации в крупных компаниях
Её преимущества:
– Встроенная обработка категориальных данных (их не нужно предобрабатывать, просто выставить гиперпараметры)
– Уменьшенный риск переобучения
– Высокая скорость работы и эффективность на больших объемах данных
– Встроенная обработка пропущенных значений
– Классная визуализация
Чтобы разобраться с этой библиотекой, стоит:
– Почитать официальную документацию
– [ENG] Посмотреть тетрадку с обзором катбуста
– Почитать статью про катбуст
🦖[ENG] Посмотреть видео от StatQuest (часть 1 и часть 2)
🌶 Посмотреть видео от Computer Science Club
Ставьте огоньки 🔥 под этим постом, и пишите в комментариях, про что написать ещё)
catboost.ai
CatBoost is a machine learning algorithm that uses gradient boosting on decision trees. It is available as an open source library.
Forwarded from Время Валеры
Пацаны из Майкрософта выпустили самую обсуждаемую статью месяца The Era of 1-bit LLMs:All Large Language Models are in 1.58 Bits
Пока остальные кряхтели и пытались отквантовать числа до 4 бит с большими потерями или до 8 бит с небольшими, челы из МС зашли с ноги: любой вес будем представлять как трит - 1.58 бита {-1; 0; 1} и покажем как это сделать не теряя перформанса! It matches the full-precision (i.e., FP16 or BF16) Transformer LLM with the same model size and training tokens in terms of both perplexity and end-task performance
Так же пишут: More profoundly, the 1.58-bit LLM defines a new scaling law and recipe for training new generations of LLMs that are both high-performance and cost-effective. Шортим Нвидию? Теперь вместо умножения - просто складываем (ведь умножение на 1, 0 или -1 это просто плюс, минус или пропуск). The new computation paradigm of BitNet b1.58 calls for actions to design new hardware optimized for 1-bit LLMs.
Что делают? Повторяют BitNet, то есть трансформер где nn.Linear заменен на BitLinear (ниже будет пост с описанием). It is trained from scratch, with 1.58-bit weights and 8-bit activations
Чтобы веса держать в диапазоне -1, 0, 1 - накидывают absmean quantization function (про нее тоже в посте ниже)
И это все
Результаты в посте ниже
Дальнейшее чтиво
https://t.me/hn_best_comments/21227
#ArticleReview
Пока остальные кряхтели и пытались отквантовать числа до 4 бит с большими потерями или до 8 бит с небольшими, челы из МС зашли с ноги: любой вес будем представлять как трит - 1.58 бита {-1; 0; 1} и покажем как это сделать не теряя перформанса! It matches the full-precision (i.e., FP16 or BF16) Transformer LLM with the same model size and training tokens in terms of both perplexity and end-task performance
Так же пишут: More profoundly, the 1.58-bit LLM defines a new scaling law and recipe for training new generations of LLMs that are both high-performance and cost-effective. Шортим Нвидию? Теперь вместо умножения - просто складываем (ведь умножение на 1, 0 или -1 это просто плюс, минус или пропуск). The new computation paradigm of BitNet b1.58 calls for actions to design new hardware optimized for 1-bit LLMs.
Что делают? Повторяют BitNet, то есть трансформер где nn.Linear заменен на BitLinear (ниже будет пост с описанием). It is trained from scratch, with 1.58-bit weights and 8-bit activations
Чтобы веса держать в диапазоне -1, 0, 1 - накидывают absmean quantization function (про нее тоже в посте ниже)
И это все
Результаты в посте ниже
Дальнейшее чтиво
https://t.me/hn_best_comments/21227
#ArticleReview
Telegram
HN Best Comments
Re: The Era of 1-bit LLMs: ternary parameters for cost...
Fun to see ternary weights making a comeback. This was hot back in 2016 with BinaryConnect and TrueNorth chip from IBM research (disclosure, I was one of the lead chip architects there).
…
Fun to see ternary weights making a comeback. This was hot back in 2016 with BinaryConnect and TrueNorth chip from IBM research (disclosure, I was one of the lead chip architects there).
…
Forwarded from Alexander
Кому удобнее на русском - есть перевод:
https://habr.com/ru/companies/ruvds/articles/793698/
https://habr.com/ru/companies/ruvds/articles/793698/
Хабр
Плюсы и минусы каждого инфраструктурного решения за четыре года работы в стартапе
Последние четыре года я занимался в стартапе руководством инфраструктурой, которая должна была быстро масштабироваться. С самого начала я принял фундаментальные решения, которых компании нужно было...
Forwarded from gonzo-обзоры ML статей
Neural Network Diffusion
Kai Wang, Zhaopan Xu, Yukun Zhou, Zelin Zang, Trevor Darrell, Zhuang Liu, Yang You
Статья: https://arxiv.org/abs/2402.13144
Код: https://github.com/NUS-HPC-AI-Lab/Neural-Network-Diffusion
Диффузионные модели сейчас рулят, создавая прекрасные картинки и не только. Авторы предложили, что они могут генерить и параметры нейросетей. Вообще, мне кажется, они изобрели hypernetwork (писали про них тут https://t.me/gonzo_ML/1696) через диффузию.
Для тех, кто не знает как работают диффузионные модели, совсем в двух словах и на пальцах. Прямой диффузионный процесс получает на вход картинку (вместо картинки может быть любой другой сигнал) и последовательно шаг за шагом добавляет в неё шум, пока она не превратится в совсем шумный сигнал. Прямой диффузионный процесс не очень интересен, интересен обратный -- он получает на вход шум и последовательно его убирает, “открывая” (создавая) скрывающуюся за ним картинку (как бы делая denoising). Примеры диффузионных моделей мы разбирали в лице DALLE 2 (https://t.me/gonzo_ML/919) и Imagen (https://t.me/gonzo_ML/980).
Обучение нейросети через SGD идейно похоже на обратный диффузионный процесс: стартуем с рандомной инициализации и последовательно обновляем веса, пока не достигнем высокого качества на заданной задачи. Свой подход авторы назвали neural network diffusion или p-diff (от parameter diffusion).
Идея и реализация просты и по-своему красивы.
Во-первых, мы собираем датасет с параметрами нейросетей, обученных SGD и обучаем на нём автоэнкодер, из которого потом возьмём latent representation (можем это делать не на полном наборе параметров, а на подмножестве). Вторым шагом мы обучаем диффузионную модель, которая из случайного шума сгенерит latent representation, который в свою очередь через декодер обученного на первом шаге автоэнкодера мы восстановим в сами веса. Теоретически можно было бы и обучить диффузию на самих весах сразу, но это требует сильно больше памяти.
Для автоэнкодера параметры преобразуются в одномерный вектор, также используется одновременная аугментация шумом входных параметров и латентного представления. Обучение диффузионной модели -- это классический DDPM (https://arxiv.org/abs/2006.11239). Использовались 4-слойные 1D CNN энкодер и декодер.
Проверяли на картиночных датасетах MNIST, CIFAR-10, CIFAR-100, STL-10, Flowers, Pets, F-101, ImageNet-1K и на сетях ResNet-18/50, ViT-Tiny/Base, ConvNeXt-T/B.
Для каждой архитектуры накапливали 200 точек для обучения (чекпойнты последней эпохи). Я не до конца уловил, что именно они сохраняли, говорят про два последних слоя нормализации (только параметры BatchNorm’а чтоли?) и фиксированные остальные параметры. В большинстве случаев обучение автоэнкодера и диффузионки требовало 1-3 часа на одной A100 40G.
На инференсе генерят 100 новых параметров, из них оставляют один с максимальным перформансом на training set, его оценивают на validation set и этот результат и репортят.
В качестве бейзлайнов выступают 1) оригинальные модели и 2) ансамбли в виде усреднённого супа файнтюненных моделей (“Model soups: averaging weights of multiple fine-tuned models improves accuracy without increasing inference time”, https://arxiv.org/abs/2203.05482).
Результат в большинстве случаев не хуже обоих бейзлайнов. То есть выучивается распределение high-performing параметров. Метод стабильно хорошо работает на разных датасетах.
Провели много абляций на ResNet-18 + CIFAR-100.
Чем больше моделей было в обучении, тем лучше. Метод генерит более качественные модели для слоёв на любой глубине. При этом на последних слоях результат самый высокий (предполагают, что это из-за меньшего накопления ошибок во время forward prop). Аугментация шумом в автоэнкодере очень важна, особенно для латентного состояния (а лучше одновременно и для входа тоже).
Это всё было для подмножества весов. Проверили также на генерации полного набора весов на маленьких сетях MLP-3 и ConvNet-3 и MNIST/CIFAR-10/100. Размеры сетей здесь 25-155к параметров. Также работает.
Kai Wang, Zhaopan Xu, Yukun Zhou, Zelin Zang, Trevor Darrell, Zhuang Liu, Yang You
Статья: https://arxiv.org/abs/2402.13144
Код: https://github.com/NUS-HPC-AI-Lab/Neural-Network-Diffusion
Диффузионные модели сейчас рулят, создавая прекрасные картинки и не только. Авторы предложили, что они могут генерить и параметры нейросетей. Вообще, мне кажется, они изобрели hypernetwork (писали про них тут https://t.me/gonzo_ML/1696) через диффузию.
Для тех, кто не знает как работают диффузионные модели, совсем в двух словах и на пальцах. Прямой диффузионный процесс получает на вход картинку (вместо картинки может быть любой другой сигнал) и последовательно шаг за шагом добавляет в неё шум, пока она не превратится в совсем шумный сигнал. Прямой диффузионный процесс не очень интересен, интересен обратный -- он получает на вход шум и последовательно его убирает, “открывая” (создавая) скрывающуюся за ним картинку (как бы делая denoising). Примеры диффузионных моделей мы разбирали в лице DALLE 2 (https://t.me/gonzo_ML/919) и Imagen (https://t.me/gonzo_ML/980).
Обучение нейросети через SGD идейно похоже на обратный диффузионный процесс: стартуем с рандомной инициализации и последовательно обновляем веса, пока не достигнем высокого качества на заданной задачи. Свой подход авторы назвали neural network diffusion или p-diff (от parameter diffusion).
Идея и реализация просты и по-своему красивы.
Во-первых, мы собираем датасет с параметрами нейросетей, обученных SGD и обучаем на нём автоэнкодер, из которого потом возьмём latent representation (можем это делать не на полном наборе параметров, а на подмножестве). Вторым шагом мы обучаем диффузионную модель, которая из случайного шума сгенерит latent representation, который в свою очередь через декодер обученного на первом шаге автоэнкодера мы восстановим в сами веса. Теоретически можно было бы и обучить диффузию на самих весах сразу, но это требует сильно больше памяти.
Для автоэнкодера параметры преобразуются в одномерный вектор, также используется одновременная аугментация шумом входных параметров и латентного представления. Обучение диффузионной модели -- это классический DDPM (https://arxiv.org/abs/2006.11239). Использовались 4-слойные 1D CNN энкодер и декодер.
Проверяли на картиночных датасетах MNIST, CIFAR-10, CIFAR-100, STL-10, Flowers, Pets, F-101, ImageNet-1K и на сетях ResNet-18/50, ViT-Tiny/Base, ConvNeXt-T/B.
Для каждой архитектуры накапливали 200 точек для обучения (чекпойнты последней эпохи). Я не до конца уловил, что именно они сохраняли, говорят про два последних слоя нормализации (только параметры BatchNorm’а чтоли?) и фиксированные остальные параметры. В большинстве случаев обучение автоэнкодера и диффузионки требовало 1-3 часа на одной A100 40G.
На инференсе генерят 100 новых параметров, из них оставляют один с максимальным перформансом на training set, его оценивают на validation set и этот результат и репортят.
В качестве бейзлайнов выступают 1) оригинальные модели и 2) ансамбли в виде усреднённого супа файнтюненных моделей (“Model soups: averaging weights of multiple fine-tuned models improves accuracy without increasing inference time”, https://arxiv.org/abs/2203.05482).
Результат в большинстве случаев не хуже обоих бейзлайнов. То есть выучивается распределение high-performing параметров. Метод стабильно хорошо работает на разных датасетах.
Провели много абляций на ResNet-18 + CIFAR-100.
Чем больше моделей было в обучении, тем лучше. Метод генерит более качественные модели для слоёв на любой глубине. При этом на последних слоях результат самый высокий (предполагают, что это из-за меньшего накопления ошибок во время forward prop). Аугментация шумом в автоэнкодере очень важна, особенно для латентного состояния (а лучше одновременно и для входа тоже).
Это всё было для подмножества весов. Проверили также на генерации полного набора весов на маленьких сетях MLP-3 и ConvNet-3 и MNIST/CIFAR-10/100. Размеры сетей здесь 25-155к параметров. Также работает.
Forwarded from gonzo-обзоры ML статей
Большой пост про большой контекст
Размер контекста в современных моделях (то максимальное количество токенов, которое они могут переварить за один раз) неуклонно растёт. Сначала переход от двух или четырёх тысяч токенов к восьми казался большим достижением. Потом появились модели до 32k токенов, но они долго были ограниченно доступны, а когда вышли в массы, оказались уже безнадёжно устаревшими, потому что у одного из лидеров индустрии (Anthropic) были уже модели со 100k. Теперь лимиты публичных моделей в районе от 128k (GPT-4 Turbo) до 200k (Anthropic). Гугл отставал в этой гонке, его публичные модели максимум покрывали 32k (специальные версии PaLM 2 и все версии Gemini 1.0). Прорыв наметился с Gemini 1.5 (https://t.me/gonzo_ML/2350), у которой по дефолту те же типовые нынче 128k, но есть непубличная версия с 1M токенов, и research версия с 10M.
Отдельный интересный вопрос, как именно добились такого большого контекста, который ещё и работает. Есть разные свежие заходы с различных сторон, например, LongRoPE (https://arxiv.org/abs/2402.13753), LongNet с dilated attention (https://arxiv.org/abs/2307.02486), RingAttention (https://arxiv.org/abs/2310.01889) или там недавно упоминавшийся RMT-R (https://t.me/gonzo_ML/2377). Интересно, что именно сделал Гугл.
Такие новые лимиты скорее всего очень сильно поменяют практики работы с моделями. Хочется немного порассуждать про это ближайшее будущее.
1) Во-первых, старые техники RAG, отчасти призванные обойти ограничения малого окна контекста при необходимости работы с длинными документами, должны отмереть. Или по крайней мере остаться только для специальных случаев типа необходимости подтягивать свежие или какие-то другие особо релевантные материалы.
Всякие langchain’овские сплиттеры (https://python.langchain.com/docs/modules/data_connection/document_transformers/) режущие в основном по длине (ну с учётом более подходящих точек для разрезания в некоторых случаях) и раньше были УГ -- смотреть на эти порезанные абзацы без слёз было сложно, хотя как-то оно работало.
Даже при наличии способности к нормальному нарезанию на вменяемые куски, всё равно нужна эта разная обвязка, которая будет там что-то матчить и выбирать более подходящие куски, агрегировать результаты и прочее. Теперь этой хренью потенциально вообще не надо заниматься, и это хорошо.
Ну то есть в некоторых случаях оно всё равно конечно нужно и может повысить качество решения, но это надо смотреть. Я в целом верю в end-to-end решения и вытеснение со временем большинства этих костылей.
2) 1M токенов это прям реально дофига, теперь в контекст можно засунуть много статей, целые кодовые репозитории или большие книги. А с учётом мультимодальности и способности современных моделей обрабатывать ещё и картинки, видео и аудио (путём преобразования их в специальные нетекстовые токены), зугружать туда часы видео или речевых записей.
С учётом того, что модели хорошо проходят (https://t.me/gonzo_ML/2351) Needle In A Haystack тесты (https://github.com/gkamradt/LLMTest_NeedleInAHaystack), можно получать вполне релевантные ответы при работе с такими длинами. Реально можно найти конкретный кадр в видео (https://t.me/gonzo_ML/2357) или момент в книге (https://t.me/gonzo_ML/2356). И решать совершенно новые классы задач. Меня, например, впечатляют кейсы, когда модели скормили видео со скринкастом решения задачи (поиск жилья на Zillow) и попросили сгенерить код Selenium для решешия этой же задачи (https://www.facebook.com/DynamicWebPaige/videos/1422440318698615). Или тот же перевод на/с языка Kalamang по загруженному учебнику грамматики (https://t.me/gonzo_ML/2355, про то же от Джеффа Дина: https://twitter.com/JeffDean/status/1758149033473020081). Да, там в реальности есть ещё словарь и 400 параллельных предложений, но всё равно, In-context language learning -- это очень круто. Как и ответы на вопросы по длинному документу.
Размер контекста в современных моделях (то максимальное количество токенов, которое они могут переварить за один раз) неуклонно растёт. Сначала переход от двух или четырёх тысяч токенов к восьми казался большим достижением. Потом появились модели до 32k токенов, но они долго были ограниченно доступны, а когда вышли в массы, оказались уже безнадёжно устаревшими, потому что у одного из лидеров индустрии (Anthropic) были уже модели со 100k. Теперь лимиты публичных моделей в районе от 128k (GPT-4 Turbo) до 200k (Anthropic). Гугл отставал в этой гонке, его публичные модели максимум покрывали 32k (специальные версии PaLM 2 и все версии Gemini 1.0). Прорыв наметился с Gemini 1.5 (https://t.me/gonzo_ML/2350), у которой по дефолту те же типовые нынче 128k, но есть непубличная версия с 1M токенов, и research версия с 10M.
Отдельный интересный вопрос, как именно добились такого большого контекста, который ещё и работает. Есть разные свежие заходы с различных сторон, например, LongRoPE (https://arxiv.org/abs/2402.13753), LongNet с dilated attention (https://arxiv.org/abs/2307.02486), RingAttention (https://arxiv.org/abs/2310.01889) или там недавно упоминавшийся RMT-R (https://t.me/gonzo_ML/2377). Интересно, что именно сделал Гугл.
Такие новые лимиты скорее всего очень сильно поменяют практики работы с моделями. Хочется немного порассуждать про это ближайшее будущее.
1) Во-первых, старые техники RAG, отчасти призванные обойти ограничения малого окна контекста при необходимости работы с длинными документами, должны отмереть. Или по крайней мере остаться только для специальных случаев типа необходимости подтягивать свежие или какие-то другие особо релевантные материалы.
Всякие langchain’овские сплиттеры (https://python.langchain.com/docs/modules/data_connection/document_transformers/) режущие в основном по длине (ну с учётом более подходящих точек для разрезания в некоторых случаях) и раньше были УГ -- смотреть на эти порезанные абзацы без слёз было сложно, хотя как-то оно работало.
Даже при наличии способности к нормальному нарезанию на вменяемые куски, всё равно нужна эта разная обвязка, которая будет там что-то матчить и выбирать более подходящие куски, агрегировать результаты и прочее. Теперь этой хренью потенциально вообще не надо заниматься, и это хорошо.
Ну то есть в некоторых случаях оно всё равно конечно нужно и может повысить качество решения, но это надо смотреть. Я в целом верю в end-to-end решения и вытеснение со временем большинства этих костылей.
2) 1M токенов это прям реально дофига, теперь в контекст можно засунуть много статей, целые кодовые репозитории или большие книги. А с учётом мультимодальности и способности современных моделей обрабатывать ещё и картинки, видео и аудио (путём преобразования их в специальные нетекстовые токены), зугружать туда часы видео или речевых записей.
С учётом того, что модели хорошо проходят (https://t.me/gonzo_ML/2351) Needle In A Haystack тесты (https://github.com/gkamradt/LLMTest_NeedleInAHaystack), можно получать вполне релевантные ответы при работе с такими длинами. Реально можно найти конкретный кадр в видео (https://t.me/gonzo_ML/2357) или момент в книге (https://t.me/gonzo_ML/2356). И решать совершенно новые классы задач. Меня, например, впечатляют кейсы, когда модели скормили видео со скринкастом решения задачи (поиск жилья на Zillow) и попросили сгенерить код Selenium для решешия этой же задачи (https://www.facebook.com/DynamicWebPaige/videos/1422440318698615). Или тот же перевод на/с языка Kalamang по загруженному учебнику грамматики (https://t.me/gonzo_ML/2355, про то же от Джеффа Дина: https://twitter.com/JeffDean/status/1758149033473020081). Да, там в реальности есть ещё словарь и 400 параллельных предложений, но всё равно, In-context language learning -- это очень круто. Как и ответы на вопросы по длинному документу.
Forwarded from Базы данных & SQL
Что такое СУБД Greenplum? Зачем она нужна в больших проектах DWH? Чем отличается от ClickHouse?
Читать статью
Читать статью
Forwarded from Fless (Victor Rogulenko @flesspro)
Как разрабатывать стратегии? Часть 1 из 2
Позавчера получили запрос "научите меня делать стратегии".
Самый правильный совет был бы
- Устройтесь в компанию, которая делает стратегии,
- В ней познакомьтесь с человеком, который круто их делает,
- Поработайте с ним на 3-5 стратегиях.
Именно так я сам учился. Однако брать к себе в команду ученика на проекты по стратегии не стану, поэтому научить не смогу. Но смогу рассказать, как в целом их делать.
Дисклеймер: нет универсального подхода, все ситуации индивидуальны, блаблабла. Я расскажу только, как структурировал работу над стратегией медиа компании, которую начинаем на этой неделе.
* [структура] *
Работа над стратегией распадается на 4 вопроса:
0/ Куда и зачем в целом двигаемся?
- Зачем мы вообще приходим на работу? (aka миссия)
- В каком состоянии мы хотим оказаться через Х лет? Каков образ будущего (aka яркое видение)
- Какую именно цель мы хотим достичь (aka громадная амбициозная цель, Big Hairy Audacious Goal)
Этот пункт многие не включают в стратегию, т.к. он больше связан с самоопределением, чем конкретными шагами. Плюс есть риск уйти в философию / достигаторство / шаманство. Я аккуратно включаю, т.к. пункт важен для мотивации команды и понимания приемлемых стратегий, критериев выбора между альтернативами.
Можно добавить формализацию ценностей. Но по-хорошему это отдельный огромный пласт работы, а не мимокрокодил.
1/ В каких условиях предстоит работать?
- Аудитория: Количество аудитории, как менялась во времени, разрез по возрастам и интересам в компании. Что она ценит в компании? Как меняются предпочтения? Чем мы лучше альтернатив?
- Клиенты: сколько платят, за какие услуги, как менялась выручка. Что хотят от нас?
- Конкуренты и альтернативы: кто они, сколько аудитории, сколько зарабатывают, чем отличаются? В чем сильнее и в чем слабее нас?
- Тренды: социальные, технологические, экономические. Какие они, как влияют на бизнес, как будут влиять? Как ими воспользоваться / защититься от них?
- Сценарии: какие варианты развития событий по каждому из пунктов выше мы видим? Как эти варианты подробно описать? Какие у каждого будут последствия? (Желательны не только количественно, но и качественно отличающиеся сценарии)
В этом пункте - костяк аналитической работы над стратегией. Вопросы, которые я перечислил, зависят от конкретной компании, и список может сильно меняться. Главное - не забить на этот этап, иначе окажешься единственным слепым футболистом на поле (ок, возможно, не единственным), и все шаги дальше посыпятся.
Здесь может пригодиться моделирование рынка на основе сценариев.
(-> Продолжение)
#casestudies
Fless
Позавчера получили запрос "научите меня делать стратегии".
Самый правильный совет был бы
- Устройтесь в компанию, которая делает стратегии,
- В ней познакомьтесь с человеком, который круто их делает,
- Поработайте с ним на 3-5 стратегиях.
Именно так я сам учился. Однако брать к себе в команду ученика на проекты по стратегии не стану, поэтому научить не смогу. Но смогу рассказать, как в целом их делать.
Дисклеймер: нет универсального подхода, все ситуации индивидуальны, блаблабла. Я расскажу только, как структурировал работу над стратегией медиа компании, которую начинаем на этой неделе.
* [структура] *
Работа над стратегией распадается на 4 вопроса:
0/ Куда и зачем в целом двигаемся?
- Зачем мы вообще приходим на работу? (aka миссия)
- В каком состоянии мы хотим оказаться через Х лет? Каков образ будущего (aka яркое видение)
- Какую именно цель мы хотим достичь (aka громадная амбициозная цель, Big Hairy Audacious Goal)
Этот пункт многие не включают в стратегию, т.к. он больше связан с самоопределением, чем конкретными шагами. Плюс есть риск уйти в философию / достигаторство / шаманство. Я аккуратно включаю, т.к. пункт важен для мотивации команды и понимания приемлемых стратегий, критериев выбора между альтернативами.
Можно добавить формализацию ценностей. Но по-хорошему это отдельный огромный пласт работы, а не мимокрокодил.
1/ В каких условиях предстоит работать?
- Аудитория: Количество аудитории, как менялась во времени, разрез по возрастам и интересам в компании. Что она ценит в компании? Как меняются предпочтения? Чем мы лучше альтернатив?
- Клиенты: сколько платят, за какие услуги, как менялась выручка. Что хотят от нас?
- Конкуренты и альтернативы: кто они, сколько аудитории, сколько зарабатывают, чем отличаются? В чем сильнее и в чем слабее нас?
- Тренды: социальные, технологические, экономические. Какие они, как влияют на бизнес, как будут влиять? Как ими воспользоваться / защититься от них?
- Сценарии: какие варианты развития событий по каждому из пунктов выше мы видим? Как эти варианты подробно описать? Какие у каждого будут последствия? (Желательны не только количественно, но и качественно отличающиеся сценарии)
В этом пункте - костяк аналитической работы над стратегией. Вопросы, которые я перечислил, зависят от конкретной компании, и список может сильно меняться. Главное - не забить на этот этап, иначе окажешься единственным слепым футболистом на поле (ок, возможно, не единственным), и все шаги дальше посыпятся.
Здесь может пригодиться моделирование рынка на основе сценариев.
(-> Продолжение)
#casestudies
Fless
Telegram
Fless
Как разрабатывать стратегии. Часть 2 из 2
(-> Начало)
2/ Как в этих условиях добиться успеха?
- Какие у нас есть сильные и слабые стороны?
- Какие у нас есть стратегические альтернативы?
- Какие альтернативы работают в каких сценариях? При каких условиях…
(-> Начало)
2/ Как в этих условиях добиться успеха?
- Какие у нас есть сильные и слабые стороны?
- Какие у нас есть стратегические альтернативы?
- Какие альтернативы работают в каких сценариях? При каких условиях…
Forwarded from Fless (Victor Rogulenko @flesspro)
Как разрабатывать стратегии. Часть 2 из 2
(-> Начало)
2/ Как в этих условиях добиться успеха?
- Какие у нас есть сильные и слабые стороны?
- Какие у нас есть стратегические альтернативы?
- Какие альтернативы работают в каких сценариях? При каких условиях менять альтернативы?
- В какой базовый сценарий мы верим? Какую базовую альтернативу выберем?
Здесь стратегические альтернативы - как раз то, что принято называть стратегией в узком смысле: короткая формулировка принципов взаимодействия с миром. Известные примеры: "Wheels up" (Southwest Airlines"), "Flat-pack Furniture" (IKEA). Альтернативы стоит верхнеуровнево оценить для каждого из сценариев, а после выбрать оптимальную.
3/ Что конкретно нужно сделать, чтобы добиться успеха?
- Какие именно инициативы потребуются для реализации стратегии?
- Каков их финансовый потенциал?
- Как приоритизировать инициативы?
- Какие ресурсы потребуются для их реализации? Где их получить?
- Какие организационные изменения потребуются? Как их осуществить?
- Какие непосредственные следующие шаги необходимо совершить в ближайшую неделю?
На этом этапе верхнеуровневая стратегия приземляется на конкретные действия. Не приземлишься -- останешься на уровне болтовни и красивых слайдов в ящике.
* [конец структуры] *
Постарался все самое значимое упаковать в пост. Мастером по разработке стратегий он, конечно, никого не сделает, но общее представление дать может.
Следующие шаги. Почитайте, например:
- "Good Strategy Bad Strategy: The Difference and Why It Matters" by Richard Rumelt
- "Playing to Win: How Strategy Really Works" by by A.G. Lafley, Roger L. Martin
#casestudies
Fless
(-> Начало)
2/ Как в этих условиях добиться успеха?
- Какие у нас есть сильные и слабые стороны?
- Какие у нас есть стратегические альтернативы?
- Какие альтернативы работают в каких сценариях? При каких условиях менять альтернативы?
- В какой базовый сценарий мы верим? Какую базовую альтернативу выберем?
Здесь стратегические альтернативы - как раз то, что принято называть стратегией в узком смысле: короткая формулировка принципов взаимодействия с миром. Известные примеры: "Wheels up" (Southwest Airlines"), "Flat-pack Furniture" (IKEA). Альтернативы стоит верхнеуровнево оценить для каждого из сценариев, а после выбрать оптимальную.
3/ Что конкретно нужно сделать, чтобы добиться успеха?
- Какие именно инициативы потребуются для реализации стратегии?
- Каков их финансовый потенциал?
- Как приоритизировать инициативы?
- Какие ресурсы потребуются для их реализации? Где их получить?
- Какие организационные изменения потребуются? Как их осуществить?
- Какие непосредственные следующие шаги необходимо совершить в ближайшую неделю?
На этом этапе верхнеуровневая стратегия приземляется на конкретные действия. Не приземлишься -- останешься на уровне болтовни и красивых слайдов в ящике.
* [конец структуры] *
Постарался все самое значимое упаковать в пост. Мастером по разработке стратегий он, конечно, никого не сделает, но общее представление дать может.
Следующие шаги. Почитайте, например:
- "Good Strategy Bad Strategy: The Difference and Why It Matters" by Richard Rumelt
- "Playing to Win: How Strategy Really Works" by by A.G. Lafley, Roger L. Martin
#casestudies
Fless
Forwarded from Fless (Victor Rogulenko @flesspro)
Как помочь новому свершиться?
Нарисовали стратегию, а дальше? Дальше либо в ящик, либо куча сложной работы.
Заструктурировать ее поможет фреймворк Маккинзи. Конечно, есть еще 100500 деталей, но запихну в пост, что влезет.
[структура]
1. Объяснить
- Подробно рассказать об изменениях: что меняется, почему, почему это важно
- Убедиться, что команда поняла
- Вовлечь людей в принятие решений
2. Наладить процессы и механизмы
- Определить, кто, что и с кем должен теперь делать
- Создать релевантные KPI. Убедиться, что они не ломают лишнее (без экономии на качестве)
- Проработать нефинансовую мотивацию
3. Научить команду
- Убедить людей, что им под силу работать по-новому
- Вложиться в обучение, чтобы дать людям уверенность
4. Показать своим примером
- Нужен полный buy-in топ-менеджмента. Иначе все бестолку.
- Фокусировать свое время на проектах, связанных с изменениями
- Постоянно демонстрировать этот фокус и результаты
[конец структуры]
P.S. И не забывайте про Дилберта с картинки.
#casestudies
Fless
.
Нарисовали стратегию, а дальше? Дальше либо в ящик, либо куча сложной работы.
Заструктурировать ее поможет фреймворк Маккинзи. Конечно, есть еще 100500 деталей, но запихну в пост, что влезет.
[структура]
1. Объяснить
- Подробно рассказать об изменениях: что меняется, почему, почему это важно
- Убедиться, что команда поняла
- Вовлечь людей в принятие решений
2. Наладить процессы и механизмы
- Определить, кто, что и с кем должен теперь делать
- Создать релевантные KPI. Убедиться, что они не ломают лишнее (без экономии на качестве)
- Проработать нефинансовую мотивацию
3. Научить команду
- Убедить людей, что им под силу работать по-новому
- Вложиться в обучение, чтобы дать людям уверенность
4. Показать своим примером
- Нужен полный buy-in топ-менеджмента. Иначе все бестолку.
- Фокусировать свое время на проектах, связанных с изменениями
- Постоянно демонстрировать этот фокус и результаты
[конец структуры]
P.S. И не забывайте про Дилберта с картинки.
#casestudies
Fless
.
Forwarded from Николай Хитров | Блог
Раз архитектура — «as Code», почему бы её не покрыть тестами?! Руслан Сафин
Офигенный доклад, давно искал что-то подобное. Почему-то очень мало людей рассказывает, показывает примеры.
Идея одновременно проста и в то же время гениальна: берем конфиги деплоя, например
https://youtu.be/POIbWZh68Cg?si=RfF5wyWirfN5GVib
Офигенный доклад, давно искал что-то подобное. Почему-то очень мало людей рассказывает, показывает примеры.
Идея одновременно проста и в то же время гениальна: берем конфиги деплоя, например
k8s, берем архитектурную схему сервиса(ов) в plantuml, парсим их и сопоставляем связи. По итогу получаются тесты на архитектуру, которые следят за тем, чтобы архитектурные схемы были актуальны. Очень понравилось, что есть пример кода. Посмотреть можно вот тутhttps://youtu.be/POIbWZh68Cg?si=RfF5wyWirfN5GVib
YouTube
Раз архитектура — «as Code», почему бы её не покрыть тестами?! Руслан Сафин.
Выступление на ArchDays 2023. Забронируйте участие на следующей конференции: https://archconf.ru/arch
Раз уж микросервисная архитектура теперь «as code» (расскажу как это сделать, например, с помощью plantuml), то на неё можно и нужно писать тесты! :)
Рассмотрим…
Раз уж микросервисная архитектура теперь «as code» (расскажу как это сделать, например, с помощью plantuml), то на неё можно и нужно писать тесты! :)
Рассмотрим…