машинно обучениеМЛОПСинженерство на характеристикинаука за данниизкуствен интелект
Системи за съхранение на функции срещу Ad Hoc инженерство на функции
Системите за съхранение на функции предлагат централизирано, многократно използваемо и версирано управление на функции за работни процеси на машинно обучение, докато ad hoc инженерингът на функции разчита на персонализирани скриптове, изградени за всеки проект. Изборът между тях оформя начина, по който екипите мащабират, си сътрудничат и внедряват модели в производствени среди.
Акценти
Хранителите с функции елиминират изкривяването при обучението, като обединяват логиката на трансформация в пакетните и реално-временните конвейери.
Ad hoc инженерството предлага несравнима гъвкавост за бързо експериментиране без ограничения на платформата.
Хранилището с функции превръща функциите в споделени организационни активи, намалявайки дублираната работа между екипите.
Точката на безубыточност за внедряване на хранилище за функции обикновено настъпва, след като множество модели достигнат производство.
Какво е Системи за съхранение на функции?
Централизирани платформи, които съхраняват, версиират и предоставят курирани функции за модели на машинно обучение в екипи и проекти.
Магазините с артикули бяха популяризирани от компании като Uber (Michelangelo), Airbnb (Chronon) и Google в края на 2010-те.
Те обикновено поддържат както онлайн (с ниска латентност), така и офлайн (пакетна) функция, обслужваща обучение и изводи.
Опциите с отворен код включват Feast, Hopsworks и Featureform, всяка от които предлага различни интеграции за съхранение и оркестрация.
Хранителите на функции налагат съгласуваност на функциите, като използват една и съща логика на трансформация за обучение и обслужване, намалявайки неравномерността между обучението и обслужването.
Те предоставят вградено управление на версиите на функциите, проследяване на произхода и контрол на достъпа, които поддържат управлението и възпроизводимостта.
Какво е Ad Hoc Инженеринг на функции?
Създаване на персонализирани, специфични за проекта функции, извършвано ръчно от специалисти по данни, използващи скриптове, тетрадки или еднократни конвейери.
Ad hoc инженерството на характеристики е подходът по подразбиране в науката за данни още от ранните дни на областта, много преди да съществуват хранилищата за характеристики.
Обикновено това включва писане на Python или SQL код в тетрадки като Jupyter, за да се трансформират суровите данни в готови за моделиране входни данни.
Функциите често се дублират в различните проекти, защото няма споделено хранилище, което води до непоследователни дефиниции.
Този подход дава на специалистите по данни максимална гъвкавост да експериментират с нови трансформации без ограничения на платформата.
Поддръжката става по-трудна с течение на времето, тъй като скриптовете, зависимостите и източниците на данни се развиват без централизирана документация.
Сравнителна таблица
Функция
Системи за съхранение на функции
Ad Hoc Инженеринг на функции
Възможност за повторно използване на функции
Високо - споделено между екипи и проекти
Ниско - обикновено специфично за проекта
Последователност при обучение и сервиране
Вградено чрез унифицирани тръбопроводи
Ръчно, често непоследователно
Сложност на настройката
По-висока първоначална настройка и инфраструктура
Минимално - само код и данни
Мащабируемост
Проектиран за производствен мащаб
Ограничено от екипа и капацитета на инструментите
Управление и произход
Версиониране, контрол на достъпа, одитни следи
Обикновено недокументирано или неформално
Гъвкавост за експериментиране
Умерено - ограничено от платформата
Много високо - без ограничения на платформата
Време до първия модел
По-бавно поради разходи за настройка
По-бързо за еднократни проекти
Разходи за поддръжка
По-ниски дългосрочни в голям мащаб
По-високо с нарастването на броя на характеристиките
Подробно сравнение
Работен процес и архитектура
Системите за съхранение на функции работят като специални инфраструктурни слоеве, разположени между източниците на сурови данни и моделите за машинно обучение. Те обработват приемането, трансформацията, съхранението и обслужването чрез унифициран конвейер. Ad hoc инженерството на функции, за разлика от това, се намира навсякъде, където работи специалистът по данни, обикновено в преносими компютри или самостоятелни скриптове, които извличат данни, прилагат трансформации и захранват модели директно. Архитектурната разлика означава, че хранилищата на функции изискват предварителна инвестиция в инструменти, докато ad hoc подходите могат да започнат само с CSV файл и малко код за Panda.
Съгласуваност между обучението и производството
Един от най-големите проблеми в машинното обучение е неравномерното представяне на обучението, при което моделът се представя добре в разработка, но се влошава в производство, защото характеристиките се изчисляват по различен начин. Хранилищата с характеристики решават това, като използват един и същ код за трансформация както за пакетни данни за обучение, така и за изводи в реално време. При ad hoc инженерството екипите често пишат един набор от логика за обучение и друг за представяне, което въвежда фини грешки, които са известни с това, че са трудни за отстраняване на грешки. Само това предимство на последователността е накарало много организации да въведат хранилищата с характеристики.
Екипно сътрудничество и споделяне на знания
Когато функциите се намират в споделено хранилище, всеки специалист по данни може да ги открие и използва повторно, което предотвратява излишната работа и насърчава стандартизацията. Новите членове на екипа могат да разглеждат каталог със съществуващи функции, вместо да ги преоткриват. Ad hoc инженерството има тенденция да създава силози, където всеки анализатор възстановява подобни функции изолирано, понякога с леко различни дефиниции, които причиняват объркване надолу по веригата. С течение на времето тази фрагментация затруднява поддържането на съгласувана стратегия за функции в цялата организация.
Скорост на експериментиране спрямо готовност за производство
Ad hoc инженерството на функции блести по време на ранните експерименти, когато специалистите по данни трябва бързо да извършват итерии върху нови трансформации, без да се притесняват за внедряването. Нова функция може да бъде тествана за минути. Съхранението на функции добавя допълнителни разходи, защото всяка функция трябва да бъде регистрирана, валидирана и интегрирана в обслужващата инфраструктура, преди да може да бъде използвана в производство. Същите тези разходи обаче се отплащат, когато моделите преминат към производство, тъй като функцията вече е готова за производство, вместо да изисква отделни инженерни усилия.
Разходи и оперативни съображения
Управлението на хранилище за функции включва инфраструктурни разходи за съхранение, изчисления и оркестрация, плюс инженерните усилия за поддръжката му. За малки екипи или единични проекти това може да изглежда прекалено. Ad hoc инженерингът има почти нулеви инфраструктурни разходи, но натрупва скрити разходи за дублирана работа, отстраняване на грешки в несъответствия и пренаписване на функции за производство. Точката на безубыточност обикновено настъпва, когато една организация има множество модели в производство или няколко специалисти по данни, работещи по припокриващи се проблеми.
Предимства и Недостатъци
Системи за съхранение на функции
Предимства
+Централизирано повторно използване на функции
+Последователност при тренировките и сервирането
+Вградено управление на версиите
+Сервиране, готово за производство
Потребителски профил
−По-висока цена на настройката
−Инфраструктурни разходи
−По-бавно експериментиране
−Фиксиране към доставчик или инструментална екипировка
Ad Hoc Инженеринг на функции
Предимства
+Максимална гъвкавост
+Бързо за стартиране
+Не е необходима инфраструктура
+Лесно за персонализиране
Потребителски профил
−Трудно за повторна употреба
−Непоследователни дефиниции
−Трудно се поддържа
−Няма вградено управление
Често срещани заблуди
Миф
Хранилището с характеристики е просто база данни за характеристики.
Реалност
Хранилището с характеристики е много повече от просто място за съхранение. То включва канали за трансформация, онлайн и офлайн обслужване, откриване на характеристики, проследяване на произхода и контрол на достъпа. Третирането му като обикновена база данни пропуска по-голямата част от неговата стойност, особено гаранциите за съгласуваност между обучението и извода.
Миф
Ad hoc инженерството на функции изобщо не се мащабира.
Реалност
Много успешни компании работеха с ad hoc конвейери в продължение на години, преди да въведат хранилища за функции. Подходът се мащабира сравнително добре за малки екипи и шепа модели. Това, което се разпада, е сътрудничеството, управлението и последователността, след като броят на моделите и специалистите по данни нарасне значително.
Миф
Трябва да изберете един подход завинаги.
Реалност
Повечето зрели организации за машинно обучение използват и двете. Специалистите по данни изследват нови идеи ad hoc в тетрадки, след което популяризират валидирани функции в хранилище за производствена употреба. Третирането им като допълващи се, а не като конкуриращи се подходи, обикновено работи най-добре на практика.
Миф
Съхранилищата на характеристики автоматично подобряват точността на модела.
Реалност
Хранилищата с функции подобряват оперативното качество, не непременно производителността на модела. Те намаляват грешките, ускоряват внедряването и предотвратяват несъответствия, но основните функции все още се нуждаят от внимателно проектиране. Лошата функция в хранилището си остава лоша функция.
Миф
Магазините с функции с отворен код са готови за работа веднага щом бъдат инсталирани.
Реалност
Инструменти като Feast и Hopsworks осигуряват солидна основа, но внедряването в производствена среда все още изисква значителна инженерна работа около мониторинга, мащабирането, сигурността и интеграцията със съществуващата инфраструктура от данни. Готовността за работа на готови решения варира значително между проектите.
Често задавани въпроси
Какво е хранилище за функции в машинното обучение?
Хранилището с характеристики е централизирана платформа, която съхранява, управлява и обслужва характеристики на машинно обучение както за обучение, така и за извод. То действа като мост между суровите данни и моделите, като гарантира, че едни и същи дефиниции на характеристики се използват последователно в задачите за пакетно обучение и прогнозите в реално време. Популярни примери включват Feast, Hopsworks и Tecton.
Защо компаниите използват хранилища за функции вместо ad hoc конвейери?
Компаниите внедряват хранилища за функции предимно за елиминиране на неравномерното обслужване на обучението, за да позволят повторно използване на функции между екипите и за намаляване на инженерните усилия, необходими за внедряване на модели. Когато множество специалисти по данни работят върху припокриващи се проблеми, споделеният каталог на функции предотвратява дублирането на работа и непоследователните дефиниции, които могат незабелязано да влошат производителността на модела.
Кога ad hoc инженерството на функции е правилният избор?
Ad hoc инженерството на характеристики е най-подходящо за самостоятелно работещи с данни специалисти, изследователски проекти и експерименти в ранен етап, където скоростта е по-важна от стандартизацията. Ако изграждате еднократен модел или изследвате ново проблемно пространство, разходите за създаване на хранилище за характеристики обикновено не са оправдани. Много екипи започват ad hoc и мигрират към хранилище за характеристики, след като моделите достигнат производствена среда.
Заменят ли хранилищата на функции каналите за данни?
Не, хранилищата на функции допълват, а не заместват каналите за данни. Суровите данни все още преминават през канали за извличане и трансформация, преди да достигнат хранилището на функции. След това хранилището на функции обработва специфични за функциите проблеми, като версии, обслужване и откриване. Мислете за него като за специализиран слой върху съществуващата ви инфраструктура от данни.
Как магазините за функции обработват функции в реално време?
Повечето съвременни хранилища за функции поддържат както пакетно, така и поточно изчисляване на функции. Те се интегрират със системи за поточна обработка като Apache Kafka или Apache Flink, за да изчисляват функции в почти реално време, след което ги предоставят чрез онлайн хранилища с ниска латентност като Redis или DynamoDB. Това позволява на моделите да използват нови функции по време на извода, без да е необходимо да се преизгражда целият процес на обработка.
Какво е изкривяване при тренировките и сервирането и защо е важно?
Отклонение при обучението и обслужването се получава, когато характеристиките се изчисляват по различен начин по време на обучението на модела, отколкото по време на извода за продуктивност, което води до по-лошо поведение на модела в продуктивност от очакваното. Това е една от най-честите причини за деградация на модела след внедряването. Хранителите на характеристики предотвратяват това, като използват идентична логика на трансформация и за двата контекста.
Струват ли си магазините с функции за малки екипи?
За много малки екипи с един или два модела, хранилищата с функции често добавят повече сложност, отколкото премахват. Разходите за настройка и поддръжка могат да надхвърлят ползите, докато не имате множество модела в производство или няколко души, които си сътрудничат по функциите. Опциите с отворен код, като Feast, намаляват бариерата, но оперативните разходи все още съществуват.
Можете ли сами да създадете магазин за функции?
Да, много компании са изградили вътрешни магазини за функции, преди комерсиалните и отворените опции да станат широко достъпни. Michelangelo на Uber и Chronon на Airbnb са добре познати примери. Създаването на собствени платформи дава максимален контрол, но изисква значителни инженерни инвестиции, поради което повечето екипи сега предпочитат съществуващи платформи, освен ако нямат много специализирани нужди.
Каква е разликата между хранилище за функции и хранилище за данни?
Хранилището за данни съхранява сурови и агрегирани бизнес данни, оптимизирани за анализи, докато хранилището за функции съхранява специфични за машинното обучение функции, оптимизирани както за пакетно обучение, така и за обслужване с ниска латентност. Хранителите за функции добавят фокусирани върху машинното обучение възможности, като например присъединявания в точка във времето, версии на функции и онлайн обслужване, които хранилищата за данни обикновено не предоставят.
Как хранилищата на функции поддържат управлението на моделите?
Хранителите с функции проследяват произхода на функциите, версиите и моделите на достъп, което помага на организациите да отговарят на регулаторните и одитните изисквания. Когато прогнозите на даден модел бъдат поставени под въпрос, екипите могат да проследят точно кои версии на функциите са били използвани. Това е особено ценно в регулирани индустрии като финанси и здравеопазване, където се изисква прозрачност на модела.
Решение
Системите за съхранение на функции са по-добрият избор за организации, които използват множество модели в производствена среда или мащабират своите машинно обучение в екипи, където последователността и възможността за многократна употреба са от най-голямо значение. Ad hoc инженерингът на функции остава ценен за самостоятелни специалисти по данни, изследователски проекти и експерименти в ранен етап, където скоростта и гъвкавостта надвишават предимствата на централизираната инфраструктура. Много зрели екипи всъщност използват и двете, разчитайки на ad hoc работа за проучване и хранилища за функции за всичко, което достига до производствена среда.