AI и грабли
7.21K subscribers
149 photos
19 videos
4 files
189 links
Строил HR продукты для американского бигтеха. Внедряю AI в чужой бизнес, делаю свой, косячу и пишу про подноготную

@nikolay_sheyko
Download Telegram
AI и грабли
Очень узкий лайхак, который сэкономил мне много часов ! Только для тех, кто разрабатывает свои AI системы Пишу только потому что его нет в официальной документации, и мне самому было бы полезно узнать о нем откуда-то Вводные: 1. Я сейчас активно использую…
Понял, что даже примерно не знаю имплементацию обработки pdf у гугла. Есть ли там OCR? А текст, который прям текстом в pdf лежит, он сохраняет текстом или как картинку читает? Отправил Perplexity рисерчить за меня (внизу русская версия).

Из интересного:

1. Все страницы обрабатываются как картинки (не ожидал, я думал, хотя бы часть текста передается как текст)
2. Каждая страница кодируется 258 токенами вне зависимости от плотности инфы (значит, страницы с очень плотной инфой будут разбираться с ошибками)

Вывод – берем самые плотные страницы из данных с которыми работаем и бенчмаркаемся на них, прежде чем использовать нативную поддержку pdf в google gemini

P.s. а еще это значит, что если будет проблема со сломанными шрифтами (а в реальности такое бывает), то gemini сможет прочитать такой файл, об который текстовый пайплайн сломается (пример в комментах).
🔥103🤯3
Не хочу мусолить одну и ту же тему второй день подряд (но буду)

Просто вчера google выкатил апдейт ровно по теме предыдущего поста – теперь можно контролировать детализацию "понимания" медиа файлов – сколько токенов используется для кодирования одной страницы pdf.

Правда, появилась возможность только понизить точность, а не повысить 🥲

(ладно, повысить тоже можно через zoom, но почему-то только для старых 2.0 моделек)

Все, никаких постов про разработку AI сервисов в ближайшее время
413👍4
Привет!

Я Коля и этот канал – такая же смесь разных штук, как и я сам. Прошел путь от хардкорных оптимизаций на C++ до ML инжиниринга и управления продуктом, чтобы в 2023 уйти строить "my own software company".

По пути пожил на 4х континентах, несколько лет преподавал в университе (придумав забавную систему, которую студенты назвали "коля-коинами"), 4 месяца покатался по Западной Африке автостопом, занимался сценической импровизацией и переговорными чемпионатами, сжал все свои вещи до 35л рюкзака.

Это я рассказываю, чтобы за аватаркой канала было немного реального человека со своими "приколами"


Сейчас строю свои микро-продукты (тут скоро будет ссылка на пост с провалами), веду консультации и делаю ИИ интеграции для чужого бизнеса (часто вообще не айтишного – выше ценность). Обычно хвастаюсь, что начал внедрять GPT-3 в существующий бизнес еще до выхода ChatGPT в 2023м.

Делюсь тем, что узнаю по пути. Стараюсь писать про практический опыт, ошибки и личное мнение – то, что нельзя вытащить LLMкой из новостной ленты.

Все лучшие посты тут, а вот три моих любимых:

Инсайты из чатов. как выкачать и проанализировать любую переписку

Вайб-кодинг без вайб-кодинга. Мой подход к разработке с AI спустя 2,5 года


Как я перестал откладывать

Записаться на консультацию:

@nikolay_sheyko
23🔥4018👏11
Подборка всех лучших постов (обновляется)

Для всех:


Инсайты из чатов. как выкачать и проанализировать любую переписку

Транскрибация и саммари звонков здорового человека

Как получилось, что юристы используют среду для разработчиков?

Универсальный взлом LLM и чем это грозит бизнесу

Самообман LLMками

Про разработку AI систем

Structured output, почему это база и как это использовать


Главная проблема GPT – не экспертиза, а контекст. И вот как её решить

Проектный менеджмент в AI и личный опыт: почему айтишные подходы – зло

Инсайты из моего эфира про context engineering у Влада NGI

Эмбеддинги сосут

Про разработку с AI тулами:

Вайб-кодинг без вайб-кодинга. Мой подход к разработке с AI спустя 2,5 года

Мой топ постов из других каналов о разработке с AI инструментами

