Spaces:
Build error
Build error
File size: 17,775 Bytes
8856d88 0357647 8856d88 1e974ab 8856d88 0357647 8856d88 0357647 8856d88 0357647 8856d88 0357647 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 | # Presentation-RAG System Design
## Цели и предпосылки
### Зачем идем в разработку продукта?
**Цель проекта:** Разработать эффективный инструмент для автоматизированного поиска информации по базе из презентаций.
**Проблематика:**
- Большой объем бизнес-информации хранится в форме презентаций.
- Поиск по ним усложняется визуальным содержимым - графиками, диаграммами, картинками.
- Нет универсального подхода - решение задачи зависит от домена информации и визуального содержимого
- `Сложность навигации по докладам на многосекционных конференциях`
**Почему станет лучше от использования ML:**
1. LLM способны интерпретировать естественно-языковые запросы и связывать их с релевантным контентом.
2. Visual Transformers (ViT) эффективно анализируют содержимое изображений и распознают текст.
3. Интеграция ViT и LLM улучшает понимание контекста документов.
4. RAG позволяет эффективно работать с неструктурированными данными, такими как презентации.
### Ожидаемые результаты
#### Пользовательский опыт
- Пользователь вводит естественно-языковой запрос в поисковую строку.
- Ожидание в течение *адекватного* времени.
- Результат:
- Ранжированный список из релевантных презентаций/слайдов.
- Ссылки на оригиналы.
- Можно просматривать презентации.
- Если результат не устроил, можно задать переформулированный запрос в том же чате.
- История поиска сохраняется.
#### Сценарии использования
Основной сценарий использования:
- Помним отрывок информации или визуальное оформление из презентации.
- Формируем запрос. Описываем все, что помним, и просим найти такую презентацию.
- Система выдает презентации, наиболее подходящие под описание.
Сценарий бизнес:
1. Подготовка к встрече:
- Пользователь ищет "последние презентации о финансовых показателях компании"
- Система выдает релевантные слайды из различных презентаций
- Пользователь быстро составляет краткий отчет на основе найденной информации
2. Анализ конкурентов:
- Запрос: "Сравнение наших продуктов с конкурентами за последний квартал"
- Система находит слайды с таблицами сравнения и диаграммами
- Пользователь легко идентифицирует ключевые различия и преимущества
3. Подготовка презентации:
- Поиск "креативные слайды о запуске нового продукта"
- Система предлагает разнообразные визуальные решения из прошлых презентаций
- Пользователь быстро адаптирует найденные идеи для новой презентации
Сценарий исследователь:
1. Анализ трендов:
- Запрос: "Графики роста рынка AI за последние 5 лет"
- Система выдает релевантные графики из различных презентаций
- Исследователь анализирует тренды и формирует гипотезы
2. Поиск методологии:
- Пользователь ищет "методология оценки эффективности ML моделей"
- Система находит слайды с описанием методов и формулами
- Исследователь изучает различные подходы и выбирает наиболее подходящий
3. Сравнение результатов:
- Запрос: "Сравнительные таблицы производительности GPU и TPU"
- Система предоставляет релевантные таблицы и графики
- Исследователь сопоставляет данные для своего эксперимента
#### Функционал поиска
##### Обработка запросов
- Поддержка запросов на естественном языке, включающих текстовое и визуальное содержание.
- Интерпретация запроса и понимание намерения пользователя.
- Обработка запросов со сложной струтурой:
- Несколько условий
- ~~Произвольное форматирование: списки, **bold**, CAPS~~
- Произвольная формулировка:
- Вопросы, требования, их комбинации
- Термины?
- Поиск по визуальными элементами презентаций.
- Стиль (минималистичный, "много текста", ...)
- Диаграммы разных типов (круговые, столбчатые, графики)
- Табличные данные
- Метаданные (автор, дата, ...)
- Специфические визуальные элементы (воронки продаж, таймлайны, схемы, ...)
- Примеры поддерживаемых запросов:
- "Найди презентации в минималистичном стиле о стратегии компании"
- "Покажи слайды с воронкой продаж в презентациях о digital-маркетинге"
- "Выдай презентацию по data-аналитике, в которой были картинки с лягушками"
- "В каких презентациях были графики зависимости X от размера модели?"
##### Генерация ответов
- Запрос пользователя проходит предобработку для поиска. Формулируется запрос для RAG
- RAG выдает ссылки на релевантные результаты
- К результам генерируется пояснение в контексте запроса. Ответ на вопрос "Почему этот слайд попал в ответ?"
#### Веб интерфейс
- Чат-интерфейс
- Поле для поиска
- Панель с результатами. Можно экспортировать ссылки.
- Можно задавать сколько угодно вопросов. История сохраняется.
- Чат сохраняется
## Методология
### Постановка задачи
Разработка *ассистента* на основе LLM и RAG для автоматического поиска информации из *набора* презентаций.
- Данные - [Подробное описание](docs/workflow/data_description.md)
- Презентации про ML на русском языке (69)
- AIConf
- YappiDays
- Презентации на бизнес тематику (100): отчеты, обзоры, ...
- [tg: businessincognita](https://t.me/businessincognita)
- [tg: insider_infor](https://t.me/insider_infor)
### Этапы
#### 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
- узнать как пользоваться
- ...
- Подготовка небольшого датасета `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
- Закрытая сессия
## Вопросы
- На какую тему презентации? Какой домен? Важно ли это?
- Что делать с терминами? Если они нетипичные?
- Как загружаются презы? Это сервис с двумя типами акков: хост и юзер?
- Как измерять качество поиска?
- Как размечаем датасет?
- Объем?
- Позитивные/негативные примеры
- Что делаем с шумом? В презентации часто добавляют картинки для отвлечения внимания. Хотя они же могут и запомниться
- Мб обучать темам по одним данным а обучать поиску по другим?
|