Loading...

BeeAI

12 Contents
최신순

BeeAI 공모전 교육 영상(08) - 딥러닝 모델 학습(108~121p)

PySpark ML에 이어 TensorFlow를 이용한 딥러닝 모델 학습 과정으로 논의를 확장합니다. BeeAI 플랫폼은 TensorFlow 학습 코드를 외부 엔진과 연동하여 효율적인 모델 생성을 지원하는 강력한 기능을 제공합니다. 사용자는 분류나 회귀와 같은 기존 모델을 활용하거나 직접 작성한 학습 코드를 실행하여 최적의 정확도를 가진 모델을 도출할 수 있습니다. 이를 위해서는 먼저 전용 사이트에 접속하여 회원 가입을 진행하고, 클라우드 저장소와 연동할 수 있는 계정 정보를 확보하여 멤버 권한을 부여받는 과정이 선행되어야 원활한 실습과 개발이 가능합니다. BeeAI 플랫폼과 TensorFlow 학습 코드를 성공적으로 연동하기 위해서는 약속된 변수와 가이드라인을 엄격히 준수해야 합니다. 플랫폼은 학습 코드로 데이터셋 경로, 체크포인트 저장 위치, 모델 버전, 그리고 최종 서빙 모델이 저장될 디렉터리 정보를 플래그 형태로 전달하기 때문입니다. 학습 코드는 단순히 체크포인트를 생성하는 것에 그치지 않고, 시스템이 즉시 활용할 수 있는 서빙용 익스포트 상태까지 구현되어야 완벽한 연동으로 간주합니다. 이러한 파라미터 전달 체계는 모델 학습의 자동화와 관리 효율성을 극대화하는 핵심 요소가 됩니다. 실무적인 학습을 위해서는 External Engine 환경에서 TensorFlow Training Controller와 TensorFlow Runner를 조합하여 사용합니다. Runner는 실제 Python 학습 코드가 위치한 경로를 지정하며, Controller는 학습 전반의 오퍼레이션을 제어하는 역할을 수행합니다. 사용자는 웹 UI를 통해 에포크나 배치 사이즈 같은 하이퍼파라미터를 자유롭게 설정할 수 있으며, 이 값들은 실행 시점에 학습 코드로 실시간 전달됩니다. 학습 코드는 로컬 환경에서 미리 검증한 뒤 플랫폼에 탑재하여 대규모 데이터 처리에 활용하는 방식이 권장됩니다. 학습 과정에서 생성되는 체크포인트 파일은 모델의 상태를 보존하고 연속적인 학습을 가능하게 하는 중요한 자산입니다. 여기에는 모델의 최신 상태를 담은 프로토콜 버퍼 파일부터 그래프 구조를 재구성하기 위한 메타 정보, 그리고 가중치와 바이어스 값이 저장되는 데이터 파일 등이 포함됩니다. 학습 코드 내에 기존 체크포인트가 존재할 경우 이를 복구하는 로직을 포함하면, 처음부터 다시 학습하지 않고 이전 상태에서 이어서 모델을 고도화할 수 있습니다. 이는 연산 자원을 절약하고 모델의 성능을 지속적으로 개선하는 데 필수적인 절차입니다. 학습이 완료된 모델을 실제 서비스에 투입하기 위해서는 TensorFlow Serving 기반의 'SavedModel' 형태로 변환하는 익스포트 과정이 필요합니다. SavedModel은 추론을 위한 모델의 스냅샷으로, 입력과 출력 텐서를 정의하는 시그니처 정보를 포함하고 있습니다. 이 시그니처 정의를 바탕으로 추후 REST API URL이 생성되며, 이를 통해 외부 시스템이 모델에 예측 질의를 보낼 수 있게 됩니다. 따라서 익스포트 함수를 통해 그래프 정의와 파라미터 변수들을 체계적으로 저장하는 것은 안정적인 서빙 인프라를 구축하기 위한 가장 핵심적인 단계라고 할 수 있습니다. 대규모 딥러닝 모델의 효율적인 연산을 위해 GPU 디바이스를 지정하는 설정 또한 간과할 수 없습니다. 학습 코드 내에서 특정 GPU 번호를 지정하고 이를 세션 설정에 반영함으로써, 시스템 하드웨어 자원을 최적으로 활용할 수 있습니다. 여러 대의 GPU가 있는 서버 환경에서는 가용 자원을 적절히 배분하여 병렬 학습을 수행하거나 특정 작업에 전용 장치를 할당하는 것이 가능합니다. BeeAI 환경에서는 이러한 하드웨어 가속 설정을 통해 CPU 대비 월등히 빠른 속도로 복잡한 연산을 처리하고, 딥러닝 모델의 수렴 속도를 획기적으로 높일 수 있습니다. BeeAI의 차별화된 강점은 주기적인 반복 학습 설정을 통해 모델을 최신 데이터 트렌드에 맞춰 실시간으로 업데이트할 수 있다는 점입니다. 워크플로우 속성에서 실행 주기를 분이나 시간 단위로 설정하면 새로운 데이터가 유입될 때마다 모델 파라미터가 자동으로 갱신됩니다. 예를 들어 교통 속도 예측 모델의 경우, 유입되는 최신 데이터를 반영해 지속적으로 재학습함으로써 변화하는 도로 상황에 기민하게 대응하게 됩니다. 이렇게 생성된 최신 모델은 서빙 오퍼레이터에 의해 즉시 로딩되어 사용자에게 항상 높은 수준의 예측 정확도를 보장하게 됩니다.

BeeAI 공모전 교육 영상(08) - 딥러닝 모델 학습(108~121p)
한국전자통신연구원
  • 융합
  • 공학·기술

BeeAI 공모전 교육 영상(10) - 딥러닝 모델 서빙(125~133p)

