Loading...

데이터엔지니어링

4 Contents
최신순

BeeAI 공모전 교육 영상(07) - 머신러닝 모델 학습하기(104~107p)

BeeAI 플랫폼은 인공지능 서비스를 효율적으로 구축하기 위한 통합적인 환경을 제공합니다. 워크벤치는 데이터 처리 방식에 따라 여덟 가지 엔진 유형을 선택할 수 있는 편집 화면으로, 사용자는 드래그 앤 드롭 방식을 통해 컴포넌트를 자유롭게 조합하여 워크플로우를 구성할 수 있습니다. 하나의 프로젝트는 여러 개의 워크플로우를 포함할 수 있으며, 각 워크플로우는 복잡한 데이터 처리 과정을 직관적으로 시각화합니다. 이러한 구조 덕분에 사용자는 데이터 수집부터 정제, 가공에 이르는 전 과정을 하나의 일관된 흐름 안에서 체계적으로 관리할 수 있습니다. 인공지능 서비스의 안정적인 운영을 위해 BeeAI는 빌드, 배포, 종료라는 세 가지 주요 제어 기능을 지원합니다. 운영 화면에서는 설계된 워크플로우를 실제 실행 단계로 전환할 수 있으며, 리소스 보기 기능을 통해 CPU와 메모리 사용량을 실시간으로 모니터링하여 시스템 자원의 효율성을 점검합니다. 또한 레지스트리 화면은 API부터 서브스크립션까지 인공지능 서비스 개발에 필요한 열한 가지 유형의 리소스를 통합하여 관리합니다. 모든 자원은 하둡 분산 파일 시스템이나 로컬 스토리지에 안전하게 저장되어 데이터의 연속성과 보안을 철저히 보장합니다. BeeAI의 핵심 강점 중 하나는 다양한 데이터 처리 엔진을 목적에 맞게 유연하게 활용할 수 있다는 점입니다. 배치 엔진은 대규모 데이터를 일괄 처리하는 데 최적화되어 있으며, 스트림 엔진은 실시간으로 유입되는 데이터를 즉각적으로 분석하는 데 사용됩니다. 특히 파이썬 사용자 정의 함수를 도커 이미지로 만들어 REST API 형태로 제공하는 On-demand Instance Serving 엔진은 파이썬 기반 데이터 워크플로우 구성을 원활하게 돕습니다. 이를 통해 개발자는 복잡한 인프라 설정 없이도 자신이 구현한 알고리즘을 워크플로우에 손쉽게 통합하여 지능형 서비스를 구현할 수 있습니다. 최적의 머신러닝 모델을 자동으로 선택해주는 AutoML 기능은 BeeAI의 'Auto Spark ML' 오퍼레이터를 통해 구현됩니다. 이 기능은 사용자가 회귀 또는 분류라는 분석 유형만 선택하면, 시스템 내부에서 여러 모델을 순차적으로 학습시킨 후 가장 정확도가 높은 최적의 모델을 최종적으로 결정해 줍니다. 이는 전문적인 데이터 과학자가 아니더라도 데이터의 특성에 가장 부합하는 모델을 손쉽게 찾아낼 수 있도록 돕는 도구입니다. 비록 모델 탐색 과정에서 다소 시간이 소요될 수 있으나, 신뢰도 높은 분석 결과를 얻기 위한 효율적인 경로를 제공한다는 점에서 활용 가치가 매우 높습니다. 분산 대용량 빅데이터 처리를 위해 BeeAI는 PySpark 기능을 적극적으로 활용하며, 이를 위해 External 엔진을 사용합니다. PySpark 기반의 오퍼레이터들은 효율적인 데이터 처리를 위해 주로 Parquet 파일 형식을 입력으로 받습니다. 따라서 사용자는 기존의 CSV 파일을 Parquet 형식으로 변환하는 과정을 거쳐야 하며, 이는 데이터의 읽기 성능을 최적화하고 분산 처리 환경에 적합한 구조를 갖추게 합니다. 모델 학습이 완료되면 결과물은 버전별로 관리되어 저장소에 체계적으로 기록되므로, 향후 서비스 배포와 성능 검증 단계에서 데이터 히스토리를 추적하고 관리하기에 용이합니다.