Как хостить свои поделки, не превращаясь в девопса

Как дизайнить собесы под использование ИИ

Личное:

Выбирать скуку


Как я перестал откладывать: магия «задач-черновиков»

Быть фаундером стартапа – плохой способ заниматься инновациями
🔥108👍5
Что использовать для evaluation или как я очень удивился

Тут Ринат отлично объясняет зачем нужен evaluation в AI продуктах – нормально построенный механизм проверки качества позволяет избежать таких ситуаций:

Недавно мы подкручивали промпт в нашем проекте. После изменений система стала работать лучше, но пользователи начали жаловаться. Поправили там, но сломалось где-то ещё.


Про это в целом давно все говорят (см выше скрин твиттера президента OpenAI от 2023), но про реализацию на практике – почти ничего не вижу. Значит надо писать.

Я строил eval пайплайны для LLMок еще в конце 22го, до выхода chatgpt, продолжаю строить их и сейчас для клиентских проектов. Обычно я даже не начинаю работать над проектом, пока нет данных, и не начинаю разрабатывать саму LLM-систему, пока не сделал систему проверки качества.

По сути есть два основных варианта, как делать:

1. Писать полностью свой кастомный код конкретно под задачу
2. Использовать какие-то готовые инструменты типа OpenAI Evals, который уже встречался тут

Я всегда делал сам, индивидуально под задачу. У такого подхода есть два серьезных минуса:

1. Нужно строить логику хранения и сравнения разных экспериментов. При чем, нужно, чтобы по данным эксперимента можно было точно восстановить исходный код и данные (решаю привязкой эксперимента к хешу гит коммита)

2. Нужно настраивать визуализацию. С разными отображениями. Сравнение ключевых метрик между экспериментами. Табличка по конкретному эксперименту. Фильтрации по каким-нибудь подмножествам. Графики.

В целом, я готов платить этой доп сложностью за гибкость настройки под конкретный кейс. Но тут мне пришел запрос помочь с выбором инструмента и построением eval системы. Кажется, нужно начать продавать такую услугу, хаха

———

Я полез смотреть, что сейчас есть на рынке и ужаснулся. Расплодилось очень много модных инструментов для LLM-evaluation. Они все позволяют достаточно гибко настраивать проверку по каждому отдельному объекту (см картинку OpenAI Evals), но при этом суммарная метрика по всем объектам из датасета – это всегда просто усреднение. То есть – тупо accuracy. Я напишу отдельный пост, почему это почти всегда плохая метрика, а сейчас важен сам факт:

Мы не можем настраивать суммарную для всего датасета метрику, а должны довольствоваться просто accuracy.

P.s. а ко мне пришли с задачей multi-label классификации, и мы хотим f-score с увеличенным весом recall


Я не понимаю, почему так, если честно. Видимо, рынок evals еще в очень незрелом состоянии. Или просто все, кто разбирается в ML метриках, тоже идут по первому пути и считают все сами.

Итог

Справедливости ради, я все-таки нашел инструмент, где можно самому задавать общую метрику – это wandb.com, который исторически как раз был инструментом для классических ML и DS, но запустил у себя новый продукт weave для LLM evals.

Это прям рекомендация, особенно на python. На js/ts нужного функционала сильно меньше – там f-score уже не получится сделать.

А вы на какой стороне?

❤️ – использовать готовые инструменты
👍 – кастомить под задачу
😈 – еvals не нужны, просто вручную смотришь, что норм работает
👍247😈7🔥3
Самые частые микро-советы с консультаций:

XML > json (для данных)

XML sections > Markdown headers (для промптов в целом)

Gemini flesh lite > Embeddings search

Gemini > whisper

Порядок экспериментов:
1. Без ризонинга 2. Общий ризонинг 3. Кастомный ризонинг

Кастомный ризонинг делать через поля в structured_output. 1 поле – 1 шаг.

Бейзлайн решение на закрытой мощной дорогой модели – верхняя оценка возможностей. Релевантно, даже если решение нужно делать на открытых моделях

Ваншот запрос (с интерактивным редактированием и перезапуском) > чат с кучей коррекционных сообщений

"Before start, ask questions to clarify what remains unclear/ambiguous. Then wait for my response, then proceed with the initial task"
33🔥18🤝3
AI делает опытных разработчиков менее продуктивными

