Передискретизация методом проб и ошибок

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

Вайрфрейминг

Большинство читателей видели фильмы Аватар и Парк Юрского периода и были поражены реалистичностью компьютерной графики в этих фильмах. Но законченная и отточенная версия фильмов сильно отличается от моделей, использованных при планировании и постановке фильма. На начальных этапах скелеты каркасов перемещаются по экрану с различными уровнями заполнения с течением времени (см. Рисунок ниже). Только в окончательной версии детали отображаются полностью с максимальным разрешением окончательного формата.

Тот же принцип действует при разработке тестовых данных для последующей полной обработки. Чем больше входные данные, тем более болезненным становится тестирование и отладка процессов с использованием реальных вещей позже (например, когда я переиздаю свой старый роман Слоганы на платформе Amazon через онлайн-службу по производству книг, проверка правильности PDF-документ на 500 страниц каждый раз выходил из строя по нескольку часов без полезного сообщения об ошибке). Когда вы пытаетесь подделать данные, вы неизбежно упускаете из виду настоящие проблемы, которые снова и снова вас укусят.

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

Призраки в оболочке

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

Как и в Интернете, пакетирование потоков данных - это в основном проблема трафика. Есть этапы (задачи) и есть ссылки, которые направляют поток в прямом направлении (ссылки). На каждом этапе необходимо дождаться поступления достаточного количества данных, чтобы их обработка окупалась.

Существует множество способов выборочной выборки данных для тестирования в зависимости от форматов файлов и стратегий пакетной обработки. Например:

  • Первые n записей,
  • Каждую ⅓ пластинку,
  • Пропустить этап.
  • Фиктивная трансформация.

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

Сделай громче!

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

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

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

Начало платформы

Поведение, которое действительно влияет на ориентацию на пользователя, должно требовать только разрешения и руководства пользователей, а не сложного перекодирования и связанных с этим административных навыков - и особенно не должно требовать каких-либо специальных заклинаний для вызова изменений в облачной инфраструктуре. Kubernetes - это начало отличной платформы, но его никогда не следует принимать за классную игрушку для привлечения пользователей. Его задача - исчезнуть. Одна из целей Aljabr в проекте Koalja - обеспечить прозрачность платформы для пользователей во всех организациях. Никто не должен нуждаться в команде SRE только для того, чтобы выполнять простую работу гибко и масштабируемо.