Loading...

RESTAPI

4 Contents
최신순

BeeAI 공모전 교육 영상(05) - Python 사용자 정의 함수를 활용한 데이터 처리하기(96~103p)

파이썬 UDF를 활용한 데이터 처리는 BeeAI 플랫폼의 핵심적인 기능 중 하나입니다. 이번 과정에서는 사용자가 직접 파이썬으로 구현한 로직을 도커 이미지로 변환하고, 이를 REST API 형태로 통합하여 실시간 데이터를 처리하는 실습을 진행합니다. 이 방식은 복잡한 데이터 전처리나 특수한 연산이 필요할 때 매우 유용하며, 플랫폼에서 제공하는 다섯 가지 엔진 유형 중 마지막인 '온디맨드 익스터널 서빙 엔진'을 통해 구현됩니다. 온디맨드 익스터널 서빙 엔진을 사용하려면 먼저 '파이 모듈 러너'를 설정해야 합니다. 사용자는 파이썬 코드가 저장된 폴더 경로를 지정하고, 생성될 도커 이미지의 이름과 REST API 통신에 사용할 포트 번호를 입력합니다. 이때 이미지 이름은 도커의 규약에 따라 영문 소문자만 사용해야 하며 특수문자 사용은 지양해야 합니다. 이렇게 설정된 정보는 플랫폼 내에서 자동으로 컨테이너화되어 데이터 파이프라인의 일원이 될 준비를 마칩니다. 엔진을 통해 생성된 REST API는 외부 데이터와의 통로 역할을 수행합니다. 데이터 파이프라인 상에서 처리하고자 하는 데이터를 해당 API로 전송하면, 도커 인스턴스 내부에서 사용자가 작성한 파이썬 코드가 실행되어 결과값을 반환합니다. 기본적으로 문자열 기반의 데이터가 송수신되는데, 이미지나 오디오 같은 멀티미디어 데이터의 경우 Base64 인코딩을 통해 문자열로 변환하여 처리하는 방식을 주로 사용하게 됩니다. 성공적인 배포를 위해서는 몇 가지 코딩 규약을 준수해야 합니다. 파이썬 모듈화를 위한 __init__.py 파일이 반드시 존재해야 하며, 실제 로직은 base.py 파일 내에 메인 함수 형태로 구현되어야 합니다. 또한, 코드 작성에 사용된 외부 라이브러리들은 requirements.txt 파일에 명시해야만 도커 이미지가 생성될 때 해당 패키지들이 자동으로 설치됩니다. 이러한 폴더 구조를 갖추어야만 시스템이 코드를 인식하고 서빙 환경을 구축할 수 있습니다. 이미지 회전과 같은 시각적 데이터 처리는 파이썬 UDF의 장점이 잘 드러나는 사례입니다. 스파크나 하둡 기반의 일반적인 배치 처리로는 복잡할 수 있는 작업을 파이썬의 Pillow 라이브러리를 활용하면 단 몇 줄의 코드로 구현할 수 있습니다. 입력된 이미지 바이트 스트림을 이미지 객체로 변환하고 90도 회전시킨 뒤 다시 결과값을 내보내는 로직을 온디맨드 익스터널 서빙 엔진에 탑재하면 강력한 커스텀 오퍼레이터가 완성됩니다. 실습에서는 JSON 문자열을 처리하는 시뮬레이션도 함께 진행합니다. 특정 키값을 추출하여 연산을 수행하고 결과를 반환하는 엔진을 구동하면, BeeAI 대시보드에서 실시간으로 생성된 서비스 상태를 확인할 수 있습니다. 시뮬레이터 엔진이 1초 간격으로 데이터를 REST API에 전송하면, 도커 컨테이너 내부에서 처리된 결과값이 즉각적으로 반환됩니다. 이는 데이터가 수집되고 저장되는 과정 사이에 사용자 정의 로직이 어떻게 유기적으로 개입하는지를 잘 보여줍니다. 안정적인 데이터 처리를 위해서는 시스템 환경 구성도 중요합니다. 특히 여러 개의 엔진을 동시에 구동하여 엔드투엔드 워크북을 실행할 때는 최소 8코어 이상의 CPU와 16GB 이상의 메모리가 권장됩니다. 파이썬 UDF 처리까지 포함된 복합적인 파이프라인은 자원 소모가 크기 때문입니다. 이러한 기초적인 데이터 처리 기법들을 숙지하고 나면, 다음 단계인 머신러닝 모델 학습과 GPU를 활용한 가속 서빙 단계로 원활하게 넘어갈 수 있습니다.

BeeAI 공모전 교육 영상(05) - Python 사용자 정의 함수를 활용한 데이터 처리하기(96~103p)
한국전자통신연구원ETRI 클래스
  • 공학·기술

BeeAI 공모전 교육 영상(11) - 융합서빙(134~148p)

