Post #8
25

Как я останавливал спринт ради ИИ (и что из этого вышло)
Как мы с продактом готовили доказательную базу
Демо выглядело шикарно: вводишь конкурента — получаешь «глубокий анализ». Но чем дольше мы с PO смотрели, тем сильнее что-то царапало. Мы устроили проверку:
Запустили один и тот же запрос дважды. Получили два разных набора «фактов». Для аналитики это приговор: правда не меняется от запуска к запуску.
Попросили ссылки на цифры. ИИ «процитировал» отчёты, которых не существует.
Под капотом
Когда я полез в реализацию, картина стала очевидной:
Никакого RAG. Мы просто скармливали в промпт название конкурента и просили «сделать анализ». Модель отвечала из параметрической памяти — устаревших и ничем не подтверждённых данных. База для галлюцинаций.
Мусорный контекст. Там, где данные всё же подтягивались, источником была первая попавшаяся выдача парсера — непроверенные страницы вперемешку с рекламой. Garbage in — garbage out.
Температура задрана. Temperature стояла высокой «чтобы ответы были живее». Для креатива — ок, для фактов же — ппц: модель охотнее выдумывает.
Промпт без ограничений. Ни инструкции: «Отвечай только на основе предоставленного контекста», ни разрешения сказать «не знаю». Модель физически не имела опции промолчать — поэтому заполняла пробелы фантазией.
Ноль верификации. Никакой сверки чисел с источником, никакого показа цитат и ссылок. Ответ подавался как истина в последней инстанции.
Диагноз
Красивая, убедительная галлюцинация, собранная из косого промпта и недостоверных данных.
Какие аргументы сработали в дискуссии с заказчиком
1. Показал, а не рассказал. Открыл при нем его же промпт и попросил ЛЛМ рассказать о нашем бизнесе. ИИ уверенно насочинял фактологию, не имеющую отношения к нам и нашему продукту. Розовые очки треснули на месте.
2. Перевёл восторг в риск. «Представьте: клиент принял решение по этим цифрам и потерял деньги. Кому он предъявит? Нам». Оправа розовых очков погнулась
3. Дал не запрет, а путь. Не «нельзя», а «сделаем правильно»: RAG на проверенных источниках, structured output с обязательными ссылками, честное «не уверен» при нехватке данных, пилот на реальных пользователях.
4. Посчитал цену спешки. Выкинутый спринт и репутационный риск против пары недель на нормальную реализацию.
Чем всё закончилось
Спринт не упразднили. Фичу переложили в бэклог как полноценную задачу. Через полтора месяца выкатили версию на честной архитектуре:
RAG поверх проверенных источников — модель отвечает только на основе того, что мы ей подали, а не из «памяти».
Temperature вниз для фактологических ответов.
Grounding и цитаты: каждый тезис — со ссылкой на источник, который можно открыть и проверить.
Явный fallback: если данных мало, фича пишет «недостаточно информации», а не выдумывает.
Автооценка качества на наборе эталонных примеров, чтобы ловить деградацию до, а не после релиза.
Что я вынес для себя
Моя задача— не гасить энтузиазм бизнеса, а направлять его. LLM в продукте — это не «спросили модель и показали ответ». Это данные, ограничения, верификация и честность интерфейса. Без этого вы отгружаете не фичу, а генератор ахинеи. Розовые очки — это не глупость. Это человек увидел возможность. Моя задача — помочь этой возможности стать настоящей (а заодно научить продакта и тимлида оперировать фактами, а не манипулировать эмоциями)
А вам прилетала ли задача «срочно воткнуть ИИ», потому что кто-то впечатлился своим взаимодействием с джипитишкой? Как выкручивались — расскажите в комментариях
#нейротреш
История из моей практики. Однажды наш бизнес-лидер открыл для себя LLM. Пару вечеров поболтал с чат-ботом, впечатлился, собрав отчет о предложениях конкурентов по основной услуге нашего продукта, и влетает в пятницу с утра в чат: «Команда ХХХ, зайдите срочно ко мне, и продакт, и тимлид». Этот дуэт я встретил примерно через 10 минут с бледными лицами: «Босс хочет, что бы мы прямо сейчас остановили спринт и взялись за реализацию того, что он напромптил внутри нашего продукта»
Спорить с горящими глазами бесполезно, но я решил помочь команде снять розовые очки с заказчика.
Как мы с продактом готовили доказательную базу
Демо выглядело шикарно: вводишь конкурента — получаешь «глубокий анализ». Но чем дольше мы с PO смотрели, тем сильнее что-то царапало. Мы устроили проверку:
Запустили один и тот же запрос дважды. Получили два разных набора «фактов». Для аналитики это приговор: правда не меняется от запуска к запуску.
Попросили ссылки на цифры. ИИ «процитировал» отчёты, которых не существует.
Под капотом
Когда я полез в реализацию, картина стала очевидной:
Никакого RAG. Мы просто скармливали в промпт название конкурента и просили «сделать анализ». Модель отвечала из параметрической памяти — устаревших и ничем не подтверждённых данных. База для галлюцинаций.
Мусорный контекст. Там, где данные всё же подтягивались, источником была первая попавшаяся выдача парсера — непроверенные страницы вперемешку с рекламой. Garbage in — garbage out.
Температура задрана. Temperature стояла высокой «чтобы ответы были живее». Для креатива — ок, для фактов же — ппц: модель охотнее выдумывает.
Промпт без ограничений. Ни инструкции: «Отвечай только на основе предоставленного контекста», ни разрешения сказать «не знаю». Модель физически не имела опции промолчать — поэтому заполняла пробелы фантазией.
Ноль верификации. Никакой сверки чисел с источником, никакого показа цитат и ссылок. Ответ подавался как истина в последней инстанции.
Диагноз
Красивая, убедительная галлюцинация, собранная из косого промпта и недостоверных данных.
Какие аргументы сработали в дискуссии с заказчиком
1. Показал, а не рассказал. Открыл при нем его же промпт и попросил ЛЛМ рассказать о нашем бизнесе. ИИ уверенно насочинял фактологию, не имеющую отношения к нам и нашему продукту. Розовые очки треснули на месте.
2. Перевёл восторг в риск. «Представьте: клиент принял решение по этим цифрам и потерял деньги. Кому он предъявит? Нам». Оправа розовых очков погнулась
3. Дал не запрет, а путь. Не «нельзя», а «сделаем правильно»: RAG на проверенных источниках, structured output с обязательными ссылками, честное «не уверен» при нехватке данных, пилот на реальных пользователях.
4. Посчитал цену спешки. Выкинутый спринт и репутационный риск против пары недель на нормальную реализацию.
Чем всё закончилось
Спринт не упразднили. Фичу переложили в бэклог как полноценную задачу. Через полтора месяца выкатили версию на честной архитектуре:
RAG поверх проверенных источников — модель отвечает только на основе того, что мы ей подали, а не из «памяти».
Temperature вниз для фактологических ответов.
Grounding и цитаты: каждый тезис — со ссылкой на источник, который можно открыть и проверить.
Явный fallback: если данных мало, фича пишет «недостаточно информации», а не выдумывает.
Автооценка качества на наборе эталонных примеров, чтобы ловить деградацию до, а не после релиза.
Что я вынес для себя
Моя задача— не гасить энтузиазм бизнеса, а направлять его. LLM в продукте — это не «спросили модель и показали ответ». Это данные, ограничения, верификация и честность интерфейса. Без этого вы отгружаете не фичу, а генератор ахинеи. Розовые очки — это не глупость. Это человек увидел возможность. Моя задача — помочь этой возможности стать настоящей (а заодно научить продакта и тимлида оперировать фактами, а не манипулировать эмоциями)
А вам прилетала ли задача «срочно воткнуть ИИ», потому что кто-то впечатлился своим взаимодействием с джипитишкой? Как выкручивались — расскажите в комментариях
#нейротреш
- 👍 3
- ❤🔥 2