BeeAI 공모전 교육 영상(07) - 머신러닝 모델 학습하기(104~107p)
한국전자통신연구원
  • 융합
  • 공학·기술

BeeAI 공모전 교육 영상(12) - 학습모델 검증 및 평가하기 튜토리얼(214~236p)

데이터 분석의 핵심은 다양한 속성을 가진 컬럼들을 하나의 벡터로 변환하는 전처리 과정에서 시작됩니다. 벡터 어셈블러는 여러 개의 피처 컬럼을 통합하여 학습 모델이 인식할 수 있는 형태로 만들어주는 중요한 도구입니다. 컬럼 ID나 이름을 직접 입력하여 선택할 수 있으며, 특정 패턴을 가진 다수의 컬럼을 일괄적으로 추출하여 벡터화하는 기능도 제공합니다. 이러한 전처리는 단순히 데이터를 정돈하는 것을 넘어, 실제 인공지능 모델이 필드에서 정확하게 작동하기 위한 기초 토대를 마련하는 필수적인 단계라고 할 수 있습니다. BiAI 플랫폼은 인공지능 모델을 실제 운영 환경에 빠르게 배포하고 테스트하는 것을 최우선 목적으로 합니다. 실험실 환경에서 모델을 만들고 평가하는 것은 비교적 수월하지만, 실제 센서 데이터가 유입되는 필드에 적용할 때는 예상치 못한 수많은 변수가 발생하기 마련입니다. 따라서 모델의 성능이 낮을 경우 즉시 수정하여 다시 배포하고, 현장 상황에 맞춰 빠르게 프로덕션화하는 과정이 필수적입니다. BiAI는 이러한 반복적인 배포 및 검증 주기를 단축함으로써 기업들이 인공지능 기술을 실무에 효율적으로 적용할 수 있도록 돕습니다. 필드 배포가 어려운 이유는 데이터의 형태가 실험용 배치 데이터와는 근본적으로 다르기 때문입니다. 실제 환경에서는 센서에서 생성되는 가공되지 않은 로 데이터가 실시간으로 수집되며, 이를 처리하기 위해 데이터 공학자의 정교한 정제 기술이 요구됩니다. 또한 모델이 배포된 이후에도 서비스 운영자가 실시간으로 성능을 감시하고 평가해야 하는 등 복합적인 역할이 필요합니다. 이러한 과정에서 발생하는 다양한 요구사항과 잡음을 최소화하고, 수집부터 처리, 모델 관리까지 이어지는 전 과정을 통합하는 것이 바로 지능형 프레임워크의 핵심 역할입니다. BiAI 프레임워크는 배치, 스트림, 미니 배치 등 다양한 엔진을 통해 각기 다른 데이터 처리 요구사항을 충족합니다. 스트림 엔진은 센서에서 초 단위나 분 단위로 올라오는 실시간 데이터를 메모리 상에서 빠르게 묶어 이상치나 결측치를 정제하는 데 특화되어 있습니다. 반면 미니 배치 엔진은 정제된 데이터를 기반으로 피처 엔지니어링을 수행하며, 파이썬 기반의 사용자 정의 함수를 지원하여 확장성을 높입니다. 이러한 다각적인 엔진 구성은 데이터 수집부터 최종 추론 서비스까지 각 단계별 최적화된 성능과 보안, 안정성을 보장하는 밑바탕이 됩니다. 모델 개발 단계에서는 텐서플로우와 같은 외부 도구와의 원활한 연동이 중요합니다. 익스터널 엔진은 개발자가 작성한 학습 코드를 외부 환경으로 전달하여 모델을 생성하고, 완성된 모델을 리포지토리에 저장하여 체계적으로 관리합니다. 또한 스파크 ML을 활용하여 이진 분류나 회귀 모델을 만들 때 하이퍼파라미터 튜닝을 통해 최적의 모델을 자동으로 찾아주는 기능을 제공하기도 합니다. 이렇게 생성된 모델은 온디맨드 서빙 엔진을 통해 REST API 형태로 즉시 서비스화될 수 있으며, 사용자는 복잡한 구축 과정 없이 인공지능 기능을 활용할 수 있게 됩니다. 실제 사례로 강남역 교통 속도 예측 시나리오를 살펴보면 시계열 데이터 처리의 복잡성을 이해할 수 있습니다. 수많은 도로에서 시차가 발생하며 유입되는 데이터를 스트림 엔진으로 정제하고, 일정 기간의 데이터를 클라우드로 옮겨 재학습하는 워크플로가 필요합니다. 이때 파일 파이프라이터를 사용하여 시간대별로 데이터를 관리하면, 방대한 양의 데이터 속에서도 효율적으로 학습용 데이터셋을 구성할 수 있습니다. 특히 15분 후의 속도를 예측하기 위해 현재 측정값과 과거 예측값을 시프팅하여 레이블을 생성하는 방식은 시계열 분석의 실무적 노하우를 보여줍니다. 마지막으로 모델의 신뢰성을 보장하기 위해 지속적인 성능 평가와 다중 모델 검증이 이루어져야 합니다. 시계열 데이터의 경우 과거 데이터 전체에 대한 성능보다는 최신 데이터에 대한 정확도가 중요하기 때문에, 검증 데이터를 여러 구간으로 나누어 평가하는 K-폴드 방식이 효과적입니다. 만약 운영 중인 모델의 성능이 저하된다면 리포지토리에 저장된 이전 모델들과의 성능을 비교 분석하여 즉각적인 교체가 가능합니다. 이러한 체계적인 평가 도구는 인공지능 모델이 한 번의 배포로 끝나는 것이 아니라, 끊임없이 진화하며 최상의 성능을 유지할 수 있도록 관리해 줍니다.

