데이터, 인공지능 관련 연구개발을 하며 기존 데이터분석뿐만 아니라 수집, 전처리, 학습, 검증, 모델 서비스화 등의 과정을 연속적으로 신뢰할 수 있는 프로세스를 개발해야하는 필요성을 느낄 것이다..
이때 가장 먼저 생각나는 것은 파이프라인을 구축하면 되겠구나? 근데 어떻게...?
기존에는 LINUX에서 제공하는 CRONTAB을 이용하여 15분(`*/15 * * * *`) 마다 해당 코드를 실행해줘~ 라는 방식으로 시스템을 동작해왔던것 같다.
하지만 이는... 여러 프로세스가 연관성을 가지면 신뢰성을 보장할 수 없었기 때문에 Pipeline이라는 개념이 등장한거 아닐까?
데이터 파이프라인은 데이터 처리 작업을 순차적으로 연결된 단계로 나눠 수행한다. 주로 데이터 수집, 전처리, 저장하는 등의 작업을 수행한다. 이를 통해 데이터 과학 및 ML, DL 프로젝트에 중추적인 역할로 적용할 수 있다.
일반적인 파이프라인은 다음과 같이 설계한다.
1. 데이터 수집: 외부 소스에서 데이터를 수집한다. 이는 데이터베이스, 파일, API 호출 또는 웹 크롤링과 같은 다양한 방법을 통해 이루어질 수 있다.
2. 데이터 정제: 수집한 데이터를 정제하여 오류를 수정하거나 누락된 값이나 이상치를 처리한다. 데이터의 일관성을 유지하고 분석에 적합한 형식으로 변환한다.
3. 데이터 변환: 데이터를 분석에 적합한 형식으로 변환한다. 예를 들어, 범주형 데이터를 원-핫 인코딩하여 숫자형으로 변환하거나 텍스트 데이터를 특징 벡터로 변환하는 등의 작업을 수행할 수 있다.
4. 기능 공학: 기존의 데이터에 새로운 특징을 추가하거나 기존 특징을 변환하여 모델 성능을 개선하는 작업을 수행한다. 이 단계에서 도메인 지식을 활용하여 데이터를 더욱 유의미하게 만들 수 있다.
5. 데이터 분할: 전체 데이터 세트를 훈련, 검증 및 테스트 데이터로 분할한다. 이를 통해 모델의 성능을 평가하고 일반화할 수 있다.
6. 모델 훈련: 분할된 훈련 데이터를 사용하여 모델을 훈련한다. 이 단계에서는 선택한 알고리즘을 사용하여 데이터에 대한 패턴을 학습한다.
7. 모델 평가: 훈련된 모델을 검증 데이터로 평가하여 성능을 측정한다. 이를 통해 모델의 정확성과 일반화 능력을 평가할 수 있다.
8. 모델 배포: 모델이 실제 환경에서 사용될 수 있도록 배포한다. 이 단계에서는 모델을 서비스로 노출하고 API를 통해 추론을 수행할 수 있도록 구성한다.
즉, 신뢰할 수 있는 연속적인 데이터 파이프라인을 설계할 수 있어야 데이터 비즈니스에서 성공 가능성을 향상할 수 있다.
아래 책은 이를 python으로 구현하기 쉽게 Apache Airflow를 활용하여 데이터 파이프라인을 설계 및 구축하는 방법에 대하여 작성되어 있다. 다른 책과는 다르게 해당책은 한글로 번역되어 이해하기 쉬웠고, 업무에 적용하면서 많은 도움을 받았다. Airflow를 적용한다는 것은 데이터 파이프라인을 고려하는 회사나 개발자라면 한번 읽어보고 업무에 적용하여 프로젝트의 완성도를 높힐 수 있는 좋은 기회지 않을까? 싶다.
https://product.kyobobook.co.kr/detail/S000001952239
Apache Airflow 기반의 데이터 파이프라인 | 바스 하렌슬락 - 교보문고
Apache Airflow 기반의 데이터 파이프라인 | Airflow 설치부터 파이프라인 작성, 테스트, 분석, 백필 그리고 배포 및 관리까지를 한 권으로 해결!이 책은 효과적인 데이터 파이프라인을 만들고 유지하
product.kyobobook.co.kr