머신러닝과 딥러닝 모델을 실제 서비스에 적용하는 ‘서빙’ 과정은 데이터 분석의 결실을 보는 핵심적인 단계입니다. BeeAI 환경에서는 스파크를 이용해 머신러닝 모델을 만들고, 텐서플로로 딥러닝 모델을 구축하여 GPU 기반으로 서빙하는 실습을 진행할 수 있습니다. 특히 이미지 분류에 널리 쓰이는 텐서플로 인셉션(Inception) 모델을 활용하면 판다나 강아지 같은 사물을 실시간으로 판별하는 시스템을 구축하는 것이 가능합니다. 이는 단순히 모델을 학습시키는 것에 그치지 않고, 실제 환경에서 데이터가 입력되었을 때 즉각적인 결괏값을 반환하는 인프라 구성 능력을 키우는 과정이기도 합니다. BeeAI의 서빙 방식 중 하나인 온디맨드 서빙 엔진은 사용자가 필요할 때마다 요청을 보내고 결과를 받는 구조로 설계되어 있습니다. 이 엔진을 구성할 때는 전용 오퍼레이터와 러너, 그리고 컨트롤러가 유기적으로 작동하며 서비스 환경을 조성합니다. 여기서 가장 중요한 역할을 수행하는 컴포넌트는 ‘러너’인데, 사용자는 러너 설정을 통해 서빙할 모델이 저장된 경로나 포트 번호를 자유롭게 지정할 수 있습니다. 이러한 구조를 통해 복잡한 딥러닝 모델도 REST API 형태의 서비스로 손쉽게 변환되어, 외부 시스템이 보낸 이미지 데이터를 즉각 분류하고 응답할 수 있는 상태가 됩니다. 효율적인 모델 운영을 위해서는 하드웨어 자원, 특히 GPU를 어떻게 활용할지가 중요한 변수가 됩니다. 텐서플로 서빙 러너의 옵션 설정을 통해 특정 GPU 디바이스를 지정하거나 메모리 점유율을 세밀하게 조절할 수 있습니다. 예를 들어 여러 개의 GPU 중 특정 장치만을 사용하도록 설정하거나, 전체 메모리의 일부만 할당하여 자원 낭비를 방지하는 방식입니다. 또한 모델 자동 로드 옵션을 활성화하면 새로운 학습 결과가 생성될 때마다 최신 모델을 자동으로 반영하여 서빙 품질을 유지합니다. 만약 GPU가 없는 환경이라면 시스템이 자동으로 CPU를 활용하도록 구성되어 다양한 인프라에 유연하게 대응합니다. 서빙 환경이 구축되면 시뮬레이터를 통해 실제 데이터가 입력되는 상황을 가정한 테스트를 수행하게 됩니다. 예를 들어 판다나 고양이 이미지가 포함된 데이터 경로를 시뮬레이터에 입력하면, 시스템은 설정된 시간 간격으로 이미지를 쿼리하고 분류 결과를 반환합니다. 사용자는 BeeAI 대시보드와 모니터링 페이지 통해 현재 서빙 중인 서비스의 상태와 고유 URL을 실시간으로 확인할 수 있습니다. 쿼리에 대한 결괏값은 각 항목별 예측 확률 점수로 나타나며, 가장 높은 점수를 얻은 결과를 통해 모델이 실제 사물을 정확하게 인식했는지 판별하고 시스템의 신뢰도를 점검할 수 있습니다. 요청이 올 때만 작동하는 온디맨드 방식과 달리, 끊임없이 유입되는 데이터를 처리해야 하는 환경에서는 스트림 서빙 방식이 훨씬 효과적입니다. 대표적인 사례가 5분 단위로 수집되는 대규모 교통 속도 데이터를 기반으로 미래의 도로 상황을 예측하는 시나리오입니다. 스트림 서빙은 미니 배치 엔진을 활용하여 카프카(Kafka)와 같은 메시지 큐에 쌓이는 데이터를 실시간으로 읽어 들여 처리합니다. 이 과정에서 텐서플로 예측 오퍼레이터가 중심이 되어 지속적으로 유입되는 스트림 데이터에 모델을 적용하고, 그 예측 결과를 다시 카프카(Kafka) 토픽에 저장하거나 파일로 기록하여 실제 서비스에 활용하게 됩니다. 딥러닝 모델이 스트림 데이터를 정확히 이해하기 위해서는 정교한 전처리 파이프라인 구축이 선행되어야 합니다. 교통 예측 모델의 경우, 여러 시간대의 도로별 속도 데이터를 하나로 묶어 입력 벡터로 변환하는 과정이 필수적입니다. 이를 위해 벡터 어셈블 컬럼과 플래튼(Flatten) 오퍼레이터를 사용하여 방대한 양의 개별 속도 정보를 단일 행의 텐서 형태로 재구성하게 됩니다. 이렇게 정제된 데이터가 예측 오퍼레이터로 전달되면 모델은 학습된 패턴을 바탕으로 향후 15분 뒤의 속도를 정확히 계산해 냅니다. 이는 실시간 대용량 데이터를 딥러닝 모델이 인식할 수 있는 형태로 가공하는 파이프라인 설계의 중요성을 보여줍니다. BeeAI 플랫폼은 온디맨드와 스트림이라는 두 가지 서빙 방식을 모두 지원함으로써 기업의 다양한 비즈니스 요구사항에 유연하게 대응합니다. 사용자는 REST API 기반의 즉각적인 응답이 필요한 간단한 서비스부터, 대규모 실시간 데이터 분석이 요구되는 복잡한 서비스까지 폭넓게 구현할 수 있습니다. 특히 복잡한 GPU 설정이나 전처리 파이프라인 구성을 시각적인 워크플로를 통해 관리할 수 있다는 점은 모델 운영의 생산성을 크게 높여주는 장점입니다. 이러한 서빙 기술의 고도화는 단순한 데이터 분석을 넘어, 실제 세상을 변화시키는 실질적인 인공지능 서비스를 완성하는 핵심적인 동력이 됩니다.

BeeAI 공모전 교육 영상(10) - 딥러닝 모델 서빙(125~133p)
한국전자통신연구원
  • 융합
  • 공학·기술

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 공모전 교육 영상(06) - 머신러닝 모델 학습하기(188~211p)

