bogdanisssimo | Unsorted

Telegram-канал bogdanisssimo - BOGDANISSSIMO

3817

Subscribe to a channel

BOGDANISSSIMO

#OCRBench LLM-as-a-Judge: Error Analysis & Checklist

В книге Валеры и Арсения по ML System Design мы писали главу Error Analysis, по мотивам которой была написана моя статья на Хабре "Почему анализ ошибок – это начало разработки ML системы, а не её конец", а также создана одноимённая задача в Симуляторе DS

Когда у нас появляется какой либо способ оценки – кросс-валидация, offline эксперименты, LLM бенчмарк – мы получаем возможность закапываться в ошибки. Где пользователь не делает целевое действие? Где самое сильное расхождение с правильным ответом?

В главе книги мы описывали с каких сторон можно подходить к анализу ошибок, например, можно глазками смотреть на best cases, worst cases – искать, что в них общего, какие паттерны. Также можно мануально выделять группы/кластеры и смотреть перфоманс на ней

Сейчас у нас есть LLM, поэтому вместо рутинной мануальной работы:

1. Можно кидать целые логи / датасеты (с разбором ошибок от LLM-судьи с предыдущего этапа) – в LLM, и просить кластеризовать типовые проблемы

2. Затем можно под каждую из них завести бинарный флаг "есть / нету" и включить это как чеклист ответа LLM-судьи. Для судьи я использую модель от OpenAI где SO (structured output) работает стабильно, поэтому проблем с парсингом ответа несмотря на преумножение числа полей - не возникает

3. В конце прогона агрегируем по каждой модели и получаем "след" её проблем на нашей задаче

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

По сути как взять градиент по бенчмарку и делать back propagation 🤓

Ваш @bogdanisssimo

Читать полностью…

BOGDANISSSIMO

Завтра проходит онлайн-конференция karpov.cоnf от karpov.courses о том, как выстраивать data-driven культуру в компании. Конференция будет полезна как владельцам бизнеса и менеджерам – так и дата аналитикам, дата инженерам, ML инженерам (которым важно в правильный момент сказать на идею руководителя "нет")

Скажем, не всегда осмысленно с точки зрения времени и денег заводить ML-сервисы в компании, где ещё не выстроена data-driven культура и не настроена базовая аналитика, пайплайны данных и у бизнеса нет понимания как проводить A/B тесты и как превращать данные в деньги

(у меня самого в карьере был подобный опыт, думаю, заслуживает отдельного поста)

Регистрироваться здесь: /channel/KarpovCourses/2108

Читать полностью…

BOGDANISSSIMO

Вопрос от подписчика:

Кстати расскажешь как-нибудь какими тулзами аналитическими пользуешься?


Стек стандартный:

1. Аналитика/тренды в родном кабинете App Store Connect

2. Amplitude для ивентов внутри приложения (in-app воронка, ивенты, сессии пользователей, популярность фичей)

3. Adapty - для revenue management (конверсии, ARPU, ARPPU, выручка, MRR и остальное)

4. База данных в Supabase + своя кастомная аналитика в Datalens поверх. В Cursor настроен Supabase MCP, регулярно пользуюсь

В o3 последние дни активно кидаю. Помню раньше кидал код в ChatGPT, затем появился Cursor. Думаю в этом году решится вопрос с "Cursor для аналитики", где кроме самостоятельного написания SQL будет в целом коннект с широким пулом аналитических инструментов и ты можешь задавать вопросы как к аналитическому отделу, не переходя самостоятельно в отдельный сервис

Видел в YC пару батчей назад стартап на эту тему

Читать полностью…

BOGDANISSSIMO

Теория ограничений (теория узких мест) – это примерно тоже самое, что делать back propagation но в масштабах всего бизнеса. Вместо слоёв у тебя этапы воронки:

/channel/bogdanisssimo/1026

Вместо нейронов – компоненты продукта и маркетингового пайплайна (этапы воронки), вместо синапсов - конверсии. На каждом цикле оптимизации ты делаешь оценку в каком направлении что нужно поменять, чтобы больше максимизировать чистую прибыль / LTV:CAC или другую метрику

