Komputery i technologie

#

Systemy danych, które uczą się być lepsze

  • 21 lipca 2020

Wielkie dane stały się naprawdę, naprawdę duże: do 2025 r. wszystkie dane na świecie sumują się do około 175 bilionów gigabajtów. Dla porównania, gdybyście zapisali taką ilość danych na płytach DVD, byłaby ona na tyle duża, że okrążyłaby Ziemię 222 razy. 

Jednym z największych wyzwań w informatyce jest radzenie sobie z tym napływem informacji przy jednoczesnym zachowaniu zdolności do ich efektywnego przechowywania i przetwarzania. Zespół z Laboratorium Informatyki i Sztucznej Inteligencji MIT (CSAIL) uważa, że odpowiedzią jest coś, co nazywa się "systemami zoptymalizowanymi dla instancji".  

Tradycyjne systemy baz danych i przechowywania danych zostały zaprojektowane tak, aby mogły pracować w szerokim zakresie aplikacji ze względu na to, jak długo może potrwać ich zbudowanie - miesiące lub, często, kilka lat. W rezultacie, przy danym obciążeniu pracą, takie systemy zapewniają wydajność, która jest dobra, ale zazwyczaj nie jest najlepsza. Co gorsza, czasami wymagają one od administratorów żmudnego, ręcznego dostrajania systemu, aby zapewnić nawet rozsądną wydajność. 

Natomiast celem systemów zoptymalizowanych pod kątem instancji jest zbudowanie systemów, które optymalizują i częściowo reorganizują się pod kątem przechowywanych przez nie danych i obsługiwanego przez nie obciążenia pracą. 

"To jak budowanie od podstaw systemu bazodanowego dla każdej aplikacji, co nie jest ekonomicznie wykonalne przy tradycyjnych projektach systemów - mówi profesor MIT Tim Kraska. 

Jako pierwszy krok w kierunku tej wizji, Kraska i jej koledzy opracowali Tsunami i Bao. Tsunami wykorzystuje uczenie maszynowe do automatycznej reorganizacji układu pamięci masowej zbioru danych w oparciu o typy zapytań, które składają jego użytkownicy. Testy pokazują, że może on uruchamiać zapytania nawet 10 razy szybciej niż najnowocześniejsze systemy. Co więcej, jego zbiory danych mogą być organizowane za pomocą serii "wyuczonych indeksów", które są do 100 razy mniejsze od indeksów używanych w tradycyjnych systemach. 

Kraska od kilku lat zgłębia temat wyuczonych indeksów, wracając do swojej wpływowej pracy z kolegami w Google w 2017 roku. 

Profesor Uniwersytetu Harvarda Stratos Idreos, który nie był zaangażowany w projekt Tsunami, mówi, że wyjątkową zaletą wyuczonych indeksów jest ich niewielki rozmiar, który oprócz oszczędności miejsca, przynosi znaczną poprawę wydajności.

"Myślę, że ta linia pracy to zmiana paradygmatu, która wpłynie na projekt systemu w dłuższej perspektywie", mówi Idreos. "Oczekuję, że podejście oparte na modelach będzie jednym z głównych elementów nowej fali systemów adaptacyjnych".

Bao natomiast koncentruje się na poprawie efektywności optymalizacji zapytań poprzez naukę maszynową. Optymalizator zapytań przepisuje deklaratywne zapytanie wysokiego poziomu na plan zapytania, które może być faktycznie wykonane na danych w celu obliczenia wyniku do zapytania. Często jednak istnieje więcej niż jeden plan zapytania, aby odpowiedzieć na dowolne zapytanie; wybranie niewłaściwego może spowodować, że obliczenie odpowiedzi zajmie kilka dni, a nie sekund. 

