Loading...

워크플로우

4 Contents
최신순

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

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

BeeAI 공모전 교육 영상(13) - BeeAl 대표 시나리오 소개(237~262p)
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술

BeeAI 공모전 교육 영상(01) - BeeAI 웹툴킷 사용법(1~40p)

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

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

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

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

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

BeeAI 활용 교육 영상 (03) - [2단계] 데이터 배치 처리하기

데이터 분석의 여정은 수집된 데이터를 적재하는 것에서 시작되어 본격적인 처리 단계로 이어집니다. 적재된 데이터가 여러 테이블로 분산되어 있다면 가장 먼저 수행해야 할 작업은 리소스를 하나로 합치는 병합 과정입니다. 조인 기술을 활용해 흩어진 정보를 통합하고, 데이터의 형태는 동일하지만 구조가 다른 경우를 정제하여 분석이 가능한 상태로 만듭니다. 이 과정에서 중복된 데이터를 제거하고 결측치(Missing Value)나 이상치(Outlier)를 처리하는 전처리 작업은 데이터의 신뢰성을 확보하는 핵심적인 기초 공사가 됩니다. 정제된 데이터는 그대로 학습에 사용되기보다는 학습 효율을 고려해 축소하는 과정을 거치기도 합니다. 이는 컴퓨팅 리소스를 관리하고 학습 속도를 높이기 위한 필수적인 단계입니다. 특히 피처(Feature)의 수가 과도하게 많으면 모델이 학습 데이터에만 과하게 최적화되는 오버피팅(Overfitting) 현상이 발생할 수 있습니다. 이를 방지하기 위해 차원 축소 기법을 도입하거나 고품질의 모델 생성을 위해 변수 변환과 피처 엔지니어링(Feature Engineering)을 반복 수행하며 데이터의 전반적인 품질을 높여나가는 것이 일반적인 절차입니다. 데이터 처리 API는 이러한 일련의 과정을 효율적으로 지원하는 다양한 오퍼레이터를 제공합니다. 파일 병합이나 그룹화(Group By) 기능은 물론, 결측치(Missing Value)를 평균값이나 중앙값으로 대체하는 클렌징 오퍼레이터들이 대표적입니다. 결측치 처리 방식은 연구 분야가 매우 방대하여 상황에 따라 삭제하거나 특정 값으로 채우는 등 다양한 전략이 사용됩니다. 또한 시계열 데이터의 경우에는 분이나 시간 단위로 데이터를 축약하여 통계적 의미를 도출하는 유틸리티를 활용함으로써 데이터가 지닌 시간적 특성을 분석에 용이하게 변환할 수 있습니다. 데이터 처리가 스파크(Spark) 기반으로 이루어질 때는 데이터 타입 관리에 매우 유의해야 합니다. 기계는 사람이 보는 것과 달리 데이터의 위치나 형식을 엄격하게 구분하기 때문입니다. 예를 들어 타임스탬프 정보가 문자열로 적재되면 필터링이 제대로 작동하지 않을 수 있습니다. 스파크(Spark)는 데이터를 읽어올 때 타입을 추론하는 기능을 갖추고 있지만, 정확한 연산을 위해 사용자가 직접 타입을 변환하는 타입 캐스팅(Type Casting) 과정이 빈번하게 발생합니다. 이는 산술 연산이나 복잡한 쿼리 처리를 위한 필수적인 준비 단계라 할 수 있습니다. 특정 조건을 만족하는 데이터만을 추출하는 필터링 기능은 분석의 정밀도를 높여줍니다. 단순한 수치 비교부터 문자열 패턴 매칭, 그리고 특정 시간 범위를 지정하는 시계열 필터까지 다양한 방식이 활용됩니다. 특히 SQL 쿼리를 직접 사용하여 데이터를 조작하거나 전체 데이터 중 일부만을 무작위로 추출하는 샘플링 기법은 대규모 데이터셋을 다룰 때 매우 유용합니다. 이러한 기능들을 조합하면 수만 개의 행(Row)으로 이루어진 복잡한 데이터에서도 분석 목적에 부합하는 핵심 정보만을 효과적으로 추려낼 수 있습니다. 머신러닝 모델에 데이터를 입력하기 전에는 수치형 데이터로의 변환이 반드시 필요합니다. 스파크 ML(Spark ML)은 문자열 레이블이 포함될 경우 오류를 발생시키므로, 문자열 인덱서(String Indexer)를 통해 카테고리 데이터를 숫자로 변환하는 과정을 거칩니다. 또한 여러 피처(Feature) 컬럼(Column)을 하나의 벡터로 통합하는 벡터 어셈블러(Vector Assembler) 작업은 모델이 데이터를 인식할 수 있도록 만드는 필수 단계입니다. 원-핫 인코딩(One-Hot Encoding)이나 데이터 분할(Split)을 통해 학습용과 테스트용 데이터를 분리하는 작업까지 완료되어야 비로소 실질적인 모델 학습을 위한 준비가 끝났다고 볼 수 있습니다. 실제 환경에서는 이러한 일련의 과정이 워크플로우 형태로 구성되어 자동화됩니다. HDFS와 같은 분산 저장소에서 데이터를 불러와 전처리 오퍼레이터를 거친 뒤, K-평균(K-means) 군집화와 같은 알고리즘을 적용하여 결과를 도출하는 방식입니다. 사용자는 모니터링 페이지를 통해 전체 처리 과정을 실시간으로 확인하고, 작업이 완료되면 히스토리를 통해 분류 결과나 통계치를 텍스트 형태로 상세히 점검할 수 있습니다. 이러한 체계적인 데이터 처리 파이프라인은 복잡한 데이터로부터 가치 있는 통찰을 얻어내는 강력한 도구가 됩니다.

BeeAI 활용 교육 영상 (03) - [2단계] 데이터 배치 처리하기
한국전자통신연구원
  • 수학
  • 융합
  • 공학·기술