Как и в deep learning, ты можешь делать как forward pass и backward pass

Например, деньги и юнит-экономика – мы можем "отнормировать" на любом этапе: ты знаешь сколько денег тратишь - можешь оценить CPM (cost per mile, цена за 1000 просмотров) → CPI (cost per install) → CPT (cost per trial) → CAC (customer acquisiton cost, стоимость привлечения 1 платящего пользователя)

Так и, в обратную сторону, backward pass: LTV (Customer LifeTime Value) ← Trial LTV (сколько чистой прибыли принесёт 1 триал) ← Install LTV (сколько денег принесёт 1 инсталл) ← RPM/PPM (revenue per mile / profit per mile, выручка/прибыль на 1000 просмотров)

В случае если канал привлечения один – соотношения (например Install LTV : CPI, LTV : CAC, RPM : CPM) не поменяются. Если несколько каналов (например разбивка по гео) или несколько продуктов (например iOS vs Android) здесь уже начинают размазываться – и можно принимать решение, куда перенаправить усилия, ресурсы

Читать полностью…

BOGDANISSSIMO

Вайб – ваш бесконечный источник приколов и анекдотов на каждый день

https://onelink.to/get-vibe

Читать полностью…

BOGDANISSSIMO

https://addyo.substack.com/p/vibe-coding-is-not-an-excuse-for

Читать полностью…

BOGDANISSSIMO

Скука – необходимое условие для продуктивной работы, для фокуса


И это придумал не я, а Cal Newport, автор бестселлеров "Deep Work", "Digital Minimalism", "So good they can't ignore you" и других: https://www.youtube.com/watch?v=h5w5XYvTAlU

Да, у меня (внешне) предсказуемый ритм жизни, зато в работе каждый день, каждую неделю новые челленжи. Я кайфую от своей работы. Внешняя среда не отвлекает от внутренней динамики

У многих наоборот: внешне нужна вечная стимуляция, потому что у них однотипная ненавистная им работа. Им нужны выходные, чтобы *отдыхать от работы*. Они не счастливы от работы, они не нашли своё призвание. А я нашёл

Мне кажется в 30-40, когда у тебя уже не будет столько времени и энергии, как в 20, ты скорее будешь сожалеть не о том, что мало навеселился, а о том, что не был достаточно амбициозным, когда на это были внутренние ресурсы

Кажется, если живёшь один раз, классно задаться целью реализовать свой потенциал полностью, я не прав?

Читать полностью…

BOGDANISSSIMO

Когда прошёл игру: https://onelink.to/get-vibe 🤨

Читать полностью…

BOGDANISSSIMO

Демка приложения, апрель 2025: onelink.to/get-vibe

Читать полностью…

BOGDANISSSIMO

Чтобы раз и навсегда закрыть вопрос, сколько букв "r" в слове strawberry

Читать полностью…

BOGDANISSSIMO

Когда начинаешь изучать вопрос торговых марок, бренда, IP…

Благо с 2018 lenovo не имеет права на этот трейдмарк

Читать полностью…

BOGDANISSSIMO

Мы набираем 2М просмотров в неделю и я всё ещё считаю, что не понимаю как работает маркетинг

💀💀💀

Читать полностью…

BOGDANISSSIMO

В Узбекском AppStore вышел на первое, в РФ пока на втором

Но кстати, и в чарты узбекского AppStore в категории Lifestyle увидел попал, топ-141 (в комментах по другим странам скинул)

https://apps.apple.com/app/vibe-ai/id6553989941

Вообще, эта неделя была топ-2 по скачиваниям, топ-1 неделя была когда в тиктоке 5 миллионов просмотров на 1 видосе набрали

Читать полностью…

BOGDANISSSIMO

Если вы работаете с документами, Mistral OCR реально SOTA
https://docs.mistral.ai/capabilities/document/

Читать полностью…

BOGDANISSSIMO

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

Читать полностью…