Нашумевшая статья, про то, что использование ИИ снижает эффективность разработки. А самое интересное, что участники исследования думают, что производительность только увеличилась. Шах и мат, ИИ-энтузиасты.

Ладно, на самом деле я не хотел писать про эту статью, но до сих пор вижу, как ее расшаривают даже в профильных ИИ чатах, так что пора развенчивать мифы.

У этой статьи сразу несколько серьезных проблем:

1. Выборка всего из 16 участников. 16, КАРЛ.

2. Пишут, что было 250 задач. Но если вчитаться, оказывается, что это не на участника, а всего. То есть 16 участников по 16 задач. Если посмотреть на графики в аппендиксе, то видно, что у результатов нет статзначимости 🤥

3. Никто из них не имел серьезного опыта с ИИ-инструментами для разработки. Кривая входа в больших проектах в кодинг с ИИ – очень крутая. Это лендос на lovable собрать за выходные может любой дизайнер/продакт. Но большой проект – это всегда сложная инженерия с кучей нюансов

4. Результаты оценивали в среднем, хотя в контексте предыдущего пункта полезнее всего смотреть на верхней перцентиль – на сколько увеличилась эффективность эффективность у тех, у кого получилось найти эффективные паттерны использования.

———

Удивительно (нет), но у 4 разработчиков эффективность выросла (у двух – почти x2), причем лучший результат был у того, кто уже немного пользовался Cursor до эксперимента. Что только подтверждает связь между умением пользоваться инструментом и производительностью (вау?).

По хорошему, такой эксперимент нужно делать на разработчиках, которые уже прошли какие-то курсы с best practices по использованию ИИ в разработке, когда они уже знают эффективные паттерны использования, а не пытаются методом тыка их найти прямо во время эксперимента.

Кстати, если хотите провести такое обучение у себя в компании, напишите мне, хочу пилот сделать.

Ну а у авторов статьи получилось красиво хайпануть, еще и нигде не скрывать инфу (СМИ все равно сами вытащат "нужное"). Кстати, очень похожим образом в свое время получилось хайпануть у DeepSeek. Остается только учиться
👍159😱6👏3
Кстати, Влад из комментов к посту выше позвал меня на эфир в понедельник (21.07 в 19:00).

Будем разбираться, что за новый хайповый термин Context Engineer, чем это отличается от ушедшего в небытие Prompt Engineer. А самое главное, зачем управление контекстом нужно всем, кто много использует ИИ и как избежать основные грабли.

Кодить уметь не нужно. Целевая аудитория – все активные пользователи ИИ. Бонусом будет мини воркшоп от меня, как без программирования делать динамические сборщики контекста.

Чтобы не пропустить, можно добавить ивент в календарик тут
👍174🔥2
Неделю назад я был на эфире у Влада про Context Engineering. Наконец у меня дошли руки выписать несколько мини-тейков, чтобы не смотреть все два часа (некоторые достаточно противоречивые, как мы любим):

* Контекст-инжиниринг – часть промпт-инжиниринга. Просто теперь все важнее не только правильно собирать слова в инструкции, но и подтягивать релевантные данные извне.

Примеры:
* Дамп дневника → понимает личный контекст → лучше ответы на вопросы про отношения или зоны личностного роста, ошибки мышления
* Информация с созвонов компании → точнее ответы на бизнес вопросы
* Выгрузка тг канала → перенимает стиль текста и зоны фокуса при анализе инфы
* Документация → корректное использование библиотек (кстати, context7 MCP, кто еще не)


* Можно легко перегрузить контекстом. Аналогия – когда на разработчика вывалили весь контекст, который был в голове у менеджера, и теперь разработчик парализован, потому что постоянно вылетает в мысли про смежные зоны и ограничения.

На техническом уровне это объясняется слабым навыком моделей фильтровать неважную часть контекста – "если в условиях это зачем-то дано, значит, мне нужно это как-то использовать"


* Отсюда берется полезный паттерн: отдельно чат – "менеджер", где много контекста, и идет основное размышление и планирование, а отдельно чаты – "исполнители", которые занимаются узкой задачей, владея только нужным для конкретной задачи контекстом

