presentation-search / docs /workflow /data_version_control.md
Ilia Tambovtsev
Merge branch 'RMI-22_Dataset-for-POC' into RMI-39_weird-slides-gpt4v
ff3ad18

A newer version of the Gradio SDK is available: 6.9.0

Upgrade

Как работать с dvc в этом проекте?

# Выбираем ветку
git branch -a # выдаст все ветки

# если нужная ветка только в remote 
git branch --track branch-name origin/branch-name # скачали ветку
git checkout branch-name

# Загружаем данные. Ключи не нужны, хранилище открытое.
dvc pull

Выбираем только нужные презентации из датасета

Допустим я собираю датасет для POC. Он должен состоять примерно из 20ти отобранных презентаций. Но сейчас у меня уже ~80. С помощью dvc можно создать версию датасета, в которой будут только нужные презентации. При этом на диске не будет дубликатов.

Вот структура директории. ./data/raw уже отслеживается dvc:

./data
├── raw
│   ├── business                # 7 items
│   │   ├── business_incognita
│   │   └── insider_infor
│   ├── data-science            # 73 items
│   │   ├── aiconf
│   │   └── yappi-days
│   └── weird-slides
└── raw.dvc

Презентации по бизнесу я собираю сейчас - все они подходят для POC. А по data-science надо выбрать подходящие. Используем для этого .dvcignore - как .gitignore, только для dvc. Вот полезные паттерны для .ignore файлов:

Паттерны .gitignore:

  • * - мэтчит любую последовательность символов
  • /**/ - мэтчит любую последовательность вложенных папок
  • !<pattern> - отрицание на паттерн - игнорируй все, что не <pattern>
  • !*<part of filename>* игнорируй все, что не содержит <part of filename>

Теперь к задаче:

  • Выберем нужные презентации из data-science. Хватит названия файла, можно не записывать полный путь.

  • Попросим dvc игнорировать все файлы из data-science, кроме избранных. Воспользуемся отрицательными паттернами.

В итоге получим вот такой .dvcignore

# ignore папку с data-science презентациями
raw/data-science/**/*.pdf

# выбираю нужные презентации.  
!*1.За рамками сценария_Эмели Драль_вер.3*
!*2.Kolmogorov Arnold Networks_Павел Плюснин_вер.2*
!*4.Обзор уязвимостей и техник защиты для LLM_Евгений Кокуйкин_вер.3*
!*6.Увеличиваем число обнаружений в задачах_Дмитрий Колесников_вер.4*

Проверим, что все прошло по плану:

dvc diff # Выдаст список Deleted:
dvc list -R data --dvc-only # список файлов, отслеживаемых dvc 

Убедились, что мы удалили все файлы, кроме выбранных. Коммитим.

dvc commit

# сохраним в гит
git add .dvcignore data/raw.dvc
git commit -m "Select presentations for POC

Чтобы скачать презентации только для POC:

git checkout POC
dvc pull