Return to search

Faster Reading with DuckDB and Arrow Flight on Hopsworks : Benchmark and Performance Evaluation of Offline Feature Stores / Snabbare läsning med DuckDB och Arrow Flight på Hopsworks : Benchmark och prestandautvärdering av offline Feature Stores

Over the last few years, Machine Learning has become a huge field with “Big Tech” companies sharing their experiences building machine learning infrastructure. Feature Stores, used as centralized data repositories for machine learning features, are seen as a central component to operational and scalable machine learning. With the growth in machine learning, there is, naturally, a tremendous growth in data used for training. Most of this data tends to sit in Parquet files in cloud object stores or data lakes and is used either directly from files or in-memory where it is used in exploratory data analysis and small batches of training. A majority of the data science involved in machine learning is done in Python, but the infrastructure surrounding it is not always directly compatible with Python. Often, query processing engines and feature stores end up having their own Domain Specific Language or require data scientists to write SQL code, thus leading to some level of ‘transpilation’ overhead across the system. This overhead can not only introduce errors but can also add up to significant time and productivity cost down the line. In this thesis, we conduct a systems research on the performance of offline feature stores and identify ways that allow us to pull out data from feature stores in a fast and efficient way. We conduct a model evaluation based on benchmark tests that address common exploratory data analysis and training use cases. We find that in the Hopsworks feature store, with the use of state-of-the-art, storage-optimized, format-aware, and vector execution-based query processing engine as well as using Arrow protocol from start to finish, we are able to see significant improvements in both creating batch training data (feature value reads) and creating Point-In-Time Correct training data. For batch training data created in-memory, Hopsworks shows an average speedup of 27x over Databricks (5M and 10M scale factors), 18x over Vertex, and 8x over Sagemaker across all scale factors. For batch training data as parquet files, Hopsworks shows a speedup of 5x over Databricks (5M, 10M, and 20M scale factors), 13x over Vertex, and 6x over Sagemaker across all scale factors. For creating in-memory Point-In-Time Correct training data, Hopsworks shows an average speedup of 8x over Databricks, 6x over Vertex, and 3x over Sagemaker across all scale factors. Similary for PIT-Correct training data created as file, Hopsworks shows an average speedup of 9x over Databricks, 8x over Vertex, and 6x over Sagemaker across all scale factors. Through the analysis of these experimental results and the underlying infrastructure, we identify the reasons for this performance gap and examine the strengths and limitations of the design. / Under de senaste åren har maskininlärning blivit ett stort område där ”Big Tech”-företag delar med sig av sina erfarenheter av att bygga infrastruktur för maskininlärning. Feature Stores, som används som centraliserade datalager för maskininlärningsfunktioner, ses som en central komponent för operativ och skalbar maskininlärning. Med tillväxten inom maskininlärning följer naturligtvis en enorm tillväxt av data som används för utbildning. De flesta av dessa data finns i Parquet-filer som lagras i molnobjektsbutiker eller datasjöar och används antingen direkt från filer eller i minnet där de används i explorativ dataanalys och små utbildningsbatcher. En majoritet av datavetenskapen inom maskininlärning görs i Python, men den omgivande infrastrukturen är inte alltid direkt kompatibel med Python. Ofta har motorer för frågebehandling och feature stores sina egna domänspecifika språk eller kräver att datavetare skriver SQL-kod, vilket leder till en viss nivå av `transpileringsoverhead' i hela systemet. Denna overhead kan inte bara leda till fel utan också till betydande tids- och produktivitetskostnader i slutändan. I den här avhandlingen genomför vi en systemstudie av prestandan hos offline feature stores och identifierar sätt som gör att vi kan ta fram data från feature stores på ett snabbt och effektivt sätt. Vi genomför en modellutvärdering baserad på benchmarktester som tar upp vanliga användningsfall för explorativ dataanalys och utbildning. Vi konstaterar att vi i Hopsworks feature store, med hjälp av en toppmodern, lagringsoptimerad, formatmedveten och vektorexekveringsbaserad frågebehandlingsmotor samt Arrow-protokoll från början till slut, kan se betydande förbättringar både när det gäller att skapa batchutbildningsdata (läsa featurevärden) och skapa Point-In-Time Correct-utbildningsdata. För batchutbildningsdata som skapats i minnet visar Hopsworks en genomsnittlig hastighet på 27x över Databricks (5M och 10M skalfaktorer), 18x över Vertex och 8x över Sagemaker över alla skalfaktorer. För batch-träningsdata som parkettfiler visar Hopsworks en hastighetsökning på 5x över Databricks (5M, 10M och 20M skalfaktorer), 13x över Vertex och 6x över Sagemaker över alla skalfaktorer. För att skapa Point-In-Time Correct-träningsdata i minnet visar Hopsworks en genomsnittlig hastighet på 8x över Databricks, 6x över Vertex och 3x över Sagemaker över alla skalfaktorer. På samma sätt för PIT-Correct träningsdata som skapats som fil, visar Hopsworks en genomsnittlig hastighet på 9x över Databricks, 8x över Vertex och 6x över Sagemaker över alla skalfaktorer. Genom att analysera dessa experimentella resultat och den underliggande infrastrukturen identifierar vi orsakerna till denna prestandaklyfta och undersöker styrkorna och begränsningarna i designen.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-337297
Date January 2023
CreatorsKhazanchi, Ayushman
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS), Stockholm : KTH Royal Institute of Technology
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2023:661

Page generated in 0.0026 seconds