BOGDANISSSIMO

😈 2,000,000+ ответов 😈

onelink.to/get-vibe

Читать полностью…

BOGDANISSSIMO

Одна ошибка и ты ошибся

Читать полностью…

BOGDANISSSIMO

Как подключу o3 к MCP всех аналитических тулзов, можно уже и не работать 🤣

Читать полностью…

BOGDANISSSIMO

Чуть освежил onboarding screen

Уже в AppStore: onelink.to/get-vibe

Читать полностью…

BOGDANISSSIMO

Это была рекордная неделя по скачиваниям, триалам, MRR, активным подпискам

Буквально всё втупую по теории ограничений:

• мало просмотров? → организовываешь контент in-house или платное промо, набираешь миллионы просмотров

• теперь много просмотров, но мало скачиваний? → работаешь качеством интеграции, четким call-to-action, воронкой в AppStore

• много инсталлов, просел ARPU (средняя выручка на инсталл) → обновляешь онбординг / пейволл / ценообразование / фиксишь баги на входе

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

Скачать приложение: https://onelink.to/get-vibe

Читать полностью…

BOGDANISSSIMO

Мне написали ребята которые пилят стартап, который как раз помогает создавать эвалы. Судя по ленду, у ребят хорошее чувство вкуса и крутой продукт. Я точно буду пробовать

https://inferscope.tech/

Читать полностью…

BOGDANISSSIMO

https://youtu.be/e4xDdCoMrT0?si=oTkGxC-MUo4N2YG5&t=390

Каждый раз, когда встречаешь кого-то в чём-то лучше тебя, есть 2 типа реакции:

А. Обесценить, нивелировать достижения (эго спасено, нет нужды менять себя)

B. Задаться вопросом: какие уроки я могу из этого извлечь? как это может помочь мне стать лучше?

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

Я предпочитаю видеть в своём окружении только людей, кто (даже когда это эмоционально сложно) сознательно выбирать второй вариант. Вместо сравнений, оправданий и обесцениваний – вечный вопрос "чему я могу научиться?". Такие люди впитывают новые знания и навыки как губка, быстро эволюционируют и делают level up с каждым годом

Growth mindset

Читать полностью…

BOGDANISSSIMO

#OCRBench Как строить бенчмарк с LLM-as-a-Judge?

Решил пойти по стопам Рината (@llm_under_hood) и периодически публиковать результаты тех или иных внутренних бенчмарков по разным моделям. Например вот как можно сделать бенчмарк по OCR (Optical Character Recognition), в нашем случае парсинг переписки со скриншота

Для тех, кто не знает, я делаю AI Dating Copilot – приложение, которое по скриншоту переписки или профиля подсказывает, что написать. Короткое демо iOS приложения в действии:

/channel/bogdanisssimo/1899

Вообще, разработка эвалов (систем оценки тех или иных задач вашего AI-сервиса) – одно из ключевых занятий при создании AI продуктов. Без них у тебя единственный способ принятия решений – это "по ощущениям". Мы конечно же пропагандируем Data-Driven Dating, поэтому сегодня мы говорим о том, как строить свои бенчмарки

Я понимаю, что этим постом я буквально делаю подарок коллегам по цеху, но если они не догадались в 2025 использовать LLM для OCR, это говорит о том, что они не очень заботятся о качестве продукта для пользователя и совсем не экспериментируют с пайплайном. Тем более, я почти год назад об этом писал сам (см. «Мечтает ли GPT-4o о сегментации картинок»). В конечном итоге оцениваю, что для моей аудитории это даст х100 больше value, чем преимуществ конкурентам

Значит, как я варил свой OCR Benchmark:

1. Берем 100-200 скриншотов переписок от пользователей, особенно нас интересуют сложные кейсы, где классический парсер (TextRecognition + if-else) или LLM часто ошибаются

2. Берем *довольно сложный* промпт для парсинга диалога, со всеми деталями (включая кто на какое сообщение ответил / поставил реакцию / какой длины голосовое и т.д.)

