검색 상세

배치기반 ML 파이프라인상에서 공통 Feature 저장을 통한 전처리 성능 최적화

A Study on Preprocessing Performance Optimization by Common feature storing in Batch based ML Pipeline

초록

데이터 분석과정에서 전처리의 중요성은 아무리 강조해도 모자라다. 전처리 과정은 머신러닝 분석과정에서 가장 많은 노력이 소요되는 과정이며, 학습 단계 이후의 추론 및 운영단계에서도 추론과 함께 수행된다. 하지만 전처리는 데이터 분석의 단계 중 가장 많은 시간을 소요 하는 단계이기도 해서 전체 분석과정 중 80% 정도가 전처리에 소요된다. 이러한 전처리 단계에서의 시간적/ 컴퓨팅 자원적 절약에 대한 연구로는 변수 차원축소를 활용하여 전처리 데이터의 양적 감소를 시도하는 방법과, feature 저장소 를 이용하는 방법이 있다. 그러나 변수 차원축소는 데이터 손실을 감수해아한다는 단점이 있으며, feature 저장소 도입은 오픈 소스 적용을 활용하는 방법으로, 현재 운영되고 있는 도커 버전과 feast 패키지 버전간의 호환 문제등의 이슈가 있다. 이 논문에서는 feature 저장소 개념을 이용하여, 산업 현장에서 자주 사용되는 분석 변수에 대한 선 저장을 통해 모델 추론 과정에서의 시간적/ 컴퓨팅 자원적 효율성을 도모한다. 그에 따른 제안 방안으로 산업현장에서 자주사용되는 분석 변수를 후행 프로그램에서 사용빈도를 feature 중요도로 가정하여 식별 하고, 주기적으로 배치프로그램으로 feature를 생성하여 DB화하여 저장하였다. DB에 저장된 변수는 주기적으로 운영되는 머신러닝 추론 배치에 의해 사용되며, python 상에서 수행되는 전처리 과정의 효율을 증대시킨다. 위의 성능을 확인하기 위해 동일한 데이터에 대해 SQL 로 전처리 후 테이블에 저장 후 조회하는 선저장 방식의 memory와 CPU 사용량과 소요시간, pandas 와 pyspark를 사용하여 python으로 전처리를 수행하는 방식의 memory와 CPU 사용량과 소요시간을 비교하였다. 그리고 이를 사용해 feature 선 저장시 최대 99%의 컴퓨팅 자원 절감과 72배의 시간적 절감이 있음을 확인하였다. 또한 feature 생성 시 후행 배치 프로그램에서 호출되는 횟수를 변수의 중요도로 가정하여 변수의 중복 호출 횟수와 실제 머신러닝 파이프라인 수행 시간상 효율성의 관계를 실험하였다. 이를 통해 변수의 중요도 파악에 고려해야할 점은 중복 호출 횟수보다 feature 자체의 생성에 소요되는 시간임을 확인하였다. 이러한 연구를 통해, 공통 변수 생성을 모듈화 하고, 저장함에 따라 최종적으로는 빅데이터 플랫폼의 향후 MLOps 도입시 feature 저장소생성 및 데이터 전환의 간편화를 도모하고자 한다.

more

초록

The importance of preprocessing in the data analysis process cannot be emphasized enough. Preprocessing stands as the most labor-intensive phase in machine learning analysis, persisting even after the learning phase during inference and operational stages. However, preprocessing consumes the most time in the data analysis phase, accounting for approximately 80% of the entire analytical process. Research endeavors aimed at saving time and computational resources in this preprocessing stage include attempts to reduce the quantity of preprocessed data using variable dimension reduction methods and leveraging feature stores. However, variable dimension reduction comes with the disadvantage of potential data loss, and the introduction of feature stores, relying on open-source applications, poses issues like compatibility between current operating Docker versions and Feast package versions. This paper utilizes the concept of a feature store to enhance temporal and computational efficiency in the inference stage of model analysis by pre-storing frequently used analytical variables in industrial settings. As part of this proposal, frequently used analytical variables in industrial settings were identified based on their importance, periodically generated through batch programming, and stored in a database. These stored variables are utilized by periodically operated machine learning inference batches, enhancing the efficiency of preprocessing processes performed in Python. Furthermore, simplifying preprocessing for analysts in new analytical processes can increase analytical efficiency from both developmental and operational perspectives. To validate these improvements, memory and CPU usage were compared between preprocessing performed using SQL, storing the results in tables, and conducting the same process using pandas on identical datasets. Consequently, it was confirmed that pre-storing features led to up to 99% reduction in computational resources and 72 times faster processing. Additionally, an experiment was conducted assuming the number of calls from subsequent batch programs as an indicator of variable importance, revealing that the time spent generating the feature itself is more critical than the frequency of duplicate calls. Through this research, modularizing the creation and storage of common variables ultimately aims to simplify feature store creation and data transformation when integrating MLOps into future big data platforms.

more

목차

제 1 장 서론 8
제 2 장 배경 지식 및 관련 연구 12
2.1. 배경지식 12
2.1.1 ML파이프라인 12
2.1.2 Feature 저장소 15
2.1.3 기타 필요 지식 16
2.2. 관련연구 18
2.3. 전처리 데이터의 양적 감소를 통한 자원 절감 18
2.3.1. 변수 차원축소를 활용한 데이터 압축 18
2.4. 주요 feature 선 저장을 통한 분석 효율 증대 20
2.4.1. Feature 저장소를 이용한 프로그램 사용 자원 효율 연구 20
제 3 장 공통 feature 선저장 방법 22
3.1. 제안 시스템 개요 22
3.2. DB화한 주요 변수에 대한 메타 구축 및 변수 중요도 도출 23
제 4 장 성능평가 28
4.1. 실험 환경 28
4.1.1 workload 소개 28
4.1.2 데이터소개 29
4.1.3 CPU 자원 사용 비교 31
4.1.4 memory 자원 사용 비교 32
4.1.5 소요시간 비교 33
4.2 feature 별 호출횟수에 따른 자원 효율 기여도 실험 35
4.2.1 feature 별 호출횟수에 따른 자원 효율 기여도 실험 환경 35
4.2.2 feature 별 중요도에 따른 자원 효율 기여도 실험 및 결과 35
제 5 장 결론 및 향후 연구 38
5.1. 한계점 38
5.2 결론 39
참고 문헌 41

more