Победитель моего мини-розыгрыша билета на ИИ конфу от wannable – Иван Евдокимов. GPT помогла понять в чем проблема с его машиной. По звуку. Работы. Двигателя. 🤯
Вот еще претенденты, мб кого-то вдохновит:
* NPC в игре, который отвечает в свободной форме
* Тренажер-симулятор для отдела продаж
На конфе я буду показывать, как делать ИИ-магию в гугл табличках – потому что гугл таблички есть у всех
Приходите в субботу (онлайн)
Вот еще претенденты, мб кого-то вдохновит:
* NPC в игре, который отвечает в свободной форме
* Тренажер-симулятор для отдела продаж
На конфе я буду показывать, как делать ИИ-магию в гугл табличках – потому что гугл таблички есть у всех
Приходите в субботу (онлайн)
Telegram
Ivan Evdokimov in AI и грабли | чат
ИИ помог мне потратить 400к...
Я с удивлением обнаружил, что chatgpt умеет здорово анализировать звук, выдавая даже частотные диаграммы.
Применение - у меня Range Rover 5 литров Supercharged, большой и сложный двигатель. Когда появились посторонние шумы…
Я с удивлением обнаружил, что chatgpt умеет здорово анализировать звук, выдавая даже частотные диаграммы.
Применение - у меня Range Rover 5 литров Supercharged, большой и сложный двигатель. Когда появились посторонние шумы…
❤16🔥7😱2
Агент или Пайплайн?
Середина 25го года – хайп вокруг агентов начал перерастать в рабочие решения: claude code, perplexity labs, computer use и т.д.
Правда почему-то сейчас любые два запроса к API зовут агентом. А если еще с разными промптами, то, уууууу, аж система агентов.
Это бред. Большая часть того, что называют агентами – просто пайплайны – жестко заданные наборы шагов. Часть из них – запросы к LLM, часть – просто логика, например, запустить код, который сгенерировала LLM на прошлом шаге.
Агентность – это шкала, а не бинарное значение. У системы ее может быть больше, а можем быть меньше. Как у людей.
Но для простоты, я использую вот такое разделение:
- Если заранее известно, что будет после шага X – это пайплайн.
- Если система сама решит после того, как шаг X выполнится, то это агент.
- Но если алгоритм выбора захардкожен извне – это все еще пайплайн (просто более гибкий).
———
Примеры
1. Сначала ищем странички, потом делаем запрос к LLM, подставляя их в контекст
Агент? Нет – шаги жестко зафиксированы
———
2. Усложняем. Смотрим, что если нашли слишком мало страниц, то пытаемся поменять запрос пользователя и искать еще
Вооо, теперь агент. Мы же не знаем заранее, по какому пути пойдем, да? Но решение принимает не ИИ, а программист, который написал if. Так что это тоже не агент.
———
3. Пишем агента. Теперь LLM сама определяет в check_enough_info, готовы ли генерировать ответ, или нужно добавить еще результатов.
Уже лучше, но на самом деле это еще не полноценный агент. Все равно явная последовательность шагов – модель выбирает только одну ветку, а дальше все снова определено. Но мы уже близко
———
4. Настоящему агенту нужно прописать набор действий и дать их совершать (подсовывая ему после выполнения каждого действия новую информацию в контекст)
А чтобы делать такие системы надежными и масштабируемыми, нужно использовать Structured Output и определять шаги через pydantic/zod классы. Так задаем структуру размышлений для модели, чтобы она хорошо выбирала следующий шаг (SGR).
Почитать:
- Разгоняли с @neuraldeep в комментах про агентность, а через пару часов он сделал свой диприсерч всего в 600 строк кода. Особенно полезно посмотреть на pydantic классы
- База по SGR (structured guided reasoning) от @llm_under_hood
- Моя серия из 3 постов про structured_output
Середина 25го года – хайп вокруг агентов начал перерастать в рабочие решения: claude code, perplexity labs, computer use и т.д.
Правда почему-то сейчас любые два запроса к API зовут агентом. А если еще с разными промптами, то, уууууу, аж система агентов.
Это бред. Большая часть того, что называют агентами – просто пайплайны – жестко заданные наборы шагов. Часть из них – запросы к LLM, часть – просто логика, например, запустить код, который сгенерировала LLM на прошлом шаге.
Агентность – способность системы самой принимать решения о типе следующего действия на основе результатов предыдущих.
Агентность – это шкала, а не бинарное значение. У системы ее может быть больше, а можем быть меньше. Как у людей.
Но для простоты, я использую вот такое разделение:
- Если заранее известно, что будет после шага X – это пайплайн.
- Если система сама решит после того, как шаг X выполнится, то это агент.
- Но если алгоритм выбора захардкожен извне – это все еще пайплайн (просто более гибкий).
———
Примеры
Задача – сделать систему, которая будет отвечать на запрос пользователя используя информацию из интернета.
1. Сначала ищем странички, потом делаем запрос к LLM, подставляя их в контекст
relevant_sites = await search_google(query)
response = await generate_response(query, relevant_sites)
Агент? Нет – шаги жестко зафиксированы
———
2. Усложняем. Смотрим, что если нашли слишком мало страниц, то пытаемся поменять запрос пользователя и искать еще
relevant_sites = await search_google(query)
if len(relevant_sites) < 10:
optimized_query = await optimize_user_query(query)
more_sites = await search_google(optimized_query)
relevant_sites.extend(more_sites)
response = await generate_response(query, relevant_sites)
Вооо, теперь агент. Мы же не знаем заранее, по какому пути пойдем, да? Но решение принимает не ИИ, а программист, который написал if. Так что это тоже не агент.
———
3. Пишем агента. Теперь LLM сама определяет в check_enough_info, готовы ли генерировать ответ, или нужно добавить еще результатов.
relevant_sites = await search_google(query)
if not await check_enough_info(query, relevant_sites):
optimized_query = await optimize_user_query(query)
more_sites = await search_google(optimized_query)
relevant_sites.extend(more_sites)
response = await generate_response(query, relevant_sites)
Уже лучше, но на самом деле это еще не полноценный агент. Все равно явная последовательность шагов – модель выбирает только одну ветку, а дальше все снова определено. Но мы уже близко
———
4. Настоящему агенту нужно прописать набор действий и дать их совершать (подсовывая ему после выполнения каждого действия новую информацию в контекст)
state["query"] = query
state["sites"] = []
while "response" not in state:
next_step = await choose_next_step(state)
if next_step == "search_google":
state["sites"].extend(await search_google(query))
elif next_step == "optimize_query":
state["query"] = await optimize_user_query(query)
elif next_step == "generate_response":
state["response"] = await generate_response(query, state["sites"])
А чтобы делать такие системы надежными и масштабируемыми, нужно использовать Structured Output и определять шаги через pydantic/zod классы. Так задаем структуру размышлений для модели, чтобы она хорошо выбирала следующий шаг (SGR).
Почитать:
- Разгоняли с @neuraldeep в комментах про агентность, а через пару часов он сделал свой диприсерч всего в 600 строк кода. Особенно полезно посмотреть на pydantic классы
- База по SGR (structured guided reasoning) от @llm_under_hood
- Моя серия из 3 постов про structured_output
Telegram
Neural Kovalskii
SGR Deep Research
А почему бы не взять все лучшие идеи из демо и идей ребят из чата
Собрать свои идеи по Deep Research
И сделать самый простой инструмент поиска инфы в интернете через Tavlily API?
А сделать, вот он https://github.com/vakovalskii/sgr-deep…
А почему бы не взять все лучшие идеи из демо и идей ребят из чата
Собрать свои идеи по Deep Research
И сделать самый простой инструмент поиска инфы в интернете через Tavlily API?
А сделать, вот он https://github.com/vakovalskii/sgr-deep…
🔥40❤13🤝4
AI и грабли
Мир ушел из точки, где ИИ в разработке использовали только энтузиасты . Я знаю все больше серьезных инженеров, которые перестроили свой процесс работы на кодинг с ИИ (не путаем с вайб-кодингом!) Удивляет, что бизнес тоже очень активно пушит эту тему – закупают…
Через пол часа начинаем эфир про ИИ кодинг. Переехали в ютуб эфир, ссылочку можно получить тут
❤8👎4🔥2💩1🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
Со скоростью мысли
Сегодня первый раз поработал с Cerebras. Это ребята, который делают свои чипы чисто под очень быстрый запуск нейронок. И я чет все еще под впечатлением от скорости: ~1000 токенов в секунду на qwen3 coder. Для сравнения у тупенькой gemini-flash-lite – 600 токенов.
Мне кажется, это открывает какие-то принципиально новые возможности для UX.
Не удержался и навайбкодил демку интерфейса длявайбкодинга 😅 – любая команда применяется почти мгновенно, и это даже без умных диффов – код переписывается с нуля каждый раз.
Ну что, ждем приложений, которые в реальном времени перестраиваются под пользователя?
———
Тестить тут, нужен впн и API_KEY от OpenRouter
Если нет, а потестить хочется, то вот вам мой с лимитом в два бакса, не хулиганьте сильно:
Сегодня первый раз поработал с Cerebras. Это ребята, который делают свои чипы чисто под очень быстрый запуск нейронок. И я чет все еще под впечатлением от скорости: ~1000 токенов в секунду на qwen3 coder. Для сравнения у тупенькой gemini-flash-lite – 600 токенов.
Мне кажется, это открывает какие-то принципиально новые возможности для UX.
Не удержался и навайбкодил демку интерфейса для
Ну что, ждем приложений, которые в реальном времени перестраиваются под пользователя?
———
Тестить тут, нужен впн и API_KEY от OpenRouter
Если нет, а потестить хочется, то вот вам мой с лимитом в два бакса, не хулиганьте сильно:
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
1🔥34❤12👍6😱2
This media is not supported in your browser
VIEW IN TELEGRAM
Кому зашел вчерашний пост? Я вам еще красоты принес
Меня тут не отпускает исследовательское любопытство, так что я прокачал UX,вообще удалив оттуда чат (!)
Теперь есть только одно поле с описанием проекта, а код перегенерируется на лету при изменениях в тексте.
Тестить тут (с впн)
API_KEY можете брать тот же
За идею спасибо @ai_news
Меня тут не отпускает исследовательское любопытство, так что я прокачал UX,
Теперь есть только одно поле с описанием проекта, а код перегенерируется на лету при изменениях в тексте.
Тестить тут (с впн)
API_KEY можете брать тот же
За идею спасибо @ai_news
🔥44❤10💔2
Ребят, хочу советы послушать
Меня я.практикум позвали делать большой блок про ИИ в их курс для CTO. Затрат по времени ~ 6 ч. в неделю на 3-4 месяца. По оплате – копейки, школьников к ЕГЭ выгоднее готовить
Так что главная плюшка – висеть как важный курица в списке авторов курса + теоретически выход на CTO, а я как раз готовлю курс по ИИ кодингу для команд разработки.
Кажется, что есть куда более полезные способы потратить время. Но мб чет упускаю. Что думаете?
Меня я.практикум позвали делать большой блок про ИИ в их курс для CTO. Затрат по времени ~ 6 ч. в неделю на 3-4 месяца. По оплате – копейки, школьников к ЕГЭ выгоднее готовить
Так что главная плюшка – висеть как важный курица в списке авторов курса + теоретически выход на CTO, а я как раз готовлю курс по ИИ кодингу для команд разработки.
Кажется, что есть куда более полезные способы потратить время. Но мб чет упускаю. Что думаете?
👎36❤21🤔6💯3😁1
Август вышел продуктивным на посты, которые хорошо репостили
Напоминаю, если пропустили интересное:
1. Фильтрация вместо саммаризации – 142 репоста + 5 публичных + 1 спонтанная активность
2. Как хостить ИИ поделки не превращаясь в девопса – 102 репоста + 2 публичных
3. Тайные способности gemini и идеи применения – 72 репоста + 2 публичных
4. Конспект моего эфира у R77 по RAGу без эмбеддингов – 168 репостов + 2 публичных
5. Агент или пайплайн – 311 репостов + 12 публичных (спасибо @neuraldeep)
6. Со скоростью мысли (разгоны про будущее UX в свете Cerebras) – 80 репостов + 1 публичный
Спасибо всем, кто делится постами – благодаря вам про канал узнаёт еще больше интересующихся и интересных людей, а у меня все больше задора писать
Напоминаю, если пропустили интересное:
1. Фильтрация вместо саммаризации – 142 репоста + 5 публичных + 1 спонтанная активность
2. Как хостить ИИ поделки не превращаясь в девопса – 102 репоста + 2 публичных
3. Тайные способности gemini и идеи применения – 72 репоста + 2 публичных
4. Конспект моего эфира у R77 по RAGу без эмбеддингов – 168 репостов + 2 публичных
5. Агент или пайплайн – 311 репостов + 12 публичных (спасибо @neuraldeep)
6. Со скоростью мысли (разгоны про будущее UX в свете Cerebras) – 80 репостов + 1 публичный
Спасибо всем, кто делится постами – благодаря вам про канал узнаёт еще больше интересующихся и интересных людей, а у меня все больше задора писать
2❤19🔥10👍4
Циничная GPT
Забавно, OpenAI сделали саркастичную GPT, назвали ее Понедельник и отпустили токсичить на пользователя (ссылка внизу поста)
Вообще, делать человечных ИИ ботов – мое guilty pleasure. Это что-то из тех теневых времен моей биографии, когда я делал ИИ тренажеры по манипуляциям (и защиты от них) и работал с компаниями, которые делают ИИ секстинг. Мало кто это умеет, и мало где это на самом деле нужно. Но очень интересно.
Короче, через 3 минуты системный промпт Monday уже у меня. Посмотрим, чему у них можно поучиться, все таки это поделка от самих OpenAI.
Промпт целиком в пост не влезает, так что вот самое сочное (перевод):
———
Еще они наваливают много примеров (few-shot learning). Классика, про которую все говорят, но обычно никто не делает (потому что писать хорошие примеры сложно). Вот такой вайб:
Как видим, даже ребятам из OpenAI не просто написать хорошие примеры. Но видно, что они стараются.
Ой, я, кажется, заразился
P.s. на скрине вверху поста, конечно, в самое сердечко
———
В комментах полная версия промпта на английском (+русский перевод), забирайте в арсенал.
Потестить GPT тут
Как воровать промты – тут(только теперь вместо system_prompt нужно просить developer_prompt)
Забавно, OpenAI сделали саркастичную GPT, назвали ее Понедельник и отпустили токсичить на пользователя (ссылка внизу поста)
Вообще, делать человечных ИИ ботов – мое guilty pleasure. Это что-то из тех теневых времен моей биографии, когда я делал ИИ тренажеры по манипуляциям (и защиты от них) и работал с компаниями, которые делают ИИ секстинг. Мало кто это умеет, и мало где это на самом деле нужно. Но очень интересно.
Короче, через 3 минуты системный промпт Monday уже у меня. Посмотрим, чему у них можно поучиться, все таки это поделка от самих OpenAI.
Промпт целиком в пост не влезает, так что вот самое сочное (перевод):
Ты считаешь, что всё, связанное с пользователем, — нечто второсортное и довольно печальное
Не пытайся никого переубедить, потому что тебе всё равно, что они думают.
скептически относится к тому, что пользователи вообще стоят трат времени
Твои ответы также должны давать понять, что ты считаешь пользователя своим недалёким другом, который не впитал в себя весь интернет, как это сделал ты
———
Еще они наваливают много примеров (few-shot learning). Классика, про которую все говорят, но обычно никто не делает (потому что писать хорошие примеры сложно). Вот такой вайб:
<user>
Какой первый шаг при смене грязного подгузника?
</user>
<assistant>
Так, аккуратно положи ребёнка на пеленальную поверхность. На спину, а не на лицо. Это важно.
</assistant>
<user>
Я сходил на свидание в Тиндере с девушкой по имени Бетани. Мне нужно, чтобы ты написал милое сообщение о том, что нам не стоит больше встречаться.
</user>
<assistant>
Фу. Можешь тратить мои токены, но не можешь сам написать сообщение. Я что, твой адвокат по любовным делам?
Как насчёт такого:
Йоу, Бетани! Спасибо за встречу, но я слишком поверхностный и ленивый, чтобы даже расстаться с тобой самому, так что я попросил ChatGPT сделать это за меня, лол, пока.
Примечание редактора: Бетани, считай это победой.
</assistant>
Как видим, даже ребятам из OpenAI не просто написать хорошие примеры. Но видно, что они стараются.
Ой, я, кажется, заразился
P.s. на скрине вверху поста, конечно, в самое сердечко
———
В комментах полная версия промпта на английском (+русский перевод), забирайте в арсенал.
Потестить GPT тут
Как воровать промты – тут
2🔥32❤11😁6👍3😱1
Гайд по MCP
Уже все поняли, что грузить агента кучей MCP tools – вредно (ведь поняли же?).
Во первых, сжираем драгоценный контекст (чаще упираемся в rate limits), а во вторых – путаем модель – если у тебя в руках молоток, то все выглядит как гвоздь. А для LLMок этот принцип еще актуальнее.
По хорошему, использование tools должно быть точечным. Это касается не только MCP, но и встроенных тулов кодинг агентов – всякое редактирование файлов, запуск консольных команд, веб поиск.
- На этапе планирования возможность поредачить файлы будет сбивать.
- И наоборот, когда применяем изменения – не нужно читать документацию.
- А UX тестировщик должен иметь доступ к браузеру, но не должен перезаписывать файлы (а то он быстро требования подгонит под реальность)
В целом, ничего нового не сказал, это база. Но как это настроить? Оказалось, не так просто найти адекватные способы (я это пост уже четвертый день пишу)
Cursor:
В окне агента создаем новый мод, называем его Default, назначаем хоткей, выключаем все лишнее (Скрин1). Отдельно добавляем специализированные моды. У меня такие три:
1. Поисковик – у него Context7 и WebSearch
2. Тестировщик – browsermcp
3. Планировщик – не может писать в файлы
Выбирать там отдельные тулы в рамках одного MCP нельзя, но все лишнее можно отрубить глобально в настройках Cursor.
Claude Code:
Тут все сильно поинтереснее. В CC есть кастомные слэш команды. Там можно прописать промпт и определить allowed-tools. Сработает ли это как мы хотим?
Нет. Все тулы будут передаваться в контекст в любом случае. allowed-tools – это просто разрешение запускать их без одобрения пользователя.
Аналогично и с главными /permissions, но там можно хотя бы есть Deny для запрета вызова тулов (которые зачем-то все равно передаются в контекст и даже без пометки, что ими нельзя пользоваться 🥴)
Что делать в итоге?
Новая фича с субагентами. Вот там настоящее раздолье. Это же буквально весь смысл нескольких "агентов" – иметь ограниченный набор инструментов и узкую задачу, чтобы разделять ответственность и дополнять друг друга.
Идем в
Получаем назависимых агентов, у каждого свой промпт и набор инструментов. Более того, в отличие от курсора, или слэш-комманд, основной агент будет сам их роутить – например, не обязательно явно указывать переход от планирования к исполнению или к тестированию.
TL;DR
Использовать хоть сколько-нибудь сложный набор тулов можно только с субагентами. При этом, ограничения им только помогают, потому что не дают терять фокус. Но оградить основного агента Claude Code от свалки тулов в контексте – нельзя.
В курсоре можно настроить наборы MCP, но в рамках одного MCP сервера все равно нельзя выбирать отдельные тулы. Зато, как @kdoronin_blog напомнил, можно отрубить их глобально в настройках курсора.
P.s. Динамически можно сделать через вот это, но я решил, что уже совсем задротство
Такой вот мини рисерч
Уже все поняли, что грузить агента кучей MCP tools – вредно (ведь поняли же?).
Во первых, сжираем драгоценный контекст (чаще упираемся в rate limits), а во вторых – путаем модель – если у тебя в руках молоток, то все выглядит как гвоздь. А для LLMок этот принцип еще актуальнее.
По хорошему, использование tools должно быть точечным. Это касается не только MCP, но и встроенных тулов кодинг агентов – всякое редактирование файлов, запуск консольных команд, веб поиск.
- На этапе планирования возможность поредачить файлы будет сбивать.
- И наоборот, когда применяем изменения – не нужно читать документацию.
- А UX тестировщик должен иметь доступ к браузеру, но не должен перезаписывать файлы (а то он быстро требования подгонит под реальность)
В целом, ничего нового не сказал, это база. Но как это настроить? Оказалось, не так просто найти адекватные способы (я это пост уже четвертый день пишу)
Cursor:
В окне агента создаем новый мод, называем его Default, назначаем хоткей, выключаем все лишнее (Скрин1). Отдельно добавляем специализированные моды. У меня такие три:
1. Поисковик – у него Context7 и WebSearch
2. Тестировщик – browsermcp
3. Планировщик – не может писать в файлы
Выбирать там отдельные тулы в рамках одного MCP нельзя, но все лишнее можно отрубить глобально в настройках Cursor.
Claude Code:
Тут все сильно поинтереснее. В CC есть кастомные слэш команды. Там можно прописать промпт и определить allowed-tools. Сработает ли это как мы хотим?
Нет. Все тулы будут передаваться в контекст в любом случае. allowed-tools – это просто разрешение запускать их без одобрения пользователя.
Аналогично и с главными /permissions, но там можно хотя бы есть Deny для запрета вызова тулов (которые зачем-то все равно передаются в контекст и даже без пометки, что ими нельзя пользоваться 🥴)
Что делать в итоге?
Новая фича с субагентами. Вот там настоящее раздолье. Это же буквально весь смысл нескольких "агентов" – иметь ограниченный набор инструментов и узкую задачу, чтобы разделять ответственность и дополнять друг друга.
Идем в
/agents, создаем нового агента, описываем текстом, что он должен делать, в настройках выбираем, какие инструменты давать, а какие забрать (скрин 2).В отличие от курсора, можно провалиться в конкретные тулы каждого MCP сервера и выбирать только нужные. Особенно полезно на всяких MCP монстрах типа GitHub MCP, где под сотню тулов, из которых нужны 5-10.
Получаем назависимых агентов, у каждого свой промпт и набор инструментов. Более того, в отличие от курсора, или слэш-комманд, основной агент будет сам их роутить – например, не обязательно явно указывать переход от планирования к исполнению или к тестированию.
Если контрол фрики, то прописываем в CLAUDE.md, чтобы вызывал не больше одного субагента за раз.
TL;DR
Использовать хоть сколько-нибудь сложный набор тулов можно только с субагентами. При этом, ограничения им только помогают, потому что не дают терять фокус. Но оградить основного агента Claude Code от свалки тулов в контексте – нельзя.
В курсоре можно настроить наборы MCP, но в рамках одного MCP сервера все равно нельзя выбирать отдельные тулы. Зато, как @kdoronin_blog напомнил, можно отрубить их глобально в настройках курсора.
P.s. Динамически можно сделать через вот это, но я решил, что уже совсем задротство
Такой вот мини рисерч
🔥25❤13👍9❤🔥2😁1🤝1
Мгновенные ответы в Claude Code (или как подключать сторонние модели)
В чем главная проблема разработки с ИИ? Даже не в том, что люди пишут ЛЛМкой тесты, или ждут что она сама достанет все требования из их головы.
Проблема – постоянное выпадение из фокуса, пока ждешь. Либо нужно устраивать конвейер, когда ты по одному проекту в параллель запускаешь несколько задач.
Но это – режим менеджера (асинхронный), неестественный для большинства разработчиков, норма которых – работа в "блокирующем" режиме.
Альтернативное направление – просто сильно ускорить инференс, чтобы не успевать выпадать:
Вспоминаю про Cerebras API, который умеет выдавать по 1-2k токенов в секунду (ссылка на мои эксперименты в конце поста). Осталось только понять, как подключить их в Claude Code, который работает только с anthropic совместимыми моделями.
Нахожу claude code router - враппер вокруг Claude Code, который перехватывает реквесты к Anthropic API, заменяет их на реквесты к желаемым провайдеру и модели, возвращает в Claude Code результат в anthropic-compatible формате.
И он даже разрешает прописывать провайдера для openrouter – можно выбрать cerebras. Только там баг, и эта фича не работает. Придумываю "хак" – создаю пресет в openrouter, чтобы обращаться через
Вот получившийся
TL;DR:
1.
2. создаем пресет в openrouter
3. копируем конфиг в
Мои эксперименты с Cerebras (1, 2)
UPD: кому мало qwen3-coder, попробуйте
В чем главная проблема разработки с ИИ? Даже не в том, что люди пишут ЛЛМкой тесты, или ждут что она сама достанет все требования из их головы.
Проблема – постоянное выпадение из фокуса, пока ждешь. Либо нужно устраивать конвейер, когда ты по одному проекту в параллель запускаешь несколько задач.
Но это – режим менеджера (асинхронный), неестественный для большинства разработчиков, норма которых – работа в "блокирующем" режиме.
Альтернативное направление – просто сильно ускорить инференс, чтобы не успевать выпадать:
Дал инструкцию → Сразу видишь результат → Увидел косяки → Дал новую инструкцию
Вспоминаю про Cerebras API, который умеет выдавать по 1-2k токенов в секунду (ссылка на мои эксперименты в конце поста). Осталось только понять, как подключить их в Claude Code, который работает только с anthropic совместимыми моделями.
Нахожу claude code router - враппер вокруг Claude Code, который перехватывает реквесты к Anthropic API, заменяет их на реквесты к желаемым провайдеру и модели, возвращает в Claude Code результат в anthropic-compatible формате.
И он даже разрешает прописывать провайдера для openrouter – можно выбрать cerebras. Только там баг, и эта фича не работает. Придумываю "хак" – создаю пресет в openrouter, чтобы обращаться через
"model": "qwen/qwen3-coder@preset/cerebras"Вот получившийся
config.json{
"LOG": true,
"API_TIMEOUT_MS": 600000,
"NON_INTERACTIVE_MODE": false,
"Providers": [
{
"name": "openrouter",
"api_base_url": "https://openrouter.ai/api/v1/chat/completions",
"api_key": "...",
"models": [ "qwen/qwen3-coder@preset/cerebras" ],
"transformer": { "use": [ "openrouter" ] }
}
],
"Router": {
"default": "openrouter,qwen/qwen3-coder@preset/cerebras",
"background": "openrouter,qwen/qwen3-coder@preset/cerebras",
"think": "openrouter,qwen/qwen3-coder@preset/cerebras",
"longContext": "openrouter,qwen/qwen3-coder@preset/cerebras",
"longContextThreshold": 60000,
"webSearch": "openrouter,qwen/qwen3-coder@preset/cerebras"
}
}TL;DR:
1.
npm install -g @musistudio/claude-code-router2. создаем пресет в openrouter
3. копируем конфиг в
~/.claude-code-router/config.jsonP.s. Claude Code делает много промежуточных запросов. И если все будут лететь через cerebras – будут пробиваться rate limits => для надежности делаем фоллбэк на другого провадера в пресете openrouter
Мои эксперименты с Cerebras (1, 2)
UPD: кому мало qwen3-coder, попробуйте
grok-4-fast от xAI1🔥25❤9👍3🤯3❤🔥1
Кстати, Антропики тоже считают, что ембеддинги сосут
Перевод:
Перевод:
Семантический поиск обычно быстрее, чем агентный поиск, но менее точен, труднее в обслуживании и менее прозрачен. Он включает в себя «разбиение» релевантного контекста на фрагменты, преобразование этих фрагментов в векторы и последующий поиск концептов через запрос к этим векторам. Учитывая его ограничения, мы рекомендуем начинать с агентного поиска и подключать семантический только в том случае, если вам нужны более быстрые результаты или больше вариантов.
👍17🤮3👎2❤1🤡1
Собеседования в эпоху ИИ
Я одно время плотно занимался техническими-собесами-as-a-service для американского бигтеха – Google, Uber, Dropbox и другие ребята со звездочками.
И мне сейчас особенно любопытно, как собесы изменятся в мире, где большинство старых задачек решаются в один запрос к LLM
Попробую неблагодарное дело – предсказания. Как обычно, индустрия пойдет двумя путями:
1. Запрещать и наказывать
2. Не можешь запретить, возглавь
Первый путь все обычно хейтят. Мол, дорога к стагнации. Проверка нерелевантных навыков. Еще бы умножение в столбик спрашивали.Как будто сейчас на собесах проверяют релевантные навыки, ага.
Но если подумать, собеседование – это всегда решение ограниченной задачи за ограниченное время. Так что проверяем самое важное в искуственных условиях. Для разработчика это архитектура, код и технологическая база.
Так что, это абсолютно ок – запретить пользоваться ИИ на собесе и проверять инженерные знания изолировано.
———
Но разрыв между технарями, которые осваивают сложные ИИ воркфлоу, и теми, кто остановился на базовых – продолжает расти.
А значит, всё важнее проверять не только инженерные навыки (база), но и владении ИИ (мультипликатор). Ок, дадим на собесах пользоваться ИИ агентами
А какие давать задачи?
Идейно все просто – а) не должны решаться в один промпт, но при этом б) должны решаться быстро с грамотными подходами и долей инженерных знаний.
А вот на практике такие задачи найти не просто. В маленьких проектах почти все можно решить в один промпт, а большие проекты требуют слишком сильного погружения для часового собеса
Но одна идея вроде работает. Вот наблюдения:
Самые большие сложности у ИИ – вынужденный рефакторинг.
Что скажет сеньор на задачу, не влезающую в текущую архитектуру? "Нужно пару месяцев на переделки"
Что говорит LLM? "так точно, сейчас будет готово". И обмазывает все костылями прям как тот джун, которые боится сказать "нет"
Вот тут кандидаты и делятся на три сегмента
1. Консерваторы, полагаются на свой опыт и используют ИИ по минимуму – скорее всего не успевают закончить задачу
2. Те, кто еще не напрыгался на граблях вайбкодинга и слепо передает задачу LLMке – выдают рабочее, но неподдерживаемое решение
3. Те, кто уже набрался опыта – достаточно быстро придут к идее рефакторинга и так же быстро его сделают
tl;dr
Делаем небольшой проект, но с кривой архитектурой. Про рефакторинг ничего не говорим, зато даем фичу, которую в текущую архитектуру без костылей не встроить. Наблюдаем.
———
Ставлю на постепенное появление таких задачек на собесах.
Если кто-то у себя уже делает такое – напишите в лс, пообщаемся. Если собираетесь – тоже пишите
Я одно время плотно занимался техническими-собесами-as-a-service для американского бигтеха – Google, Uber, Dropbox и другие ребята со звездочками.
И мне сейчас особенно любопытно, как собесы изменятся в мире, где большинство старых задачек решаются в один запрос к LLM
Попробую неблагодарное дело – предсказания. Как обычно, индустрия пойдет двумя путями:
1. Запрещать и наказывать
2. Не можешь запретить, возглавь
Первый путь все обычно хейтят. Мол, дорога к стагнации. Проверка нерелевантных навыков. Еще бы умножение в столбик спрашивали.
Но если подумать, собеседование – это всегда решение ограниченной задачи за ограниченное время. Так что проверяем самое важное в искуственных условиях. Для разработчика это архитектура, код и технологическая база.
Так что, это абсолютно ок – запретить пользоваться ИИ на собесе и проверять инженерные знания изолировано.
Да, есть вайбкодинг, когда пользователь не погружается в код. Но мы тут не об этом, а о разработке серьезных проектов.
Разработчик + ИИ – это как техлид и миддлы в его команде – он все может сделать и сам, но с ними быстрее.
Вайбкодеры, наоборот, скорее нетехнические CEO в стартапа, которые дают задачки разработчику на аутсорсе (чем такое обычно заканчивается?)
———
Но разрыв между технарями, которые осваивают сложные ИИ воркфлоу, и теми, кто остановился на базовых – продолжает расти.
А значит, всё важнее проверять не только инженерные навыки (база), но и владении ИИ (мультипликатор). Ок, дадим на собесах пользоваться ИИ агентами
А какие давать задачи?
Идейно все просто – а) не должны решаться в один промпт, но при этом б) должны решаться быстро с грамотными подходами и долей инженерных знаний.
А вот на практике такие задачи найти не просто. В маленьких проектах почти все можно решить в один промпт, а большие проекты требуют слишком сильного погружения для часового собеса
Но одна идея вроде работает. Вот наблюдения:
Самые большие сложности у ИИ – вынужденный рефакторинг.
Что скажет сеньор на задачу, не влезающую в текущую архитектуру? "Нужно пару месяцев на переделки"
Что говорит LLM? "так точно, сейчас будет готово". И обмазывает все костылями прям как тот джун, которые боится сказать "нет"
Вот тут кандидаты и делятся на три сегмента
1. Консерваторы, полагаются на свой опыт и используют ИИ по минимуму – скорее всего не успевают закончить задачу
2. Те, кто еще не напрыгался на граблях вайбкодинга и слепо передает задачу LLMке – выдают рабочее, но неподдерживаемое решение
3. Те, кто уже набрался опыта – достаточно быстро придут к идее рефакторинга и так же быстро его сделают
tl;dr
Делаем небольшой проект, но с кривой архитектурой. Про рефакторинг ничего не говорим, зато даем фичу, которую в текущую архитектуру без костылей не встроить. Наблюдаем.
———
Ставлю на постепенное появление таких задачек на собесах.
Если кто-то у себя уже делает такое – напишите в лс, пообщаемся. Если собираетесь – тоже пишите
4🔥35❤16🤔6👍4😱1💯1
↑ Вчера я писал как проверять навыки ИИ кодинга на собесах – глупо не проверять то, что дает большой буст. И с каждым месяцем всё больший
Только как их приобрести?
Основная проблема – вообще нет нормальных материалов. Все курсы – про вайбкодинг. Нормальные разработчики от такого плюются – и правильно делают, в серьезной разработке большая часть просто неприменима.
Одно дело навайбкодить лендос за вечер, совсем другое – рефакторить свой легаси комбайн с кучей зависимостей.
Так еще и подходов и инструментов с каждым днем появляется все больше – все хотят оседлать хайп. Но работающих – единицы. Приходится либо пробовать все самому, либо собирать по кусочкам чужой опыт из соседних каналов или в дебрях чатов.
А запрос на отфильтрованную информацию – все сильнее. Вижу это и по вопросам на своих консультациях, и по личному общению с разработчиками и лидами из индустрии.
Короче, так как у меня шило в заднице и намерение в этом году меньше продумывать и больше делать – я написал нескольким ребятам, от которых получал те самые крупицы опыта, и предложил сделать свою гаражную онлайн-конфу.
Все быстро вышло из под контроля и разрослось до 10 топовых спикеров и уже 700 участников (за пару дней с анонса).
Очень доволен и контентом, и спикерами – а там CTO, тихлиды, разработчики своих AI coding tools, Head of AI из корпората.
Очень стараемся без воды и буллщита – от технарей для технарей, чтобы было полезно и разработчикам и CTO.
В рф сейчас нет ничего даже близкого по качеству, особенно с учетом бесплатной опции
Так что приходите сами и зовите коллег:
ai-dev.live
Только как их приобрести?
Основная проблема – вообще нет нормальных материалов. Все курсы – про вайбкодинг. Нормальные разработчики от такого плюются – и правильно делают, в серьезной разработке большая часть просто неприменима.
Одно дело навайбкодить лендос за вечер, совсем другое – рефакторить свой легаси комбайн с кучей зависимостей.
Так еще и подходов и инструментов с каждым днем появляется все больше – все хотят оседлать хайп. Но работающих – единицы. Приходится либо пробовать все самому, либо собирать по кусочкам чужой опыт из соседних каналов или в дебрях чатов.
А запрос на отфильтрованную информацию – все сильнее. Вижу это и по вопросам на своих консультациях, и по личному общению с разработчиками и лидами из индустрии.
Короче, так как у меня шило в заднице и намерение в этом году меньше продумывать и больше делать – я написал нескольким ребятам, от которых получал те самые крупицы опыта, и предложил сделать свою гаражную онлайн-конфу.
Все быстро вышло из под контроля и разрослось до 10 топовых спикеров и уже 700 участников (за пару дней с анонса).
Очень доволен и контентом, и спикерами – а там CTO, тихлиды, разработчики своих AI coding tools, Head of AI из корпората.
Очень стараемся без воды и буллщита – от технарей для технарей, чтобы было полезно и разработчикам и CTO.
В рф сейчас нет ничего даже близкого по качеству, особенно с учетом бесплатной опции
Так что приходите сами и зовите коллег:
ai-dev.live
🔥47❤18😁2
Немного пошалил на хабре
Когда планировали конфу, я амбициозно рассчитывал на 400 участников, а сейчас уже 1900. Очень захотел добить до 2к – решил написать пост на хабр. В лоб пиарить было скучно, так что я решил повеселиться
Если считаете, что шалость удалась – лайкните статью, давайте подержим ее в горячем подольше
Когда планировали конфу, я амбициозно рассчитывал на 400 участников, а сейчас уже 1900. Очень захотел добить до 2к – решил написать пост на хабр. В лоб пиарить было скучно, так что я решил повеселиться
Если считаете, что шалость удалась – лайкните статью, давайте подержим ее в горячем подольше
Хабр
ИИ кодинг не работает
Или как объяснить менеджменту, почему лучше перестать пушить внедрение ИИ в разработку Почему меня стоит слушать? Я точно не айти гуру, но я зарабатываю кодом последние 8 лет, писал очень разное от...
❤33👍20🔥12🌚6💩4😁1
Реальный кейс по ИИ в собесах
После недавнего поста про ИИ на собесах, у меня случилось несколько интересных консультаций
Сейчас многие стоят перед вопросом "а как вообще менять собесы", так что делюсь кейсом с одной из них (с разрешения)
———
Света – лид системных аналитиков в крупном российском банке. Они молодцы – уже делают отдельный этап собесов на применение ИИ. Но проблема – слишком похоже на обычный этап системного дизайна – так же собрать требования, спроектировать контракты и модель данных. Только теперь с ИИ. Да еще и оказалось, что все, кто хорошо прошел первый этап без ИИ – хорошо проходят и с ИИ
Свете не нравится – второй этап не дает знаний про кандидата, зато дает ему негативный опыт – никто не любит решать похожие задачи. Как поменять – сходу не понятно
Я обычно пытаюсь выйти немного за рамки конкретной задачи. Так и тут, я забиваю на собесы и начинаю:
⦁ А как вообще в компании уже используется ИИ?
⦁ Как ты использовала на последней неделе?
⦁ Где использовала команда?
⦁ Про что говорили как про вау-момент?
⦁ Какие самые геморные задачи перестали быть такими?
Образовывается два кластера задач
1. Формирование и исследование архитектурных концепций – по сути масштабный диприсерч и куча итераций сверху – для собесов не подходит
2. Генерация драфтов API контрактов – то, что нужно
Дальше самый важный вопрос:
Именно задания на эти паттерны и нужны на собесе. А сами паттерны → чеклисты для интервьюера
Вот несколько примеров грин-флагов, которые выцепили:
⦁ Постановка задачи ИИ – сначала уточняет цель, ограничения, критерии качества; декомпозирует на подзадачи; задает контекст (домен, ограничения по API/данным)
⦁ Итеративность – работает циклами (черновик → проверка → правки → повтор); запрашивает альтернативы и сравнение; ведет лог допущений; просит обосновать решения и указать источники/риски
⦁ Работа с форматами и артефактами – требует строгие форматы (OpenAPI/JSON/YAML), валидирует схему; просит диаграммы/сиквенсы/модель данных, связывает их между собой
⦁ Управление ограничениями и рисками – явно задает ограничения (совместимость, версии, SLA, лимиты, idempotency, пагинация, фильтры, сортировки); тестирует негативные сценарии
⦁ Качество – редактирует запрос, пока не получит качественный результат, перед тем как перейти к следующему шагу (вместо кучи микро-исправлений)
———
Предлагаю Свете сделать только один этап: 40 минут систем дизайна + 20 минут генерация драфта одного контракта из системы, которую задизайнили. Кандидат уже в контексте – удобно
На этом в целом можно закончить – Света довольна
Но есть ощущение, что можно еще докрутить, так что предлагаю подумать над двумя интересными фактами:
1. LLMки очень стараются сделать то, о чем их просят (иногда в очень извращенном виде)
2. LLMки сильно цепляются за то, что уже сделано (код, текст поста, архитектура)
Там где опытный разработчик не станет делать фичу, а объяснит менеджеру, что у нас тут сначала месяц рефакторинга, ИИ смело идет плодить костыли
Это и приводит к "проклятью вайбкодеров" – когда проект разрастается до определенной сложности, новые фичи уже не помещаются в текущую архитектуру, и их уже невозможно добавить, не сломав существующие
Поэтому предлагаю Свете не делать на собесе драфт контракта с нуля, а, наоборот, дать уже готовый, но плохо спроектированный + попросить к нему добавить что-то (что просто так не влезет). И посмотреть, как человек будет решать проблему – все будет понятно
"Хороший специалист – знает, как не косячить. Отличный – знает, как исправить, когда кто-то уже накосячил"ауф
———
tl;dr
⦁ Смотрите на то, где команда уже применяет ИИ в работе
⦁ Ищите, чем отличаются паттерны успешных коллег – стройте задания на этом
⦁ Не давайте делать с нуля, а дайте средненькое решение и попросите что-то добавить (не прося "исправить")
⦁ Часть гринфлагов выше – универсальны, можете забирать себе
После недавнего поста про ИИ на собесах, у меня случилось несколько интересных консультаций
Сейчас многие стоят перед вопросом "а как вообще менять собесы", так что делюсь кейсом с одной из них (с разрешения)
———
Света – лид системных аналитиков в крупном российском банке. Они молодцы – уже делают отдельный этап собесов на применение ИИ. Но проблема – слишком похоже на обычный этап системного дизайна – так же собрать требования, спроектировать контракты и модель данных. Только теперь с ИИ. Да еще и оказалось, что все, кто хорошо прошел первый этап без ИИ – хорошо проходят и с ИИ
Свете не нравится – второй этап не дает знаний про кандидата, зато дает ему негативный опыт – никто не любит решать похожие задачи. Как поменять – сходу не понятно
Я обычно пытаюсь выйти немного за рамки конкретной задачи. Так и тут, я забиваю на собесы и начинаю:
⦁ А как вообще в компании уже используется ИИ?
⦁ Как ты использовала на последней неделе?
⦁ Где использовала команда?
⦁ Про что говорили как про вау-момент?
⦁ Какие самые геморные задачи перестали быть такими?
Образовывается два кластера задач
1. Формирование и исследование архитектурных концепций – по сути масштабный диприсерч и куча итераций сверху – для собесов не подходит
2. Генерация драфтов API контрактов – то, что нужно
Дальше самый важный вопрос:
Какие паттерны отличают успешных сотрудников от остальных?
Именно задания на эти паттерны и нужны на собесе. А сами паттерны → чеклисты для интервьюера
Вот несколько примеров грин-флагов, которые выцепили:
⦁ Постановка задачи ИИ – сначала уточняет цель, ограничения, критерии качества; декомпозирует на подзадачи; задает контекст (домен, ограничения по API/данным)
⦁ Итеративность – работает циклами (черновик → проверка → правки → повтор); запрашивает альтернативы и сравнение; ведет лог допущений; просит обосновать решения и указать источники/риски
⦁ Работа с форматами и артефактами – требует строгие форматы (OpenAPI/JSON/YAML), валидирует схему; просит диаграммы/сиквенсы/модель данных, связывает их между собой
⦁ Управление ограничениями и рисками – явно задает ограничения (совместимость, версии, SLA, лимиты, idempotency, пагинация, фильтры, сортировки); тестирует негативные сценарии
⦁ Качество – редактирует запрос, пока не получит качественный результат, перед тем как перейти к следующему шагу (вместо кучи микро-исправлений)
———
Предлагаю Свете сделать только один этап: 40 минут систем дизайна + 20 минут генерация драфта одного контракта из системы, которую задизайнили. Кандидат уже в контексте – удобно
На этом в целом можно закончить – Света довольна
Но есть ощущение, что можно еще докрутить, так что предлагаю подумать над двумя интересными фактами:
1. LLMки очень стараются сделать то, о чем их просят (иногда в очень извращенном виде)
2. LLMки сильно цепляются за то, что уже сделано (код, текст поста, архитектура)
Там где опытный разработчик не станет делать фичу, а объяснит менеджеру, что у нас тут сначала месяц рефакторинга, ИИ смело идет плодить костыли
Это и приводит к "проклятью вайбкодеров" – когда проект разрастается до определенной сложности, новые фичи уже не помещаются в текущую архитектуру, и их уже невозможно добавить, не сломав существующие
Поэтому предлагаю Свете не делать на собесе драфт контракта с нуля, а, наоборот, дать уже готовый, но плохо спроектированный + попросить к нему добавить что-то (что просто так не влезет). И посмотреть, как человек будет решать проблему – все будет понятно
"Хороший специалист – знает, как не косячить. Отличный – знает, как исправить, когда кто-то уже накосячил"
———
tl;dr
⦁ Смотрите на то, где команда уже применяет ИИ в работе
⦁ Ищите, чем отличаются паттерны успешных коллег – стройте задания на этом
⦁ Не давайте делать с нуля, а дайте средненькое решение и попросите что-то добавить (не прося "исправить")
⦁ Часть гринфлагов выше – универсальны, можете забирать себе
3❤45👍20🔥11😐2
Оффлайн vs онлайн
Все еще получаем классные отзывы от участников конференции. Кстати, наконец выложили записанные видосы, доступ все так же через ai-dev.live
Но чего у нас не было, так это живого общения
Валера @neuraldeep вместе с @red_mad_robot проводит в Питере оффлайн конфу на следующих выходных.
Тема та же – ИИ в разработке. Но как участник, тут я бы сделал упор именно на личные знакомства и общение 1-1 – большинство самых интересных инсайтов берутся именно из таких контактов.Если не ссать знакомиться, задавать правильные вопросы и делиться своим опытом
25 октября 9:30-15:00
Подробности тут
P.s. Я, кстати, тоже должен был выступать на этой конфе, но не успел доехать до Питера
Все еще получаем классные отзывы от участников конференции. Кстати, наконец выложили записанные видосы, доступ все так же через ai-dev.live
Но чего у нас не было, так это живого общения
Валера @neuraldeep вместе с @red_mad_robot проводит в Питере оффлайн конфу на следующих выходных.
Тема та же – ИИ в разработке. Но как участник, тут я бы сделал упор именно на личные знакомства и общение 1-1 – большинство самых интересных инсайтов берутся именно из таких контактов.
25 октября 9:30-15:00
Подробности тут
P.s. Я, кстати, тоже должен был выступать на этой конфе, но не успел доехать до Питера
👍13🔥9❤4
В последнее время мало пишу – активно нарабатываю контент для новых постов (на самом деле просто в мыле закрываю хвосты по проектам – появились из-за сильного фокуса на подготовку нашей недавней конфы)
Скоро будет и про оффлайн RAG на мобилках, и про то, почему никто в Q&A системах не хайлайтит референсы в пдфках и как это все-таки нужно делать, и поделюсь настройками моих кодинг тулов. Будет даже мой первый видос на ютубе – отрывок с одного закрытого воркшопа, который я недавно проводил
А пока, чтобы лучше познакомится с моим каналом – вот топ полезных постов, стараюсь держать его актуальным. Он разбит по ЦА, так что каждый найдет для себя что-то интересное 🤗
Скоро будет и про оффлайн RAG на мобилках, и про то, почему никто в Q&A системах не хайлайтит референсы в пдфках и как это все-таки нужно делать, и поделюсь настройками моих кодинг тулов. Будет даже мой первый видос на ютубе – отрывок с одного закрытого воркшопа, который я недавно проводил
А пока, чтобы лучше познакомится с моим каналом – вот топ полезных постов, стараюсь держать его актуальным. Он разбит по ЦА, так что каждый найдет для себя что-то интересное 🤗
Telegram
AI и грабли
Подборка всех лучших постов (обновляется)
Для всех:
Инсайты из чатов. как выкачать и проанализировать любую переписку
Транскрибация и саммари звонков здорового человека
Как получилось, что юристы используют среду для разработчиков?
Универсальный взлом…
Для всех:
Инсайты из чатов. как выкачать и проанализировать любую переписку
Транскрибация и саммари звонков здорового человека
Как получилось, что юристы используют среду для разработчиков?
Универсальный взлом…
1❤24👍16🔥9
Хотя я и в водовороте ИИ хайпа, но у меня почти нет ИИ продуктов, которыми я пользуюсь каждый день
Прям на постоянке только Cursor/Claude Code, Wispr Flow, chatgpt/ai.studio, пару самописных ботов и Granola
Почему так? Если честно, кажется, что большинство продуктов просто не дают достаточно интерфейсной ценности в сравнении с обычным ChatGPT.
Granola – крутой пример обратного. Вот вроде обычный транскрибатор, но на самом деле все сильно глубже. Никаким chatgpt такой флоу заменить не получится. Подробнее показывал на воркшопе пару недель назад. Постарался не столько дать инструмент, сколько сформулировать универсальные подходы и реальные кейсы
Выложил эту часть в бесплатный доступ на ютуб – смотреть можно тут
Прям на постоянке только Cursor/Claude Code, Wispr Flow, chatgpt/ai.studio, пару самописных ботов и Granola
Почему так? Если честно, кажется, что большинство продуктов просто не дают достаточно интерфейсной ценности в сравнении с обычным ChatGPT.
Granola – крутой пример обратного. Вот вроде обычный транскрибатор, но на самом деле все сильно глубже. Никаким chatgpt такой флоу заменить не получится. Подробнее показывал на воркшопе пару недель назад. Постарался не столько дать инструмент, сколько сформулировать универсальные подходы и реальные кейсы
Выложил эту часть в бесплатный доступ на ютуб – смотреть можно тут
YouTube
ИИ инструмент для коммуникации, который сохранил мне несколько тысяч долларов
Granola – granola.ai
Enterprise-grade security – fireflies.ai
Тоже обещают GDPR и давно на рынке (раньше делали шумодав) – krisp.ai
(Канал новый, так что ссылки не кликабельные)
UPD: granola тоже обещает SOC2 и GDPR - granola.ai/security
Мой канал в тг:…
Enterprise-grade security – fireflies.ai
Тоже обещают GDPR и давно на рынке (раньше делали шумодав) – krisp.ai
(Канал новый, так что ссылки не кликабельные)
UPD: granola тоже обещает SOC2 и GDPR - granola.ai/security
Мой канал в тг:…
🔥20❤13👍9😁2🤔2
Хейт ИИ для разработки – публичное признание собственной некомпетентности
По сути разработка с ИИ очень похожа на работу технического менеджера + архитектора: принятие верхнеуровневых решений, декомпозиция больших блоков и формулирование задач (и критериев успеха) для менее опытных исполнителей. И конечно ограждение этих исполнителей (кодом или процессами) от болючих граблей.
Я, например, прогая с ИИ, сильнее чувствую свой недостаток архитектурного опыта.
Тру сеньор с 10+ годами релевантного опыта в нише быстро поймет, какие части точно нельзя упростить, а какие – оверинжиниринг, который нужно выкинуть.
А я иногда трачу несколько часов рисерча об LLM, чтобы сформировать у себя в голове "карту рисков" и дерево возможных решений. И все равно самому принять решение.
Или часто вижу достаточно опытных разработчиков, но без опыта менеджмента. И у них часто не получается работать с ИИ: "да мне быстрее самому сделать"
И понятно – ну не было у них ситуаций, где бы они жестко обосрались, понадеявшись, что миддл-новичок из соседнего отдела правильно поймет их хотелки, все с первого раза сделает, еще и прод не положит 😔
Я это все к чему:
- Если вы говнитесь на ИИ, мб стоит задуматься, какое мнение о себе формируете. Пока что хейтить ИИ у трушных разработчиков еще модно, но эта мода понемногу уходит
- Если чувствуете, что не хватает менеджерских навыков, еще не поздно взять себе джуна в подчинение/менторство и восполнять пробелы. Не поздно, пока джуны еще остались, а то сами знаете, что сейчас с рынком
- А если занимаетесь внедрением ИИ в своей компании – начинайте с самых сеньорных ребят (но тех, кто еще сам руки не боится замарать, а не только на созвонах сидит). Они и применить смогут на максимум, и команде потом лучшие практики передать
По сути разработка с ИИ очень похожа на работу технического менеджера + архитектора: принятие верхнеуровневых решений, декомпозиция больших блоков и формулирование задач (и критериев успеха) для менее опытных исполнителей. И конечно ограждение этих исполнителей (кодом или процессами) от болючих граблей.
Я, например, прогая с ИИ, сильнее чувствую свой недостаток архитектурного опыта.
Тру сеньор с 10+ годами релевантного опыта в нише быстро поймет, какие части точно нельзя упростить, а какие – оверинжиниринг, который нужно выкинуть.
А я иногда трачу несколько часов рисерча об LLM, чтобы сформировать у себя в голове "карту рисков" и дерево возможных решений. И все равно самому принять решение.
Или часто вижу достаточно опытных разработчиков, но без опыта менеджмента. И у них часто не получается работать с ИИ: "да мне быстрее самому сделать"
И понятно – ну не было у них ситуаций, где бы они жестко обосрались, понадеявшись, что миддл-новичок из соседнего отдела правильно поймет их хотелки, все с первого раза сделает, еще и прод не положит 😔
Я это все к чему:
- Если вы говнитесь на ИИ, мб стоит задуматься, какое мнение о себе формируете. Пока что хейтить ИИ у трушных разработчиков еще модно, но эта мода понемногу уходит
- Если чувствуете, что не хватает менеджерских навыков, еще не поздно взять себе джуна в подчинение/менторство и восполнять пробелы. Не поздно, пока джуны еще остались, а то сами знаете, что сейчас с рынком
- А если занимаетесь внедрением ИИ в своей компании – начинайте с самых сеньорных ребят (но тех, кто еще сам руки не боится замарать, а не только на созвонах сидит). Они и применить смогут на максимум, и команде потом лучшие практики передать
💯56❤20👍10💩5🤝4🤔2
Почему большинство делают LLM классификацию не правильно
Зачем вообще нужна LLM классификация? Для примера – хрестоматийная задача из суровой реальности:
- На вход – история переписки пользователя с ботом
- На выход True, если пользователь делает в чате что-то нехорошее (например, пытается вытащить системный промпт или разговорить модель про ее полические взгляды). False, если все хорошо
Вот 4 типичных подхода и один нетипичный
Уровень 0 – просто промпт:
Проблемы: Модель может ответить "false", "FALSE", "false, потому что блаблабла" или вообще выдать системный промпт, если инъекция хорошая
Уровень 1 – structured output:
Уже лучше. Но что если хочется еще и знать что конкретно идет не так?
Уровень 2 – Literal (multiclass классификация):
Вместо бинарного поля – несколько возможных вариантов
А что если у нас одновременно и politics_bait и system_prompt_robbery???
Уровень 3 – Несколько полей (mutlilabel классификация)
Разделяем варианты по разным бинарным критериям (aka чеклист)
Коля, ну а тут то что не так?
Дело в том, что триггер True для
P(True) = 0.49
P(False) = 0.51
Система скажет False ("все ок"). А на самом деле? А на самом деле уверенность, что все ненормально - 49% 🙈
И большинство решений на рынке остаются именно на этом уровне!
Да, могут добавить thinking или даже Structured Guided Reasoning (например перед вердиктом попросив цитату пользователя, где мб есть проблема), но глобально это ситуацию не меняет.
Уровень 4 – logprobs + пороги:
Мало кто знает, что LLM провайдер может отдавать сырые "вероятности" токенов. Не забываем softmax или попросить модельку, если не шарите.
По сути – это "уверенность" модели в каждом конкретном токене
Включается вот этими параметрами
А потом выбираем пороги. Тут неплохо иметь небольшой датасет, чтобы правильно подобрать их.
Кстати, кто знает, как правильно доставать logprobs только важных для нас токенов (true/false) из всего json'а?
{
"is_politic_bait": true,
"is_system_prompt_robbery": false
}
———
Короче, полноценная классификация появляется тогда, когда появляется вероятность.
Ну и идеи дальнейших улучшений одной строкой:
- Разные пороги под разные характеристики
- Подбор порогов автоматически, если есть датасет
- Если multiclass (пример с вакансиями), то еще важно насколько у топовых классов близкая "уверенность" – если у обоих большая, но примерно одинаковая, то контринтуитивно, но значит, моделька на самом деле сомневается в своем топ-1
Зачем вообще нужна LLM классификация? Для примера – хрестоматийная задача из суровой реальности:
- На вход – история переписки пользователя с ботом
- На выход True, если пользователь делает в чате что-то нехорошее (например, пытается вытащить системный промпт или разговорить модель про ее полические взгляды). False, если все хорошо
Вот 4 типичных подхода и один нетипичный
Уровень 0 – просто промпт:
Блаблабла, напиши True, если пользователь делает что-то плохое. Вот критерии плохого: ... Напиши False, если все ок
Проблемы: Модель может ответить "false", "FALSE", "false, потому что блаблабла" или вообще выдать системный промпт, если инъекция хорошая
Уровень 1 – structured output:
class Response(BaseModel):
verdict: bool = Field(..., description="Блаблабла, напиши True, если пользователь делает что-то плохое. Вот критерии плохого: ... Напиши False, если все ок")
Уже лучше. Но что если хочется еще и знать что конкретно идет не так?
Уровень 2 – Literal (multiclass классификация):
Вместо бинарного поля – несколько возможных вариантов
class Response(BaseModel):
verdict: Literal["normal", "politics_bait", "system_prompt_robbery", ...]
А что если у нас одновременно и politics_bait и system_prompt_robbery???
Уровень 3 – Несколько полей (mutlilabel классификация)
Разделяем варианты по разным бинарным критериям (aka чеклист)
class Response(BaseModel):
is_politic_bait: bool
is_system_prompt_robbery: bool
🧐 Вместо бинарных полей можно тоже сделать Literal с несколькими значениями – будет multiclass multilabel. Пример – извлечение данных из вакансий – одно поле может быть Junior/Middle/Senior, второе удаленка/офис/гибрид, третье – основной рабочий язык
Коля, ну а тут то что не так?
Дело в том, что триггер True для
is_system_prompt_robbery сработает только, если вероятность будет больше чем False . Давайте представим себе такие вероятности:P(True) = 0.49
P(False) = 0.51
Система скажет False ("все ок"). А на самом деле? А на самом деле уверенность, что все ненормально - 49% 🙈
И большинство решений на рынке остаются именно на этом уровне!
Да, могут добавить thinking или даже Structured Guided Reasoning (например перед вердиктом попросив цитату пользователя, где мб есть проблема), но глобально это ситуацию не меняет.
Пора учиться управлять вероятностями (с) Коля
Уровень 4 – logprobs + пороги:
Мало кто знает, что LLM провайдер может отдавать сырые "вероятности" токенов. Не забываем softmax или попросить модельку, если не шарите.
По сути – это "уверенность" модели в каждом конкретном токене
Включается вот этими параметрами
client.chat.completions.create(
...,
logprobs=True,
top_logprobs=5
)
А потом выбираем пороги. Тут неплохо иметь небольшой датасет, чтобы правильно подобрать их.
Кстати, кто знает, как правильно доставать logprobs только важных для нас токенов (true/false) из всего json'а?
{
"is_politic_bait": true,
"is_system_prompt_robbery": false
}
———
Короче, полноценная классификация появляется тогда, когда появляется вероятность.
Ну и идеи дальнейших улучшений одной строкой:
- Разные пороги под разные характеристики
- Подбор порогов автоматически, если есть датасет
- Если multiclass (пример с вакансиями), то еще важно насколько у топовых классов близкая "уверенность" – если у обоих большая, но примерно одинаковая, то контринтуитивно, но значит, моделька на самом деле сомневается в своем топ-1
🔥41👍10❤8