Loading...

텐서플로우

5 Contents
최신순

EOST2021 모두를 위한 딥러닝 툴, 케라스 그리고 케라스 코리아 커뮤니티

최근 몇 년 사이 전 세계적으로 인공지능 기술이 비약적으로 발전하며 다양한 딥러닝 도구가 등장했습니다. 그중에서도 케라스(Keras)는 '뿔'이라는 뜻의 그리스어에서 유래한 이름으로, 구글의 AI 엔지니어 프랑수아 숄레가 개발한 오픈소스 라이브러리입니다. 케라스는 파이썬으로 구현된 고수준 딥러닝 API로, 텐서플로를 백엔드로 활용하면서도 훨씬 더 쉬운 문법을 제공한다는 점이 큰 특징입니다. 복잡한 구조 대신 일관되고 간단한 문법을 채택하여 사용자의 액션을 최소화했으며, 풍부한 가이드와 튜토리얼을 통해 누구나 쉽게 진입할 수 있도록 돕는 강력한 도구입니다. 딥러닝을 처음 공부할 때 접하는 MNIST 손글씨 숫자 분류 모델을 예로 들면 케라스의 강점이 명확히 드러납니다. 기존의 텐서플로만 사용했을 때보다 훨씬 짧고 일관적인 코드로 동일한 성능의 모델을 구현할 수 있기 때문입니다. 이러한 간결함은 단순히 코드의 길이를 줄이는 것에 그치지 않고, 복잡한 로직에 가려져 있던 모델의 구조를 명확히 이해하게 해줍니다. 덕분에 케라스는 텐서플로 2.0의 공식 고수준 API로 지정되었으며, 현재는 수많은 개발자가 활용하는 전 세계 상위권 딥러닝 프레임워크로 자리 잡으며 그 입지를 굳건히 다져가고 있습니다. 케라스는 딥러닝 모델 설계의 자동화를 실현하는 오토케라스(AutoKeras)를 통해 한 단계 더 진화했습니다. 딥러닝 모델을 구축할 때 가장 어려운 부분은 어떤 레이어를 몇 층으로 쌓을지, 노드와 필터의 크기는 어떻게 설정할지 결정하는 네트워크 설계 과정입니다. 오토케라스는 이러한 하이퍼파라미터와 네트워크 형성에 관한 고민을 대신 해결하여 최적의 구성을 찾아줍니다. 드롭아웃 비율이나 학습 횟수까지 세밀하게 조정하며 가장 좋은 모델을 빠르게 만들어낼 수 있도록 지원하므로, 사용자는 기술적인 번거로움에서 벗어나 문제 해결을 위한 핵심 아이디어에 더 많은 시간을 투자할 수 있습니다. 기술의 발전은 이를 공유하는 사람들의 모임을 통해 더욱 빛을 발합니다. 2017년에 개설된 '케라스 코리아' 커뮤니티는 현재 9,000명 이상의 회원을 보유하며 국내 인공지능 생태계의 성장을 이끌고 있습니다. 주로 페이스북에서 활동하는 멤버들은 최신 논문 정보나 유용한 기술 자료를 활발히 공유하며, 모델 구현 과정에서 발생하는 질문에 각자의 경험을 녹여낸 답변을 달아줍니다. 2018년부터는 매년 컨퍼런스를 개최하여 고등학생부터 데이터 분석가, 학교 선생님에 이르기까지 다양한 직군의 사람들이 모여 실전 경험을 나누는 지식 공유의 장 역할을 충실히 수행하고 있습니다. 커뮤니티의 선한 영향력은 오픈소스 기여 활동에서도 잘 나타납니다. 케라스 코리아는 오픈소스 컨트리뷰션 페스티벌에 참여하여 부족했던 영문 문서의 한글화 작업을 진행했고, 이를 튜토리얼 블로그에 공개해 누구나 따라 할 수 있는 환경을 조성했습니다. 2019년에는 객체 탐지 API 개설과 문서화 작업을 통해 최우수상을 받았으며, 상금을 기부하며 따뜻한 나눔을 실천하기도 했습니다. 이처럼 내가 알고 있는 내용을 공유하며 타인에게 도움을 주는 과정은 개인의 실력 향상은 물론, 커뮤니티 구성원 모두가 동반 성장하는 소중한 밑거름이 되어 딥러닝 기술의 대중화를 앞당기고 있습니다.