KSB AI+ 9.0은 인공지능 모델의 학습과 서빙을 체계적으로 관리할 수 있는 강력한 플랫폼입니다. 사용자 매뉴얼은 엔진의 구조와 개념부터 구체적인 회원가입 절차와 UI 활용법까지 상세히 안내하며, 초보자도 쉽게 시스템에 적응할 수 있도록 돕습니다. 특히 8가지 엔진 유형을 통해 배치 방식과 스트림 방식의 처리 과정을 한눈에 파악할 수 있으며, CPU와 GPU 자원을 효율적으로 활용하여 복잡한 연산 작업을 수행할 수 있는 기반을 제공합니다. 이러한 체계적인 구성은 복잡한 AI 프로젝트의 초기 진입 장벽을 낮추는 데 큰 기여를 합니다. 실시간 데이터 처리를 위한 스트림 엔진은 구조화된 스트리밍 기술을 기반으로 구현되어 있습니다. 이를 통해 워터마크나 체크포인트 같은 정교한 기능을 활용할 수 있으며, IoT 디바이스에서 유입되는 정제되지 않은 로우 데이터를 신속하고 정확하게 변환할 수 있습니다. 예를 들어, 교통 속도 센서에서 들어오는 데이터를 실시간으로 분석하여 1분 혹은 5분 단위의 평균 속도를 예측하는 모델은 도시 교통 관제 시스템 등에 즉각적으로 적용될 수 있는 실무적인 예시입니다. 데이터의 전 주기를 관리하는 이러한 방식은 실시간 대응이 필요한 현대 인공지능 서비스의 핵심 요소로 자리 잡고 있습니다. 파이썬 사용자 정의 함수(UDF)를 활용하면 복잡한 로직도 손쉽게 REST API 형태로 변환할 수 있습니다. 사용자가 작성한 코드는 도커 이미지로 자동 생성되어 특정 포트를 통해 서비스되며, 이는 모델의 배포와 확장을 매우 간편하게 만듭니다. 또한 AutoML이나 텐서플로우와 같은 외부 프레임워크와의 연동을 지원하는 익스터널 엔진은 개발자가 익숙한 도구를 활용하면서도 플랫폼의 강력한 관리 기능을 동시에 누릴 수 있게 합니다. 이러한 유연한 연동 구조는 다양한 요구사항을 가진 프로젝트 환경에서 모델의 가치를 극대화하고 개발 효율성을 높이는 중요한 역할을 수행합니다. 융합 서빙은 개별적으로 작동하는 여러 모델이나 외부 오픈 API를 유기적으로 연결하여 더욱 지능화된 서비스를 창출하는 고도화된 기술입니다. 이는 단순히 하나의 모델이 결과를 도출하는 것을 넘어, 언어 지능이나 시각 지능 같은 다양한 모듈을 조합하여 복잡한 문제를 해결할 수 있게 합니다. 온디맨드 파이프 서빙 엔진을 활용하면 여러 개의 REST API를 파이프라인으로 연결하여 일련의 처리 과정을 자동화할 수 있으며, 이는 사용자에게 더욱 완성도 높은 인공지능 응답을 제공하는 기반이 됩니다. 결과적으로 서비스의 유연성과 확장성을 획기적으로 높여 차세대 지능형 서비스 구축을 가능하게 합니다. 구체적인 활용 사례로 외부의 엑소브레인 오픈 API와 내부 모델을 결합한 건물 에너지 제어 서비스를 들 수 있습니다. 자연어로 입력된 사용자의 요구사항을 대화 처리 및 기계 독해 API를 통해 분석하고, 여기서 추출된 핵심 키워드를 바탕으로 적절한 제어 로직을 실행하는 구조입니다. 예를 들어 날씨 정보나 사용자의 의도를 파악하여 '맑은 날' 혹은 '흐린 날'에 최적화된 모델로 요청을 라우팅함으로써 에너지를 효율적으로 관리할 수 있습니다. 이러한 방식은 파편화된 기술들을 하나의 완성된 비즈니스 시나리오로 통합하는 인공지능 서비스 개발의 정수를 보여주는 좋은 예시입니다. 융합 서빙의 핵심은 지능적인 라우트 매핑 기술에 있습니다. 입력된 데이터의 특성에 따라 인덱스 값을 부여하고, 이를 바탕으로 서로 다른 모델로 작업을 배정하는 과정은 시스템의 효율성을 극대화합니다. 맑은 날씨에는 특정 조건에 따라 환기를 권고하고, 추운 날씨에는 창문을 닫도록 유도하는 등의 세밀한 제어가 가능해지는 것입니다. 오퍼레이터들이 체인처럼 연결되어 요청과 응답을 주고받는 과정은 복잡한 데이터 흐름을 체계적으로 제어할 수 있게 하며, 이는 개발자가 복잡한 백엔드 인프라를 직접 구축하지 않고도 수준 높은 마이크로서비스 아키텍처를 구현할 수 있도록 돕습니다. 마지막으로 데이터 생성부터 전처리, 학습, 예측, 결과 저장에 이르는 엔드 투 엔드 시나리오는 인공지능 서비스의 전체 생명주기를 완성합니다. 실시간으로 유입되는 데이터를 기반으로 모델이 주기적으로 재학습되고, 새롭게 학습된 모델이 서비스 중단 없이 즉각적으로 교체되어 적용되는 과정은 플랫폼의 자동화 역량을 입증합니다. 모델 자동 갱신(Auto Reload) 기능을 통해 신규 모델을 감지하고 서빙에 반영함으로써, 변화하는 환경 데이터에 기민하게 대응하는 진정한 의미의 지능형 시스템 구축이 가능해집니다. 이러한 전 주기 통합 관리 환경은 미래 인공지능 산업에서 강력한 경쟁력이 될 것입니다.

