Představujeme tým ML Ops
Jak už víte z článku o entitním hledání, Seznam.cz vyhledávání je založené na umělé inteligenci, konkrétně na strojovém učení. Jak to tedy funguje?
Algoritmus na základě příkladů, pro které známe správnou odpověď, vyrobí model pro odhadování výsledků. Dobrý strojově naučený model dokáže odhadnout správný výsledek i pro vstupní data, která při učení neviděl. Říkáme, že se mu daří dobře predikovat daný jev.
Seznam.cz vyhledávání využívá pro získání těch nejlepších výsledků několik desítek modelů strojového učení. Infrastrukturu pro snadnou údržbu a přidávání nových modelů zajišťuje tým zvaný Machine Learning Operations, ve zkratce ML Ops.
Příprava a údržba strojově učeného modelu zahrnuje mnoho kroků, které se při dostatečném množství modelů vyplatí automatizovat. Například pro jedno učení je potřeba:
- získat vstupní data z anotačního rozhraní a anotační aplikace
- k nim doplnit signály z webových stránek, z dotazů a z mnoha dalších oblastí, které model bude používat k rozhodování
- vyváženě oddělit trénovací a testovací sady vzorků, aby byly v obou sadách správně zastoupené všechny jevy, na které chceme model natrénovat
- zvolit optimální algoritmus strojového učení a najít jeho optimální hyperparametry
- otestovat technické aspekty modelu v prostředí blízkém provoznímu
- vyhodnotit na desítkách metrik, jestli kvalita výstupů modelu odpovídá očekáváním
Proces práce na modelu po vytvoření první dobré verze ale nekončí, protože model i data v čase zastarávají a ztrácí kvalitu. Učení, dolaďování a kontrolu dat je proto nutné opakovat pravidelně. Cílem týmu ML Ops je automatizace, zrychlování a zjednodušování tohoto procesu, aby bylo možné zlepšovat vyhledávání efektivněji.
“Platforma ML Ops je konstruovaná v jazyce Python. Proces tvorby modelu se skládá z jednotlivých kroků, kterým říkáme experimenty. K jejich zaznamenávání používáme MLflow. Obstaráváme také napojení na interní systémy pro sběr anotovaných dat, získávání vlastností webových stránek a hledaných frází. Aktuálně umíme vytvářet CatBoost a XGBoost modely.
Další druhy modelů plánujeme přidávat dle potřeby. Velkým tématem naší práce je automatizace. Té dosahujeme pomocí Airflow a Kubernetes. Naší neméně důležitou činností je měření kvality a příbuzných vlastností výsledků vyhledávání. Vyvinuli jsme specializovaný nástroj, který umí kontrolovat výsledky našeho hledání.
Další výzvy nás ještě čekají, potřebujeme zlepšit monitoring signálů (features) vstupujících do vyhledávání. Urychlit proces nasazování nových modelů a obsáhnout NLP modely využívané při hledání pomocí vektorů”, popisuje práci týmu Václav Plajt, Vedoucí týmu vývojářů ML Ops.
Po roce budování základů nástrojů pro usnadnění machine learning procesů tým ML Ops pokračuje do své další fáze. V ní bude do ML Ops platformy zapracovávat ve větším množství požadavky, které vznikly jejím používáním interními zákazníky.
Dočetli jste se zájmem až sem? Tak možná právě pro vás je jako stvořená pozice produktového manažera, který bude připravovat systematické zadání pro zkušený vývojový tým. A protože plány máme velké, hledáme i vývojáře, který tým doplní.
Za tým Vyhledávání Jan Zhouf, Martin Kirschner