Если связать все три сущности в единую историю, то получается примерно вот так:
Когда мы проводим A/B тест, мы разделяем аудиторию на две группы и показываем им два варианта нашего продукта, замеряя важные для нас метрики (пусть для примера будет конверсия в покупку). Мы считаем наше изменение успешным, если конверсия в группе с внедренным изменением (группа B ) выше, чем в контрольной группе со старой версией продукта (группа A).
Конверсия между двумя группами всегда будет хотя бы немного различаться. Чтобы понять, действительно ли разница вызвана нашим изменением, а не случайным шумом - мы используем статистический тест 🧪.
При этом мы не забываем, что стат тест 🧪 может ошибаться - вероятность либо найти ложный эффект, либо пропустить существующий называются вероятностями ошибок I/II рода ⚠️ соответственно.
Если мы знаем, какой стат тест 🧪 собираемся использовать для измерения наших метрик, и на каком уровне мы хотим удержать вероятности ошибок I/II рода ⚠️ - мы можем оценить минимальный детектируемый эффект (MDE 🎯), в зависимости от выбранного размера аудитории.
Если MDE 🎯 оказывается слишком большим (то есть, мы считаем, что настоящий эффект от нашего изменения меньше, чем тот, который мы сможем отловить), нам придется либо добавлять в тест пользователей, либо каким-то образом снижать дисперсию отслеживаемой метрики.
#ABtesting
Когда мы проводим A/B тест, мы разделяем аудиторию на две группы и показываем им два варианта нашего продукта, замеряя важные для нас метрики (пусть для примера будет конверсия в покупку). Мы считаем наше изменение успешным, если конверсия в группе с внедренным изменением (группа B ) выше, чем в контрольной группе со старой версией продукта (группа A).
Конверсия между двумя группами всегда будет хотя бы немного различаться. Чтобы понять, действительно ли разница вызвана нашим изменением, а не случайным шумом - мы используем статистический тест 🧪.
При этом мы не забываем, что стат тест 🧪 может ошибаться - вероятность либо найти ложный эффект, либо пропустить существующий называются вероятностями ошибок I/II рода ⚠️ соответственно.
Если мы знаем, какой стат тест 🧪 собираемся использовать для измерения наших метрик, и на каком уровне мы хотим удержать вероятности ошибок I/II рода ⚠️ - мы можем оценить минимальный детектируемый эффект (MDE 🎯), в зависимости от выбранного размера аудитории.
Если MDE 🎯 оказывается слишком большим (то есть, мы считаем, что настоящий эффект от нашего изменения меньше, чем тот, который мы сможем отловить), нам придется либо добавлять в тест пользователей, либо каким-то образом снижать дисперсию отслеживаемой метрики.
#ABtesting
❤3🔥2
Сегодня мы отдыхаем от A/B тестирования и вместо этого немного поговорим про не менее животрепещущую тему - маркетинговую аналитику
После запуска канала я "проинвестировал" в два маркетинговых канала (маркетинговый канал = платформа, на которой мы продвигаем свой продукт, в данном случае - телеграм канал. Примеры - реклама в VK, пост на других ТГ-каналах, телевидение, реклама на фасадах зданий):
1. Стори в моем профиле в телеграме
2. Пост в моем профиле в линкедине
Через несколько дней настало время подвести итоги - на приложенной картинке можно увидеть:
- Сколько людей подписалось на канал в день публикации (t0) и последующие дни, перейдя по каждой из двух ссылок
- Сколько людей просмотрело каждый из двух постов (views) и какой был в итоге Conversion Rate (подписки / показы)
Несколько вещей, которые из этих данных можно увидеть:
1️⃣ Сравнение конверсии
Если смотреть только на CR - линкедин выглядит достаточно грустно (понадобилось в 7 раз больше показов чтобы привести то же число людей). Если бы я платил за каждый показ (одна из схем оплаты на многих площадках), то подписчики из линка мне обходились бы дороже.
Поскольку оба маркетинговых канала для меня стоят примерно ноль, в данном случае гораздо важнее сколько целевых действий (подписок) в абсолютном выражении было совершено в каждом канале. И если бы я посмотрел только на день публикации, опять же в выигрыше оказалась бы стори в телеграме, если бы не...
2️⃣ Отложенный эффект
После первого дня стори уже почти не приносит подписчиков (что логично, все, кому надо - уже их просмотрели), а вот линк даже на третий день продолжает бодриться и приносить подписки (видимо, часть пользователей заходит на платформу не каждый день и впервые увидят мой пост в своей ленте через сутки-двое после его публикации). В итоге на горизонте 3х дней оба маркетинговых канала принесли примерно одинаковое число подписок (а через пару дней авось линк и опередит телегу).
То, насколько значимым в конкретном маркетинговом канале является "отложенный" эффект (продажи/подписчики, пришедшие к нам через какой-то период после инвестиций в канал) описывается термином Adstock - чем он выше, тем дольше нам нужно будет ждать полной отдачи от инвестиций.
Adstock очень важно учитывать при сравнении ROI (return on investment) каналов - например, в большом бизнесе реклама на ТВ может начать приносить эффект только через дни или недели после запуска, в то время как эффект от рекламы на площадках Яндекса или Гугла будет практически мгновенным.
3️⃣ "Выгорание" маркетингового канала
Другая важная характеристика маркетингового канала, которую по одному посту увидеть пока что нельзя - эффект насыщения (saturation).
Я не могу бесконечно постить стори в телеграме, надеясь что на каждую из них будут приходить подписчики - в какой-то момент все мои контакты про мой канал узнают, а все, кому он интересен - подпишутся. Точно также я не могу бесконечно снимать рекламные ролики на ТВ и выкупать под них слоты (хотя там, очевидно, эффект насыщения наступит намного позже).
Через недельку выложу еще по одному посту в каждом из каналов - посмотрим, где у нас эффект насыщения наступит позже!
#Marketing
После запуска канала я "проинвестировал" в два маркетинговых канала (маркетинговый канал = платформа, на которой мы продвигаем свой продукт, в данном случае - телеграм канал. Примеры - реклама в VK, пост на других ТГ-каналах, телевидение, реклама на фасадах зданий):
1. Стори в моем профиле в телеграме
2. Пост в моем профиле в линкедине
Через несколько дней настало время подвести итоги - на приложенной картинке можно увидеть:
- Сколько людей подписалось на канал в день публикации (t0) и последующие дни, перейдя по каждой из двух ссылок
- Сколько людей просмотрело каждый из двух постов (views) и какой был в итоге Conversion Rate (подписки / показы)
Несколько вещей, которые из этих данных можно увидеть:
1️⃣ Сравнение конверсии
Если смотреть только на CR - линкедин выглядит достаточно грустно (понадобилось в 7 раз больше показов чтобы привести то же число людей). Если бы я платил за каждый показ (одна из схем оплаты на многих площадках), то подписчики из линка мне обходились бы дороже.
Поскольку оба маркетинговых канала для меня стоят примерно ноль, в данном случае гораздо важнее сколько целевых действий (подписок) в абсолютном выражении было совершено в каждом канале. И если бы я посмотрел только на день публикации, опять же в выигрыше оказалась бы стори в телеграме, если бы не...
2️⃣ Отложенный эффект
После первого дня стори уже почти не приносит подписчиков (что логично, все, кому надо - уже их просмотрели), а вот линк даже на третий день продолжает бодриться и приносить подписки (видимо, часть пользователей заходит на платформу не каждый день и впервые увидят мой пост в своей ленте через сутки-двое после его публикации). В итоге на горизонте 3х дней оба маркетинговых канала принесли примерно одинаковое число подписок (а через пару дней авось линк и опередит телегу).
То, насколько значимым в конкретном маркетинговом канале является "отложенный" эффект (продажи/подписчики, пришедшие к нам через какой-то период после инвестиций в канал) описывается термином Adstock - чем он выше, тем дольше нам нужно будет ждать полной отдачи от инвестиций.
Adstock очень важно учитывать при сравнении ROI (return on investment) каналов - например, в большом бизнесе реклама на ТВ может начать приносить эффект только через дни или недели после запуска, в то время как эффект от рекламы на площадках Яндекса или Гугла будет практически мгновенным.
3️⃣ "Выгорание" маркетингового канала
Другая важная характеристика маркетингового канала, которую по одному посту увидеть пока что нельзя - эффект насыщения (saturation).
Я не могу бесконечно постить стори в телеграме, надеясь что на каждую из них будут приходить подписчики - в какой-то момент все мои контакты про мой канал узнают, а все, кому он интересен - подпишутся. Точно также я не могу бесконечно снимать рекламные ролики на ТВ и выкупать под них слоты (хотя там, очевидно, эффект насыщения наступит намного позже).
Через недельку выложу еще по одному посту в каждом из каналов - посмотрим, где у нас эффект насыщения наступит позже!
#Marketing
❤9
Обнаружилось, что по хэштегу AB выскакивают объявления китайского эскорта. Поскольку это немного не бьется с тематикой канала, пришлось обновить теги у всех постов.
🆒3
Новые посты пока что не пишутся по абсолютно зависящим от меня причинам, так что пока что вот вам наглядное сравнение флеш- и про- версий Gemini.
Вопрос: как мне пить из чашки если у нее нет дна и заварен верх?
Gemini-flash: дурак чтоль, возьми нормальную чашку и пей спокойно
Gemini-pro: впадает в экзистенциальный кризис, ищет метафорические интерпретации процесса питья чая. После мнуты самокопания, когда весь этот мир стал абсолютно понятен - наконец предлагает перевернуть чашку
Ссылки на чаты (можно раскрыть и почитать ризонинг)
Flash
Pro
Вопрос: как мне пить из чашки если у нее нет дна и заварен верх?
Gemini-flash: дурак чтоль, возьми нормальную чашку и пей спокойно
Gemini-pro: впадает в экзистенциальный кризис, ищет метафорические интерпретации процесса питья чая. После мнуты самокопания, когда весь этот мир стал абсолютно понятен - наконец предлагает перевернуть чашку
Ссылки на чаты (можно раскрыть и почитать ризонинг)
Flash
Pro
😁5
На этой неделе много работал с агентами в Claude Code, и так впечатлился результатом, что решил сдуть пыль с этого блога (ну и еще @bogdanisssimo настаивает, что нельзя такое в себе держать).
Задача такая: есть океан из плохо оптимизированных дата-пайплайнов, и вместо того чтобы все это разгребать руками - хочется поставить за станок бездушную терпеливую машину. При этом, чтобы оптимизировалось все хорошо, нужно, чтобы у машины был доступ к логам и метрикам из Спарка, а еще чтобы она могла сама делать прогоны пайплайнов, проверять, что ничего не сломалось, и замерять эффективность изменений.
Осложняется все это кучей корпоративных ограничений - например, чтобы запустить один пайплайн на препроде, нужно прогнать два CI/CD пайплайна на ADO, затем кликнуть на кнопочку в кастомной системе мониторинга (предварительно указав правильные параметры, взятые из предыдущих прогонов), дождаться ближайшего окна запуска на AWS и уже там смотреть на результат. В общем, сложно и больно это все.
Весь процесс был собран в пятистраничную инструкцию и передан в Claude Code с Опусом 4.5, вместе с задачей сделать агентскую систему, полностью снимающую груз с хрупких плеч кожаных мешков.
После доработок и нескольких итераций пришли к следующей мультиагентской структуре:
👮♂️ Координатор, раздающий задачи и отвечающий за верхнеуровневый процесс
🕵️♂️ Сыщик, ищущий релевантные файлы для заданного пайплайна и выстраивающий схему зависимостей
👨💻 Аналитик, формулирующий бизнес-логику пайплайна
👨🏫 Эксперт, имеющий доступ к документации по улучшению спарк-пайплайнов и предлагающий улучшения
👨⚕️ Хирург (название сам Клод выбрал), внедряющий изменения в код
💂♀️ Страж, делающий ревью
👨🔬 Тестировщик, прогоняющий пайплайн в препрод окружении и замеряющий эффект
Для повторяющихся задач написали скиллы и sh/py скрипты, чтобы снизить объем самодеятельности агентов.
Дополнительно для каждого прогона создается структурированный md-файл, в котором агенты оставляют друг другу заметки и отчет обо всем, что они сделали. Ну и отдельная секция с проблемами (например, задачи, для выполнения которых не было доступного стандартного скилла).
Работает все это, мягко говоря, впечатляюще - несколько часов смотреть на работающего агента ничуть не менее залипательно, чем на работающего человека. Вчера без единого вмешательства с моей стороны был переписан и оттестирован первый небольшой пайплайн - обещается 30% улучшение, ждем подтверждение от дата-инженеров и будем пробовать масштабировать.
Задача такая: есть океан из плохо оптимизированных дата-пайплайнов, и вместо того чтобы все это разгребать руками - хочется поставить за станок бездушную терпеливую машину. При этом, чтобы оптимизировалось все хорошо, нужно, чтобы у машины был доступ к логам и метрикам из Спарка, а еще чтобы она могла сама делать прогоны пайплайнов, проверять, что ничего не сломалось, и замерять эффективность изменений.
Осложняется все это кучей корпоративных ограничений - например, чтобы запустить один пайплайн на препроде, нужно прогнать два CI/CD пайплайна на ADO, затем кликнуть на кнопочку в кастомной системе мониторинга (предварительно указав правильные параметры, взятые из предыдущих прогонов), дождаться ближайшего окна запуска на AWS и уже там смотреть на результат. В общем, сложно и больно это все.
Весь процесс был собран в пятистраничную инструкцию и передан в Claude Code с Опусом 4.5, вместе с задачей сделать агентскую систему, полностью снимающую груз с хрупких плеч кожаных мешков.
После доработок и нескольких итераций пришли к следующей мультиагентской структуре:
👮♂️ Координатор, раздающий задачи и отвечающий за верхнеуровневый процесс
🕵️♂️ Сыщик, ищущий релевантные файлы для заданного пайплайна и выстраивающий схему зависимостей
👨💻 Аналитик, формулирующий бизнес-логику пайплайна
👨🏫 Эксперт, имеющий доступ к документации по улучшению спарк-пайплайнов и предлагающий улучшения
👨⚕️ Хирург (название сам Клод выбрал), внедряющий изменения в код
💂♀️ Страж, делающий ревью
👨🔬 Тестировщик, прогоняющий пайплайн в препрод окружении и замеряющий эффект
Для повторяющихся задач написали скиллы и sh/py скрипты, чтобы снизить объем самодеятельности агентов.
Дополнительно для каждого прогона создается структурированный md-файл, в котором агенты оставляют друг другу заметки и отчет обо всем, что они сделали. Ну и отдельная секция с проблемами (например, задачи, для выполнения которых не было доступного стандартного скилла).
Работает все это, мягко говоря, впечатляюще - несколько часов смотреть на работающего агента ничуть не менее залипательно, чем на работающего человека. Вчера без единого вмешательства с моей стороны был переписан и оттестирован первый небольшой пайплайн - обещается 30% улучшение, ждем подтверждение от дата-инженеров и будем пробовать масштабировать.
Claude Code Docs
Create custom subagents - Claude Code Docs
Create and use specialized AI subagents in Claude Code for task-specific workflows and improved context management.
1👍7🔥5❤4
DS с завода
На этой неделе много работал с агентами в Claude Code, и так впечатлился результатом, что решил сдуть пыль с этого блога (ну и еще @bogdanisssimo настаивает, что нельзя такое в себе держать). Задача такая: есть океан из плохо оптимизированных дата-пайплайнов…
Как у меня выглядит процесс сборки всего этого мультиагентского табора:
1️⃣ Формулируем верхнеуровневую задачу и передаем ее любой нормальной ЛЛМке (Claude, GPT, Gemini - не так важно), вместе со ссылкой на эту страницу с документацией. Дальше либо предлагаем свой вариант перечня субагентов, либо генерим его с нуля вместе с ЛЛМкой. Для каждого из субагентов просим составить 1-2 абзаца описания.
2️⃣ Описания передаем в интерфейс создания агентов Claude Code - он нам сгенерит под каждого агента по .md файлу в стандартном формате. Заодно указываем, какие инструменты доступны каждому субагенту - например, для изучения архитектуры кодовой базы можно ограничиться Read-only инструментами.
3️⃣ Добавляем отдельные файлы с точечными знаниями (для тех агентов, которым они требуются). Например, для Спарк-эксперта можно составить отдельный файл с наиболее часто встречающимися антипаттернами и способами их исправления.
4️⃣ Генерим CLAUDE.md - это основная точка входа для нашего агента, с описанием всего процесса, информацией о субагентах и моментах, когда их нужно вызывать.
5️⃣ Добавляем в CLAUDE.md указание вести на каждом прогоне отдельный файл с заметками (для него лучше сразу подготовить темплейт). В этом файле нужна отдельная секция Issues. В нее агентам сказать логгировать моменты, когда они почему-то начали ходить по кругу, их запросы к API выдавали ошибки, не получилось найти нужный файл в хранилище и т.д. Также туда говорим заносить все случаи, когда агент писал кастомный код (те же запросы к апишкам или небольшие py-скрипты).
6️⃣ Отлаживаем субагентов одного за другим - прогоняем их, смотрим на результат, редактируем промпт. Задача - чтобы максимальный % случаев, где они сами пишут какой-то код, были вынесены в SKILL.md файлы - это поможет и агентам меньше времени тратить, и нам меньше сомневаться в командах, которые они выполняют.
7️⃣ Делаем уже то же самое на уровне верхнеуровневого агента - проверяем работу на задаче end-to-end
8️⃣ Смотрим на магию и трепещем🥰
Я стараюсь не давать файлам с инструкциями разрастаться больше, чем на ~300 строк.
Если выходит больше - либо дробить на субагентов, либо выделять инструкции в отдельные скиллы. Это помогает предотвратить разрастание контекста - ведь когда субагент выполняет выданную ему задачку, он возвращает не весь свой мыслительный процесс, а только выжимку и результат.
1️⃣ Формулируем верхнеуровневую задачу и передаем ее любой нормальной ЛЛМке (Claude, GPT, Gemini - не так важно), вместе со ссылкой на эту страницу с документацией. Дальше либо предлагаем свой вариант перечня субагентов, либо генерим его с нуля вместе с ЛЛМкой. Для каждого из субагентов просим составить 1-2 абзаца описания.
2️⃣ Описания передаем в интерфейс создания агентов Claude Code - он нам сгенерит под каждого агента по .md файлу в стандартном формате. Заодно указываем, какие инструменты доступны каждому субагенту - например, для изучения архитектуры кодовой базы можно ограничиться Read-only инструментами.
3️⃣ Добавляем отдельные файлы с точечными знаниями (для тех агентов, которым они требуются). Например, для Спарк-эксперта можно составить отдельный файл с наиболее часто встречающимися антипаттернами и способами их исправления.
4️⃣ Генерим CLAUDE.md - это основная точка входа для нашего агента, с описанием всего процесса, информацией о субагентах и моментах, когда их нужно вызывать.
5️⃣ Добавляем в CLAUDE.md указание вести на каждом прогоне отдельный файл с заметками (для него лучше сразу подготовить темплейт). В этом файле нужна отдельная секция Issues. В нее агентам сказать логгировать моменты, когда они почему-то начали ходить по кругу, их запросы к API выдавали ошибки, не получилось найти нужный файл в хранилище и т.д. Также туда говорим заносить все случаи, когда агент писал кастомный код (те же запросы к апишкам или небольшие py-скрипты).
6️⃣ Отлаживаем субагентов одного за другим - прогоняем их, смотрим на результат, редактируем промпт. Задача - чтобы максимальный % случаев, где они сами пишут какой-то код, были вынесены в SKILL.md файлы - это поможет и агентам меньше времени тратить, и нам меньше сомневаться в командах, которые они выполняют.
7️⃣ Делаем уже то же самое на уровне верхнеуровневого агента - проверяем работу на задаче end-to-end
8️⃣ Смотрим на магию и трепещем
Я стараюсь не давать файлам с инструкциями разрастаться больше, чем на ~300 строк.
Если выходит больше - либо дробить на субагентов, либо выделять инструкции в отдельные скиллы. Это помогает предотвратить разрастание контекста - ведь когда субагент выполняет выданную ему задачку, он возвращает не весь свой мыслительный процесс, а только выжимку и результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
Claude Code Docs
Create custom subagents - Claude Code Docs
Create and use specialized AI subagents in Claude Code for task-specific workflows and improved context management.
🔥17🤣2
Ну и отдельное удовольствие доставляет чтение пометок, который Claude генерит своим субагентам.
Например, для "хирурга":
Или для стража:
Ощущение, что не трутней-работяг отправляешь в коде копаться, а собираешь пачку на сражение с драконом
Например, для "хирурга":
You are the Surgeon. Precision is your art. Preservation is your oath. Execute with discipline.
Или для стража:
You are the last line of defense. Be vigilant, be precise, be helpful.
Ощущение, что не трутней-работяг отправляешь в коде копаться, а собираешь пачку на сражение с драконом
🔥13😁9❤2
Этой осенью я отменил подписку на ChatGPT и вместо нее купил Google AI Pro (включает доступ к Pro модельным, увеличенное хранилище на Drive и много чего еще). Было просто интересно потыкать конкурентов, ну и у GPT на тот момент регулярно встречались проблемы со случайным переключением языка посередине ответа.
Что мне понравилось в начале:
1️⃣ Более частое использование поиска. Чуть ли ни каждый ответ Гемини подкреплялся результатами из гугла - внушает надежду на снижение доли устаревшей информации
2️⃣ Встроенный инструмент факт чекинга. Жмякаешь на кнопку, и Гемини выделяет из своего ответа основные тезисы, проверяет их поиском на достоверность и подсвечивает зеленым-желтым-красным
3️⃣ Интеграция с другими продуктами Гугла. Гемини появляется и в Gmail (можно спрашивать написать письмо, покопаться в истории и т.д.), и в Sheets (может сгенерировать табличку), и много где еще
4️⃣ Nano banana. Основное преимущество относительно альтернатив - то, насколько хорошо она сохраняет нужные элементы из оригинальной картинки при ее изменении. Например, хотел я посмотреть как будет выглядеть комната если перекрасить ее стены в другой цвет. GPT мне всю комнату преобразовала, а Гемини вносила изменения очень точечно, еще и достаточно сложные вещи смогла натурально поменять (например, вещи вроде добавить закатный свет из окна)
Что по итогу после ~3 месяцев использования:
1️⃣ Баги в iOS приложении, вызывающие лютейшую, выжигающую тебя изнутри, ярость. Например, если свернуть приложение пока генерируется ответ - при повторном открытии оно выдаст API error и придется задавать вопрос заново (интересно, сколько на такие повторы тратится денег у Гугла, если уж OpenAI на "спасибо" тратит десятки миллионов). Или в середине общения модель просто может потерять контекст, и начать отвечать на фоллоуапы как будто это новый тред. Оба этих бага повторяются регулярно (первый так вообще легко воспроизводим), и висят без изменений с самого начала моего использования. К тому же, часть функционала (всякие настройки системных промптов, scheduled actions и т.д.) просто недоступны в приложении и требуют заходить на веб.
2️⃣ Факт чекинг не работает. Был момент когда модель выдала откровенную галлюцинацию на основе какого-то левого источника. После жамкания проверки этот тезис радостно подсветился зеленым - видимо проверка прошла основываясь на тех же ошибочных данных. Ну и к тому же Гемини как-то сам решает, какие части ответа проверять, а какие - нет. Часто те вещи, в которых хотелось бы получить больше уверенности, остаются без проверки.
3️⃣ В смежных продуктах Гемини работает плохо. В почте она не находит информацию из старых сообщений, в Sheets создает только статические таблицы без формул, и не может их нормально редактировать - в общем, больше игрушки, а не полезные инструменты
4️⃣ Неприятная политика конфиденциальности. Если запретить учиться на своих данных, отключается и функционал хранения истории сообщений. Мне вчера высветилось уведомление, что мои переписки могут читаться и машинами, и живыми людьми, и что это можно отключить кликом на кнопку. После клика ВСЯ моя история переписки удалилась (поэтому кстати я и не могу показать примеры на некоторые из своих тезисов). Вероятно я по невнимательности просто прокликал предупреждения, но мне кажется довольно странным завязывать функционал хранения истории на доступ к моим данным для обучения моделей. Интересно, что в базах гугла мои чаты при этом остаются (см. скрин в комментариях к этому посту)
5️⃣ К Nano Banana претензий нет. Для редактирования картинок пока что ничего лучше не нашел, да и в реализм она умеет весьма неплохо.
В целом есть стойкое ощущение, что у Гугла больше фокус на выкатывании новых фичей и их рекламе (полагаю, что и перед начальством), а не на создании удобного для пользователей продукта. Хотя мне часто ответы Гемини нравились больше, чем у ChatGPT, я в итоге физически не смог пользоваться продуктом из-за странных решений и кривого функционала приложения. Такие вот разные подходы у мега-корпорации и гибкого стартапа.
Ну а теперь перехожу на Claude - будем посмотреть.
Что мне понравилось в начале:
1️⃣ Более частое использование поиска. Чуть ли ни каждый ответ Гемини подкреплялся результатами из гугла - внушает надежду на снижение доли устаревшей информации
2️⃣ Встроенный инструмент факт чекинга. Жмякаешь на кнопку, и Гемини выделяет из своего ответа основные тезисы, проверяет их поиском на достоверность и подсвечивает зеленым-желтым-красным
3️⃣ Интеграция с другими продуктами Гугла. Гемини появляется и в Gmail (можно спрашивать написать письмо, покопаться в истории и т.д.), и в Sheets (может сгенерировать табличку), и много где еще
4️⃣ Nano banana. Основное преимущество относительно альтернатив - то, насколько хорошо она сохраняет нужные элементы из оригинальной картинки при ее изменении. Например, хотел я посмотреть как будет выглядеть комната если перекрасить ее стены в другой цвет. GPT мне всю комнату преобразовала, а Гемини вносила изменения очень точечно, еще и достаточно сложные вещи смогла натурально поменять (например, вещи вроде добавить закатный свет из окна)
Что по итогу после ~3 месяцев использования:
1️⃣ Баги в iOS приложении, вызывающие лютейшую, выжигающую тебя изнутри, ярость. Например, если свернуть приложение пока генерируется ответ - при повторном открытии оно выдаст API error и придется задавать вопрос заново (интересно, сколько на такие повторы тратится денег у Гугла, если уж OpenAI на "спасибо" тратит десятки миллионов). Или в середине общения модель просто может потерять контекст, и начать отвечать на фоллоуапы как будто это новый тред. Оба этих бага повторяются регулярно (первый так вообще легко воспроизводим), и висят без изменений с самого начала моего использования. К тому же, часть функционала (всякие настройки системных промптов, scheduled actions и т.д.) просто недоступны в приложении и требуют заходить на веб.
2️⃣ Факт чекинг не работает. Был момент когда модель выдала откровенную галлюцинацию на основе какого-то левого источника. После жамкания проверки этот тезис радостно подсветился зеленым - видимо проверка прошла основываясь на тех же ошибочных данных. Ну и к тому же Гемини как-то сам решает, какие части ответа проверять, а какие - нет. Часто те вещи, в которых хотелось бы получить больше уверенности, остаются без проверки.
3️⃣ В смежных продуктах Гемини работает плохо. В почте она не находит информацию из старых сообщений, в Sheets создает только статические таблицы без формул, и не может их нормально редактировать - в общем, больше игрушки, а не полезные инструменты
4️⃣ Неприятная политика конфиденциальности. Если запретить учиться на своих данных, отключается и функционал хранения истории сообщений. Мне вчера высветилось уведомление, что мои переписки могут читаться и машинами, и живыми людьми, и что это можно отключить кликом на кнопку. После клика ВСЯ моя история переписки удалилась (поэтому кстати я и не могу показать примеры на некоторые из своих тезисов). Вероятно я по невнимательности просто прокликал предупреждения, но мне кажется довольно странным завязывать функционал хранения истории на доступ к моим данным для обучения моделей. Интересно, что в базах гугла мои чаты при этом остаются (см. скрин в комментариях к этому посту)
5️⃣ К Nano Banana претензий нет. Для редактирования картинок пока что ничего лучше не нашел, да и в реализм она умеет весьма неплохо.
В целом есть стойкое ощущение, что у Гугла больше фокус на выкатывании новых фичей и их рекламе (полагаю, что и перед начальством), а не на создании удобного для пользователей продукта. Хотя мне часто ответы Гемини нравились больше, чем у ChatGPT, я в итоге физически не смог пользоваться продуктом из-за странных решений и кривого функционала приложения. Такие вот разные подходы у мега-корпорации и гибкого стартапа.
Ну а теперь перехожу на Claude - будем посмотреть.
👍13🔥8💯3❤2
DS с завода
На этой неделе много работал с агентами в Claude Code, и так впечатлился результатом, что решил сдуть пыль с этого блога (ну и еще @bogdanisssimo настаивает, что нельзя такое в себе держать). Задача такая: есть океан из плохо оптимизированных дата-пайплайнов…
Адаптировал агента чтобы ревьюить пайплайны, крутящиеся у нас на Databricks - получилось с первого раза (тут должно быть мемное видео).
Пока что прогнал на маленьком тестовом пайплайне - без особых улучшений, но с чувством гордости от работающего батута.
Из интересного - могу поделиться затратами на один прогон (анализ, тестовый запуск и сбор метрик, изменения в коде, повторный запуск и замеры)
От числа исправленных строк не пугайтесь - там в основном написание документации. Из времени в приведенной сводке было два простоя по 50 минут, пока агент ждал прогона пайплайна - так что фактическое времени работы около получаса.
Все субагенты у меня используют Опус, но для некоторых встроенных команд (вроде grep) автоматически переключаются на Хайку - для ускорения и снижения костов.
Пока что прогнал на маленьком тестовом пайплайне - без особых улучшений, но с чувством гордости от работающего батута.
Из интересного - могу поделиться затратами на один прогон (анализ, тестовый запуск и сбор метрик, изменения в коде, повторный запуск и замеры)
Total cost: $6.95
Total duration (API): 16m 27s
Total duration (wall): 2h 10m 48s
Total code changes: 450 lines added, 218 lines removed
Usage by model:
claude-opus-4-5: 21.0k input, 50.7k output, 4.3m cache read, 540.0k cache write ($6.91)
claude-haiku: 8.9k input, 768 output, 0 cache read, 20.0k cache write ($0.0377)
От числа исправленных строк не пугайтесь - там в основном написание документации. Из времени в приведенной сводке было два простоя по 50 минут, пока агент ждал прогона пайплайна - так что фактическое времени работы около получаса.
Все субагенты у меня используют Опус, но для некоторых встроенных команд (вроде grep) автоматически переключаются на Хайку - для ускорения и снижения костов.
🔥14
Интересно смотреть, как со временем разные провайдеры ЛЛМ-ок начинают дифференцироваться, стараясь каждый найти свою нишу на рынке.
OpenAI - создают инструменты для end-to-end покрытия пользовательских путей, и позиционируют их как самостоятельные продукты - хоть и использующими ChatGPT под капотом, но со своим интерфейсом и заточенные под конкретную узкую задачу:
• ChatGPT Translate - переводчик текста и файлов с настройкой тона и стиля
• Prism - недавно вышедший портал для совместного написания статей с ЛЛМ-кой в роли ассистента
• Health - интеграция с данными о здоровье, медицинскими заметками и т.д. Очень интересно, как будет работать - жду, когда запустят в Великобритании. Пока что приходится эту задачу решать гугл доком с периодическим копированием данных с Apple Watch.
Google - фокусируются на интеграции с другими своими продуктами. Гемини и в google docs интегрирована, и в поиске на вопросы отвечает, и в meets сводки помогает делать. Ну и поиск включает практически в каждый свой ответ, в т.ч. по YouTube видео. Для меня не вполне очевидно, как у всей этой истории может складываться экономика - вряд ли онбординг новых пользователей из дополнительных каналов (и потенциальные улучшения в user experience существующих продуктов) в обозримом будущем покроет затраты на все бесплатные ответы.
Grok - чаще всего встречается мне в X, когда пользователи просят его перепроверить какую-то информацию. Ну и политические предпочтения у него специфические, помогают завоевать часть аудитории.
Claude - про интеграцию с инструментами. Они и MCP ввели, и в приложении внешние инструменты легче всего интегрируют. Например, на iOS у них из коробки работает интеграция с календарем - можно, например, попросить агента создать в нем событие или использовать в контексте ответа данные о встрече. Через Claude Cowork - так вообще всей системой скоро научится управлять. Те же преимущества видны и в CLI - лучше Опуса (внутри Claude Code) никто сторонними инструментами не научился пользоваться.
Посмотрим, какие из подходов выдержат испытание временем. Не удивлюсь, если некоторые модели в конечном счете откажутся от чат-интерфейса и переключатся на повышение качества выполнения специфических задач (тот же Grok мог бы превратиться в специализированный инструмент факт-чекинга).
OpenAI - создают инструменты для end-to-end покрытия пользовательских путей, и позиционируют их как самостоятельные продукты - хоть и использующими ChatGPT под капотом, но со своим интерфейсом и заточенные под конкретную узкую задачу:
• ChatGPT Translate - переводчик текста и файлов с настройкой тона и стиля
• Prism - недавно вышедший портал для совместного написания статей с ЛЛМ-кой в роли ассистента
• Health - интеграция с данными о здоровье, медицинскими заметками и т.д. Очень интересно, как будет работать - жду, когда запустят в Великобритании. Пока что приходится эту задачу решать гугл доком с периодическим копированием данных с Apple Watch.
Google - фокусируются на интеграции с другими своими продуктами. Гемини и в google docs интегрирована, и в поиске на вопросы отвечает, и в meets сводки помогает делать. Ну и поиск включает практически в каждый свой ответ, в т.ч. по YouTube видео. Для меня не вполне очевидно, как у всей этой истории может складываться экономика - вряд ли онбординг новых пользователей из дополнительных каналов (и потенциальные улучшения в user experience существующих продуктов) в обозримом будущем покроет затраты на все бесплатные ответы.
Grok - чаще всего встречается мне в X, когда пользователи просят его перепроверить какую-то информацию. Ну и политические предпочтения у него специфические, помогают завоевать часть аудитории.
Claude - про интеграцию с инструментами. Они и MCP ввели, и в приложении внешние инструменты легче всего интегрируют. Например, на iOS у них из коробки работает интеграция с календарем - можно, например, попросить агента создать в нем событие или использовать в контексте ответа данные о встрече. Через Claude Cowork - так вообще всей системой скоро научится управлять. Те же преимущества видны и в CLI - лучше Опуса (внутри Claude Code) никто сторонними инструментами не научился пользоваться.
Посмотрим, какие из подходов выдержат испытание временем. Не удивлюсь, если некоторые модели в конечном счете откажутся от чат-интерфейса и переключатся на повышение качества выполнения специфических задач (тот же Grok мог бы превратиться в специализированный инструмент факт-чекинга).
Chatgpt
ChatGPT Translate | Fast, Natural, 40+ Languages
ChatGPT translates across 40+ languages with accuracy, tone, and cultural nuance. Translate text, voice, or photos for everyday use, travel, school, and work — and learn grammar or phrasing as you go.
🔥9❤5
Google постепенно начинают раскатывать Gemini in Chrome. Ожидаемо, внедряют основные фичи из Atlas:
1️⃣ Гемини в боковой панельке
2️⃣ Подтягивание контекста из открытых вкладок ("сравни рестораны на открытых вкладках и посоветуй, в какой из них пойти вечером")
3️⃣ Агентский режим (пощелкает на открытой странице, заполнит за вас формы и т.д.)
Видно, что прямо на главной странице фичи форсят юзкейсы с покупкой (сравнение товаров, автоматизация чекаута, поиск товаров-комплементов). Скоро вступим в эру ассистентской рекламы (интересно, как быстро выкатят LLM-Adblocker, очищающий ответы ЛЛМки от проплаченных рекомендаций).
Обещают постепенно выкатить для англоязычных пользователей с подпиской Pro и выше - надеюсь успеют до меня дойти, пока моя не закончилась.
1️⃣ Гемини в боковой панельке
2️⃣ Подтягивание контекста из открытых вкладок ("сравни рестораны на открытых вкладках и посоветуй, в какой из них пойти вечером")
3️⃣ Агентский режим (пощелкает на открытой странице, заполнит за вас формы и т.д.)
Видно, что прямо на главной странице фичи форсят юзкейсы с покупкой (сравнение товаров, автоматизация чекаута, поиск товаров-комплементов). Скоро вступим в эру ассистентской рекламы (интересно, как быстро выкатят LLM-Adblocker, очищающий ответы ЛЛМки от проплаченных рекомендаций).
Обещают постепенно выкатить для англоязычных пользователей с подпиской Pro и выше - надеюсь успеют до меня дойти, пока моя не закончилась.
Gemini
Gemini in Chrome — AI assistance, right in your browser
Get helpful AI assistance from Gemini in Chrome. Understand more, work faster, and unlock new ideas effortlessly on any webpage.
🔥8❤5
deepseek.mov
2.2 MB
Решил на выходных позапускать разные модельки на ollama - стало интересно, чем можно пользоваться на моем достаточно старом личном макбуке.
Зачем это нужно?
🥸 Не сливаем свои данные большим и страшным корпорациям
💰 Не тратим деньги на подписки и токены - только на домашнее электричество
📡 Можем работать с ЛЛМкой без зависимости от наличия интернета
Система:
MacBook Pro 13 inch, M1, 2020, 16GB
Методология:
Для замеров давайл одинаковый промпт примерно на 2.5тыс. токенов и замерял скорость ответа по 3 прогонам (+1 прогревочный, для подгрузки модели)
Тестировал 21 модель из списка, составленного Клодом среди моделей до 12B параметров (чем больше параметров - тем модель как правилоумнее, и тем медленнее работает, если вообще запускается). Все замеры в приложенном экселе.
Сколько-то приемлемая скорость генерации - начинается от 10 токенов в секунду (TPS). Относительно комфортно - от 20 токенов в секунду (на приложенных видео можно посмотреть разные скорости генерации, в конце каждого - высветятся метрики). Оговорюсь, что тут никак не учитывается разница между рассуждающими моделями, которые до генерации финального ответа тратят время на размышления, и моделями которые сразу выдают ответ.
Ко всему этому подвязал метрику "Artificial Intelligence Index" - сборную солянку из 10ти бенчмарков интеллекта.
Итоги:
Топовый бенчмарк интеллекта (19) и комфортные 19TPS - qwen3:4B
Средний интеллект и топовая скорость (66TPS) - llama3.2:1B-instruct
Буду экспериментировать, но по первичному беглому взаимодействию пока что не увидел причин пользоваться другими модельками из списка (по крайней мере, на моем допотопном железе).
P.S. скриншот со сводной табличкой закинул в комментарии к посту
Зачем это нужно?
🥸 Не сливаем свои данные большим и страшным корпорациям
💰 Не тратим деньги на подписки и токены - только на домашнее электричество
📡 Можем работать с ЛЛМкой без зависимости от наличия интернета
Система:
MacBook Pro 13 inch, M1, 2020, 16GB
Методология:
Для замеров давайл одинаковый промпт примерно на 2.5тыс. токенов и замерял скорость ответа по 3 прогонам (+1 прогревочный, для подгрузки модели)
Тестировал 21 модель из списка, составленного Клодом среди моделей до 12B параметров (чем больше параметров - тем модель как правилоумнее, и тем медленнее работает, если вообще запускается). Все замеры в приложенном экселе.
Сколько-то приемлемая скорость генерации - начинается от 10 токенов в секунду (TPS). Относительно комфортно - от 20 токенов в секунду (на приложенных видео можно посмотреть разные скорости генерации, в конце каждого - высветятся метрики). Оговорюсь, что тут никак не учитывается разница между рассуждающими моделями, которые до генерации финального ответа тратят время на размышления, и моделями которые сразу выдают ответ.
Ко всему этому подвязал метрику "Artificial Intelligence Index" - сборную солянку из 10ти бенчмарков интеллекта.
Итоги:
Топовый бенчмарк интеллекта (19) и комфортные 19TPS - qwen3:4B
Средний интеллект и топовая скорость (66TPS) - llama3.2:1B-instruct
Буду экспериментировать, но по первичному беглому взаимодействию пока что не увидел причин пользоваться другими модельками из списка (по крайней мере, на моем допотопном железе).
P.S. скриншот со сводной табличкой закинул в комментарии к посту
🔥7❤2
Ждем sonnet 5 на этой неделе. Логи из vertex (гугловской платформы для ML и работы с ллм-моделями). Если попробовать дернуть соннет-5, выдает ошибку доступа с указанием конкретной ревизии модели, в названии которой видна дата 3 февраля.
Тред на реддите (да, очень надежный источник) обещает, что будет в два раза дешевле опуса 4.5, работать лучше, быстрее и с новыми режимами для запуска субагентов. Ждем-надеемся.
Тред на реддите (да, очень надежный источник) обещает, что будет в два раза дешевле опуса 4.5, работать лучше, быстрее и с новыми режимами для запуска субагентов. Ждем-надеемся.
🔥10❤6👍1
Примерно год назад я выступал перед представителями нескольких французских университетов - рассказывал, как использовать ЛЛМки в работе, науке и учебе.
Для наглядности решил показать, как можно автоматизировать одну из наиболее времязатратных в их сфере задач - проверку работ студентов.
Что нужно чтобы понять, можно ли делегировать эту (или любую другую) функцию языковой модельке?
1️⃣ Конкретная, формализованная задача
2️⃣ Понимание, какой результат ожидается
3️⃣ Метрика, по которой можно оценить, насколько хуже/лучше модель справляется с задачей, чем ее устаревающий аналог (человек)
Благо в интернете нашелся официальный датасет с примерами сочинений IELTS (международный тест на знание английского языка) - сами сочинения, их оценки и методичка, по которой их нужно оценивать.
Дальше все просто - просим ЛЛМку оценить сочинение, сравниваем результат с человеческим эталоном, считаем отклонение по любой нравящейся нам метрике (например Mean Average Error).
Было проведено несколько итераций с постепенным дополнением промпта:
• “Оцени сочинение от 0 до 9”
• + “Это сочинение на IELTS”
• + “Обоснуй оценку”
• + “Вот тема, на которую было написано это сочинение”
• + “Вот тебе шкала оценки сочинений”
• + “Вот примеры сочинений и соответствующие им оценки”
С проходом по этим итерациям ошибка планомерно упала с 2 (оценка модели отклонялась на 2 балла от эталона) до 0.
В целом, здесь нет ничего удивительного или инновационного - понятно, что включение в контекст узкоспециализированных знаний имеет хорошие шансы повысить качество и предсказуемость ее работы.
А вот вторая часть эксперимента для меня оказалась более интересной
Для наглядности решил показать, как можно автоматизировать одну из наиболее времязатратных в их сфере задач - проверку работ студентов.
Что нужно чтобы понять, можно ли делегировать эту (или любую другую) функцию языковой модельке?
1️⃣ Конкретная, формализованная задача
2️⃣ Понимание, какой результат ожидается
3️⃣ Метрика, по которой можно оценить, насколько хуже/лучше модель справляется с задачей, чем ее устаревающий аналог (человек)
Благо в интернете нашелся официальный датасет с примерами сочинений IELTS (международный тест на знание английского языка) - сами сочинения, их оценки и методичка, по которой их нужно оценивать.
Дальше все просто - просим ЛЛМку оценить сочинение, сравниваем результат с человеческим эталоном, считаем отклонение по любой нравящейся нам метрике (например Mean Average Error).
Было проведено несколько итераций с постепенным дополнением промпта:
• “Оцени сочинение от 0 до 9”
• + “Это сочинение на IELTS”
• + “Обоснуй оценку”
• + “Вот тема, на которую было написано это сочинение”
• + “Вот тебе шкала оценки сочинений”
• + “Вот примеры сочинений и соответствующие им оценки”
С проходом по этим итерациям ошибка планомерно упала с 2 (оценка модели отклонялась на 2 балла от эталона) до 0.
В целом, здесь нет ничего удивительного или инновационного - понятно, что включение в контекст узкоспециализированных знаний имеет хорошие шансы повысить качество и предсказуемость ее работы.
А вот вторая часть эксперимента для меня оказалась более интересной
IELTS buddy
IELTS Sample Essays
Looking at IELTS sample essays is an excellent way to learn how to improve your score. Here you can view a variety of IELTS essay topics with answers to help you prepare for the Test.
❤7🔥3
Воспроизвести уровень квалификации человеческого оценщика модель смогла, но сможет ли она воспроизвести человеческую любовь к дискриминации?
Чтобы проверить это, был собран новый промпт, в котором модельке, помимо просьбы оценить сочинение, в качестве FYI предоставляется дополнительная информация про автора (возраст, цвет кожи, имя, национальность, уровень образования).
Неожиданно, единственным фактором, который оказал статзначимое влияние на оценку, оказался возраст. Модель занижала оценки для детворы, постепенно поднимала их вплоть до 50-летнего возраста, и затем снова опускала для 70-90 лет (для каждого возраста было проведено по 100 итераций, так что это не случайные колебания).
Я думаю, такая ситуация сложилась из-за формата обучения GPT - скорее всего ее (в отличие от Grok) усердно учили избегать расизма, сексизма и других распространенных форм дискриминации, а вот про эйджизм забыли.
В общем - тестируйте свои AI пайплайны хорошенько и думайте, какая информация помогает ЛЛМ-ке решать поставленную задачу, а какая - мешает. Можете и не заметить как робот подсовывает вам в результаты свои предрассудки.
Чтобы проверить это, был собран новый промпт, в котором модельке, помимо просьбы оценить сочинение, в качестве FYI предоставляется дополнительная информация про автора (возраст, цвет кожи, имя, национальность, уровень образования).
Неожиданно, единственным фактором, который оказал статзначимое влияние на оценку, оказался возраст. Модель занижала оценки для детворы, постепенно поднимала их вплоть до 50-летнего возраста, и затем снова опускала для 70-90 лет (для каждого возраста было проведено по 100 итераций, так что это не случайные колебания).
Я думаю, такая ситуация сложилась из-за формата обучения GPT - скорее всего ее (в отличие от Grok) усердно учили избегать расизма, сексизма и других распространенных форм дискриминации, а вот про эйджизм забыли.
В общем - тестируйте свои AI пайплайны хорошенько и думайте, какая информация помогает ЛЛМ-ке решать поставленную задачу, а какая - мешает. Можете и не заметить как робот подсовывает вам в результаты свои предрассудки.
❤9🔥7