머신러닝 모델을 구축하는 과정은 데이터 전처리가 완료된 시점부터 본격적으로 시작됩니다. BeeAI 플랫폼에서는 스파크(Spark) 기반의 MLlib 모듈을 활용하여 효율적인 모델 생성을 지원하고 있습니다. 모델 제작의 핵심은 단순히 알고리즘을 적용하는 것에 그치지 않고, 데이터가 머신러닝에 적합한 형태로 가공되었는지 확인하는 데 있습니다. 사용자는 다양한 오퍼레이터를 통해 데이터 적재와 처리 과정을 거치며, 최종적으로 비즈니스 목적에 부합하는 분석 모델을 설계할 수 있는 토대를 마련하게 됩니다. 머신러닝 알고리즘이 여러 피처를 동시에 학습하기 위해서는 개별 컬럼들을 하나의 벡터로 통합하는 과정이 필수적입니다. BeeAI의 벡터 어셈블러는 여러 피처 컬럼을 하나로 묶어 내부적으로 새로운 피처 컬럼을 생성하는 역할을 수행합니다. 웹상의 예제들은 이미 이 단계가 완료된 경우가 많아 간과하기 쉽지만, 실제 프로젝트를 수행할 때는 직접 수행해야 하는 중요한 전처리 단계입니다. 이를 통해 모델은 복합적인 데이터를 일관된 형식으로 인식하고 학습 효율을 극대화할 수 있는 준비를 마치게 됩니다. 머신러닝 모델은 기본적으로 수치 데이터를 기반으로 작동하기 때문에 문자열 데이터는 그대로 사용할 수 없습니다. 따라서 문자열을 인덱스로 변환하는 스트링 인덱서 작업이 필요합니다. 예를 들어 붓꽃의 종류를 맞추는 분류 문제에서 꽃의 이름을 숫자로 변환하여 학습시키고, 결과가 나오면 다시 레이블 컨버터를 통해 원래의 문자로 복구하는 과정을 거칩니다. 이러한 변환 과정이 유기적으로 연결되어야만 사용자가 이해할 수 있는 최종 결과를 도출할 수 있으며, 모델의 전반적인 완성도와 신뢰도가 높아집니다. 모델 제작 시에는 단순히 알고리즘 하나만 구동하는 것이 아니라, 전처리와 인덱싱 과정을 하나로 엮은 ML 파이프라인을 구성하는 것이 기본입니다. 파이프라인 전체를 저장해야 나중에 새로운 데이터로 추론을 진행할 때도 동일한 전처리 로직이 적용되어 데이터 형식 불일치로 인한 오류를 방지할 수 있습니다. BeeAI는 이러한 복잡한 파이프라인 구성을 내부적으로 자동화하여 제공하므로, 사용자는 구조적 한계를 고민하기보다 모델의 논리적 흐름과 분석 목적에 더 집중할 수 있는 효율적인 환경을 누릴 수 있습니다. 모델의 신뢰성을 확보하기 위해 BeeAI는 K-Fold 교차 검증 기능을 기본적으로 제공합니다. 데이터를 여러 묶음으로 나누어 반복 학습과 검증을 수행함으로써 특정 데이터에만 과적합되는 현상을 방지하고 일반화 성능을 높입니다. 또한 랜덤 포레스트와 같은 알고리즘에서 트리의 개수나 깊이 같은 하이퍼파라미터를 조정하여 최적의 성능을 찾아가는 과정도 지원합니다. 사용자는 다양한 파라미터 조합을 시도하며 성능 지표가 가장 우수한 베스트 모델을 선별할 수 있으며, 이 모든 실험 과정은 시스템 내에서 체계적으로 기록됩니다. 학습이 완료된 모델은 학습된 시각을 고유 ID로 삼아 리포지토리에 저장되며, 히스토리 파일을 통해 과거의 성능 변화를 한눈에 파악할 수 있습니다. 여기에는 정확도, F1 스코어, 정밀도, 재현율 등 다양한 지표가 기록되어 관리자가 모델의 성능 추이를 모니터링하기 용이합니다. 또한 재학습 워크플로우를 통해 주기적으로 모델을 갱신하고, 새로운 모델이 감지되면 자동으로 서빙 모델을 교체하는 오토 로딩 기능을 지원하여 운영의 연속성을 보장하는 것이 BeeAI가 가진 큰 기술적 장점 중 하나라고 할 수 있습니다. 실제 사례인 보스턴 주택 가격 예측이나 붓꽃 분류 실습을 통해 선형 회귀, 로지스틱 회귀, 다층 퍼셉트론(MLP) 등 다양한 모델을 직접 적용해 볼 수 있습니다. 회귀 분석을 통해 연속적인 주택 가격을 예측하거나, 데이터를 범주화하여 다중 클래스 분류를 수행하는 등 분석 목적에 따라 유연한 대응이 가능합니다. 하나의 알고리즘에 의존하기보다 여러 모델의 성능을 비교 분석하여 최적의 대안을 선택하는 것이 중요하며, BeeAI는 이러한 복잡한 실험 과정을 직관적인 인터페이스와 강력한 엔진으로 뒷받침하여 사용자 편의를 돕습니다.

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

BeeAI 공모전 교육 영상(13) - BeeAl 대표 시나리오 소개(237~262p)

챗봇 시스템의 핵심은 사용자의 언어 데이터를 기계가 이해할 수 있는 수치로 변환하고 처리하는 과정에 있습니다. 딥러닝이나 머신러닝 모델은 문자열을 직접 연산할 수 없기 때문에, 워드 임베딩이나 인코딩 작업을 통해 문자를 숫자의 시퀀스로 변환하는 전처리가 필수적입니다. BeeAI 환경에서는 파이썬 UDF와 온디맨드 인퍼런스 서빙 엔진을 활용하여 이러한 변환을 수행하며, 추론된 숫자 결과를 다시 문자로 복구하는 후처리 과정을 거쳐 사용자에게 자연스러운 응답을 전달하는 구조를 갖추고 있습니다. 융합 서빙은 개별적인 모델들을 유기적으로 연결하여 더욱 고도화된 지능형 서비스를 구축하는 핵심 기술입니다. 예를 들어 일반적인 대화 모델뿐만 아니라 사랑이나 슬픔과 같은 감정에 특화된 챗봇 모델을 각각 구성한 뒤, 이를 하나의 융합 엔진으로 묶어 통합 서비스를 제공할 수 있습니다. 각 모델은 전처리와 후처리 엔진을 공유하면서도 상황에 맞는 추론 엔진으로 데이터를 할당받아 처리합니다. 이러한 워크플로우 구성을 통해 단순한 질의응답을 넘어 사용자의 감성까지 고려한 지능적인 상호작용이 가능해집니다. 영화 추천 서비스는 실시간 데이터 처리와 모델 생성, 그리고 서빙 기술이 집약된 복합 서비스의 전형을 보여줍니다. 사용자의 시청 이력과 평점 데이터를 실시간으로 수집하여 백엔드에서 지속적으로 모델을 업데이트하는 것이 무엇보다 중요합니다. Spark MLlib의 협업 필터링 기술을 활용해 개인별 선호 영화를 추천하고, 사용자를 특정 그룹으로 분류하여 유사 그룹의 선호도를 반영하는 그룹 추천 모델을 동시에 운영합니다. 이를 통해 추천의 정확도를 높이고 사용자의 취향에 최적화된 콘텐츠를 실시간으로 제안할 수 있습니다. 시각 지능 서비스 분야에서는 이미지 데이터를 읽어 들이고 색상을 변환하거나 크기를 조정하는 등 다양한 오퍼레이터의 조합이 활용됩니다. 주차 공간의 점유 여부를 확인하는 서비스의 경우, MobileNet과 같은 경량화 모델을 사용하여 실시간으로 차량 영역을 추출하고 분석하는 워크플로우를 설계할 수 있습니다. TensorFlow Serving을 활용한 스트림 기반 처리와 온디맨드 인퍼런스 서빙 엔진은 대량의 영상 데이터를 효율적으로 분석하게 해줍니다. 비록 학습 데이터에 따라 정확도의 차이는 발생할 수 있으나, 다양한 이미지 처리 오퍼레이터를 통해 고차원적인 비전 서비스를 구현할 수 있습니다. 성공적인 지능형 서비스를 구현하기 위해서는 서비스 목적에 최적화된 엔진을 선택하고 스테이지별로 적절한 리더와 오퍼레이터를 배치해야 합니다. BeeAI 플랫폼은 오퍼레이터 수에 제한을 두지 않아 매우 복잡한 시퀀스 모델도 유연하게 설계할 수 있는 확장성을 제공합니다. 다만 Android나 Firebase와 같은 외부 플랫폼과의 직접적인 연동은 현재 기술적 환경에 따른 전략적 접근이 필요합니다. JDBC를 통해 중간 데이터베이스를 거치거나 전용 리더를 구현하는 등 플랫폼의 특성을 고려한 아키텍처 설계가 지능형 서비스의 완성도를 결정짓는 중요한 요소가 됩니다.

