Forwarded from Варим МЛ
Сегодня небольшой обзорчик на очередную книгу про LLM - AI Engineering от Чип Хуен. В комментах можно поделиться своими любимыми библиотеками и архитектурными паттернами
#Жека #llm #books
#Жека #llm #books
Telegraph
AI Engineering - обзор книги
Сколько копий сломано вокруг определения термина AI... В этой книге Чип Хуен делает ход конём - оказывается, AI engineering - это только про большие генеративные модели. Да и вообще это книга про LLM, хотя в паре месте и упоминаются мультимодальные и картиночные…
Forwarded from Dealer.AI
Про all-in на агентов.
Продолжаем наш "крестовый поход" в этот раз в стан агентов.
Из каждого утюга нонче идет,что 2025 - это год агентов. Как в опереФигаро агенты тут, агенты там, агенты здесь, здесь все Дюша, Стас... Простите .
Тут, кстати, пояснять будет полегче т.к. антропики запилили ИМО лучший тлдр по полочкам, что такое агенты (и не обязательно LLM-based), где их и когда применять и т.п. и т.д. И всем канальям манагерам, в т.ч. тем, кто продают борду очередную ИИ стратегию хорошо бы это почитать. Если тыtupoy и не умеешь переводить с англосакского на русский вот тебе перевод адаптация.
Прочел? И чтобы Дядя больше не слышал потом, что у тебя агентская система, ибо агентский может быть только договор. И если у тебя последовательность действий с LLM это ещё не значит, что у тебя агент, возможно это все еще LLM+workflows. Кстати, именно последнее всякие ребятки с компаний выдают за агентов. Ну а че, сверху партия спустила "пересесть везде на агентов" вот и называют любой pipeline, где есть LLM теперь агентами, и закрывают плашки КПЭ.
А у вас какие были корки на работе с агентами? Пишите в комментариях.
Продолжаем наш "крестовый поход" в этот раз в стан агентов.
Из каждого утюга нонче идет,что 2025 - это год агентов. Как в опере
Тут, кстати, пояснять будет полегче т.к. антропики запилили ИМО лучший тлдр по полочкам, что такое агенты (и не обязательно LLM-based), где их и когда применять и т.п. и т.д. И всем канальям манагерам, в т.ч. тем, кто продают борду очередную ИИ стратегию хорошо бы это почитать. Если ты
Прочел? И чтобы Дядя больше не слышал потом, что у тебя агентская система, ибо агентский может быть только договор. И если у тебя последовательность действий с LLM это ещё не значит, что у тебя агент, возможно это все еще LLM+workflows. Кстати, именно последнее всякие ребятки с компаний выдают за агентов. Ну а че, сверху партия спустила "пересесть везде на агентов" вот и называют любой pipeline, где есть LLM теперь агентами, и закрывают плашки КПЭ.
А у вас какие были корки на работе с агентами? Пишите в комментариях.
YouTube
Ilya Sutskever NeurIPS 2024 full talk
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
Forwarded from ML for Value / Ваня Максимов
Закат классной модели
Все мы любим делать клевые ML-модели, которые несут пользу бизнесу, и катить их в прод. Но если дополнительно ничего не делать, то рано или поздно (скорее рано) наступает «закат» модели: она перестает нести доп метрики. Почему?
1. Развиваются другие куски ml-системы
Классика в прогнозе кучи временных рядов: сначала прогноз каждого из них неплох, а в сумме все оч грустно. Поэтому добавляют модель-нормировщика: она прогнозирует сумму рядов (допустим, продажи категории товаров) и нормирует индивидуальные модели. Со временем мы добавим в индивидуальные модели сезонность, тренды, промо - они и без нормировок в сумме по категории будут работать хорошо
2. Меняется среда, для душных distribution shift
Модели антифрода устаревают мгновенно: мошенники быстро подстраиваются под них. Рекомендательные системы бьет feedback loop. К моделям прайсингам и скидок люди привыкают и начинают покупать только по скидке. Примеров много)
3. Баги
Отвалилась часть событий на фронте, кто-то поменял структуру таблиц с данными, завели новый фича тоггл, который все поломал и тд
Так что делать?
Чтобы закат модели случился попозже и не внезапно, хорошо бы:
Настроить графики мониторинга и алерты на перформанс модели. И регулярно за ними следить! Они ведь тоже устаревают)
Раз в полгода проводить обратные АВ-тесты с отрывами моделей. Я регулярно нахожу что-то, что кажется незыблемо полезным, но на самом деле уже нет
Есть и третий путь. С комфортом устроиться на берегу моря или в уютном кресле и наблюдать за закатом ml-модели. Часто это неизбежно (и нормально!), так что иногда можно просто позволить этому случиться
P.S. На фотках с кайфом наблюдаю за закатами (и иногда рассветами) солнца и мл-моделей последний год
Все мы любим делать клевые ML-модели, которые несут пользу бизнесу, и катить их в прод. Но если дополнительно ничего не делать, то рано или поздно (скорее рано) наступает «закат» модели: она перестает нести доп метрики. Почему?
1. Развиваются другие куски ml-системы
Классика в прогнозе кучи временных рядов: сначала прогноз каждого из них неплох, а в сумме все оч грустно. Поэтому добавляют модель-нормировщика: она прогнозирует сумму рядов (допустим, продажи категории товаров) и нормирует индивидуальные модели. Со временем мы добавим в индивидуальные модели сезонность, тренды, промо - они и без нормировок в сумме по категории будут работать хорошо
2. Меняется среда, для душных distribution shift
Модели антифрода устаревают мгновенно: мошенники быстро подстраиваются под них. Рекомендательные системы бьет feedback loop. К моделям прайсингам и скидок люди привыкают и начинают покупать только по скидке. Примеров много)
3. Баги
Отвалилась часть событий на фронте, кто-то поменял структуру таблиц с данными, завели новый фича тоггл, который все поломал и тд
Так что делать?
Чтобы закат модели случился попозже и не внезапно, хорошо бы:
Настроить графики мониторинга и алерты на перформанс модели. И регулярно за ними следить! Они ведь тоже устаревают)
Раз в полгода проводить обратные АВ-тесты с отрывами моделей. Я регулярно нахожу что-то, что кажется незыблемо полезным, но на самом деле уже нет
Есть и третий путь. С комфортом устроиться на берегу моря или в уютном кресле и наблюдать за закатом ml-модели. Часто это неизбежно (и нормально!), так что иногда можно просто позволить этому случиться
P.S. На фотках с кайфом наблюдаю за закатами (и иногда рассветами) солнца и мл-моделей последний год
Forwarded from айти канал
pylock.toml — новый стандарт локфайлов в Python
Вчера был одобрен эпический PEP 751, который вводит стандартный формат локфайлов в Python. Несколько лет дизайна, итераций и обсуждений, почти тысяча лайков на Reddit у этой новости, в общем большое событие.
Если вы знаете, что такое локфайлы, то новость на этом заканчивается. Называться будет
Если не знаете, то lockfile -- это просто текстовый файл определенного формата с полным описанием вашего Python окружения. Грубо говоря, у Python проектов будет ожидаться
- В `pylock.toml` будут записаны все установленные пакеты, включая непрямые зависимости, с их точными версиями, для всех ОС сразу, со всеми вариациями дополнительных зависимостей и прочей технической информацией.
- Это очень полезно, потому что теперь у пользователей и участников проекта будет устанавливаться в точности одинаковое Python окружение (и с гораздо большей вероятностью успеха). В общем
- Чтобы у вас в проекте появился
Вчера был одобрен эпический PEP 751, который вводит стандартный формат локфайлов в Python. Несколько лет дизайна, итераций и обсуждений, почти тысяча лайков на Reddit у этой новости, в общем большое событие.
Если вы знаете, что такое локфайлы, то новость на этом заканчивается. Называться будет
pylock.toml, теперь ждем пока все инструменты постепенно на него переедут.Если не знаете, то lockfile -- это просто текстовый файл определенного формата с полным описанием вашего Python окружения. Грубо говоря, у Python проектов будет ожидаться
pylock.toml вместо requirement.txt. Детали:- В `pylock.toml` будут записаны все установленные пакеты, включая непрямые зависимости, с их точными версиями, для всех ОС сразу, со всеми вариациями дополнительных зависимостей и прочей технической информацией.
- Это очень полезно, потому что теперь у пользователей и участников проекта будет устанавливаться в точности одинаковое Python окружение (и с гораздо большей вероятностью успеха). В общем
pylock.toml сильно упрощает жизнь другим пользователям проекта, включая будущих вас :)- Чтобы у вас в проекте появился
pylock.toml, нужно будет пользоваться инструментами типа uv, а список прямых зависимостей писать в pyproject.toml вместо requirements.txt. На самом деле это рекомендуется делать уже сегодня. Просто пока uv порождает "нестандартный" uv.lock вместо "стандартного" pylock.toml, но это разработчики uv сами уже изменят в будущем.Python Enhancement Proposals (PEPs)
PEP 751 – A file format to record Python dependencies for installation reproducibility | peps.python.org
This PEP proposes a new file format for specifying dependencies to enable reproducible installation in a Python environment. The format is designed to be human-readable and machine-generated. Installers consuming the file should be able to calculate wha...
Forwarded from Ebout Data Science | Дима Савелко
Уничтожительный RoadMap по прохождению MLSD, или как пройти секцию ML System Design
Секция по ML System Design - это очень важная секция, она показывает вашу сеньорность. И чтобы получить большой и жирный оффер, то надо её пройти так, чтобы вас сразу звали на позицию Chief Data Scientist
И вот что нужно знать:
- Если вы с нуля, то нужно углубиться в MLSD, для этого советую прочитать первую главу книги "System Design. Машинное обучение. Подготовка к сложному интервью" - в ней рассказывают более подробно про каждый этап MLSD.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Quant Valerian
Event driven management
Как ни странно, это продолжение темы "как всё успевать". Я этого не планировал, но по сутивкусно так получается.
Я уже писал, что не люблю всякие синхронные коммуникации, встречи, звонки (ха-ха) и т.д. Не прям все, а скорее регулярные, потому что их почти (sic!) всегда эффективнее делать письменно и асинхронно.
Но на самом деле асинхронно можно делать практически всё. Вы это уже видели, если работали с Kanban. Есть какая-то широкая доска в таск-трекере, там какие-то задачки на доске висят, вы и ваши коллеги хватаете эти задачки и двигаете по доске. Задачки появляются в левом столбике (разными способами), оттуда их разбирают сотрудники и тащат направо. В какой-то момент задачки переезжают настолько вправо, что оказываются в левом столбике уже кого-то другого. Например, продакт положил задачку в беклог, аналитик взял её, че-то там проанализировал и положил в готов к разработке, разработчик взял её, че-то там попрограммировал и положил в готово к тестированию, тестировщик взял её... ну ты понел
Зачем тут, спрашивается руководитель? Развивать сотрудников и решать конфликты? Ну так это коуч какой-то. Оценивать перфоманс и назначать зарплаты? Можно заменить кем-то из HR. Следить за тем, что процессы соблюдаются? Надзиратель.
Мы знаем, что руководитель здесь нужен для этого всего тоже, но в основном для того, чтобы работа в итоге была сделана. Это вообще как бы основная функция начальства — доводить до результата.
Можно поконкретнее?
В хорошо отлаженной системе основная задача руководителя — не мешать людям работать. Но есть один нюанс: сотрудникам может мешать что-то, кроме руководителя! И вот именно эти вещи и должны привлекать внимание начальства. То есть вам, как управленцу, нужно устранять препятствия на пути к цели и не создавать новых.
Поэтому идеальная система должна работать так. Люди че-то сидят, делают, работу работают, а начальник сидит курит в сторонке. Как только "конвеер встал" (да, у меня опять фордовские аналогии), начальник подрывается и бежит чинить. То есть если сотрудник сам не может исправить ситуацию, он немедленно эскалирует в руководителя. И так по всей иерархии вверх, пока проблема не решится.
Например, разработчик что-то хочет от соседней команды, а там его посылают (заняты другим проектом). Разработчик идёт жаловаться начальнику. Начальнику виднее с его колокольни, какой из процессов сейчас может подождать и выносит решение. Ну либо не видит и идёт к своему начальнику.
На деле люди не очень любят "жаловаться", потому что по умолчанию считают, что кому-то от этого плохо станет (и пусть лучше так считают, чем на каждый чих к вам ходить будут, конечно). Поэтому очень круто построить сигнальную систему.
Как ни странно, это продолжение темы "как всё успевать". Я этого не планировал, но по сути
Я уже писал, что не люблю всякие синхронные коммуникации, встречи, звонки (ха-ха) и т.д. Не прям все, а скорее регулярные, потому что их почти (sic!) всегда эффективнее делать письменно и асинхронно.
Но на самом деле асинхронно можно делать практически всё. Вы это уже видели, если работали с Kanban. Есть какая-то широкая доска в таск-трекере, там какие-то задачки на доске висят, вы и ваши коллеги хватаете эти задачки и двигаете по доске. Задачки появляются в левом столбике (разными способами), оттуда их разбирают сотрудники и тащат направо. В какой-то момент задачки переезжают настолько вправо, что оказываются в левом столбике уже кого-то другого. Например, продакт положил задачку в беклог, аналитик взял её, че-то там проанализировал и положил в готов к разработке, разработчик взял её, че-то там попрограммировал и положил в готово к тестированию, тестировщик взял её... ну ты понел
Зачем тут, спрашивается руководитель? Развивать сотрудников и решать конфликты? Ну так это коуч какой-то. Оценивать перфоманс и назначать зарплаты? Можно заменить кем-то из HR. Следить за тем, что процессы соблюдаются? Надзиратель.
Мы знаем, что руководитель здесь нужен для этого всего тоже, но в основном для того, чтобы работа в итоге была сделана. Это вообще как бы основная функция начальства — доводить до результата.
Можно поконкретнее?
В хорошо отлаженной системе основная задача руководителя — не мешать людям работать. Но есть один нюанс: сотрудникам может мешать что-то, кроме руководителя! И вот именно эти вещи и должны привлекать внимание начальства. То есть вам, как управленцу, нужно устранять препятствия на пути к цели и не создавать новых.
Поэтому идеальная система должна работать так. Люди че-то сидят, делают, работу работают, а начальник сидит курит в сторонке. Как только "конвеер встал" (да, у меня опять фордовские аналогии), начальник подрывается и бежит чинить. То есть если сотрудник сам не может исправить ситуацию, он немедленно эскалирует в руководителя. И так по всей иерархии вверх, пока проблема не решится.
Например, разработчик что-то хочет от соседней команды, а там его посылают (заняты другим проектом). Разработчик идёт жаловаться начальнику. Начальнику виднее с его колокольни, какой из процессов сейчас может подождать и выносит решение. Ну либо не видит и идёт к своему начальнику.
На деле люди не очень любят "жаловаться", потому что по умолчанию считают, что кому-то от этого плохо станет (и пусть лучше так считают, чем на каждый чих к вам ходить будут, конечно). Поэтому очень круто построить сигнальную систему.
Forwarded from Quant Valerian
Расскажу, что есть у меня, а что я бы хотел, чтобы было ещё.
1. Я стараюсь коммуницировать, что при затыках, проволочках и потере темпа _нужно_ идти и эскалировать в меня. Это вообще первый и главный сигнал к включению
2. Колонка "запланировано" всегда должна содержать не менее X задач (X, очевидно, разнится). Здесь мы хотим не менее пяти задач, а если их становится меньше трёх, то это повод прямо сейчас разобраться, что ещё нужно докинуть. Иначе следующий освободившийся сотрудник не будет знать, за что взяться и случится бесполезный простой в лучшем случае. В худшем сотрудник будет делать задачу, которая важна _по_его_мнению_. С другой стороны, если в колонке слишком много задач, то это тоже какой-то нездоровый признак — явно что-то сломалось с приоритетами и планированием (если ты планируешься в среднем раз в неделю на команду из пяти человек, а задач в запланированном больше 20-ти штук, то скорее всего вы их не сделаете)
3. Колонка "готово к работе" тоже должна всегда содержать некоторый буфер задач. Если задач в ней становится меньше Y, нужно озаботиться тем, чтобы кто-то уже взялся за запланированное и начал готовить задачу к взятию в работу (у нас это значит выполнить DoR: по чек-листу проверить, что в задаче есть вся нужная инфа, DoD, проведена декомпозиция, учтены и обработаны все внешние зависимости и т.д.). В противном случае мы рискуем оказаться в ситуации, когда код никто не пишет, а все заняты высокими материями типа общения со смежниками или декомпозиции задач. Я уже молчу о том, что не каждый сотрудник одинаково хорошо может с такими задачами справляться, тут нужно всё-таки давать что-то посильное (пусть и с челленджем).
4. Диаграммы DORA. Беглого взгляда на них обычно достаточно, чтобы увидеть какие-то аномалии: слишком быстро или слишком медленно стали делать задачи (на новогодние отлично видно, как релизы откладываются, например). Здесь у нас в трекере есть вьюшка, отображающая цикл тайм по статусам. По ней можно попробовать понять, в какой именно части процесса произошла проблема (релизы, ревью ПРов, декомпозиция или сама разработка и т.п.) — тут либо будет ожидаемо, либо надо копать дальше, но уже ясно направление.
5. Диаграмма потока задач. Здесь просто следим за тем, что решается задач не меньше, чем заводится новых — рост бэклога это не хорошо, это "запасы".
6. Длина очереди обращений в поддержку. Ну тут всё ясно, кажется. Если очередь выросла, надо бы разобраться, что к этому привело и разгрести хвост.
7. Доска с задачами в разбивке по людям. Здесь следим за тем, что у каждого есть задача и в работе только одна в один момент времени.
Этого всего лишь три вкладки в браузере, которые нужно проверять раз в день, некоторые, раз в неделю. И если там всё нормально, то можно заниматься планами развития, глубинными 1-1, написанием постов в каналы в телеге...
Для операционного менеджмента ещё не хватает одной диаграммы:
8. Диаграмма старения задач. Я как-то уже рассказывал о ней в комментариях в канале. Мы следим за тем, что задачка находится в каждом из статусов не дольше, чем это делали 80% задач в прошлом месяце, например. Например, видим, что задача уже три дня в разработке, а 80%% был два дня. На диаграмме старения такая задача будет светиться. Может, её просто забыли передвинуть в правильный статус. А может там есть какая-то проблема, с которой нужна помощь руководителя. Может даже просто задача такая большая или сложная получилась — это всё равно повод следить за ней ежедневно и внимательно (чтобы, например, вовремя бросить её на пол).
Такой диаграммы у меня нет, поэтому мы костылим через дедлайны и гантты пока что. Но в трекере обещали сделать.
Че в итоге-то?
В итоге у нас есть несколько источников триггерных событий для руководителя. Если события из них не летят, можноотдыхать заниматься чем-то, кроме экзекьюшена. В противном случае — изучить сигнал и починить причину проблемы, если она есть. Но ни в коем случае не бегать кругами по сотрудникам с кнутом, пряником и криками.
1. Я стараюсь коммуницировать, что при затыках, проволочках и потере темпа _нужно_ идти и эскалировать в меня. Это вообще первый и главный сигнал к включению
2. Колонка "запланировано" всегда должна содержать не менее X задач (X, очевидно, разнится). Здесь мы хотим не менее пяти задач, а если их становится меньше трёх, то это повод прямо сейчас разобраться, что ещё нужно докинуть. Иначе следующий освободившийся сотрудник не будет знать, за что взяться и случится бесполезный простой в лучшем случае. В худшем сотрудник будет делать задачу, которая важна _по_его_мнению_. С другой стороны, если в колонке слишком много задач, то это тоже какой-то нездоровый признак — явно что-то сломалось с приоритетами и планированием (если ты планируешься в среднем раз в неделю на команду из пяти человек, а задач в запланированном больше 20-ти штук, то скорее всего вы их не сделаете)
3. Колонка "готово к работе" тоже должна всегда содержать некоторый буфер задач. Если задач в ней становится меньше Y, нужно озаботиться тем, чтобы кто-то уже взялся за запланированное и начал готовить задачу к взятию в работу (у нас это значит выполнить DoR: по чек-листу проверить, что в задаче есть вся нужная инфа, DoD, проведена декомпозиция, учтены и обработаны все внешние зависимости и т.д.). В противном случае мы рискуем оказаться в ситуации, когда код никто не пишет, а все заняты высокими материями типа общения со смежниками или декомпозиции задач. Я уже молчу о том, что не каждый сотрудник одинаково хорошо может с такими задачами справляться, тут нужно всё-таки давать что-то посильное (пусть и с челленджем).
4. Диаграммы DORA. Беглого взгляда на них обычно достаточно, чтобы увидеть какие-то аномалии: слишком быстро или слишком медленно стали делать задачи (на новогодние отлично видно, как релизы откладываются, например). Здесь у нас в трекере есть вьюшка, отображающая цикл тайм по статусам. По ней можно попробовать понять, в какой именно части процесса произошла проблема (релизы, ревью ПРов, декомпозиция или сама разработка и т.п.) — тут либо будет ожидаемо, либо надо копать дальше, но уже ясно направление.
5. Диаграмма потока задач. Здесь просто следим за тем, что решается задач не меньше, чем заводится новых — рост бэклога это не хорошо, это "запасы".
6. Длина очереди обращений в поддержку. Ну тут всё ясно, кажется. Если очередь выросла, надо бы разобраться, что к этому привело и разгрести хвост.
7. Доска с задачами в разбивке по людям. Здесь следим за тем, что у каждого есть задача и в работе только одна в один момент времени.
Этого всего лишь три вкладки в браузере, которые нужно проверять раз в день, некоторые, раз в неделю. И если там всё нормально, то можно заниматься планами развития, глубинными 1-1, написанием постов в каналы в телеге...
Для операционного менеджмента ещё не хватает одной диаграммы:
8. Диаграмма старения задач. Я как-то уже рассказывал о ней в комментариях в канале. Мы следим за тем, что задачка находится в каждом из статусов не дольше, чем это делали 80% задач в прошлом месяце, например. Например, видим, что задача уже три дня в разработке, а 80%% был два дня. На диаграмме старения такая задача будет светиться. Может, её просто забыли передвинуть в правильный статус. А может там есть какая-то проблема, с которой нужна помощь руководителя. Может даже просто задача такая большая или сложная получилась — это всё равно повод следить за ней ежедневно и внимательно (чтобы, например, вовремя бросить её на пол).
Такой диаграммы у меня нет, поэтому мы костылим через дедлайны и гантты пока что. Но в трекере обещали сделать.
Че в итоге-то?
В итоге у нас есть несколько источников триггерных событий для руководителя. Если события из них не летят, можно