BeeAI 공모전 교육 영상(11) - 융합서빙(134~148p)
한국전자통신연구원ETRI 클래스
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(06) - [2단계] Python 사용자 정의 함수(UDF)를 만들어서 데이터 처리하기

파이썬(Python)은 방대한 라이브러리 생태계를 보유하고 있어 데이터 분석과 과학 계산 분야에서 필수적인 언어로 자리 잡았습니다. 그러나 분산 환경인 스파크(Spark) 기반 시스템에서 개별 파이썬 스크립트를 통합하여 실행하는 과정은 기술적인 복잡함을 수반합니다. BeeAI는 이러한 허들을 낮추기 위해 파이썬 UDF(사용자 정의 함수)를 도커(Docker) 이미지 기술과 결합했습니다. 이를 통해 개발자는 익숙한 언어로 로직을 구성하면서도 플랫폼 내에서 안정적으로 데이터 처리 기능을 확장할 수 있게 되었습니다. 이 기능의 핵심은 온디맨드 익스터널 서빙(On-demand External Serving) 엔진을 활용하는 것입니다. 사용자는 엔진 설정에서 포트 번호와 도커 이미지 이름, 그리고 파이썬 코드가 저장된 경로를 지정하기만 하면 됩니다. 설정을 마치고 실행하면 시스템은 사용자의 코드를 포함한 도커 컨테이너를 자동으로 빌드합니다. 이렇게 컨테이너화된 환경은 독립적인 실행을 보장하며, 지정된 포트를 통해 데이터가 유입되면 컨테이너 내부의 파이썬 라이브러리가 로직을 수행한 뒤 그 결과를 다시 외부로 전달하는 구조를 가집니다. 파이썬 UDF를 구현할 때 주의할 점 중 하나는 REST API의 입출력 형식이 현재 문자열 위주로 구성되어 있다는 점입니다. 따라서 이미지나 수치 배열 같은 복잡한 데이터를 처리할 때는 이를 바이트 데이터(Byte Stream)나 문자열 형태로 변환하여 전송해야 합니다. 파이썬 코드 내부에서는 전달받은 문자열을 다시 원래의 데이터 형식으로 복원하여 연산을 수행하고, 결과물을 다시 문자열로 인코딩하여 반환하는 과정이 필요합니다. 이러한 처리 방식은 데이터의 종류에 상관없이 일관된 통신 인터페이스를 유지하게 해줍니다. 라이브러리 의존성 관리는 텍스트 파일을 통해 간편하게 이루어집니다. 필요한 라이브러리 목록을 파일에 적어두면 도커 이미지가 생성될 때 해당 라이브러리들이 자동으로 설치되어 환경이 구축됩니다. 실제 실습에서는 JSON 문자열 처리부터 넘파이(NumPy)를 활용한 난수 평균 계산, 그리고 필로우(Pillow) 라이브러리를 이용한 이미지 변환까지 다양한 사례가 확인되었습니다. 이는 개발자가 익숙한 도구를 그대로 사용하면서도 플랫폼의 워크플로우에 자신의 로직을 쉽게 통합할 수 있음을 보여줍니다. 파이썬 UDF의 통합은 데이터 개발 주기의 효율성을 극대화하는 중요한 요소입니다. 이를 통해 사용자는 데이터 수집과 적재라는 1단계를 넘어, 배치 처리와 스트림 처리 그리고 사용자 정의 함수를 활용한 고도화된 2단계 데이터 처리 과정까지 완벽하게 수행할 수 있습니다. 스파크의 강력한 분산 처리 능력과 파이썬의 방대한 분석 기능을 하나의 플랫폼에서 유기적으로 연결함으로써, 복잡한 데이터 파이프라인을 더욱 정교하고 유연하게 설계할 수 있는 기반이 마련된 것입니다.

BeeAI 활용 교육 영상(06) - [2단계] Python 사용자 정의 함수(UDF)를 만들어서 데이터 처리하기
한국전자통신연구원
  • 공학·기술

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 클래스
  • 융합
  • 공학·기술