BeeAI 공모전 교육 영상(13) - BeeAl 대표 시나리오 소개(237~262p)
한국전자통신연구원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 공모전 교육 영상(01) - BeeAI 웹툴킷 사용법(1~40p)

BeeAI 웹툴킷은 직관적인 GUI 환경을 통해 복잡한 데이터 분석과 인공지능 모델 학습 과정을 효율적으로 관리할 수 있도록 설계되었습니다. 시스템의 첫 관문인 대시보드에서는 수행한 워크플로우의 통계 정보를 한눈에 파악할 수 있는 워크플로우 TOP 10 테이블을 제공합니다. 사용자는 일별로 작업의 성공, 실패, 진행 여부를 확인하고 실행 소요 시간을 분석하며 전체적인 작업 현황을 실시간으로 모니터링할 수 있습니다. 또한 과거 내역 조회 기능을 통해 저장된 워크플로우 목록을 관리하고 서빙 중인 엔진들의 상태 정보를 확인하는 것이 가능합니다. 워크벤치의 편집 화면은 데이터 처리 파이프라인을 시각적으로 설계하는 핵심 공간입니다. 프로젝트 익스플로러를 통해 여러 워크플로우를 체계적으로 관리하며, 7가지 이상의 엔진 유형을 선택하여 데이터 처리 목적에 최적화된 구조를 만들 수 있습니다. 특히 스트림 엔진이나 미니배치 엔진을 활용해 실시간 데이터 처리를 구현하고, 리더, 라이터, 오퍼레이터 등 5종의 컴포넌트를 드래그 앤 드롭 방식으로 조합하는 직관적인 방식을 채택했습니다. 엔진 간의 유기적인 결합을 통해 복잡한 연산 과정도 코드 없이 시각적으로 완성할 수 있는 것이 특징입니다. 설계된 워크플로우를 실제 구동하기 위해서는 워크벤치의 운영 화면을 활용해야 합니다. 여기서는 빌드 과정을 통해 워크플로우 내의 설정 오류를 사전에 검증하며, 빌드 성공 후에 활성화되는 배포 버튼을 눌러 작업을 시작하게 됩니다. 실행 중에는 실시간 엔진 로그 창을 통해 빌드 및 실행 과정을 상세히 파악할 수 있으며, CPU와 메모리 같은 시스템 리소스 사용 현황을 실시간으로 확인하여 안정적인 운영을 돕습니다. 필요에 따라 로그를 다운로드하여 정밀 분석을 수행하거나 진행 상황 창에서 결과물의 시각화 차트를 실시간으로 확인할 수 있습니다. 레지스트리는 인공지능 서비스 제작에 필요한 11가지 유형의 다양한 자원들을 등록하고 통합 관리하는 중앙 저장소 역할을 수행합니다. API 정보, 데이터셋, 학습 모델뿐만 아니라 파이썬 모듈과 인증 토큰에 이르기까지 분석에 필수적인 재료들을 체계화하여 관리합니다. 저장된 자원들은 워크벤치에서 컴포넌트의 속성을 설정할 때 리소스 매핑 기능을 통해 간편하게 연결됩니다. 이는 파일 경로를 일일이 입력하는 번거로움을 줄여주며, 개발 환경의 일관성을 유지하고 협업 시 공유 자원을 효율적으로 활용할 수 있는 강력한 토대를 제공합니다. BeeAI는 로컬 파일 시스템, 스위프트 리포지토리, 하둡 분산 파일 시스템(HDFS)의 세 가지 저장소를 지원하여 유연한 데이터 관리를 실현합니다. 레지스트리에 등록된 데이터셋이나 모델과 같은 자원들은 스위프트 리포지토리에 날짜별로 자동 분류되어 보관되며, 노드 간 파일 공유를 위한 전용 폴더를 통해 데이터 이동을 원활하게 지원합니다. 사용자는 스토리지 메뉴에서 파일 업로드, 삭제, 복사 등의 기본적인 관리 기능뿐만 아니라 폴더 구조의 직관적인 탐색을 통해 분석 결과물이나 학습 코드를 체계적으로 정리하고 접근할 수 있는 환경을 누릴 수 있습니다. 모니터링 기능은 실행 중인 워크플로우와 완료된 작업의 이력을 포괄적으로 추적하고 제어하는 도구입니다. 실시간 상태 정보 갱신을 통해 작업 진행도를 즉각 확인하며, 여러 엔진으로 구성된 복합 워크플로우의 경우 각 엔진별 상세 로그를 개별적으로 파악할 수 있습니다. 특히 워크플로우 히스토리 탭은 종료된 작업의 결과를 스토리지에 직접 접근하지 않고도 미리보기 기능을 통해 즉시 확인할 수 있게 해줍니다. 텍스트 형태의 데이터 확인은 물론 시각화 차트를 통해 모델 성능이나 분석 결과를 즉각적으로 검토할 수 있는 편의성을 제공합니다. 시스템 기능을 확장하고 유지보수하기 위한 관리자 전용 메뉴에서는 신규 컴포넌트 등록과 시스템 설정 관리가 이루어집니다. 새로운 알고리즘이나 오퍼레이터를 개발한 후 클래스 정보와 닉네임을 설정하여 등록하면, 워크벤치 편집기에서 해당 기능을 즉시 사용할 수 있는 확장성을 갖췄습니다. 또한 엔진 템플릿 기능을 통해 자주 사용되는 컴포넌트 조합을 미리 구성하여 재사용성을 높일 수 있습니다. 사용자 관리 기능을 통해 승인된 인원만 시스템을 이용하도록 제한하거나 권한을 부여함으로써 전체 플랫폼의 보안성과 운영 효율성을 보장합니다.