BeeAI 공모전 교육 영상(12) - 학습모델 검증 및 평가하기 튜토리얼(214~236p)
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술

BeeAI 공모전 교육 영상(04) - 실시간 스트림 데이터 처리하기(76~95p)

BeeAI는 스트림 데이터를 처리함에 있어 일반적인 스트림과 실시간 스트림으로 구분하여 정교한 분석 체계를 제공합니다. 그 대표적인 사례로 지능형 교통 속도 예측 서비스를 들 수 있는데, 이는 특정 도로 링크의 속도가 15분 후에 어떻게 변할지를 예측하는 인공지능 서비스입니다. 이 시스템의 핵심은 초 단위로 유입되는 방대한 택시 속도 센서 데이터를 실시간으로 수집하고 분석하는 데 있습니다. 이를 위해 BeeAI는 다섯 개의 엔진을 유기적으로 결합한 워크플로우를 설계하여 복잡한 도심의 교통 흐름을 효과적으로 파악하고 미래의 변화를 예측할 수 있는 기반을 마련해 줍니다. IoT 디바이스나 센서에서 직접 유입되는 실시간 스트림 데이터는 정제되지 않은 원시 데이터 상태인 경우가 많습니다. 실제 현장에서는 네트워크 상황에 따라 데이터가 늦게 수집되는 지연 현상이 발생하거나, 데이터 자체가 누락되는 결측치 문제가 빈번하게 나타납니다. 또한 센서 측정 과정에서 발생하는 잡음으로 인해 속도값이 비정상적으로 튀는 경우도 존재합니다. 이러한 불완전한 데이터를 예측 모델에 그대로 활용하면 결과의 신뢰도가 크게 낮아지기 때문에, 초 단위 데이터를 1분이나 5분 단위의 평균값으로 환산하여 데이터의 해상도를 조절하고 품질을 높이는 고도의 전처리 과정이 필수적입니다. BeeAI의 예측 시스템은 엔진 A부터 E까지 다섯 개의 단계로 구성되어 실시간 데이터의 가공과 학습을 처리합니다. 먼저 엔진 A와 B는 Spark Structured Streaming 기술을 활용하여 원시 데이터를 정제하고 평균 속도를 산출하는 실시간 처리를 담당합니다. 엔진 D는 정제된 데이터를 바탕으로 학습 모델이 요구하는 시퀀스 형태의 입력 데이터셋을 생성하며, 엔진 E는 이 데이터를 사용해 주기적으로 새로운 모델을 재학습하여 최신 교통 상황을 반영합니다. 마지막 단계인 엔진 C는 갱신된 모델을 로딩하여 실시간 쿼리에 응답하고 15분 후의 예측 결과를 산출해 사용자에게 최종적인 정보를 제공하게 됩니다. 시계열 데이터의 패턴을 인식하기 위해 본 시스템은 인공 신경망의 일종인 LSTM 모델을 활용합니다. 과거의 데이터 흐름을 기반으로 미래를 예측하는 LSTM은 교통 속도 변화와 같은 시나리오에 최적화된 성능을 보여줍니다. 정확한 예측을 위해서는 5분 단위 평균 속도를 8주기 동안 모은 시퀀스 데이터가 필요하며, 이는 강남 지역 170개 도로 링크를 기준으로 총 1,360개의 수치 데이터 패턴을 형성하게 됩니다. 엔진 D는 이러한 대량의 데이터를 가로로 길게 펼치는 피벗 연산을 수행하여 CSV 파일 형태로 공급하며, 이를 통해 인공지능은 도로 상황의 연속적인 변화를 정밀하게 학습할 수 있습니다. 엔진 D는 학습용 데이터 전처리를 전문적으로 수행하는 미니 배치 엔진으로 작동합니다. 스트림 데이터가 끊임없이 유입되는 환경에서 학습 모델이 요구하는 정확한 시간 단위의 데이터를 포착하는 것은 기술적으로 매우 중요합니다. 시스템은 윈도우 크기를 설정하여 특정 구간의 데이터를 가공하고, 그룹 필터 오퍼레이터를 통해 8주기 분량의 데이터가 모두 확보되었는지 엄격하게 검증합니다. 또한 데이터의 스케일을 0과 0.4 사이로 조정하는 Min-Max 스케일링 과정과 링크 ID를 기준으로 정보를 재배치하는 과정을 거치며, 학습 엔진이 즉시 읽어 들여 활용할 수 있는 최적의 데이터셋을 실시간으로 갱신하며 파일로 저장합니다. 실시간 스트림 처리에 특화된 엔진 A와 B는 Spark Structured Streaming 프레임워크를 기반으로 구축되었습니다. 엔진 A는 초 단위 원시 데이터를 받아 1분 단위 평균 속도를 계산하며, 이때 30초의 오버랩을 설정하여 데이터 변화의 연속성을 확보하고 잡음을 제거하는 스무딩 효과를 구현합니다. 이어지는 엔진 B는 1분 단위 정보를 다시 5분 단위 평균으로 집계하여 보다 안정적인 교통 흐름 데이터를 생성합니다. 이 과정에서 Kafka 파이프 리더와 라이터가 사용되며, 실시간으로 쏟아지는 대용량 데이터를 지연 없이 처리함과 동시에 데이터 정렬과 정제 작업을 동시에 수행하여 분석의 정확도를 극대화합니다. 시스템의 지속적인 신뢰성을 확보하기 위해 워터마크와 체크포인트라는 기술적 장치가 도입되었습니다. 워터마크는 이벤트 타임을 기준으로 지연되어 도착하는 데이터를 특정 시간 동안 기다려 줌으로써 데이터 유실을 최소화하고 분석 결과의 정합성을 높여줍니다. 또한 체크포인트 기능은 예기치 못한 시스템 장애나 중단 상황이 발생했을 때, 데이터 처리 시점을 안정적으로 저장해 두었다가 복구 시 해당 지점부터 다시 연산을 재개할 수 있게 돕습니다. 이러한 고급 스트리밍 처리 기법들은 BeeAI가 실시간으로 흐르는 방대한 스트림 데이터를 처리하는 과정에서 서비스의 연속성을 보장하고 안정적인 예측 결과를 도출하는 밑거름이 됩니다.

