Ilia Tambovtsev commited on
Commit
ff3ad18
·
2 Parent(s): 194cbb5d8e674b

Merge branch 'RMI-22_Dataset-for-POC' into RMI-39_weird-slides-gpt4v

Browse files
README.md CHANGED
@@ -1,93 +1,27 @@
1
- # Presentation RAG
2
 
 
 
 
 
 
3
 
 
 
 
 
4
 
5
- ## Getting started
 
 
 
 
6
 
7
- To make it easy for you to get started with GitLab, here's a list of recommended next steps.
8
 
9
- Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
10
 
11
- ## Add your files
12
 
13
- - [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
14
- - [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
15
-
16
- ```
17
- cd existing_repo
18
- git remote add origin https://gitlab.raftds.com/ilia.tambovtsev/presentation-rag.git
19
- git branch -M main
20
- git push -uf origin main
21
- ```
22
-
23
- ## Integrate with your tools
24
-
25
- - [ ] [Set up project integrations](https://gitlab.raftds.com/ilia.tambovtsev/presentation-rag/-/settings/integrations)
26
-
27
- ## Collaborate with your team
28
-
29
- - [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
30
- - [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
31
- - [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
32
- - [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
33
- - [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
34
-
35
- ## Test and Deploy
36
-
37
- Use the built-in continuous integration in GitLab.
38
-
39
- - [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
40
- - [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
41
- - [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
42
- - [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
43
- - [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
44
-
45
- ***
46
-
47
- # Editing this README
48
-
49
- When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
50
-
51
- ## Suggestions for a good README
52
-
53
- Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
54
-
55
- ## Name
56
- Choose a self-explaining name for your project.
57
-
58
- ## Description
59
- Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
60
-
61
- ## Badges
62
- On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
63
-
64
- ## Visuals
65
- Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
66
-
67
- ## Installation
68
- Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
69
-
70
- ## Usage
71
- Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
72
-
73
- ## Support
74
- Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
75
-
76
- ## Roadmap
77
- If you have ideas for releases in the future, it is a good idea to list them in the README.
78
-
79
- ## Contributing
80
- State if you are open to contributions and what your requirements are for accepting them.
81
-
82
- For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
83
-
84
- You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
85
-
86
- ## Authors and acknowledgment
87
- Show your appreciation to those who have contributed to the project.
88
-
89
- ## License
90
- For open source projects, say how it is licensed.
91
-
92
- ## Project status
93
- If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
 
1
+ # Presentation-RAG
2
 
3
+ ## Ссылки
4
+ ### Навигация по проекту
5
+ - [System Design Document](/docs/system_design_doc.md)
6
+ - [Документация](/docs)
7
+ - [Ноутбуки](/notebooks/)
8
 
9
+ ### Raftds
10
+ - [Jira](https://jira.raftds.com/secure/RapidBoard.jspa?rapidView=98&projectKey=RMI&selectedIssue=RMI-40)
11
+ - [Confluence](https://confluence.raftds.com/display/RMI1/Raft+ML+internship+1)
12
+ - [GitLab · Presentation RAG](https://gitlab.raftds.com/ilia.tambovtsev/presentation-rag)
13
 
14
+ ## Технические моменты
15
+ ### Работа с ветками
16
+ Ветки:
17
+ - [main](https://gitlab.raftds.com/ilia.tambovtsev/presentation-rag/-/tree/main?ref_type=heads)
18
+ - [POC](https://gitlab.raftds.com/ilia.tambovtsev/presentation-rag/-/tree/POC?ref_type=heads) - Proof of Concept
19
 
20
+ В проекте два типа веток.
21
 
22
+ `RMI-XX-<task>` отражают задачи из доски Jira.
23
 
24
+ Ветка `POC` - рабочая ветка на текущий момент. В `POC` маленький датасет + есть задачи по ресерчу. Возможно не все из `POC` пойдет в `main`.
25
 
26
+ ### Работа с данными
27
+ В проекте используется dvc. Для каждой задачи подгружается свой датасет. Идея: не надо загружать 200 презентаций, если хочется перепроверить тестовую задачу с 10 слайдами. [Подробнее про dvc](./docs/workflow/dvc)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/.dvcignore CHANGED
@@ -1,8 +1,16 @@
1
- # Select only weird-slides dataset
2
 
3
- # ignore all folders in ./data/raw
4
- # only .gitkeep is left there.
5
- raw/*/
6
- # unignore weird-slides
7
- !raw/weird-slides
8
 
 
 
 
 
 
 
 
 
 
1
+ # Презентации для POC
2
 
3
+ # ignore папку с data-science презентациями
4
+ # датасет по data-science уже собран.
5
+ # датасет по business я собираю сейчас.
6
+ # пока все бизнес презы актуальны для POC
7
+ raw/data-science/**/*.pdf
8
 
9
+ # выбираю нужные презентации.
10
+ # `!<pattern>` - отрицание на паттерн - игнорируй все, что не <pattern>
11
+ # `*` мэтчит любую последовательность символов
12
+ # `!*<part of filename>*` игнорируй все, что не <part of filename>
13
+ !*1.За рамками сценария_Эмели Драль_вер.3*
14
+ !*2.Kolmogorov Arnold Networks_Павел Плюснин_вер.2*
15
+ !*4.Обзор уязвимостей и техник защиты для LLM_Евгений Кокуйкин_вер.3*
16
+ !*6.Увеличиваем число обнаружений в задачах_Дмитрий Колесников_вер.4*
data/data_description.md ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ - QR коды
26
+ - Псевдоанимации
27
+ - Переключение слайда отображает следующий элемент списка
28
+ - Переключение слайда добавляет визуальный элемент
29
+
30
+ ## Датасеты
31
+ Дерево папок
32
+ ```
33
+ ./data/raw
34
+ ├── business
35
+ │   ├── business_incognita
36
+ │   │   └── raw
37
+ │   └── insider_infor
38
+ │   ├── note
39
+ │   └── raw
40
+ └── data-science
41
+ ├── aiconf
42
+ │   ├── День1
43
+ │   │   ├── 1.Сфера
44
+ │   │   ├── 2.Полусфера
45
+ │   │   ├── 3.Аудитория 1
46
+ │   │   └── 4.Пресс-центр
47
+ │   └── День2
48
+ │   ├── 1.Сфера
49
+ │   ├── 2.Полусфера
50
+ │   ├── 3.Аудитория 1
51
+ │   └── 4.Пресс-центр
52
+ └── yappi-days
53
+ ```
54
+
55
+ #### AIConf
56
+ 54 презентации по Data-Science.
57
+ Текста в основном мало.
58
+
59
+ #### Business
60
+ Презентации на бизнес-тематику из тг каналов `<ссылка> <ссылка>`.
61
+ - Обзоры отраслей
62
+ - Отчеты
63
+
64
+ > В паблике Insider_infor мне не понравились данные:
65
+ > - Книги
66
+ > - 2-слайовые пдф
67
+ > - дубликаты
68
+
69
+
70
+ ### Описание презентаций
71
+ | Nav | Название | Общая информация | Текстовое содержание | Визуальное содержание | Комментарий |
72
+ | -------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
73
+ | b/business_incognita | Accenture x UN_GenAI For Global Goals_2024 | 39сл, англ, Gen AI for Agriculture and Sustainable Development | Параграфы+, списки1, ссылки | Таблицы, Схемы, Изображения (Сельхоз) | |
74
+ | b/business_incognita | Kept_Подвижной состав РФ_2024 | 20сл, ру, Баланс спроса и предложения поездов, Сергей Казачков | Параграфы+, списки, цветные выводы, Сокращения (РФ, РЖД, ОВЗ, НПК, | Схемы, Графики, Столбчатые диаграммы, Карта маршрутов | |
75
+ | b/business_incognita | SP_Навигатор_по_мерам_гос_поддержки_2024_74_стр | 74сл, ру, | Списки2, параграфы, ссылки | Таблицы, графики, Изображения к заголовкам, Схемы | Красиво добавили картинки на слайды 62-67. |
76
+ | b/insider_infor | dodo-brands-monthly-trading-update-sep-2024 | 13сл, англ, Monthly Trading Update, Минимализм | Списки, текста мало | Графики, столбчатые диаграмы, Таблицы, Фото к слайдам | Без доклада непонятно, о чем |
77
+ | b/insider_infor / note | ABN AMRO - Global Economic Forecasts 28 august | 2сл, таблицы с разноцветными рядами | - | Таблицы | |
78
+ | b/insider_infor | AXES_х_Понимаю_Исследование_практик_благополучия_2024 | 23сл, Исследование практик благополучия, AXES x Понимаю | Списки (6стр стилизованный список) | Bar-chart, Круговые диаграмы, Таблицы (стр 18 стилизованная), Схема типа SWOT, Картинка котика | На последнем слайде картинка с картинка с "игрушечным" графиком |
79
+ | b/insider_infor | ЯиП_Энергетический_переход_Вызовы_и_возможности_для_России | TODO | Горизонтальные списки стр 22, Горизонтально-вертикальный список стр 17 | Графики, схемы, bar-chart, таблицы (стр 16 таблица из графиков), карта (стр 24 типа heatmap) | Слайд 31 полотно текста про копирайт |
80
+ | --- | --- | --- | --- | --- | |
81
+ | ds/aiconf/День1/Сфера | 1.За рамками сценария_Эмели Драль_вер.3 | - 44сл <br> - Тестирование LLM <br> - Эмели Драль | - Списки 2 <br> - Ссылки | - Столбчатые диаграмы <br> - Схемы <br> - Картинки <br> - Один график | Красным текстом выделяется важное |
82
+ | ds/aiconf/День1/Сфера | 2.Kolmogorov Arnold Networks_Павел Плюснин_вер.2 | 55сл, Kolmogorov-Arnold Networks Architecture, Павел плюсин | Списки1, Формулы | Фиолетовое оформление, Схемы нейросетей, Графики, Схемы сверток | |
83
+ | ds/aiconf/День1/Сфера | 4.Обзор уязвимостей и техник защиты для LLM_Евгений Кокуйкин_вер.3 | 72сл, Обзор уязвимостей и техник защиты LLM, Евгений Кокуйкин | Списки1 с эмоджи, Параграфы, Промпты, Код, Ссылки | Таблицы, Фото, Скриншоты, Схемы | |
84
+ | ds/aiconf/День1/Аудитория1 | 6.Увеличиваем число обнаружений в задачах_Дмитрий Колесников_вер.4 | 32сл, Метод Увеличения Числа Обнаружений в задачах Object Detection и Instance Segmentation | Списки1, Код | Много Изображений, сравнение изображений, таблицы | |
85
+
86
+
87
+
data/description.md ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ - QR коды
26
+ - Псевдоанимации
27
+ - Переключение слайда отображает следующий элемент списка
28
+ - Переключение слайда добавляет визуальный элемент
29
+
30
+ ## Датасеты
31
+ Дерево папок
32
+ ```
33
+ ./data/raw
34
+ ├── business
35
+ │   ├── business_incognita
36
+ │   │   └── raw
37
+ │   └── insider_infor
38
+ │   ├── note
39
+ │   └── raw
40
+ └── data-science
41
+ ├── aiconf
42
+ │   ├── День1
43
+ │   │   ├── 1.Сфера
44
+ │   │   ├── 2.Полусфера
45
+ │   │   ├── 3.Аудитория 1
46
+ │   │   └── 4.Пресс-центр
47
+ │   └── День2
48
+ │   ├── 1.Сфера
49
+ │   ├── 2.Полусфера
50
+ │   ├── 3.Аудитория 1
51
+ │   └── 4.Пресс-центр
52
+ └── yappi-days
53
+ ```
54
+
55
+ #### AIConf
56
+ 54 презентации по Data-Science.
57
+ Текста в основном мало.
58
+
59
+ #### Business
60
+ Презентации на бизнес-тематику из тг каналов `<ссылка> <ссылка>`.
61
+ - Обзоры отраслей
62
+ - Отчеты
63
+
64
+ > В паблике Insider_infor мне не понравились данные:
65
+ > - Книги
66
+ > - 2-слайовые пдф
67
+ > - дубликаты
68
+
69
+
70
+ ### Описание презентаций
71
+ | Nav | Название | Общая информация | Текстовое содержание | Визуальное содержание | Комментарий |
72
+ | -------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
73
+ | b/business_incognita | Accenture x UN_GenAI For Global Goals_2024 | 39сл, англ, Gen AI for Agriculture and Sustainable Development | Параграфы+, списки1, ссылки | Таблицы, Схемы, Изображения (Сельхоз) | |
74
+ | b/business_incognita | Kept_Подвижной состав РФ_2024 | 20сл, ру, Баланс спроса и предложения поездов, Сергей Казачков | Параграфы+, списки, цветные выводы, Сокращения (РФ, РЖД, ОВЗ, НПК, | Схемы, Графики, Столбчатые диаграммы, Карта маршрутов | |
75
+ | b/business_incognita | SP_Навигатор_по_мерам_гос_поддержки_2024_74_стр | 74сл, ру, | Списки2, параграфы, ссылки | Таблицы, графики, Изображения к заголовкам, Схемы | Красиво добавили картинки на слайды 62-67. |
76
+ | b/insider_infor | dodo-brands-monthly-trading-update-sep-2024 | 13сл, англ, Monthly Trading Update, Минимализм | Списки, текста мало | Графики, столбчатые диаграмы, Таблицы, Фото к слайдам | Без доклада непонятно, о чем |
77
+ | b/insider_infor / note | ABN AMRO - Global Economic Forecasts 28 august | 2сл, таблицы с разноцветными рядами | - | Таблицы | |
78
+ | b/insider_infor | AXES_х_Понимаю_Исследование_практик_благополучия_2024 | 23сл, Исследование практик благополучия, AXES x Понимаю | Списки (6стр стилизованный список) | Bar-chart, Круговые диаграмы, Таблицы (стр 18 стилизованная), Схема типа SWOT, Картинка котика | На последнем слайде картинка с картинка с "игрушечным" графиком |
79
+ | b/insider_infor | ЯиП_Энергетический_переход_Вызовы_и_возможности_для_России | TODO | Горизонтальные списки стр 22, Горизонтально-вертикальный список стр 17 | Графики, схемы, bar-chart, таблицы (стр 16 таблица из графиков), карта (стр 24 типа heatmap) | Слайд 31 полотно текста про копирайт |
80
+ | --- | --- | --- | --- | --- | |
81
+ | ds/aiconf/День1/Сфера | 1.За рамками сценария_Эмели Драль_вер.3 | - 44сл <br> - Тестирование LLM <br> - Эмели Драль | - Списки 2 <br> - Ссылки | - Столбчатые диаграмы <br> - Схемы <br> - Картинки <br> - Один график | Красным текстом выделяется важное |
82
+ | ds/aiconf/День1/Сфера | 2.Kolmogorov Arnold Networks_Павел Плюснин_вер.2 | 55сл, Kolmogorov-Arnold Networks Architecture, Павел плюсин | Списки1, Формулы | Фиолетовое оформление, Схемы нейросетей, Графики, Схемы сверток | |
83
+ | ds/aiconf/День1/Сфера | 4.Обзор уязвимостей и техник защиты для LLM_Евгений Кокуйкин_вер.3 | 72сл, Обзор уязвимостей и техник защиты LLM, Евгений Кокуйкин | Списки1 с эмоджи, Параграфы, Промпты, Код, Ссылки | Таблицы, Фото, Скриншоты, Схемы | |
84
+ | ds/aiconf/День1/Аудитория1 | 6.Увеличиваем число обнаружений в задачах_Дмитрий Колесников_вер.4 | 32сл, Метод Увеличения Числа Обнаружений в задачах Object Detection и Instance Segmentation | Списки1, Код | Много Изображений, сравнение изображений, таблицы | |
85
+
86
+
87
+
data/raw.dvc CHANGED
@@ -1,6 +1,6 @@
1
  outs:
2
- - md5: 1708b00638de8c66c4f571a92d3d970a.dir
3
- size: 2841121
4
- nfiles: 6
5
  hash: md5
6
  path: raw
 
1
  outs:
2
+ - md5: 1299fba5c252ef3da6127d2651ae1b10.dir
3
+ size: 61336814
4
+ nfiles: 20
5
  hash: md5
6
  path: raw
docs/README.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Документация Presentation RAG
2
+
3
+ - [Workflow](/docs/workflow) - Документация по тому, как работать с проектом
4
+ - [Data Description](/docs/workflow/data_description.md) - Описание данных
5
+ - [DVC](/docs/workflow/data_version_control.md) - как версионируются данные в проекте
docs/system_design_doc.md ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Presentation-RAG System Design
2
+
3
+ ## Цели и предпосылки
4
+
5
+ ### Зачем идем в разработку продукта?
6
+
7
+ **Цель проекта:** Разработать эффективный инструмент для автоматизированного поиска информации по базе из презентаций.
8
+
9
+ **Проблематика:**
10
+ - Большой объем бизнес-информации хранится в форме презентаций.
11
+ - Поиск по ним усложняется визуальным содержимым - графиками, диаграммами, картинками.
12
+ - Нет универсального подхода - решение задачи зависит от домена информации и визуального содержимого
13
+ - `Сложность навигации по докладам на многосекционных конференциях`
14
+
15
+ **Почему станет лучше от использования ML:**
16
+ 1. LLM способны интерпретировать естественно-языковые запросы и связывать их с релевантным контентом.
17
+ 2. Visual Transformers (ViT) эффективно анализируют содержимое изображений и распознают текст.
18
+ 3. Интеграция ViT и LLM улучшает понимание контекста документов.
19
+ 4. RAG позволяет эффективно работать с неструктурированными данными, такими как презентации.
20
+
21
+ ### Ожидаемые результаты
22
+ #### Пользовательский опыт
23
+ - Пользователь вводит естественно-языковой запрос в поисковую строку.
24
+ - Ожидание в течение *адекватного* времени.
25
+ - Результат:
26
+ - Ранжированный список из релевантных презентаций/слайдов.
27
+ - Ссылки на оригиналы.
28
+ - Можно просматривать презентации.
29
+ - Если результат не устроил, можно задать переформулированный запрос в том же чате.
30
+ - История поиска сохраняется.
31
+
32
+
33
+ Сценарий бизнес:
34
+ 1. Подготовка к встрече:
35
+ - Пользователь ищет "последние презентации о финансовых показателях компании"
36
+ - Система выдает релевантные слайды из различных презентаций
37
+ - Пользователь быстро составляет краткий отчет на основе найденной информации
38
+
39
+ 2. Анализ конкурентов:
40
+ - Запрос: "Сравнение наших продуктов с конкурентами за последний квартал"
41
+ - Система находит слайды с таблицами сравнения и диаграммами
42
+ - Пользователь легко идентифицирует ключевые различия и преимущества
43
+
44
+ 3. Подготовка презентации:
45
+ - Поиск "креативные слайды о запуске нового продукта"
46
+ - Система предлагает разнообразные визуальные решения из прошлых презентаций
47
+ - Пользователь быстро адаптирует найденные идеи для новой презентации
48
+
49
+ Сценарий исследователь:
50
+ 1. Анализ трендов:
51
+ - Запрос: "Графики роста рынка AI за последние 5 лет"
52
+ - Система выдает релевантные графики из различных презентаций
53
+ - Исследователь анализирует тренды и формирует гипотезы
54
+
55
+ 2. Поиск методологии:
56
+ - Пользователь ищет "методология оценки эффективности ML моделей"
57
+ - Система находит слайды с описанием методов и формулами
58
+ - Исследователь изучает различные подходы и выбирает наиболее подходящий
59
+
60
+ 3. Сравнение результатов:
61
+ - Запрос: "Сравнительные таблицы производительности GPU и TPU"
62
+ - Система предоставляет релевантные таблицы и графики
63
+ - Исследователь сопоставляет данные для своего эксперимента
64
+
65
+
66
+ #### Функционал поиска
67
+ ##### Обработка запросов
68
+ - Поддержка запросов на естественном языке, включающих текстовое и визуальное содержание.
69
+ - Интерпретация запроса и понимание намерения пользователя.
70
+ - Обработка запросов со сложной струтурой:
71
+ - Несколько условий
72
+ - ~~Произвольное форматирование: списки, **bold**, CAPS~~
73
+ - Произвольная формулировка:
74
+ - Вопросы, требования, их комбинации
75
+ - Термины?
76
+ - Поиск по визуальными элементами презентаций.
77
+ - Стиль (минималистичный, "много текста", ...)
78
+ - Диаграммы разных типов (круговые, столбчатые, графики)
79
+ - Табличные данные
80
+ - Метаданные (автор, дата, ...)
81
+ - Специфические визуальные элементы (воронки продаж, таймлайны, схемы, ...)
82
+ - Примеры поддерживаемых запросов:
83
+ - "Найди презентации в минималистичном стиле о стратегии компании"
84
+ - "Покажи слайды с воронкой продаж в презентациях о digital-маркетинге"
85
+ - "Выдай презентацию по data-аналитике, в которой были картинки с лягушками"
86
+ - "В каких презентациях были графики зависимости X от размера модели?"
87
+
88
+ ##### Генерация ответов
89
+ - Запрос пользователя проходит предобработку для поиска. Формулируется запрос для RAG
90
+ - RAG выдает ссылки на релевантные результаты
91
+ - К результам генерируется пояснение в контексте запроса. Ответ на вопрос "Почему этот слайд попал в ответ?"
92
+
93
+ #### Веб интерфейс
94
+ - Чат-интерфейс
95
+ - Поле для поиска
96
+ - Панель с результатами. Можно экспортировать ссылки.
97
+ - Можно задавать сколько угодно вопросов. История сохраняется.
98
+ - Чат сохраняется
99
+
100
+
101
+ ## Методология
102
+ ### Постановка задачи
103
+ Разработка *ассистента* на основе LLM и RAG для автоматического поиска информации из *набора* презентаций.
104
+
105
+ %%
106
+ - На какую тему презентации? Какой домен? Важно ли это? 
107
+ - Что делать с терминами? Если они нетипичные?
108
+ - Как загружаются презы? Это сервис с двумя типами акков: хост и юзер?
109
+ - Как измерять качество поиска?
110
+ - Как размечаем датасет?
111
+ - Объем?
112
+ - Позитивные/негативные примеры
113
+ - Что делаем с шумом? В презентации часто добавляют картинки для отвлечения внимания. Хотя они же могут и запомниться
114
+ - Мб обучать темам по одним данным а обучать поиску по другим?
115
+ %%
116
+
117
+ - Данные - [Подробное описание](data/description.md)
118
+ - Презентации про ML на русском языке (100)
119
+ - AIConf
120
+ - YappiDays
121
+ - Презентации на бизнес тематику (100): отчеты, обзоры, ...
122
+ - [tg: businessincognita](https://t.me/businessincognita)
123
+ - [tg: insider_infor](https://t.me/insider_infor)
124
+
125
+
126
+ ### Этапы
127
+ #### Proof of Concept (PoC)
128
+ ##### Данные
129
+ - 10 простых презентаций
130
+ - до 30 слайдов ?
131
+ - много текста
132
+ - простой дизайн: текст, картинки четко отделены от текста (границы у графиков, контраст с фоном)
133
+
134
+ ##### Вопросы
135
+
136
+ | Доля | О чем? | Что в презентации? | Примеры |
137
+ | ---- | ------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
138
+ | 60% | Строго по тексту (заголовки, контент) | Подробный текст про X | Найди презентацию на тему `Чтото с титульного слайда` <> В какой презентации рассказывали про `чтото из текста`? |
139
+ | 20% | По обобщенному содержимомоу | Подробный текст <> Перечисления | В какой презентации о маркетинге говорили о продажах? <> ... |
140
+ | 10% | Простые визуальные элементы | графики <> картинки (четко отделены от текста) | В какой презентации был график зависимости X от Y? <> В какой презентации были изображения машин? |
141
+ | 5% | Сложные визуальные элементы | Воронки продаж <> Флоу-чарты | Где показывали воронку продаж для X <> ... |
142
+ | 5% | Отсылки на визуальные элементы | Графики продаж <> Диаграмы | В какой презентации говорили о продажах за последние 5 лет? |
143
+
144
+ Общие моменты
145
+ - Вопросы понятные. Понятно намерение. Легко интерпретировать ответ.
146
+ - Ответ на вопрос **точно есть** в презентациях. ==Но можно добавить несколько out of domain==
147
+ - Ручная проверка.
148
+
149
+ ##### Оформление
150
+ Интерфейс - оформление в виде кода / ноутбука. Таблица с отчетом о результатах.
151
+
152
+ ##### Результаты
153
+ Что мы узнаем?
154
+ - возможности модели
155
+ - темп разработки
156
+
157
+ Сценарий 1: все работает через 2 недели. Тогда идем в усложнение.
158
+
159
+ Сценарий 2: ничего не работает через месяц. Тогда паника.
160
+
161
+ По итогам этапа станет понятно, как скорректировать требования для MVP.
162
+
163
+ #### Minimal Viable Product (MVP)
164
+ - 100 презентаций на МЛ тематику. Сложность определим после POC
165
+ - Реализованы основные функции поиска
166
+ - Веб интерфейс
167
+
168
+ #### План работы
169
+
170
+ - Ресерч и тестирование существующих решений `1нед`
171
+ - Что уже есть?
172
+ - Как оценивать качество?
173
+ - Выбор моделей
174
+ - Как разрабатывать?
175
+ - Разработка POC
176
+ - Код `1w+`
177
+ - setup `1 день`
178
+ - Удобная архитектура проекта
179
+ - Зависимости: Библиотеки / Окружения / docker / ...
180
+ - Разработка `1нед`
181
+ - Предобработка презентаций
182
+ - Разработка промптов для LLM
183
+ - RAG
184
+ - узнать как пользоваться
185
+ - ...
186
+ - Подготовка небольшого датасета `2 дня`
187
+ - Выбор презентаций `2-3ч`
188
+ - Просмотр
189
+ - Заметки по презентации. Научиться в них ориентироваться. Знать все про эти 10 презентаций
190
+ - Составление вопросов
191
+ - Ресерч как сейчас составляют вопросы `2ч`
192
+ - Составление по шаблону + свои `2ч`
193
+ - Интеграция с RAG - разметка, `1 день`
194
+ - Тестирование
195
+ - Выбор метрик - "как автоматически понимать что выдача ок?"
196
+ - Проведение тестов `1 день на тест`
197
+ - Обсуждения со взрослыми
198
+ - Корректировки, итерации
199
+ - Дальнейшее планирование
200
+ - что можно сделать? что нет?
201
+ - будет понятно, как масштабировать
202
+ - Разработка MVP
203
+ - Подготовка большого датасета
204
+ - Тестирование
205
+ - Оценка метрик
206
+ - Выводы
207
+ - Разработка веб-интерфейса
208
+ - Ресерч фреймворков `2д`
209
+ - Реализация `3д`
210
+ - Тестирование функционала `1д` -- будет +/- параллельно с другими задачами
211
+ - Фичи
212
+ - Форматы сохранение результатов
213
+ - Юзабилити
214
+
215
+ ##### Времязатраты
216
+
217
+ **POC**
218
+ | Задача | Ожидаемое время | Затраченное время |
219
+ | ------------------------------------------ | --------------- | ----------------- |
220
+ | Ресерч и тестирование существующих решений | 1н+ | |
221
+ | Подготовка данных для POC | 2д | |
222
+ | Разработка POC | 1н+ | |
223
+ | Тестирование и итерации | 3д | |
224
+
225
+
226
+ **MVP**
227
+ | Задача | Ожидаемое время | Затраченное время | Комментарий |
228
+ | ------------------------------------------ | --------------- | ----------------- | ------------------------------------- |
229
+ | Осмысление результатов POC <> Планирование | 2д | | |
230
+ | Подготовка данных для MVP | 5д | | как составить много хороших вопросов? |
231
+ | Разработка MVP | ? | | База есть с POC, что дальше? |
232
+ | Тестирование и итерации | 3д | | |
233
+ | Веб-интерфейс и деплой | 5д | | |
234
+
235
+
236
+ ## Студенческие моменты
237
+ - Цели
238
+ - Научиться адаптировать RAG для нестандартных задач
239
+ - Презентовать свои результаты перед публикой
240
+ - Закрыть курс проектной практики
241
+ - Ожидаемый результат
242
+ - *RAG для поиска по презентациям*
243
+ - Выступление на DataFest
244
+ - Закрытая сессия
docs/workflow/data_version_control.md CHANGED
@@ -2,10 +2,78 @@
2
 
3
  ```shell
4
  # Выбираем ветку
5
- git branch --list
6
- git checkout <branch>
 
 
 
7
 
8
  # Загружаем данные. Ключи не нужны, хранилище открытое.
9
  dvc pull
10
  ```
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  ```shell
4
  # Выбираем ветку
5
+ git branch -a # выдаст все ветки
6
+
7
+ # если нужная ветка только в remote
8
+ git branch --track branch-name origin/branch-name # скачали ветку
9
+ git checkout branch-name
10
 
11
  # Загружаем данные. Ключи не нужны, хранилище открытое.
12
  dvc pull
13
  ```
14
 
15
+ ## Выбираем только нужные презентации из датасета
16
+ Допустим я собираю датасет для POC. Он должен состоять примерно из 20ти отобранных презентаций. Но сейчас у меня уже ~80. С помощью dvc можно создать версию датасета, в которой будут только нужные презентации. При этом на диске не будет дубликатов.
17
+
18
+ Вот структура директории. `./data/raw` уже отслеживается dvc:
19
+ ```
20
+ ./data
21
+ ├── raw
22
+ │   ├── business # 7 items
23
+ │   │   ├── business_incognita
24
+ │   │   └── insider_infor
25
+ │   ├── data-science # 73 items
26
+ │   │   ├── aiconf
27
+ │   │   └── yappi-days
28
+ │   └── weird-slides
29
+ └── raw.dvc
30
+ ```
31
+
32
+ Презентации по бизнесу я собираю сейчас - все они подходят для POC. А по data-science надо выбрать подходящие. Используем для этого `.dvcignore` - как `.gitignore`, только для dvc. Вот полезные паттерны для `.ignore` файлов:
33
+
34
+ [Паттерны .gitignore:](https://git-scm.com/docs/gitignore)
35
+ - `*` - мэтчит любую последовательность символов
36
+ - `/**/` - мэтчит любую последовательность вложенных папок
37
+ - `!<pattern>` - отрицание на паттерн - игнорируй все, что не `<pattern>`
38
+ - `!*<part of filename>*` игнорируй все, что не содержит `<part of filename>`
39
+
40
+ Теперь к задаче:
41
+
42
+ - Выберем нужные презентации из `data-science`. Хватит названия файла, можно не записывать полный путь.
43
+
44
+ - Попросим dvc игнорировать все файлы из `data-science`, кроме избранных.
45
+ Воспользуемся отрицательными паттернами.
46
+
47
+ В итоге получим вот такой `.dvcignore`
48
+
49
+ ```shell
50
+ # ignore папку с data-science презентациями
51
+ raw/data-science/**/*.pdf
52
+
53
+ # выбираю нужные презентации.
54
+ !*1.За рамками сценария_Эмели Драль_вер.3*
55
+ !*2.Kolmogorov Arnold Networks_Павел Плюснин_вер.2*
56
+ !*4.Обзор уязвимостей и техник защиты для LLM_Евгений Кокуйкин_вер.3*
57
+ !*6.Увеличиваем число обнаружений в задачах_Дмитрий Колесников_вер.4*
58
+ ```
59
+
60
+ Проверим, что все прошло по плану:
61
+ ```shell
62
+ dvc diff # Выдаст список Deleted:
63
+ dvc list -R data --dvc-only # список файлов, отслеживаемых dvc
64
+ ```
65
+
66
+ Убедились, что мы удалили все файлы, кроме выбранных. Коммитим.
67
+ ```shell
68
+ dvc commit
69
+
70
+ # сохраним в гит
71
+ git add .dvcignore data/raw.dvc
72
+ git commit -m "Select presentations for POC
73
+ ```
74
+
75
+ Чтобы скачать презентации только для POC:
76
+ ```shell
77
+ git checkout POC
78
+ dvc pull
79
+ ```