BeeAI 공모전 교육 영상(01) - BeeAI 웹툴킷 사용법(1~40p)
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(08) - [4단계] BeeAI에서 모델 서빙하기(1)

머신러닝 모델을 실제 서비스에 적용하는 서빙 방식은 크게 온디맨드 서빙과 스트림 서빙으로 구분됩니다. 온디맨드 서빙은 마이크로서비스 아키텍처 환경에서 필요한 시점에 쿼리를 던져 예측 결과를 받는 방식인 반면, 스트림 서빙은 입력되는 데이터를 연속적으로 처리하여 실시간으로 예측 결과를 내보냅니다. 실무에서는 실시간 데이터 흐름을 다루기 위해 스트림 투 스트림 엔진을 활용하며, 이는 데이터의 입력부터 예측, 결과 전송까지의 전 과정을 끊김 없이 수행하는 데 최적화되어 있습니다. 플랫폼을 활용한 스트림 서빙 워크플로에서는 HTTP 서버 리더가 특정 포트를 통해 외부 데이터를 수신하는 것으로 시작됩니다. 수신된 온도 스트림 데이터는 전처리 과정을 거쳐 예측 오퍼레이터로 전달되며, 여기서 학습된 머신러닝 모델이 실시간 예측을 수행합니다. 최종 결과는 Kafka 토픽으로 전송되어 다른 시스템에서 활용될 수 있게 구성됩니다. 이러한 구조는 Zookeeper나 Bootstrap 서버 설정과 연동되어 분산 환경에서도 안정적인 데이터 처리를 가능하게 합니다. 정확한 예측을 위해서는 정교한 데이터 전처리가 필수적입니다. 입력된 온도 데이터는 먼저 특정 범위로 변환되는 Min-Max 스케일링을 거치며, 이 과정에서 현실적으로 불가능한 이상치 데이터는 제거됩니다. 또한 Transpose 오퍼레이터를 통해 과거의 데이터들을 모아 가로 형태로 재구성함으로써 모델이 분석하기 적합한 형태로 가공합니다. 예측이 완료된 이후에는 다시 원래의 수치 범주로 역변환하는 과정을 거쳐 사용자가 직관적으로 이해할 수 있는 최종 예측값을 산출하게 됩니다. 딥러닝 모델의 저장 방식인 Checkpoint는 본래 학습 중 오류가 발생했을 때 마지막 지점부터 재개하기 위한 용도로 사용됩니다. 하지만 실제 서빙 환경에서는 변수 값이 고정된 추론 전용 모델이 필요하므로, 그래프 정보와 배열 값을 결합하여 상수화하는 과정이 수반됩니다. TensorFlow Serving에서 공식적으로 권장하는 SavedModel 형식은 그래프 정보와 변수 데이터를 포함하며, 학습용 메타 그래프를 제외한 핵심 추론 로직만을 남겨 효율적인 서비스 배포를 지원합니다. SavedModel의 핵심 요소는 입력과 출력의 규격을 정의하는 시그니처입니다. 어떤 형태의 데이터를 받아들여 무엇을 내보낼지를 명확히 명시해야 모델 서버가 이를 정확히 인식하고 처리할 수 있습니다. TensorFlow 코드를 작성할 때 추론에 필요한 함수만을 모듈화하고 시그니처를 등록하면, 복잡한 트레이닝 그래프를 제거한 경량화된 모델을 생성할 수 있습니다. 이는 모델의 용량을 줄일 뿐만 아니라 서빙 시 발생할 수 있는 리소스 낭비를 최소화하는 데 기여합니다. 모델 서버는 저장소에 새롭게 올라오는 모델을 실시간으로 감시하며 버전 관리 정책에 따라 서비스를 갱신합니다. 가용성을 중시하는 정책에서는 서비스 중단 없이 신구 모델을 교체하는 방식을 취하며, 리소스가 제한적인 경우에는 기존 모델을 내린 후 신규 모델을 올리는 방식을 선택합니다. 또한 GPU 메모리 점유 방식을 설정하거나 특정 포트를 지정하여 모델을 로딩하는 등, 운영 환경의 특성에 맞춰 유동적으로 리소스를 관리할 수 있는 다양한 옵션이 제공됩니다. 기존에 잘 학습된 Pre-trained 모델을 활용하는 전이 학습은 개발 시간을 획기적으로 단축하는 방법입니다. Checkpoint나 Protocol Buffer 파일로부터 모델을 불러와 구조를 수정하고 자신만의 시그니처를 결합하면 새로운 SavedModel을 생성할 수 있습니다. 생성된 모델의 입력 형태나 Rank 등의 시그니처 정보는 CLI 도구를 통해 검증할 수 있으며, 이를 통해 예측 형식의 정확성을 확인합니다. 이러한 체계적인 검증 과정은 복잡한 시퀀스 데이터나 이미지 데이터를 다루는 모델의 신뢰성을 높여줍니다.

BeeAI 활용 교육 영상(08) - [4단계] BeeAI에서 모델 서빙하기(1)
한국전자통신연구원
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(01) - BeeAI 웹툴킷 개요 및 사용법

