Привет, это Кенни, менеджер по продукту в Adansons Inc.

Мы работаем над инструментом, который упростит создание набора данных для машинного обучения и улучшит производительность ИИ за счет повышения качества набора данных.

В моей предыдущей статье я обсуждал, как может быть очень проблематично подготовить данные для анализа с помощью кода. В этой статье я опишу наш продукт Base и как с его помощью создать набор данных.

Мы ищем тестовых пользователей, которые могут оставить отзыв о Base!

Получить форму приглашения ↓↓↓





Что такое База и что она может делать?

По сути, это инструмент для создания организованной базы данных путем извлечения метаданных, записанных в файлах и структурах папок.

Больше всего времени при создании набора данных занимает обработка несоответствий в форматах, написании и структуре папок. Base использует хэш-значения файлов данных для связывания метаданных и файлов даже при наличии таких несоответствий.

Кроме того, он автоматически извлекает таблицы из файлов метаданных в Excel и CSV, форматирует их, чтобы их можно было легко прочитать в коде, и интегрирует файлы метаданных путем объединения повторяющихся столбцов — и все это с помощью одной команды.

Теперь давайте посмотрим, как Base может упростить подготовку набора данных!

Обычный процесс создания набора данных

Чтобы подготовить набор данных для анализа, нам нужно реализовать функцию загрузки данных, которая связывает файлы данных и их метаданные. При этом форматы файлов метаданных, структуры папок и правила именования файлов должны быть унифицированы.

1. Организуйте метаданные в машиночитаемом формате

Наиболее распространенный способ хранения метаданных для неструктурированных данных — встроить их в структуры папок и имена файлов. Например, мы можем создать папку для каждой правильной этикетки и хранить файлы данных в соответствующей папке.

Другой распространенной практикой является хранение метаданных в файлах Excel и CSV и указание идентификаторов соответствующих файлов данных.

Когда метаданные хранятся во внешних файлах, нам также необходимо унифицировать их формат. Например, когда у нас есть несколько таблиц на одном листе Excel, нам нужно объединить их в одну таблицу, и когда имена столбцов не унифицированы в разных файлах, нам также нужно обработать это.

2. Создайте функцию загрузки данных, которая считывает файлы данных вместе с метаданными.

Закончив организацию метаданных, мы переходим к реализации функции загрузки данных, которая считывает файлы данных вместе с метаданными.

Это изображение является примером функции загрузки данных, размещенной на Kaggle.

Когда не так много внешних файлов, на которые можно ссылаться, а метаданные организованы аккуратно, как в этом примере, код получается красивым и простым. Однако дополнительные данные могут иметь другой формат и могут увеличить количество внешних файлов, о которых необходимо позаботиться, что приводит к все более и более сложному загрузчику данных.

Мы можем сделать все это всего за 3 команды с помощью Base!

Он автоматизирует задачу исправления несогласованных форматов и объединения повторяющихся данных в нескольких файлах метаданных. Здесь я представлю некоторые из наиболее важных команд Base.

Подробнее см. в руководстве на GitHub!



1. Импортируйте файлы данных и инициализируйте БД для метаданных (CLI)

base import --directory **** --extension png --parse "{dataType}/{label}/{id}.png"

В Base хеш-значения файлов данных являются важной информацией, которая используется для их связи с метаданными.

Выполнение команды base import вычисляет хеш-значения файлов данных в папке, указанной в аргументе командной строки.

Кроме того, если у вас есть метаданные, которые вы хотите извлечь из структуры папок и имен файлов, вы можете указать информацию, которую хотите извлечь, заключив ее в {} и указав ее значение, которое впоследствии будет использоваться в качестве ключа в базе данных метаданных.

Вы можете извлекать данные из сложных путей к файлам, таких как "john/2022-5_hello.wav" , указав формат "{name}/{year}-{month}_{phrase}.wav"

2. Организуйте файлы метаданных и свяжите их с файлами данных (CLI).

Опция --external-file в команде base import может автоматически извлекать таблицы из файлов метаданных в Excel или CSV и преобразовывать их в формат, который легко читается на машинах.

Например, если файл Excel содержит две таблицы на одном листе, выполнение команды автоматически объединяет их в одну таблицу.

Более того, он может автоматически определять, какой столбец (ключ) следует использовать для объединения с существующими данными в БД. (↓пример вывода этой команды)

2 tables found!
now estimating the rule for table joining...
1 table joining rule was estimated!
Below table joining rule will be applied...

Rule no.1
  key 'index' -> connected to 'id' key on exist table
  key 'originalLabel' -> connected to 'label' key on exist table  
  key 'correction' -> newly added
  key 'dataType' -> connected to 'dataType' key on exist table
2 tables will be applied
Table 1 sample record:
  {'index': 8, 'originalLabel': 5, 'correction': -1, 'dataType': 'test'}
Table 2 sample record:
  {'index': 1061, 'originalLabel': 0, 'correction': '0or6', 'dataType': 'test'}
Success!

На следующем изображении показан пример. БД метаданных в левом верхнем углу имеет 3 ключа: dataType, label и id, а файл метаданных, который вы хотите добавить в базу данных, имеет ключи с именами index, originalLabel и correction.

На основе схожести данных, связанных с каждым ключом, Base оценивает, какие ключи следует связать. В этом примере label и id должны быть соединены с originallabel и index соответственно, и исправление будет добавлено как новые метаданные.

3. Запрос на создание набора данных (Python SDK)

Вам больше не придется реализовывать сложные загрузчики данных. Если вы анализируете данные с помощью Python, все, что вам нужно сделать, это инициализировать класс base.Project именем вашего проекта перед импортом файлов данных и написать запросы с импортированными метаданными для создания набора данных.

Добавить дополнительные файлы данных или файлы метаданных в существующую БД также легко с помощью команды base import или base import --external-file.

Даже если структура папок и имена файлов не являются общими для участников проекта, вы можете поделиться своим кодом, используя другую команду, чтобы пригласить участников в базовый проект.

Как использовать этот инструмент для управления данными в вашем собственном проекте

Мы сделали функции, которые были реализованы до сих пор, общедоступными бесплатно. Присоединяйтесь к нашему slack-сообществу, чтобы получить ключ доступа к продукту и самую свежую информацию о нем!

Получить форму приглашения ↓↓↓