File size: 3,824 Bytes
bf51a26
 
 
 
767faf3
 
 
 
 
bf51a26
 
 
 
 
767faf3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ff3ad18
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
# Как работать с dvc в этом проекте?

```shell
# Выбираем ветку
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:](https://git-scm.com/docs/gitignore)
- `*` - мэтчит любую последовательность символов
- `/**/` - мэтчит любую последовательность вложенных папок 
- `!<pattern>` - отрицание на паттерн - игнорируй все, что не `<pattern>`  
- `!*<part of filename>*` игнорируй все, что не содержит `<part of filename>`  

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

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

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

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

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

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

Проверим, что все прошло по плану: 
```shell
dvc diff # Выдаст список Deleted:
dvc list -R data --dvc-only # список файлов, отслеживаемых dvc 
```

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

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

Чтобы скачать презентации только для POC:
```shell
git checkout POC
dvc pull
```