Spaces:
Build error
A newer version of the Gradio SDK is available:
6.9.0
Presentation-RAG System Design
Цели и предпосылки
Зачем идем в разработку продукта?
Цель проекта: Разработать эффективный инструмент для автоматизированного поиска информации по базе из презентаций.
Проблематика:
- Большой объем бизнес-информации хранится в форме презентаций.
- Поиск по ним усложняется визуальным содержимым - графиками, диаграммами, картинками.
- Нет универсального подхода - решение задачи зависит от домена информации и визуального содержимого
Сложность навигации по докладам на многосекционных конференциях
Почему станет лучше от использования ML:
- LLM способны интерпретировать естественно-языковые запросы и связывать их с релевантным контентом.
- Visual Transformers (ViT) эффективно анализируют содержимое изображений и распознают текст.
- Интеграция ViT и LLM улучшает понимание контекста документов.
- RAG позволяет эффективно работать с неструктурированными данными, такими как презентации.
Ожидаемые результаты
Пользовательский опыт
- Пользователь вводит естественно-языковой запрос в поисковую строку.
- Ожидание в течение адекватного времени.
- Результат:
- Ранжированный список из релевантных презентаций/слайдов.
- Ссылки на оригиналы.
- Можно просматривать презентации.
- Если результат не устроил, можно задать переформулированный запрос в том же чате.
- История поиска сохраняется.
Сценарии использования
Основной сценарий использования:
- Помним отрывок информации или визуальное оформление из презентации.
- Формируем запрос. Описываем все, что помним, и просим найти такую презентацию.
- Система выдает презентации, наиболее подходящие под описание.
Сценарий бизнес:
Подготовка к встрече:
- Пользователь ищет "последние презентации о финансовых показателях компании"
- Система выдает релевантные слайды из различных презентаций
- Пользователь быстро составляет краткий отчет на основе найденной информации
Анализ конкурентов:
- Запрос: "Сравнение наших продуктов с конкурентами за последний квартал"
- Система находит слайды с таблицами сравнения и диаграммами
- Пользователь легко идентифицирует ключевые различия и преимущества
Подготовка презентации:
- Поиск "креативные слайды о запуске нового продукта"
- Система предлагает разнообразные визуальные решения из прошлых презентаций
- Пользователь быстро адаптирует найденные идеи для новой презентации
Сценарий исследователь:
Анализ трендов:
- Запрос: "Графики роста рынка AI за последние 5 лет"
- Система выдает релевантные графики из различных презентаций
- Исследователь анализирует тренды и формирует гипотезы
Поиск методологии:
- Пользователь ищет "методология оценки эффективности ML моделей"
- Система находит слайды с описанием методов и формулами
- Исследователь изучает различные подходы и выбирает наиболее подходящий
Сравнение результатов:
- Запрос: "Сравнительные таблицы производительности GPU и TPU"
- Система предоставляет релевантные таблицы и графики
- Исследователь сопоставляет данные для своего эксперимента
Функционал поиска
Обработка запросов
- Поддержка запросов на естественном языке, включающих текстовое и визуальное содержание.
- Интерпретация запроса и понимание намерения пользователя.
- Обработка запросов со сложной струтурой:
- Несколько условий
Произвольное форматирование: списки, bold, CAPS- Произвольная формулировка:
- Вопросы, требования, их комбинации
- Термины?
- Поиск по визуальными элементами презентаций.
- Стиль (минималистичный, "много текста", ...)
- Диаграммы разных типов (круговые, столбчатые, графики)
- Табличные данные
- Метаданные (автор, дата, ...)
- Специфические визуальные элементы (воронки продаж, таймлайны, схемы, ...)
- Примеры поддерживаемых запросов:
- "Найди презентации в минималистичном стиле о стратегии компании"
- "Покажи слайды с воронкой продаж в презентациях о digital-маркетинге"
- "Выдай презентацию по data-аналитике, в которой были картинки с лягушками"
- "В каких презентациях были графики зависимости X от размера модели?"
Генерация ответов
- Запрос пользователя проходит предобработку для поиска. Формулируется запрос для RAG
- RAG выдает ссылки на релевантные результаты
- К результам генерируется пояснение в контексте запроса. Ответ на вопрос "Почему этот слайд попал в ответ?"
Веб интерфейс
- Чат-интерфейс
- Поле для поиска
- Панель с результатами. Можно экспортировать ссылки.
- Можно задавать сколько угодно вопросов. История сохраняется.
- Чат сохраняется
Методология
Постановка задачи
Разработка ассистента на основе LLM и RAG для автоматического поиска информации из набора презентаций.
- Данные - Подробное описание
- Презентации про ML на русском языке (69)
- AIConf
- YappiDays
- Презентации на бизнес тематику (100): отчеты, обзоры, ...
- Презентации про ML на русском языке (69)
Этапы
Proof of Concept (PoC)
Данные
- 10 простых презентаций
- до 30 слайдов ?
- много текста
- простой дизайн: текст, картинки четко отделены от текста (границы у графиков, контраст с фоном)
Вопросы
| Доля | О чем? | Что в презентации? | Примеры |
|---|---|---|---|
| 60% | Строго по тексту (заголовки, контент) | Подробный текст про X | Найди презентацию на тему Чтото с титульного слайда <> В какой презентации рассказывали про чтото из текста? |
| 20% | По обобщенному содержимомоу | Подробный текст <> Перечисления | В какой презентации о маркетинге говорили о продажах? <> ... |
| 10% | Простые визуальные элементы | графики <> картинки (четко отделены от текста) | В какой презентации был график зависимости X от Y? <> В какой презентации были изображения машин? |
| 5% | Сложные визуальные элементы | Воронки продаж <> Флоу-чарты | Где показывали воронку продаж для X <> ... |
| 5% | Отсылки на визуальные элементы | Графики продаж <> Диаграмы | В какой презентации говорили о продажах за последние 5 лет? |
Общие моменты
- Вопросы понятные. Понятно намерение. Легко интерпретировать ответ.
- Ответ на вопрос точно есть в презентациях.
- Но можно добавить несколько out of domain
- Ручная проверка.
Оформление
Интерфейс - оформление в виде кода / ноутбука. Таблица с отчетом о результатах.
Результаты
Что мы узнаем?
- возможности модели
- темп разработки
Сценарий 1: все работает через 2 недели. Тогда идем в усложнение.
Сценарий 2: ничего не работает через месяц. Тогда паника.
По итогам этапа станет понятно, как скорректировать требования для MVP.
Minimal Viable Product (MVP)
- 100 презентаций на МЛ тематику. Сложность определим после POC
- Реализованы основные функции поиска
- Веб интерфейс
План работы
- Ресерч и тестирование существующих решений
1нед- Что уже есть?
- Как оценивать качество?
- Выбор моделей
- Как разрабатывать?
- Разработка POC
- Код
1w+- setup
1 день- Удобная архитектура проекта
- Зависимости: Библиотеки / Окружения / docker / ...
- Разработка
1нед- Предобработка презентаций
- Разработка промптов для LLM
- RAG
- узнать как пользоваться
- ...
- Предобработка презентаций
- setup
- Подготовка небольшого датасета
2 дня- Выбор презентаций
- Просмотр
- Заметки по презентации. Научиться в них ориентироваться. Знать все про эти 10 презентаций
- Составление вопросов
- Ресерч как сейчас составляют вопросы
2ч - Составление по шаблону + свои
2ч
- Ресерч как сейчас составляют вопросы
- Интеграция с RAG - разметка,
1 день
- Выбор презентаций
- Тестирование
- Выбор метрик - "как автоматически понимать что выдача ок?"
- Проведение тестов
1 день на тест - Обсуждения со взрослыми
- Корректировки, итерации
- Код
- Дальнейшее планирование
- что можно сделать? что нет?
- будет понятно, как масштабировать
- Разработка MVP
- Подготовка большого датасета
- Тестирование
- Оценка метрик
- Выводы
- Разработка веб-интерфейса
- Ресерч фреймворков
2д - Реализация
3д - Тестирование функционала
1д-- будет +/- параллельно с другими задачами - Фичи
- Форматы сохранение результатов
- Юзабилити
- Ресерч фреймворков
Времязатраты
POC
| Задача | Ожидаемое время | Затраченное время |
|---|---|---|
| Ресерч и тестирование существующих решений | 1н+ | |
| Подготовка данных для POC | 2д | |
| Разработка POC | 1н+ | |
| Тестирование и итерации | 3д |
MVP
| Задача | Ожидаемое время | Затраченное время | Комментарий |
|---|---|---|---|
| Осмысление результатов POC <> Планирование | 2д | ||
| Подготовка данных для MVP | 5д | как составить много хороших вопросов? | |
| Разработка MVP | ? | База есть с POC, что дальше? | |
| Тестирование и итерации | 3д | ||
| Веб-интерфейс и деплой | 5д |
Студенческие моменты
- Цели
- Научиться адаптировать RAG для нестандартных задач
- Презентовать свои результаты перед публикой
- Закрыть курс проектной практики
- Ожидаемый результат
- RAG для поиска по презентациям
- Выступление на DataFest
- Закрытая сессия
Вопросы
- На какую тему презентации? Какой домен? Важно ли это?
- Что делать с терминами? Если они нетипичные?
- Как загружаются презы? Это сервис с двумя типами акков: хост и юзер?
- Как измерять качество поиска?
- Как размечаем датасет?
- Объем?
- Позитивные/негативные примеры
- Что делаем с шумом? В презентации часто добавляют картинки для отвлечения внимания. Хотя они же могут и запомниться
- Мб обучать темам по одним данным а обучать поиску по другим?