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

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

Но простое добавление инструмента в середину стека редко является способом извлечь из него максимальную пользу. Modular Data Retrieval (MDR) — это концепция, позволяющая быстро, управляемо и итеративно создавать наборы данных с помощью инструмента промежуточного уровня. Если вы понимаете MDR, вы можете максимизировать преимущества своего среднего уровня. (Вы даже можете создать свой собственный средний слой.)

Этот пост является первой частью серии статей о MDR, состоящей из двух частей, и основная цель этого поста — представить общую концепцию. В части 2, Современное извлечение данных, архитектура, я рассмотрю некоторые из более низкоуровневых архитектурных концепций, обеспечивающих MDR.

Что я подразумеваю под «модульным поиском данных»?

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

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

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

  • Демографические данные пациента (возраст, пол и т. д.)
  • Основные сопутствующие заболевания
  • Показатели жизнедеятельности и другие биометрические данные
  • Физические оценки
  • Клинические лабораторные результаты

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

Ваши наборы данных очень похожи, но они также существенно различаются. Вы заметили, что почти все ваши наборы данных включают большую часть этих групп функций. Но многие наборы данных будут исключать 1 или 2 из них. Кроме того, почти все ваши наборы данных включают 1 или 2 более специализированные функции, которые не так широко используются. Например, категориальные признаки с высокой кардинальностью могут быть уменьшены по размеру по-разному для разных вариантов использования — например, в фармацевтике. Для вашей модели прогнозирования легочной эмболии вы используете фармацевтические встраивания, которые были обучены в контексте неблагоприятных случаев свертывания крови. В вашей модели с низким содержанием калия будет использоваться другая фармацевтическая вставка.

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

Эта возможность смешивать и сочетать различные группы функций — это только начало того, что может предложить модульный поиск данных. Это часть архитектуры, которую вы видите наиболее отчетливо с первого взгляда. Прежде чем мы завершим это введение, давайте рассмотрим более полное определение МЛУ…

Более полное определение

Чтобы поиск данных был модульным, он должен удовлетворять следующим требованиям:

  1. Извлечение данных происходит через промежуточный уровень между пользователем и данными.
  2. Компоненты данных (например, группы функций) демонстрируют согласованный интерфейс, который позволяет процессу создания набора данных создавать наборы данных независимо от конкретных используемых компонентов данных. Этот интерфейс каким-то образом объявлен среднему уровню.
  3. Компоненты данных имеют стабильное определение между наборами данных. То есть данные из компонента данных согласуются между наборами данных, в которых он появляется.
  4. Изменения в компоненте данных могут и должны быть версионными.
  5. Компоненты данных соответствуют данным, относящимся ко всей предметной области, а фильтрация данных для вариантов использования происходит во время создания набора данных.

И на случай, если этот список покажется немного абстрактным, позвольте мне дать хотя бы одно «ну и что?» для каждого числа выше:

  1. Наборы данных определяются путем простого составления некоего списка имен (и версий) компонентов данных (т. библиотека кода илиприложение, которое считывает конфигурации наборов данных yamlили графический интерфейс для вашего хранилища функций, иличто-то еще.
  2. (A) Вы можете создавать новые наборы данных или перебирать старые намного быстрее… (B) Процесс создания совершенно нового набора данных из существующих компонентов данных даже поддается высокой степени автоматизации.
  3. Ошибки или конфликтующие определения данных не проникают в множественные выборки наборов данных через повторяющийся код.
  4. Наборы исторических данных могут быть созданы заново. «Улучшения» могут быть проверены эмпирически. Управление.
  5. Доведена до максимума возможность повторного использования компонентов данных в различных вариантах использования.

Следующие шаги: модульная архитектура поиска данных

Так как же выглядит архитектура MDR? Перейдите к части 2, Модульное извлечение данных, архитектура, чтобы углубиться.