EOST2021 모두를 위한 딥러닝 툴, 케라스 그리고 케라스 코리아 커뮤니티
한국전자통신연구원오픈소스 테크데이
  • 융합
  • 공학·기술

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

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

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

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 활용 교육 영상(10) - 전주기 개발실습

인공지능 서비스의 전 주기(Full-Cycle) 개발은 데이터 수집부터 전처리, 모델 생성 및 서빙에 이르는 모든 과정을 통합하는 정밀한 작업입니다. 이번 실습에서는 교통 속도 예측 시나리오를 바탕으로 실시간 시계열 데이터를 처리하는 전체 과정을 체계적으로 살펴봅니다. AE 엔진을 활용하여 초 단위로 유입되는 원천 데이터를 수집하고, 이를 5분 단위의 평균 속도로 가공하는 것이 첫 번째 단계입니다. 이 과정은 데이터의 흐름을 끊김 없이 관리하며 예측 모델이 필요로 하는 양질의 기초 데이터를 마련하는 핵심적인 기반이 됩니다. 실시간 데이터 처리를 위해 Structured Streaming 기술이 적용됩니다. Kafka 파이프 리더와 라이터를 통해 데이터가 흐르며, 스키마 정보를 설정하여 데이터 정합성을 유지합니다. 특히 IoT 기기에서 발생하는 데이터의 지연 가능성을 고려해 워터마크를 설정하거나, 시스템 장애 시 데이터 유실을 방지하기 위한 체크포인트 위치(Checkpoint Location)를 지정하는 등 안정적인 데이터 수집 환경을 구축합니다. 이러한 기술적 설정은 대규모 스트림 데이터를 신속하고 정확하게 처리하여 분석의 신뢰도를 높이는 데 필수적인 요소로 작용합니다. 수집된 데이터는 모델이 학습할 수 있는 형태로 변환되어야 합니다. Group By 오퍼레이터를 활용해 1분과 5분 단위의 윈도우 크기를 설정하고 평균 속도를 산출합니다. 이후 Min-Max 스케일러를 통해 속도 값을 0에서 1 사이로 정규화하고, Pivot 오퍼레이터로 시계열 데이터를 가로로 나열하여 벡터화합니다. 이 과정에서 컬럼의 순서를 학습 코드가 원하는 방식에 맞춰 정렬하는 힌트 정보를 제공함으로써, 모델이 입력된 데이터를 정확하게 해석하고 성능을 발휘할 수 있도록 최적의 전처리를 수행합니다. 전처리가 완료된 데이터는 TensorFlow 오퍼레이터를 통해 실제 모델에 전달됩니다. 서빙 단계에서는 미리 정의된 모델의 URL과 이름을 기반으로 현재 교통 상황을 질의하고, 모델은 15분 후의 예측 결과를 도출합니다. 결과 데이터는 다시 Kafka 파이프 라이터를 통해 특정 토픽으로 쌓이며, 이를 통해 실시간으로 예측된 교통 정보를 사용자에게 즉각 제공할 수 있습니다. 이는 정적 모델에 머물지 않고 실시간 데이터에 능동적으로 반응하는 지능형 서비스의 구체적인 구현 사례라고 할 수 있습니다. 진정한 의미의 전 주기(Full-Cycle) 개발은 모델의 지속적인 갱신을 포함합니다. 배치 엔진을 활용해 매 5분마다 최신 데이터를 수집하고 학습용 CSV 파일을 생성하며, 이를 바탕으로 딥러닝 트레이닝이 반복 실행됩니다. 사용자는 에포크(Epoch)나 목적 함수와 같은 하이퍼파라미터를 직접 설계하여 모델 성능을 최적화할 수 있으며, 새롭게 학습된 모델은 서빙 단계에 곧바로 반영됩니다. 이러한 자동화된 파이프라인은 변화하는 도로 상황에 맞춰 모델을 최신 상태로 유지하게 하며, 최종적으로 시각화 UI와 결합되어 완성도 높은 시스템이 됩니다.

BeeAI 활용 교육 영상(10) - 전주기 개발실습
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술