* Другой полезный паттерн – стараться решить задачу в один-два запроса вместо того, чтобы бесконечно корректировать в режиме долгого диалога. То есть, если не получается, то менять исходный запрос, а не писать новые сообщения-корректировки.

Спекулятивное объяснение: в режиме диалога каждая фраза юзера – отдельная инструкция и модели сложно собрать их в одну непротиворечивую, да еще и не зацикливаться на подтверждении своих прошлых ответов.


* Модели хуже обращают внимание на контекст в середине. Одно из решений – просить модель повторить релевантный блок, прежде, чем генерировать финальный ответ. Так, она сама поместит его в конец своей "оперативной памяти", где внимание не проседает

* Просите модель собрать для вас инструменты для сбора данных. На эфире мы попробовали два способа, актуальных для неразработчиков (не требуют деплоя):
1. Самодостаточный html файл, который открывается в любом браузере
2. JS код, который вставляем в браузерную консоль.

* Есть еще варианты всяких агентов, где деплой уже настроен (Lovable, Perplexity Labs, Manus, Google Apps) или вообще ChatGPT Interpreter, который сам напишет код, сам его запустит.
615🔥11👍8
Там Цукерберг разрешил использовать ИИ на собесах

Если уже бигтех добавляет это в свои процессы, значит рынок уже достаточно созрел для AI coding, дальше все будет только ускорятся.

Но это все лирика, теперь к практике – как проводить такие собесы у вас в компании.

Кстати, я работал над дизайном технических собеседований в CodeSignal – компании, которая делает собесы-as-a-service (кстати, с детищем Цука в списке основных клиентов). Повыпендривался, теперь можно и к делу


По сути, главный вопрос – а как сделать так, чтобы ИИ не был читерством?

Смотрим, чем опытный разработчик, который владеет ИИ-инструментами отличается от вайб-кодера, который вслепую командует ИИ-агентом, не разбираясь в коде.

С чем у вайб-кодеров проблемы?

1. Добавить фичу, которая "не укладывается" в существующую архитектуру (где опытный разработчик проактивно потребует рефакторинга)

2. Сформулировать правила для ИИ-агента с учетом специфики проекта

3. Писать безопасный код (сколько уже было новостей про захардкоженные секреты, а это только вершина айсберга)

4. Понять, что сама задача поставлена некорректно

Мы приходим к тому, в чем заключается профессионализм – умение самому подумать про промежуточные задачи, а не слепо следовать "промту" интервьюера/тимлида/задачи в тасктрекере.


Критерии задач?

Получается, задачи на собеседовании должны быть сформулированы так, что если напрямую отправить их в LLM, то ее унесет "в локальные оптимумы" в сторону от хорошего решения.

И наоборот, чтобы сильное решение можно было получить, только подумав про неявно заданные условия, уточнить их и сделать определенное количество промежуточных шагов, корректируя результат.

Потому что именно так и выглядит настоящая работа. И наконец-то собесы станут ближе к реальности. Прогресс не остановить!

Бонус:

Лучшим стартом для такого будет взять челленджи из обучающего туториала Kiro – очень крутого примера обучения кодингу с ИИ на существующей кодовой базе.

Если хочется, чтобы кто-то докрутил под вашу компанию, пишите мне в личку, я такие штуки люблю и умею
🔥186👍5🤝1
AI tools для массмаркета и AI tools для топ-5% про-пользователей – два разных мира.

Как микроволновка и кухня шеф-повара (вот такие аналогии сегодня).

AI микроволновка

- получаешь результат почти сразу после регистрации

- не нужны доменные знания (собирай приложения в lovable без знаний программирования)

- почти нельзя корректировать систему в процессе

- много шаблонов, мало настроек

- работает для стандартных кейсов

Примеры: Lovable, Granola, Canvas, Gamma для презенташек, ElevenLabs, LogoAI


AI кухня шеф-повара

- крутая кривая обучения

- часто работа в режиме копайлота

- видишь промежуточные результаты

- очень гибкая настройка

- плотная интеграция с существующими инструментам

- выходит за рамки шаблонных решений

Примеры: Claude Code, AI фичи в adobe, Harvey для юристов, Canva, ElevenLabs


Есть интересный нюанс. Внимательные читатели заметили, что некоторые продукты попадают в обе категории.