Tradycyjne optymalizatory zapytań potrzebują lat na zbudowanie, są bardzo trudne w utrzymaniu, a co najważniejsze, nie uczą się na swoich błędach. Bao jest pierwszym opartym na nauce podejściem do optymalizacji zapytań, które zostało w pełni zintegrowane z popularnym systemem zarządzania bazami danych PostgreSQL. Główny autor, Ryan Marcus, postdoc z grupy Kraska, mówi, że Bao tworzy plany zapytań, które działają do 50 procent szybciej niż te tworzone przez optymalizator PostgreSQL, co oznacza, że może pomóc znacznie obniżyć koszty usług w chmurze, takich jak Redshift firmy Amazon, które są oparte na PostgreSQL.

Łącząc oba systemy, Kraska ma nadzieję zbudować system baz danych zoptymalizowany pod kątem pierwszej instancji, który może zapewnić najlepszą możliwą wydajność dla każdej aplikacji bez konieczności ręcznego strojenia. 

Celem jest nie tylko uwolnienie programistów od zniechęcającego i żmudnego procesu dostrajania systemów baz danych, ale także zapewnienie wydajności i korzyści kosztowych, które nie są możliwe w przypadku tradycyjnych systemów.

Tradycyjnie systemy, których używamy do przechowywania danych, ograniczają się tylko do kilku opcji przechowywania i z tego powodu nie mogą zapewnić najlepszej możliwej wydajności dla danej aplikacji. To, co Tsunami może zrobić, to dynamicznie zmieniać strukturę przechowywania danych w oparciu o rodzaje otrzymywanych zapytań i tworzyć nowe sposoby przechowywania danych, które nie są wykonalne przy bardziej tradycyjnych podejściach.

Johannes Gehrke, dyrektor zarządzający Microsoft Research, który kieruje również działaniami związanymi z uczeniem się maszyn dla zespołów Microsoft, mówi, że jego praca otwiera wiele interesujących aplikacji, takich jak wykonywanie tak zwanych "zapytań wielowymiarowych" w hurtowniach danych typu main-memory. Harvard's Idreos oczekuje również, że projekt ten pobudzi dalsze prace nad tym, jak utrzymać dobrą wydajność takich systemów, gdy pojawią się nowe dane i nowe rodzaje zapytań.

Bao to skrót od "bandycki optymalizator", gra słów związana z tzw. analogią "wieloramiennego bandyty", w której gracz stara się zmaksymalizować swoje wygrane na wielu automatach, które mają różne stopy zwrotu. Problem bandytyzmu wieloramiennego jest powszechnie spotykany w każdej sytuacji, która ma kompromisy pomiędzy badaniem wielu różnych opcji, a wykorzystywaniem jednej z nich - od optymalizacji ryzyka do testów A/B.

"Optymalizatory zapytań istnieją od lat, ale często popełniają błędy i zazwyczaj nie uczą się na nich", mówi Kraska. "Mamy wrażenie, że nasz system może dokonać kluczowych przełomów, ponieważ może szybko nauczyć się dla danych i nakładu pracy, z jakich zapytań korzystać, a jakich unikać" - mówi Kraska.

Kraska twierdzi, że w przeciwieństwie do innych metod optymalizacji zapytań opartych na nauce, Bao uczy się znacznie szybciej i może przewyższać optymalizatory open-source i komercyjne już po godzinie szkolenia. W przyszłości jego zespół zamierza zintegrować Bao z systemami w chmurze, aby poprawić wykorzystanie zasobów w środowiskach, w których czas dysku, pamięci RAM i procesora jest ograniczony.

"Mamy nadzieję, że taki system umożliwi znacznie szybszy czas oczekiwania na zapytanie, a ludzie będą mogli odpowiedzieć na pytania, na które wcześniej nie byli w stanie odpowiedzieć", mówi Kraska.

Powiązany artykuł o tsunami został napisany wspólnie przez Kraskę, doktorantów Jialin Ding i Vikram Nathan oraz profesora MIT Mohammada Alizadeha. Referat o Bao został napisany wspólnie przez Kraskę, Marcusa, doktorantów Parimarjana Negi i Hongzi Mao, wizytującego naukowca Nesime Tatbula i Alizadeha.