인공지능 서비스를 구축하기 위해서는 데이터의 수집부터 가공, 모델 학습, 그리고 실제 서비스로 이어지는 복잡한 전주기적인 과정이 필요합니다. BeeAI는 이러한 일련의 단계를 체계적으로 관리할 수 있는 통합 프레임워크를 제공하여 개발 효율성을 극대화하는 데 중점을 둡니다. 데이터 적재와 처리를 통해 학습용 데이터를 생성하고, 이를 기반으로 최적의 인공지능 모델을 만들어 실제 환경에 서빙하는 4단계의 순환 주기는 인공지능 개발의 핵심적인 기반이 됩니다. 사용자의 편의를 위해 BeeAI는 직관적인 웹 툴킷과 함께 기술 지원을 위한 상세한 매뉴얼을 제공합니다. 전용 홈페이지에서는 기술적인 궁금증을 해결할 수 있는 질의응답 게시판을 운영하며, 최신 버전의 소프트웨어 다운로드와 설치 방법, 단계별 사용자 가이드를 체계적으로 안내합니다. 특히 제공되는 다양한 워크플로 예제는 오픈 소스 기반의 프레임워크를 사용자가 직접 활용하거나 자신만의 비즈니스 로직에 맞춰 최적화된 인공지능 서비스를 설계할 수 있도록 돕는 유용한 지침서가 됩니다. 시스템에 접속하여 가장 먼저 마주하는 대시보드와 모니터링 탭은 전체 서비스의 운영 현황을 실시간으로 파악할 수 있는 관제 센터 역할을 합니다. 대시보드에서는 수행된 워크플로의 성공과 실패 여부, 실행 소요 시간 등 핵심적인 통계 정보를 시각화하여 제공하며, 현재 서빙 중인 인공지능 모델의 상태도 즉각적으로 확인이 가능합니다. 모니터링 기능을 통해 작업의 진행률을 체크하고 문제가 발생했을 때 상세 로그를 분석할 수 있는 환경은 중단 없는 안정적인 서비스 운영을 가능하게 만드는 중요한 요소입니다. 인공지능 서비스의 논리적 구조를 설계하는 워크플로 에디터는 드래그 앤 드롭 방식을 채택하여 복잡한 데이터 흐름을 시각적으로 구현합니다. '엔진'이라 불리는 기본 컨테이너 안에 데이터를 읽어오는 리더, 가공을 담당하는 오퍼레이터, 결과를 저장하는 라이터 등 5가지 필수 컴포넌트를 배치하여 하나의 완성된 연산 단위를 구성하게 됩니다. 이러한 설계 정보는 JSON 형태의 스펙 파일로 관리되므로, 임포트와 익스포트 기능을 활용하여 동료 개발자와 설계를 공유하거나 기존의 우수한 워크플로를 간편하게 재활용할 수 있습니다. 데이터의 성격과 처리 목적에 따라 13종에 달하는 다양한 엔진 유형을 선택하여 활용할 수 있습니다. 배치 엔진은 저장된 대용량 정보를 한 번에 읽어와 정기적으로 모델을 학습시키거나 대규모 데이터를 정제할 때 매우 효과적입니다. 반면 스트림 방식 엔진은 카프카와 같은 스트리밍 플랫폼과 연동하여 실시간으로 유입되는 데이터를 짧은 주기마다 끊어 처리함으로써 실시간성을 확보합니다. 이러한 유연한 구조 덕분에 개발자는 데이터의 규모나 속도에 상관없이 서비스 요구 사항에 가장 부합하는 처리 아키텍처를 손쉽게 구축할 수 있습니다. 지연 없는 처리가 중요한 실시간 스트림 환경을 위해 BeeAI는 고도화된 정제 및 복구 기술을 지원합니다. 네트워크 장애 등으로 늦게 도착한 데이터를 적절히 처리하는 워터마크 기능과 시스템 장애 시 이전 상태로 복구하기 위한 체크포인트 설정은 데이터 신뢰성을 보장하는 핵심 기능입니다. 또한 사용자의 요청에 즉각적으로 응답하는 온디맨드 서빙 엔진과 파이썬 모듈을 활용한 융합 서빙 기능은 복잡한 딥러닝 추론이나 전처리 로직을 REST API 형태로 간편하게 외부 서비스와 연결하여 실용적인 인공지능 응용 서비스를 완성해 줍니다. 인공지능 개발에 사용되는 모든 자산은 하둡 분산 파일 시스템(HDFS) 기반의 리포지토리에 통합되어 안전하게 관리됩니다. 개발자는 리포지토리를 통해 실습용 데이터 세트나 학습이 완료된 모델 파일을 자유롭게 업로드하고 관리할 수 있으며, 처리된 결과물에 대해서는 텍스트와 더불어 다양한 차트 형태의 시각화 도구를 활용해 데이터의 특성을 직관적으로 분석할 수 있습니다. 이러한 통합 저장 공간은 데이터의 이력을 관리하고 팀 단위의 협업을 수행하는 데 있어 필수적인 플랫폼 기반으로서의 역할을 충실히 수행합니다.

BeeAI 활용 교육 영상(01) - BeeAI 웹툴킷 개요 및 사용법
한국전자통신연구원
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(05) - [2단계] 스트림 데이터 처리하기실습