3. Пусть у нас есть какая-то система, которая работает сейчас. Мы через неё прогоняем все кейсы, затем глазками смотрим каждый скриншот, ручками меняем output до идеального. Это наши ground truth. Где-то будут ошибки в отправителях. Где-то будут пропущены какие-то куски сообщений. Где-то будет лишний мусор. Все это мануально вычищается

4. Прогоняем для нужной LLM все скриншоты

5. Теперь самое интересное: как сравнивать предикты и expected output? Год назад (когда ещё не было GPT-4o-mini и Claude 3 Haiku была не такой уж стабильной) я бы это делал по старинке через расстояние Левенштейна. Какие есть проблемы у этого подхода?

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


Поэтому намного стабильнее, практичнее и проще использовать легковесную LLM-судью, которой мы даём кейс, ожидаемый результат и результат модели и просим на основе нашего подробного чеклиста (наши критерии) сравнить, оценить от 0 до 100 + дать фидбек по замеченным ошибкам (которые можно будет использовать для отладки, см. «анализ ошибок в ML системах»).

Внизу прикрепляю результаты замеров OCR Bench по разным LLM из свеже вышедших



Разумеется ровно такой же подход распространяется на очень широкий спектр кейсов. По сути это сводит оценку очень сложных выхлопов моделей к подобию тривиальных unit-тестов из разработки. В большинстве (менее технических) задач LLM-оценщик не заведётся с первого раза и понадобится большое количество итераций вместе с экспертом по выравниванию оценок LLM-оценщика и эксперта

Подробнее про LLM-as-a-judge можно почитать здесь:

- https://www.evidentlyai.com/llm-guide/llm-as-a-judge
- https://www.confident-ai.com/blog/why-llm-as-a-judge-is-the-best-llm-evaluation-method
- https://huggingface.co/learn/cookbook/en/llm_judge

Ваш любимый @bogdanisssimo, буду благодарен репостам друзьям и в ваши каналы

P.S. Какие модели посоветуете ещё прогнать? Какие тулзы для эвалов вы юзаете?

Читать полностью…

BOGDANISSSIMO

Кладбище приложений

Иногда я гуляю по AppStore и вижу десятки, если не сотни, приложений в своей нише

«Последее обновление было 7 месяцев назад». Нулевая выручка в AppsFigures/SensorTower: А ведь каждое из этой сотни – это как минимум десятки или сотни человеко-часов, потраченных на разработку; возможно тысячи долларов. 95% из них это copy cats. А сколько ещё сверху не дожило и до AppStore…

Реальная конкуренция из этих сотен – это всего 3-5 команд

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

Заыайбкодить болванку с загрузкой скринов, gpt api вызовом и пейволлом, завести юрлицо (особенно если ты не из РФ) – действительно нетрудно. Но реальная работа с этого лишь начинается, а не коннчается

Подавляющее большинство фаундеров сдаётся слишком рано, пройдя меньше 1-5% пути

Или, как говорят в Y Combinator:

Большинство стартапов умирает от суицида, не от убийства


Ваш @bogdanisssimo

Читать полностью…

BOGDANISSSIMO

Запустили Gemini 2.5 Flash в превью, по ценам – в 10 раз дешевле o4-mini. Должно быть сносно для написания кода, где хочется подешевле, картинок и длинного контекста.

Читать полностью…

BOGDANISSSIMO

У OpenAI вышел классный гайд для бизнеса, на тему того как внедрять GenAI в бизнесс процессы:
https://openai.com/business/guides-and-resources/

Внутри 3 части:
– АИ на предприятии: Опыт семи передовых компаний
– Практическое руководство по созданию агентов ИИ: Что агенты АИ могут сделать для ваших сотрудников?
– Определение и масштабирование сценариев применения АИ: На чём концентрируются компании, первыми внедрившие АИ

Я полистал и там внутри много вещей на которых лично я набивал шишки в практике с GenAI, очень рекомендую корпоративным менеджерам

Читать полностью…

BOGDANISSSIMO

Про вайбкодинг