Это продукты-гибриды, где массмаркет часть – это просто большая воронка в PRO версию. При этом, с т.з. паттернов использования, эта лид-магнит часть – принципиально другой продукт.

Интересно, будет ли рынок еще сильнее делиться на эти две категории, или они наоборот схлопнутся. Обычно специализация побеждает, так что я ставлю на первое
🔥18👍3👀21🤡1
AI делает опытных разработчиков менее более продуктивными

В прошлой части я "прожаривал" нашумевшую статью, где "эффективность разработчиков ниже на 20% чем без ИИ, пока им кажется, что она на 20% выше".

Прожаривал в основном за:
- Ничтожно маленькую выборку – 16 человек (!)
- Разработчики не использовали ИИ инструменты до эксперимента – им не проводят обучение, но уже замеряют результаты.
- Смотрят на среднее, а не на верхний перцентиль, где самое интересное
- Манипуляции визуализацией данных


А сегодня расскажу про гораздо более серьезное исследование от ребят из Стэнфорда (кстати, русскоязычных). Вот главные тезисы оттуда:

Критика существующих подходов к измерению эффективности

- Нельзя опираться на число коммитов/PR – AI может делать больше маленьких коммитов, сами они могут быть забагованными, а багфиксы – это еще больше коммитов 📈

- Нельзя полагаться на субъективные опросы. Выявили корреляцию всего в 0.17 между ощущаемой и реальной продуктивностью 🥴

- Большая часть измерений делается на задачах, которые делаются с нуля (greenfield). А реальная работа – почти всегда с "унаследованным" кодом и сложными зависимостями (brownfield)

Это серьезная заявочка, интересно, как они сами решили эти проблемы (и что там получилось в результате)

- Взяли код 100,000+ инженеров, 600+ компаний, миллиарды строк кода (!)
- 80% данных — из приватных репозиториев
- Оценивают суть изменений в коде для каждого коммита

Погодите-ка, как это они оценивают изменения в миллиардах строк кода? (на самом деле – самая красивая часть исследования)

- Взяли 15 опытных разрабов (11-25 лет опыта, сеньоры, CTO, VP)

- Прогнали эту экспертную комиссию на 70 коммитах, честно считая внутриклассовую корреляцию (если эксперты сами не могут договориться – это шум)

- Это 70 коммитов отбирали так, чтобы их распределение совпадало со общим

- Определили "объективные" метрики (время, сложность) и обучили модельку на этих 70 коммитах угадывать "оценки" панели экспертов.

- Потом полный анализ миллиардов строк кода – уже автоматически этой моделью.

Интересно, что в отличие от классического сторипоинт-подхода "предсказания" сложности заранее, тут эксперты уже смотрели на выполненную работу и оценивают сложность постфактум


Ну так и что, уже можно увольнять разработчиков?

- "Сырое" улучшение аж на 35-40%

- Но и количество багов и правок тоже растет (скрин 1).

- За вычетом налога на переделку, получается 15-20% чистого выигрыша

- Сильно влияет сложность задач, тип проекта (greenfield/brownfield, скрин 2) и язык (на Haskel/Cobol/Elixir лучше пока без ИИ)

- Сильно падают результаты после 10к строк кода

Чего мне не хватило

- Инфы про то, насколько знакомы разработчики с ИИ инструментами, но ее и не возможно было получить на таком датасете

- Анализа верхнего перцентиля. Если в среднем получается прирост на 15 процентов, то есть ощущение, что топ 5% точно умеет делать x2 и интересно узнать как

———

Но даже так видно, что прирост есть даже в среднем по больнице, не говоря про тех, кто выработал оптимальные подходы. Так что уже можно скидывать этот пост всем критикам AI coding

P.s. Ну и посмотрите на оптимизм на последнем скрине: 10k → 1m (!!!)
Для энтерпрайзов – особенно актуально

Оригинал: видео, статья
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥6👏3🙏1💯1
Фильтрация вместо саммаризации

Постоянно замечаю – есть большой кусок информации (например, пдфка с документацией, выгрузка переписки или текст закона), читать все не хочется, хочется как-то в сжатом виде пробежаться. Просим LLM сделать саммари.

Классика.

Что получаем? Общие слова, потеря важных деталей, смещение фокуса в сторону от того, что важно мне. Еще может что-то переврать в процессе "сжатия"