BeeAI 공모전 교육 영상(04) - 실시간 스트림 데이터 처리하기(76~95p)
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(02) - [1단계] 데이터 수집 및 적재하기

BeeAI 개발 프로세스의 첫 번째 단계는 데이터의 수집 및 적재입니다. 이를 위해 준비된 'http_to_mongodb' 워크플로는 스트림 데이터를 받아 배치 형태의 저장소에 적재하는 과정을 실습하기에 적합합니다. 이 워크플로의 핵심 구성 요소인 HTTP 서버 리더는 특정 포트를 열어 외부에서 유입되는 데이터를 실시간으로 받아들일 준비를 합니다. 사용자는 로컬호스트의 53001번 포트를 통해 데이터를 수송하며, 이렇게 수집된 정보는 MongoDB 라이터를 거쳐 지정된 컬렉션에 체계적으로 저장됩니다. 이 과정은 데이터 연산 처리 전, 소스로부터 정보를 안전하게 확보하는 기초적인 단계를 잘 보여줍니다. 적재된 데이터가 실제로 저장소에 잘 들어갔는지 확인하는 과정은 개발의 신뢰성을 높여줍니다. MongoDB에 접속하기 위해서는 터미널에서 Docker 환경 내부로 진입한 후 명령어를 사용해야 합니다. 'use examples' 명령어로 해당 데이터베이스를 선택하고, 'show collections'를 통해 생성된 컬렉션을 확인한 뒤 'find' 명령어를 입력하면 저장된 JSON 형태의 데이터를 직접 조회할 수 있습니다. 쉘 스크립트를 이용해 보낸 데이터가 현재 시간 정보와 함께 MongoDB의 특정 컬렉션에 정확히 쌓여있는 것을 확인하는 것은 스트림 데이터를 배치 형태로 전환하여 관리하는 기술의 핵심을 이해하는 데 큰 도움을 줍니다. 다음 단계는 스트림 데이터를 수집하여 다시 스트림 형태의 저장소인 Kafka에 적재하는 실습입니다. 이 과정에서는 'Stream to Stream' 엔진이 사용되며, 리더는 이전과 동일한 HTTP 서버 리더를 사용하지만 라이터는 Kafka 라이터로 변경됩니다. Kafka를 활용하기 위해서는 부트스트랩 서버, ZooKeeper 커넥트, 그룹 ID, 그리고 토픽 ID와 같은 필수 속성들을 정확히 설정해야 합니다. 토픽은 스트림 데이터가 쌓이는 일종의 큐 역할을 수행하며, 데이터를 처리할 때 해당 토픽에서 정보를 주기적으로 읽어오는 방식으로 동작합니다. 이는 대규모 분산 환경에서 실시간 데이터를 관리하고 저장하는 현대적인 데이터 처리 방식을 보여줍니다. 스트림 처리 외에도 기존에 저장된 대용량 파일을 다른 저장소로 한 번에 옮기는 배치 대 배치 적재 실습도 중요합니다. 'CSV_to_MongoDB' 워크플로는 로컬 저장소에 저장된 CSV 파일을 읽어 MongoDB에 적재하는 과정을 보여줍니다. 여기서는 파일 리더가 사용되며, 파일 경로 속성에 지정된 데이터를 한꺼번에 읽어들입니다. 이 실습에서는 배치 더미 엔진과 컨트롤러를 활용하여 데이터 처리가 완료되면 자동으로 작업 상태가 'Finished'로 변경되는 과정을 관찰할 수 있습니다. 수많은 행을 가진 데이터 세트가 파일 시스템에서 데이터베이스로 순식간에 이동하는 과정은 정형 데이터를 다루는 배치 처리의 효율성을 증명합니다. 이처럼 BeeAI는 다양한 소스로부터 데이터를 수집하고 이를 목적에 맞는 다양한 데스티네이션에 적재할 수 있는 유연한 기능을 제공합니다. 스트림 데이터를 배치 저장소에 저장하거나, 스트림 데이터 그대로 Kafka와 같은 메시지 큐에 전달하고, 대용량 파일을 데이터베이스로 마이그레이션하는 모든 과정이 워크플로 기반으로 직관적으로 수행됩니다. 리더와 라이터, 그리고 이를 제어하는 러너와 컨트롤러의 조합을 통해 사용자는 복잡한 코딩 없이도 데이터 파이프라인의 기초를 구축할 수 있습니다. 이러한 수집 및 적재 기술은 이후 단계에서 진행될 정교한 데이터 분석과 처리를 위한 든든한 밑바탕이 됩니다.

BeeAI 활용 교육 영상(02) - [1단계] 데이터 수집 및 적재하기
한국전자통신연구원
  • 공학·기술