Я сжег уже больше 100М токенов в Claude Code, потому имею моральное право поделиться опытом про вайбкодинг.

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

Не надо применять:
- нетривиальный алгоритмический код (сломается в корнеркейсе - задолбаешься дебажить);
- свежие библиотеки (даже если заставлять читать документацию из интернета, в среднем получается плохо);
- метапрограммирование, написание фреймворков, дизайн API между компонентами;
- security-sensitive задачи.

Надо применять:
- +1 задачи (посмотри, как сделано здесь, и сделай по аналогии);
- все некритичные задачи в незнакомом домене (набросать фронтенд);
- типичный IO layer (в основном хендлеры);
- задачи, в которых вся “сложность” - знать 100500 команд и флагов API (например, aws cli).

2. Вайбкодинг несет неочевидный оверхед в сеньорной команде. Раньше если человек видел код и не понимал его с первой попытки, применялась презумпция качественного кода: если оно написано и закоммичено умным человеком, то, наверное, в этом смысл, надо перечитать и вдуматься. Сейчас иногда приходится переспрашивать “в этом есть какой-то нетривиальный замысел или ты просто нагенерил говна?

3. Всегда нужно останавливаться и рефакторить - что-то руками, что-то и вайбкодом (“остановись и посмотри, что ты нахуевертил”). Вайбкодинг приводит к куче лишних сущностей, надо вовремя подрезать.

4. Если диалог идет не в ту сторону с нескольких итераций, нужно всегда начинать сначала, его уже не спасти. Если несколько попыткок стабильно скатываются в дичь, несмотря на добавление деталей в изначальный промпт, см. пункт 1.

5. Главный кайф не только в кодогенерации, а именно в активном агентском режиме - кидаешь промпт типа “посмотри на CI, почему упал такой-то PR и найди проблему” или “я задеплоил сервис этим терраформом, посмотри все логи и разберись, почему хелсчеки не проходят”.

6. Для эффективной работы нужно дописывать правила в CLAUDE.md (.cursorrules и так далее), подключать релевантные MCP и в целом анализировать, где оно косячит. Например, вот кусок моего глобал конфига:

Python style guide:
1) when catching exceptions, use logger.exception("message"), not logger.error(str(e)).
2) do not use mocks unless explicitly asked!
3) ensure types are correct, e.g. def hello(name: str = None) is WRONG, def hello(name: str | None = None) is correct.
4) use logger = logging.getLogger(__name__) when declaring a logger
5) prefer match + case over if + elif + else
6) using hasattr is typically a sign of bad design!


Делитесь своими лучшими практиками в комментах! Просто ворчать, что вайбкодинг - херня для кретинов, можно тоже там.

Читать полностью…

BOGDANISSSIMO

Google Is Winning on Every AI Front (Score: 153+ in 4 hours)

Link: https://readhacker.news/s/6sCAV
Comments: https://readhacker.news/c/6sCAV

Читать полностью…

BOGDANISSSIMO

Вайб топ-2 в Российском и Узбекском AppStore по ключевому слову “vibe” 🤩

https://apps.apple.com/app/vibe-ai/id6553989941

Читать полностью…

BOGDANISSSIMO

Vibe Coding: Как писать код в 10 раз быстрее с помощью AI

📅 14 апреля | 🕔 17:00 по московскому времени

🎙 Спикеры:
- Богдан Печёнкин — фаундер Vibe AI и автор канала @bogdanisssimo
- Александр Лыков — к.ф.-м.н., академический руководитель Школы Высшей Математики

Что тебя ждёт:
Живые примеры, как сейчас пишется код
Вехи внедрения AI в разработку (GitHub Copilot → ChatGPT/DeepSeek → Cursor → Lovable/Bolt/Replit)
Современный Vibe coding, как сейчас выглядит рынок инструментов
Как нужно поменять разработчикам и менеджерам подход к разработке / майндсет / процесс и с чего начать переход

📍 Записывайся прямо сейчас по ссылке

Читать полностью…
Subscribe to a channel