"Cпасение проекта с LLM под капотом - День 1 __При помощи SGR, AI+Coding и команды тестеров. __ Итак, сейчас у меня идет срочный проект, где компании нужно быстро спасать клиента. Задача сформулирована так: Ринат, делайте что хотите, но попробуйте спасти проект и сделать X за несколько дней. Проект уже не спасти, но вдруг получится? Мы будем рады любому результату. Привлекайте, кого считаете нужным. Ограничений нет. Проект представляет собой пайплайн извлечения структурированных данных из PDF-файлов. Он написан (у любого, кто работал с проектами на проде, тут начнёт дёргаться глаз) на микросервисах с Azure cloud functions, кэшированием в БД и самописным фреймворком для батчинга в Anthropic. Тестов или evals (тут начнёт дёргаться второй глаз) нет. Да и вообще вся разработка после прототипа велась без evals. Клиент сильно жалуется на галлюцинации модели. Качество примерно на уровне 60%, а разработчик ушёл в отпуск. Код локально не запускается, и разобраться в нём крайне сложно (ибо cloud functions + batching + собственный микро-фреймворк). Показать результат нужно уже на следующей неделе. Я такие задачи люблю (не часто и только когда оно реально того стоит) Итак, день первый. Формируем план на первые три дня: переводим команду в startup-режим, выкидываем всё ненужное, собираем тестовые данные и запускаем цикл обратной связи. Во-первых, переводим команду в startup-режим. Там почти все люди из enterprise, поэтому для них это будет небольшим шоком. Startup — это не работа по 8 часов в день (на этом, как раз, многие стартапы и проваливаются), а умение быстро избавиться от всего лишнего и мешающего. Во-вторых, оцениваем, что именно тормозит работу. Всё это выкидываем: (1) Код написан на микросервисах с батчингом и собственным фреймворком, не запускается локально и не имеет eval-датасета? Выкидываем всё к чёрту и берём старую версию полугодичной давности. Она устарела, но у неё были evals. Начнём именно с неё. (2) Традиционные митинги в проекте - тоже выкидываем, на них нет времени. Проводим только один синхронизационный созвон, после которого выстраиваем процессы так, чтобы люди могли работать параллельно. Далее будут короткие точечные созвоны в небольших группах. Вся остальная коммуникация и синхронизация происходит в общем чате. (3) Создаём контракт для экспорта данных клиенту. Это будет таблица Excel с доступом для всех участников. Таблица станет основным интерфейсом работы команд. С ней будут работать: - Команда оценки (eval team) — заполняет ground truth для оценки работы; - Команда LLM/AI — сравнивает результаты работы пайплайна с тестовыми данными; - Интеграторы — загружают финальные данные в нужном формате для демонстрации клиенту через Power BI; - Клиент — просматривает результаты и при необходимости корректирует их с помощью экспертов. (4) Объясняем команде сбора тестовых данных концепцию ""weak supervision"" и просим начать готовиться к сбору этих данных в нашем формате. Все, на первый день этого более чем достаточно. Пора отдыхать) Ваш, @llm_under_hood 🤗"