Machine Learning Operations (MLOps) opierają się na technikach DevOps, czyli rozwiązaniach, które zwiększają wydajność pracy programistycznej. Praktyki te dążą do niemal całkowitej automatyzacji procesu tworzenia oprogramowania.
W dzisiejszych czasach wszystkie rozwiązania biznesowe opierają się w najwyższym stopniu o przepływ danych. Dane przynoszą wiedzę, a wiedza to czynnik mający najważniejszy wpływ na przewagę konkurencyjną konkretnej marki. Tym właśnie zajmuje się segment nauki zwany Data Science. Zespoły analityków opracowują pozyskane informacje. Dzięki nim są w stanie dokładnie poznać zachowania i potrzeby konsumentów.
Sprawa raczej nie wydaje się skomplikowana. Jak wiadomo, istnieje mnóstwo skutecznych form pobierania danych od użytkowników Internetu. Teoretycznie więc nie ma tu żadnych pułapek. A jednak nie jest to takie proste, jak mogłoby się wydawać. Nie można zapominać, że dane są zmienne. Zachowania użytkowników, ich oczekiwania, sposób, w jaki poruszają się po sieci, ulegają nieustannej transformacji. Coś, co dzisiaj jest jak najbardziej aktualne, za tydzień, a nawet jutro może okazać się przestarzałe. Jak sobie z tym radzić? Jak tworzyć bazy danych, które będą użyteczne dla twórców oprogramowania przez miesiące czy też lata? Rozwiązaniem jest właśnie MLOps.
Dzięki MLOps możliwe jest tworzenie aplikacji na szeroką skalę w oparciu o techniki DevOps. Cel takich aplikacji to usprawnienie procesu rozwoju oprogramowania i maksymalna eliminacja błędów w przepływie danych. Operacje Uczenia Maszynowego zapewniają możliwość sprawnego wdrażania kolejnych, ulepszonych wersji aplikacji. Aplikacje stworzone na podstawie MLOps różnią się od klasycznych aplikacji tym, że są wrażliwe na błędy i eliminują je w procesie przetwarzania danych. W skrócie można więc powiedzieć, że MLOps (Operacje uczenia maszynowego) jest to właśnie zastosowanie praktyki DevOps w procesie wytwarzania aplikacji opartych o ML.
Operacje uczenia maszynowego optymalizują analizę i wykorzystanie informacji. Niezbędne jest jednak stworzenie sprawnego pipeline’u, czyli „rurociągu danych”. Pipeline umożliwia biegły przepływ danych pomiędzy lokalizacjami. Jest to jedna z najważniejszych rzeczy, ponieważ transport danych bywa niepewny. Informacje mogą ulec uszkodzeniu, system może nie poradzić sobie z ich ilością, co będzie powodowało opóźnienia. Może się również zdarzyć, że dane będą względem siebie sprzeczne lub będą się tworzyć duplikaty. MLOps engineer stoi właśnie wobec takich trudności. Należy pamiętać o tym, że danych i źródeł, z których można je pozyskać, nieustannie przybywa, więc rosnąć może także skala popełnianych błędów.
W MLOps podobnie jak w DevOps używa się narzędzi, które mają za zadanie maksymalnie zautomatyzować pracę nad oprogramowaniem. Istotna różnica polega na tym, że w pracy opartej na MLOps cała uwaga skupia się właśnie na narzędziach i rozwoju aplikacji. Podstawą jest więc tworzenie powtarzalnych potoków danych, które umożliwiają przygotowanie i ocenę danych oraz trenowanie oprogramowania. Dzięki operacjom uczenia maszynowego MLOps engineer może stworzyć środowisko oprogramowania wykorzystywane wielokrotnie w celu eliminacji pomyłek wynikających ze zmian na poziomie pozyskiwania zasobów data.
Potok danych to proces lub zespół działań zawierające w sobie zbieranie nieopracowanych danych z wielu baz i przekazywanie ich do miejsca docelowego. Za to wspomniany wcześniej pipeline ujmuje również mechanizmy czyszczenia pozyskanych danych, eliminacji duplikatów i odpowiednich transformacji. Tak przygotowane informacje są gotowe do analizy i użycia.
Sformułowanie „potok danych” i „pipeline” są często stosowane zamiennie. Jednak „pipeline” dotyczy raczej usystematyzowanego procesu, w którym zebrane informacje są poddawane selekcji i transformacji. „Potok” natomiast to surowe dane, które udało się pozyskać.