Cпасение проекта с LLM под капотом - День 2 __Итак, хроники спасения проекта с LLM под капотом (____в первый день____ мы налаживали коммуникацию и срочно объясняли про то, как собирать тестовые данные для карт ошибок). Идет второй день. __ 7:53 Я ставлю задачу на день: собрать eval dataset (ground truth data) и прогнать его через существующий LLM pipeline. Тогда сможем получить на выходе карту ошибок. Без нее не будем даже пытаться улучшать старый код. Причем в идеале этот dataset должен включать самые сложные кейсы. Те самые, из-за которых разработчик проекта ушел в загул и micro-services и усложнение системы. К утру один сотрудник в компании берет на себя ответственность за сбор данных, находит трех помощников. Вот и будет Head of Eval. 9:23 Генерю для нашего рабочего чатика аватарку в стиле “Проект Аве Мария”, чтобы было веселее работать, а директорам - его читать. Head of eval тут же рапортует: “__Ground truth team is onboarded and starting to generate data now!__” Они начинают ручное вычитывание данных, по паре записей из каждого PDF файла. Поскольку процесс долгий, они планируют извлечь в сумме где-то 50 записей за пару дней. 9:36 “ChatGPT, напиши-ка мне функцию на питоне, которая сравнит две таблички и выведет Heatmap c разницей”. “Claude Sonnet - перепиши этот график красиво” 10:12 Готова первая карта ошибок (и функция по ее отрисовке, которая интегрируется в пайплайн). Она вся пустая, т.к. данные от eval команды еще не готовы (скриншот скину в комментарии). Переключаемся на LLM логику. ~12:00 по мере заполнения GT (ground truth) данных, начинают всплывать вопросы по форматированию и правильности извлечения данных. Команды это быстро решают в общем чате. Это быстро, т.к. общий Excel файл у всех перед глазами в режиме редактирования. PM притаскивает сложные кейсы от клиента и складывает в общую папку, eval team вычитывает их. Команда обнаруживает, что документов с самыми сложными кейсами не так много, как казалось раньше. Но все-таки есть моменты, где нужно извлекать почти 3000 сущностей на 50-70 свойств из одной PDF. 3000 LLM вызовов на один документ? Брр. Должен быть способ проще. У нас на это нет 5 месяцев времени, как это было у предыдущей команды. Нет времени и желания запускать пайплайны на 6-8 дней и использовать дорогой Claude Opus. Но есть что-то, чего не было у них - пайплайна и тестов, которые смогут быстро оценить качество любого эксперимента. Поэтому начинаем экспериментировать. Опираемся на когнитивную сложность задачи и Domain-Driven Design. 15:14 После ряда экспериментов получается интересная ерунда - прототип функции с Schema-Guided Reasoning, который реализует процесс так, как это бы сделал ленивый эксперт при помощи DevOps-а, без какого-то уважения к правилам программирования и разработки. Оно работает не очень точно, но извлекает 600 сущностей из PDF за два SGR вызова gpt-5-mini. Все смотрят круглыми глазами, поэтому генерирую тестовые данные остальной команде на посмотреть глазами. Выдаю задачку подумать, как такое сделать в 200 строчек кода. На сегодня этого хватит. Evals первые не успели прогнать, т.к. данные еще не готовы. Подождем до завтра, чтобы eval команда закончила собирать первую версию датасета. Ваш, @llm_under_hood 🤗