Вместо этого, все чаще прошу не сжимать информацию, а отфильтровать самую важную и показать как есть.

Проанализируй этот документ и вытащи 20 самых важных абзацев/строк, таких, что прочитав их я смогу сформировать 80% понимания исходного документа. Используй принцип MECE (mutually exclusive collectively exhaustive). 
Выпиши их в исходном виде, так, чтобы их можно было корректно использовать для поиска в документе (символы совпадали на 100%)
6🔥5588👍74❤‍🔥2👏1
Оставаться "посередине" обычно полезнее по жизни, чем уходить в крайности

Знать разные точки зрения, их плюсы/минусы, области применения > пользоваться какой-то одной догмой.

Но в паблике это не работает. Никому не интересно потреблять усредненное мнение, где "все сложно, правы и те и другие". За интересным, и как автор, и как читатель – идешь к крайностям, поближе к границе.

Одна из крайностей, в которую мне нравится уходить в теме ИИ это:

RAG на эмбеддингах – мусор, не используйте их, а используйте старый дедовский ...


А что именно использовать – мы обсудим с ребятами из @r77_ai. Давно за ними слежу и восхищаюсь, как они строят корпоративные контакты и до каких нестандартных проектов дотягиваются (как вам Анализ поведения свинок для выявления идеального момента для их оплодотворения?)

Четверг, 14 августа, 15-00. Добавляйте напоминалку в календарь, делитесь с теми, кому может быть интересно
7🔥25🤝4
Мнение без ставки стоит 0

Можно говорить что угодно. Чтобы набрать подписчиков к себе в канал, выглядеть умным, оправдать свою картину мира. Но какая у этих слов цена?

Иногда ставка – репутация ("я тут эксперт, и если ошибаюсь – хреновый").

Иногда – деньги ("готов сделать в сроки X за сумму Y")

Иногда – это уже проигранная ставка в прошлом ("мы уже пробовали это, вот что вышло")

Вот и у нас в комментариях столкновение мнений вылилось в ставку – бескорыстный пиар одного из каналов. А вы, читатели, можете в этом поучаствовать.

Для этого нужно прочитать два варианта и выбрать, какие 5 строк лучше доносят смысл. Исходный текст – лонгрид Вастрика "Манифест среднего человека" (ссылка в комментах, для участия в опросе читать не обязательно)

Вариант1:

- «Дилетанты» vs «Диды» Каждый раз, когда я пишу новый лонгрид, передо мной встаёт дилемма: Я могу написать поверхностную колонку, где буду избегать любых технических деталей, зато навалю целую кучу мотивационной шняги про «машинное будущее» и «десять модных нейросетей этого лета».

- Получается полотно из бессвязных модных названий, ненужных деталей и случайных теорем, разделённых словами «очевидно, что» и «блять, ну короче», а в конце всё равно всё скатывается в локальный срач про «табы vs пробелы».

- Став сеньором уже в 23 года (как положено), он умеет хитро превращать JSON в красивые
формочки и помнит наизусть Cracking the Coding Interview, ведь полгода заучивал его вместо
работы, за что заслуженно хочет свои 300кк/сек.

- Рекрутер же всласть ебанулся на своих курсах по соционической йоге, видит везде лишь
«unbiased» метрики и KPI, и даже не попытается вникнуть в предметную область чтобы понять как строить команды и нанимать нормальных людей.

- У всей этой истории есть один существенный недостаток: Когда приходит время действовать, «оставаться посередине» — самое херовое, что можно делать. Чтобы запустить проект, набрать голоса на выборах, да даже просто написать этот сраный пост необходимо было НЕ оставаться посередине.


Вариант 2:

- Оставайся посередине.
Всеми силами держи дистанцию между крайностями.
Не видишь другой крайности — значит ты слишком близко к первой.

- Та середина, которая действительно нужна в жизни — когда тебя ненавидят с обеих сторон

- Правило: встретил мнение — найди противоположное

- Когда приходит время действовать, «оставаться посередине» — самое херовое, что можно делать

- Для себя — оставайтесь посередине. Для других — будьте самым отбитым психопатом, которого они только встречали
🔥53🥰1
Кто побеждает?
Anonymous Poll
42%
Вариант 1
58%
Вариант 2