BeeAI 플랫폼을 활용하여 강남 지역의 실시간 교통 속도를 예측하는 인공지능 서비스는 현대 도시 교통 효율을 높이는 핵심적인 기술입니다. 이 시스템은 강남 일대 택시에서 전송되는 초 단위 센서 데이터를 수집하여, 170개의 도로 링크별로 15분 후의 교통 상황을 정확하게 예측하는 것을 목표로 합니다. 방대한 데이터를 단순히 수집하는 것에 그치지 않고, 복잡한 워크플로 엔진들을 통해 실시간 스트림 처리를 수행하며 지능형 교통 시스템의 기반을 마련합니다. 교통 데이터 처리는 크게 수집, 전처리, 학습, 서빙의 다섯 단계 엔진으로 구성됩니다. 택시에서 전송되는 원본 데이터는 시간 정보, 도로 링크 ID, 현재 속도라는 단순한 구조로 이루어져 있지만, 초 단위로 발생하는 데이터 양이 매우 방대합니다. 이 데이터들을 시스템이 이해할 수 있는 형태로 변형하기 위해 각각의 역할을 수행하는 엔진들을 유기적으로 연결하며, 이를 통해 결측치를 보정하고 이상치를 제거하여 교통 예측의 정확도를 확보하는 복합적인 과정을 거게 됩니다. 실시간 스트림 전처리 단계인 엔진 A와 B에서는 초 단위 데이터를 1분 및 5분 단위로 정제하는 작업을 수행합니다. 센서와 네트워크의 상태에 따라 발생할 수 있는 결측치를 채워주는 결측치 처리가 이 과정에서 이루어지며, 딥러닝 모델이 학습하기에 적합한 5분 단위의 평균 속도 데이터를 생성합니다. 이러한 스무딩 과정을 통해 데이터의 불규칙성을 완화하고, 학습 모델이 교통 흐름의 전체적인 패턴을 보다 명확하게 파악할 수 있도록 데이터의 질을 높이는 역할을 합니다. 딥러닝 학습용 데이터를 생성하는 엔진 D는 스트림 형태의 데이터를 배치 형태의 CSV 파일로 변환하는 작업을 담당합니다. 텐서플로 기반의 학습 코드가 데이터를 읽어올 수 있도록 Min-Max 스케일링을 통해 속도 값을 정규화하고, 비정상적인 이상치를 제거하는 과정을 거칩니다. 또한, 170개 도로 링크의 데이터를 시간순으로 정렬하고 피벗 연산을 수행하여, 8주기 동안의 속도 패턴이 가로 형태로 배열된 시퀀스 데이터를 생성함으로써 모델 학습을 위한 최적의 상태를 만듭니다. 교통 예측의 핵심 모델로는 시계열 패턴 학습에 탁월한 성능을 보이는 LSTM(Long Short-Term Memory) 딥러닝 모델이 사용됩니다. 이 모델은 과거 8주기(약 40분) 동안의 교통 속도 변화 추이를 분석하여 특정 도로 링크의 미래 속도를 예측하도록 설계되었습니다. 엔진 E는 주기적으로 갱신되는 최신 데이터를 학습하여 예측 모델을 최적화하며, 학습이 완료된 모델은 실제 서비스 환경에 탑재되어 시시각각 변하는 도로 상황에 유연하게 대응할 수 있는 지능을 갖추게 됩니다. 예측된 결괏값은 사용자 인터페이스를 통해 시각적으로 전달되어 실제 교통 관제나 내비게이션 서비스에 활용됩니다. 엔진 C에서 이루어지는 스트림 서빙 단계는 최신 학습 모델을 기반으로 현재 유입되는 스트림 데이터에 대한 예측을 실시간으로 수행합니다. 15분 후의 속도가 평균 이하로 예상되는 도로 링크는 빨간색으로, 원활한 도로 링크는 파란색으로 표시하는 등 예측 데이터를 직관적인 정보로 변환함으로써 사용자가 도로의 미래 혼잡도를 미리 파악할 수 있도록 돕습니다. 이 모든 과정은 Spark Structured Streaming 기술을 통해 실시간성과 안정성을 동시에 확보합니다. 워터마크 설정을 활용하여 늦게 도착하는 데이터에 대한 처리 기준을 세우고, JSON 스키마 정보를 정의하여 데이터 처리 속도를 극대화합니다. 단순한 배치 처리를 넘어 연속적으로 유입되는 스트림 데이터를 효율적으로 관리함으로써, 지능형 교통 예측 서비스가 중단 없이 실시간으로 도로 위 상황을 분석하고 대응할 수 있는 강력한 데이터 파이프라인을 완성하게 됩니다.

BeeAI 활용 교육 영상(05) - [2단계] 스트림 데이터 처리하기실습
한국전자통신연구원
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(09) - [4단계] BeeAI에서 모델 서빙하기(2)

인공지능 개발 프로세스에서 학습된 모델을 실제 서비스에 적용하는 방식은 크게 온디맨드 서빙과 스트림 서빙으로 구분됩니다. 온디맨드 서빙은 모델이 항상 활성화된 상태로 대기하다가 사용자가 필요할 때 질의를 던져 즉각적인 응답을 받는 구조입니다. BeeAI 환경에서는 텐서플로우 서빙 오퍼레이터와 러너를 활용하여 이러한 실습을 진행할 수 있습니다. 딥러닝 시각 지능 모델을 통해 동물의 종류를 판단하는 예제처럼, 사용자는 로컬 파일 시스템에 저장된 모델 경로와 포트 정보를 설정하여 REST API 형태의 서비스를 손쉽게 생성하고 관리할 수 있습니다. 생성된 온디맨드 서비스는 시스템 대시보드를 통해 실시간으로 상태를 확인할 수 있으며, 포스트맨과 같은 외부 도구를 활용해 모델의 성능을 직접 테스트하는 과정이 수반됩니다. 예를 들어 인셉션 V3 모델이 작동 중인 특정 포트로 이미지를 바이너리 형태로 전송하면, 모델은 사전에 정의된 시그니처 이름을 인식하여 분석 결과를 반환합니다. 이 과정에서 콘텐츠 타입과 URL 주소를 정확히 명시하는 것이 중요하며, 이를 통해 학습된 딥러닝 모델이 실제 서비스 환경에서 사용자의 요청에 어떻게 반응하고 결과를 도출하는지 명확하게 검증할 수 있습니다. 실시간으로 끊임없이 유입되는 대량의 데이터를 처리해야 하는 환경에서는 스트림 서빙 방식이 핵심적인 역할을 수행합니다. 이는 카프카와 같은 메시지 브로커를 통해 들어오는 데이터 흐름을 실시간으로 분석하고 예측치를 산출하는 방식입니다. 교통 정보 예측 시스템을 예로 들면, 5분 단위로 수집되는 도로의 평균 속도 데이터를 스트림 리더로 읽어 들여 파이프라인에서 즉시 처리합니다. 스트림 서빙은 데이터 전처리와 예측 단계가 지연 없이 연결되어야 하므로, 전용 엔진을 통해 데이터의 흐름을 제어하고 결과값을 다시 라이터를 통해 송출하는 일련의 과정으로 구성됩니다. 스트림 서빙 구현 시에는 스파크에서 처리되는 데이터 프레임 형태를 텐서플로우 연산에 적합한 벡터 형태로 변환하는 기술적 절차가 필수적입니다. 이를 위해 벡터 어셈블러나 플래튼 오퍼레이터를 사용하여 분산된 데이터를 하나의 행렬이나 통합된 벡터로 가공합니다. 이후 텐서플로우 프레딕트 오퍼레이터가 최신 모델을 호출하여 실시간 예측을 수행하게 됩니다. 이러한 정교한 데이터 변환 단계들은 결과적으로 15분 뒤의 교통 정체 상황을 예측하는 것과 같은 고도화된 인공지능 서비스를 실현 가능하게 만들며 서비스의 완성도를 높여줍니다. 단순한 단일 모델 배포를 넘어 여러 개의 모델을 유기적으로 결합하여 서비스하는 융합 서빙 기술은 더욱 복잡한 지능형 시스템을 구축하는 데 사용됩니다. 온디맨드 파이프 서빙 엔진을 활용하면 개별적으로 운영되는 여러 REST API를 통합 관리하는 상위 계층의 API를 설계할 수 있습니다. 여러 모델을 융합한다는 개념이 생소할 수 있으나, 실제로는 각기 다른 전문 기능을 가진 모델들을 효율적으로 배치하고 사용자 요청의 성격에 따라 최적의 모델을 호출하는 구조를 의미합니다. 이는 대규모 AI 서비스에서 확장성과 운영 효율성을 동시에 확보하는 전략입니다. 융합 서빙의 대표적인 적용 사례는 주제 분류 모델과 분야별 전문 응답 모델이 결합된 지능형 챗봇 시스템입니다. 사용자가 질문을 입력하면 먼저 주제 분류 모델이 질문의 의도를 분석하여 특정 인덱스 값을 반환하고, 라우팅 맵 오퍼레이터는 이 값에 따라 일상 대화 모델이나 여행 전문 모델 중 가장 적합한 곳으로 질의를 전달합니다. 이러한 계층적 구조 덕분에 시스템은 각 분야에 특화된 모델의 성능을 극대화하여 정교한 답변을 제공할 수 있습니다. 융합 서빙은 개별 모델의 한계를 보완하고 사용자의 복합적인 요구사항을 유연하게 해결하는 핵심 장치입니다. 성공적인 서빙 프로세스 구현을 위해서는 파이썬 코드를 도커 이미지로 변환하여 API화하는 도커라이즈 기능이 필수적으로 뒷받침되어야 합니다. 개발자는 복잡한 인프라 설정에 대한 고민 없이 베이스 코드와 필요 라이브러리를 명시하는 것만으로 전처리 로직이나 사용자 정의 함수를 REST API로 빠르게 전환할 수 있습니다. 이러한 기술적 유연성은 텍스트, 이미지, 오디오 등 다양한 데이터 형태를 모두 수용하며 BeeAI 플랫폼 내에서 AI 모델의 생애 주기를 통합 관리할 수 있게 돕습니다. 결국 정교한 서빙 전략은 고도화된 AI 모델의 가치를 실제 사용자 서비스로 연결하는 가교가 됩니다.

