Data Versioning
Оновлено: 31.07.2023
Кожен потенційний спосіб модифікації наборів даних і спосіб, у який ми аналізуємо наші набори даних, що, природно, вимагає зміни нашого коду, є "експериментом", і ми хочемо вести підрахунок кожного "експерименту", який ми проводимо. Ми повинні керувати версіями даних, необхідних для тестування ML-моделей.
- Версіонування даних - це процес фіксації точного часу розробки даних за допомогою унікального номера версії.
Такий підхід до машинного навчання є важливим, оскільки неможливо переоцінити важливість повернення до конкретних обставин, які призвели до побудови певної моделі.
Важливість керування версіями даних
Версифікація даних у базі даних має важливе значення, оскільки дозволяє швидше створювати інформаційні продукти, усуваючи при цьому помилки.
Ви коли-небудь випадково знищували терабайти виробничих даних? Відновити попередню версію набору даних набагато простіше, ніж повторно запустити завдання зворотного заповнення, яке може зайняти весь день.
Потрібно виявити змінені записи в таблиці за відсутності надійного останнього оновленого стовпця або журналу CDC? Достатньо зберегти численні знімки даних і перевірити їх на наявність розбіжностей.
Зменшення вартості помилок і розкриття інформації про те, як дані змінювалися з плином часу, - це два способи для команди, яка працює з даними, прискорити темпи розробки. Тригером, який робить це можливим, є версіонування моделі даних.
Недоліки версійності даних
Оскільки хмарні програмні рішення широко використовуються, вибір правильного постачальника є досить складним завданням. Крім того, версійність даних викликає певні труднощі з безпекою даних і займає багато місця в сховищі.
- Вибір найкращого постачальника- Якщо ви вирішили використовувати рішення для керування версіями, вам слід вибрати найкраще для ваших організаційних потреб.
Численні хмарні провайдери надають безліч функцій і стягують різну плату. Як наслідок, необхідно зважити альтернативи, щоб досягти економічної ефективності хмарних сервісів. Ви повинні оцінювати інструменти за такими основними критеріями: наявність відкритого коду, зручний інтерфейс, підтримка найпоширеніших хмар, обсяг пам'яті і, звичайно ж, вартість.
- Проблеми безпеки- Щоб захистити свій бренд, компанії повинні забезпечити безпеку даних. Однак, оскільки зберігається більше версій інформації, ризик втрати або витоку даних зростає. Цей ризик особливо зростає для клієнтів хмарних сервісів, оскільки вони просто передають свою ІТ-діяльність на аутсорсинг, залишаючи компаніям менший контроль над своїми даними. Організації повинні виявити і зрозуміти цю вразливість, щоб розробити оптимальну стратегію управління версіями даних.
- Проблеми зберігання- Якщо кількість версійних файлів велика, управління версіями може викликати проблеми. Це пов'язано з тим, що в репозиторії Git'а зберігається вся історія кожного файлу, а часті зміни в них призводять до того, що репозиторій клонується дуже довго і займає багато місця на диску.
Для керування окремими файлами можна використовувати розширення Git'а LFS. Це неоптимальний варіант, оскільки розмір файлів обмежений до 4 ГБ.
Другий підхід полягає в управлінні версіями шляхом додавання нової версії прошивки без зміни попередніх версій матеріалу.
Якщо ніхто інший не бере участі в проекті, це правильний підхід. В атмосфері співпраці, коли всі можуть вводити одні й ті ж дані і потенційно можуть змінювати їх і створювати новий набір даних, негайним результатом буде масова руйнація.
Крім того, зберігання великих файлів разом з кодом все ще залишається жахливою ідеєю з очевидної причини - зниження швидкості. Ми не хочемо отримувати кожен набір даних, що використовується протягом життя нашого проекту; нам потрібен лише один.
Саме тому нам потрібно десь зберігати ці файли. Це фундаментальний принцип, на якому побудовані всі інструменти керування версіями даних.
Інструменти керування версіями даних
Версії файлів можна замінити за допомогою спеціалізованих інструментів. У вас є можливість розробити свою програму або віддати її на аутсорсинг. Такі послуги надають різні компанії, зокрема DVC machine learning та Pachyderm.
Рішення з керуванням версіями більше підходять для підприємств, що вимагають:
- Відповідальність: Контроль версій даних дозволяє виявити, де виникають помилки і хто їх створює.
- Редагування: Якщо над даними працює більше ніж один співробітник, використання окремого інструменту є більш продуктивним. Це пов'язано з тим, що контроль версій файлів не дозволяє вносити спільні зміни в режимі реального часу.
- Співпраця: Коли люди повинні працювати з різних місць, використання програм замість керування версіями даних є більш практичним.