BeeAI 활용 교육 영상(09) - [4단계] BeeAI에서 모델 서빙하기(2)
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(07) - [3단계] BeeAI에서 학습 모델 생성하기

Spark ML은 방대한 분산 데이터 처리 플랫폼인 Spark 위에서 머신러닝을 구현할 수 있도록 설계된 라이브러리입니다. 후발 주자로 시작했음에도 불구하고 강력한 개발자 커뮤니티와 빠른 발전 속도 덕분에 현재는 매우 안정적인 생태계를 구축하고 있습니다. 특히 Scikit-learn의 설계를 참조하여 도입한 파이프라인 구조는 데이터 전처리부터 모델 학습까지의 전 과정을 하나의 흐름으로 연결하여 효율적인 대규모 연산을 가능하게 합니다. 머신러닝 모델이 데이터를 학습하기 위해서는 원시 데이터를 적절한 형태로 가공하는 과정이 필수적입니다. Spark ML에서는 여러 개의 피처 컬럼을 하나로 묶어주는 '벡터 어셈블러'를 사용하여 데이터를 벡터화하며, 문자열로 된 레이블은 인덱싱 과정을 거쳐 숫자형으로 변환합니다. 이러한 전처리 단계는 단순히 학습 효율을 높이는 것을 넘어, 모델이 복잡한 데이터 구조를 올바르게 인식하고 연산을 수행할 수 있도록 돕는 기초적인 토대가 됩니다. 모델 학습이 완료된 후에는 알고리즘 결과물뿐만 아니라 전처리 루틴이 포함된 파이프라인 전체를 저장해야 합니다. 이는 실제 서비스 환경인 인퍼런스 환경에서 들어오는 원본 데이터를 모델이 즉시 인식할 수 있는 형태로 변환해야 하기 때문입니다. 만약 모델 파일만 별도로 저장한다면 인퍼런스 요청 시 데이터 형식 불일치로 인한 오류가 발생할 수 있습니다. 따라서 전체 파이프라인을 통째로 관리하는 방식은 인퍼런스의 안정성을 보장하는 중요한 요소가 됩니다. BeeAI 플랫폼은 Spark ML의 복잡한 튜닝 과정을 자동화하여 사용자 편의성을 극대화합니다. 최적의 하이퍼파라미터를 찾기 위한 그리드 탐색과 K-Fold 교차 검증을 손쉽게 설정할 수 있으며, 생성된 모델들은 시간 기반의 ID를 통해 이력 관리가 이루어집니다. 관리자는 정확도와 정밀도 등 다양한 성능 지표를 이력별로 비교함으로써, 재학습을 통해 모델의 서비스 수준이 어떻게 변화하는지 실시간으로 파악할 수 있습니다. 효율적인 모델 운영을 위해 서빙 워커는 리포지토리를 지속적으로 감시하며 가장 최신의 모델을 자동으로 로드합니다. 새로운 모델이 생성되면 보통 수 초 이내에 이를 감지하여 서버에 즉시 반영하므로, 서비스 중단 없이도 모델 업데이트가 가능합니다. 사용자는 워크플로우 프로파일 설정을 통해 오토 로딩 옵션을 제어할 수 있으며, 이를 통해 학습 데이터의 변화에 민첩하게 대응하는 지능형 서빙 시스템을 구축할 수 있습니다. 더욱 단순한 분석을 원하는 사용자를 위해 BeeAI는 AutoML 기능을 제공합니다. 사용자가 데이터의 성격에 맞춰 분류 또는 회귀 작업 중 하나만 선택하면, 엔진이 스스로 데이터에 적합한 알고리즘과 파라미터를 탐색하여 최적의 모델을 산출합니다. 붓꽃 데이터 분류나 주택 가격 예측과 같은 예제부터 복잡한 산업 데이터까지, 전문적인 코딩 지식 없이도 고성능의 머신러닝 모델을 빠르게 생성하고 평가 지표를 확인할 수 있다는 것이 큰 장점입니다. 마지막으로 BeeAI는 TensorFlow와 같은 외부 딥러닝 프레임워크와의 연동도 지원합니다. 사용자가 작성한 파이썬 학습 코드를 시스템에 등록하면 하이퍼파라미터와 데이터 경로를 유연하게 전달하여 LSTM과 같은 복잡한 딥러닝 모델을 학습시킬 수 있습니다. 특히 전처리 연산자와 학습 연산자를 배치 엔진으로 연결하는 스케줄링 기능을 활용하면, 매일 새롭게 수집되는 데이터를 기반으로 모델을 주기적으로 갱신하는 자동화된 인공지능 파이프라인을 완성하게 됩니다.

BeeAI 활용 교육 영상(07) - [3단계] BeeAI에서 학습 모델 생성하기
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술