계장기술(PROCON)

특별기고 전력 AI 엔진 시스템

페이지 정보

작성자 최고관리자 댓글 0건 조회 1,009회 작성일 22-11-14 15:19

본문

1. 기술 배경

에너지 분야를 포함한 모든 산업 분야에서 AI의 중요성은 커지고 있으며, 한국전력 또한 진행하였거나 진행 중인 정보화 시스템 구축 사업에 점점 더 많은 AI 요소가 포함된다. 이렇게 증가하고 있는 전력 AI 서비스 개발 요구에 대응해야 하지만, AI 기술 특성상 높은 진입 장벽은 해결하기 어려운 문제다. 또한 이미 개발된 AI 서비스에 대해서도 비전문 인력이 유지 관리하기에는 어려운 상황이다. 예를 들어, 인공지능 학습을 위해 그림 1과 같이 특징을 추출하는 특징 엔지니어링(Feature Engineering), 하이퍼 파라미터 최적화(Hyperparameter Optimization), 신경망 구조 검색(Neural Architecture Search)이 반복되어야 하며, 데이터 전처리와 모델 테스트 등 다른 작업도 반복적으로 수행되어야 한다.

ceecb0ebc213bf9b3b0e90641952b05f_1668406224_0379.png 

위와 같이 많은 시간과 컴퓨팅 자원이 요구되는 작업이 반복 수행되어야 하는 문제점을 극복하고, 더욱 빠른 훈련 및 분석을 위해 많은 AI 연구자들이 자동 기계학습(AutoML, Automated Machine Learning) 기술에 주목하고 있다. AutoML은 데이터의 특징 추출, 모델 학습, 하이퍼 파라미터 최적화(HPO, Hyper Parameter Optimization) 및 신경망 아키텍처 탐색(NAS, Neural Architecture Search)과 같은 주요 프로세스를 자동화하는 데 이용된다. AutoML을 통해 반복 작업을 줄여 AI 전문가는 모델 개발의 핵심인 알고리즘 개발에 집중할 수 있다.

본고에서는 이러한 문제점을 해결하기 위하여 한국전력에서 개발한 AutoML 기반의 전력 AI 엔진 시스템의 기술 내용을 소개한다.


2. 전력 AI 엔진 시스템 개요

한국전력은 전력 AI 모델의 개발을 자동화하여 진입 장벽을 낮추고, 개발된 AI 모델을 전사적으로 공동 활용하는 등 체계적인 관리를 위하여 전력 AI 엔진 시스템을 개발하였다. 이 시스템은 AI 전문 지식이 부족하거나 SW 개발 능력이 부족한 직원들도 쉽게 AI 서비스를 개발할 수 있도록 하는 자동화된 AutoML 기능을 제공하며, 개발된 전력 AI 모델을 다른 AI 과제에서 공동 활용할 수 있도록 모델의 배포와 공유할 수 있는 환경을 제공한다. 또한 대용량 전력 빅데이터의 고속 학습 및 추론을 위한 고속 딥러닝 처리 인프라를 구축하였고, AI 모델의 학습 및 운영을 효율적으로 운영하기 위하여 컨테이너 기반의 유연한 AI 실행 환경을 구성하였다.

전력 AI 엔진 시스템은 그림 2와 같이 AI 엔진 서비스 포털, AI 모델 허브 포털과 AI 엔진으로 구성된다. AI 엔진 서비스 포털은 AutoML 기능을 제공하고, AI 모델 허브 포털은 사전 학습된 AI 모델의 배포와 공유 기능을 제공한다. 마지막으로 AI 엔진은 컨테이너 기반의 AI 실행 환경을 제공한다.

ceecb0ebc213bf9b3b0e90641952b05f_1668406347_2626.png 

전력 AI 엔진 시스템의 사용자 인터페이스는 인공지능 학습 자동화 서비스를 담당하는 AI 엔진 서비스 포털과 AI 개발자에게 인공지능 개발 시 필요한 이미지, 텍스트 등 여러 도메인의 문제 해결을 위한 모델을 제공하는 AI 모델 허브 포털로 구분된다. AI 엔진 서비스 포털은 Tabular, Time-Series, Vision, NLP 도메인에 대한 자동 학습을 표 1과 같이 지원한다. 먼저, Tabualr란 정형 데이터에 대하여 회귀 분석(Regression)과 분류(Classification)를 수행하는 기능이다. 다음으로, Time-Series는 시계열 데이터의 예측 기능을 제공한다. Vision에서는 이미지에 대한 분류(Classification), 객체 탐지(Object Detection), 영상 분할(Image Segmentation) 기능을 제공한다. 마지막으로, NLP에서는 자연어 처리를 위한 텍스트 분류(Text Classification), 감성 분석(Sentiment Analysis), 엔티티 추출(Entity Extraction) 기능을 제공한다. 그리고 이러한 4종의 AI 모델의 서비스 운영을 위하여 GPU 스케줄링 등 실행 환경 관리 기능을 제공하고, 관리자가 시스템을 관리할 수 있도록 서비스 관리와 시스템 모니터링 기능을 제공한다. AI 모델 허브 포털은 AI 모델 개발자, 사용자 및 관리자가 이용할 수 있도록 학습 파일 배포 관리, 가이드 관리, 검색 구독 관리, 컬렉션 관리, 배포처 관리, 사용자 대시보드, 관리자 대시보드 등의 기능을 제공한다.

ceecb0ebc213bf9b3b0e90641952b05f_1668406414_8675.png

3. 시스템 S/W 및 H/W 구성

1) 시스템 S/W 구성
전력 AI 엔진 시스템은 운영체제, GPU Toolkit, 컨테이너 런타임, ML 파이프라인, 데이터 저장소, 모니터링 S/W 등으로 구성된다. 먼저 운영체제로는 RHEL(Red Hat Enterprise Linux) 7.x를 이용하였다. GPU 툴킷으로는 NVIDIA Driver와 nvidia-containerd가 이용되었으며, 컨테이너 런타임으로는 다수의 컨테이너의 실행 환경 관리를 위한 Kubernetes와 containerd가 이용되었다. AI 엔진에서 실행되는 모든 학습은 CUDA, Tensorflow, PyTorch 등이 바로 실행될 수 있도록 AI 개발 프레임워크 및 라이브러리로 구성된 도커 이미지를 개발하였다.
개발된 도커 이미지는 Kubernetes 환경에서 컨테이너로 실행되기 때문에 별도의 개발 환경 구성 없이 AI 개발자가 모델 개발에 집중할 수 있다. ML 파이프라인은 AI 개발 프로세스 자동화를 위해 Kubeflow를 이용하였다. Kubeflow는 데이터의 전처리, 모델 학습, 모델 평가, 서비스 배포를 자동화하는 파이프라인 개발 도구이다. 사용자가 등록한 데이터는 NFS(Network File System)에 저장하여 통합 관리되고, 관련된 패키지와 AI 모델 컨테이너 이미지는 Nexus Sonatype Repository를 이용해 관리된다. 마지막으로 GPU 등 주요 시스템 자원의 운영 현황과 개발된 AI 서비스의 컨테이너 실행 현황을 실시간으로 모니터링하기 위해 시스템 운영 정보를 Prometheus를 통해 수집하고, Grafana를 이용하고 시각화하여 관리자에게 제공한다.

ceecb0ebc213bf9b3b0e90641952b05f_1668406436_1738.png

2) 웹 시스템 S/W 구성
사용자가 시스템을 이용할 수 있도록 웹 기반의 사용자 인터페이스를 제공한다. 사용자 인터페이스는 포털 프론트엔드(Front-end), 포털 백엔드(Back-end), 엔진 백엔드(Back-end)로 구성되며, 그림 4와 같은 절차로 작동한다. 사용자는 웹 브라우저를 이용하여 포털 프론트엔드에 접속하며, REST API를 통하여 포털 백엔드에 접근한다. 사용자가 모델 학습을 수행하는 경우에는 엔진 백엔드를 통하여 전력 AI 엔진에 접근하는 형태로 구성된다.

ceecb0ebc213bf9b3b0e90641952b05f_1668406505_5721.png           ceecb0ebc213bf9b3b0e90641952b05f_1668406606_9838.png
 

3) 시스템 H/W 구성
전력 AI 엔진 시스템은 포털 서버(2식), 마스터 노드 서버(2식), 딥러닝 서버(8식), 스토리지 서버(2식)과 네트워크 스위치(2식)으로 구성된다. 포털 서버는 사내 사용자들이 AI 엔진 서비스 포털 및 AI 허브 서비스 포털에 접속할 수 있도록 Web 서버와 WAS 서버로 구성된다. 마스터 노드 서버는 AI 엔진의 기반 플랫폼 S/W인 Kubernetes의 구성 및 관리를 담당한다. 딥러닝 서버는 컨테이너를 기반으로 AI 모델이 학습되고, 서비스될 수 있는 인프라 환경을 제공한다. 스토리지 서버는 NAS 방식으로 구성되며, 안정적인 데이터 저장을 위하여 이중화 백업 방식이 적용된다. 마지막으로 네트워크 스위치는 200Gbps의 고속 전송을 지원하며, 모든 서버의 네트워크를 연결하는 역할을 수행한다.

ceecb0ebc213bf9b3b0e90641952b05f_1668406561_8373.png

4. AI 서비스 포털

1) 전력 AI 엔진 서비스 포털 개요
전력 AI 엔진 서비스 포털이란, AutoML을 기반으로 AI 모델 개발을 자동화 제공하는 사용자 포털 서비스이다. 사용자별 AI 모델 개발 진행 상태를 조회할 수 있는 대시보드와 학습에 필요한 데이터 셋, 개발하려는 모델의 도메인별 학습 옵션 지정 및 학습 완료 후 생성된 모델에 대한 평가 결과를 조회할 수 있는 기능을 제공한다. 포털은 크게 데이터 셋, 학습, 모델, 서빙의 4단계 작업으로 구분되고, 사용자는 각 단계를 순차적으로 실행하여 AI 모델 개발을 위한 데이터 셋 관리부터 모델 서빙까지 실행할 수 있다.
데이터 셋 단계에서 사용자는 모델 학습에 필요한 데이터 셋을 업로드한다. 학습을 도메인에 따라 정해진 포맷으로 구성한 데이터 셋을 업로드하며, 업로드 후 데이터 분석 결과(데이터의 행, 열 정보, 이미지 개수, 클래스 정보 등)를 확인할 수 있다. 학습 단계에서는 학습할 도메인과 하위 태스크 및 데이터 셋 선택, 세부 학습 선택 사항을 3단계로 순차적으로 편리하게 지정할 수 있도록 사용자에게 제공된다. 1단계는 학습 방법, 2단계는 모델 세부 정보, 3단계는 학습 옵션을 지정할 수 있다. 모델 단계에서는 학습된 모델을 확인할 수 있는 단계이다. 학습이 완료된 모델에 대한 평가 결과를 확인할 수 있으며, 서비스(엔드 포인트)를 생성하여 추론 테스트를 진행할 수 있다. 마지막으로, 서빙 단계에서는 선택된 모델을 REST API 형태로 서빙할 수 있는 기능을 사용자에 제공한다.

2) Tabular AI 서비스
Tabular AI 서비스는 정형화 데이터에 대한 회귀(Re gression)와 분류(Classification) 모델을 학습하는 기능을 제공하는 서비스로 MLP(Multi Layer Perceptron) 모델을 이용한다. 정형화된 열과 행으로 구성된 데이터를 학습하여 연속된 변수 간의 상관관계를 분석함으로써 다른 변수의 변화를 예측하는 회귀분석(Regression)과 테이블 형식의 데이터를 설명하는 학습된 클래스로 분류(Classi fication)하는 분석 기능을 포함한다. Tabular AI 서비스의 프로세스는 다음과 같다.
첫째, CSV 형태의 데이터 파일을 입력하여 학습에 사용할 데이터 셋을 생성한다. 데이터 셋의 형식은 CSV 파일이고, 첫 행은 헤더 정보를 포함하는 형태이다.
둘째, 입력된 데이터 셋을 분석 과정을 거친 후 각 열에 대한 누락율(열의 데이터 중 NULL이거나 비어 있는 값의 비율)을 사용자에게 출력한다.
셋째, 데이터 분석 과정 진행 후 학습 단계로 진행하면 분류 모델의 경우 클래스 정보를 갖고 있는 타깃 열을 선택한 후 모델이 과적합 되지 않도록 하는 Early stopping 옵션 지정 여부를 선택한 후 학습이 실행된다. 회귀 모델의 경우 예측할 타깃 열을 지정한 후 학습이 실행된다.
마지막으로, 회귀분석은 MAE, RMSE, RMSLE를 이용하여 성능을 평가하고, 분류는 Accuracy, Confusion Matrix, Precision/Recall score, F1 score와 같이 다양한 성능평가 방법을 이용하여 성능을 평가한다.
  ceecb0ebc213bf9b3b0e90641952b05f_1668406654_5652.png
3) Time-Series AI 서비스
Time-Series AI 서비스는 시간 정보를 포함한 정형 데이터에 대한 미래 시점에 대한 예측값을 추론하는 서비스로 TCN(Temporal Convolutional Network) 모델을 이용한다. CSV 형태 파일의 정형 데이터 셋을 이용하는 것은 Tabular AI 서비스와 동일하지만, 각 행을 구분할 수 있는 유일한 값을 가진 시간 정보를 포함하는 타임스탬프(Timestamp) 열을 지정하는 점에서 차이점이 있다.
시계열 예측에선 다음과 같이 Data granularity, Fore cast horizon, Context windows를 지정하여야 한다. Data granularity란, 시간 정보 컬럼을 어떤 기간 정보(일, 주, 월, 년)으로 처리할지 지정하는 것이다. Forecast horizon이란 예측할 시간 범위를 지정하며, Context windows는 데이터 셋에서 입력으로 얼마의 기간만큼을 시계열로 사용할지를 지정한다. CSV 형태의 데이터 파일을 업로드한 후에 타임스탬프 컬럼을 선택하는 것 외에 다른 프로세스는 Regression과 동일하다.

4) Vision AI 서비스
Vision AI 서비스는 이미지 분야의 AI 서비스 모델을 제공한다. 이미지를 정해진 클래스로 분류하는 이미지 분류(Image Classification) 모델, 이미지 내에서 학습된 객체의 위치를 경계 상자(Bounding box) 형태로 찾을 수 있는 객체 탐지(Object Detection) 모델과 이미지 내 객체의 영역을 알 수 있는 객체 분할(Object Segmentation) 모델에 대한 학습을 지원한다.
이미지 분류 서비스는 이미지가 주어졌을 때 이미지 내의 특정 사물을 사전에 정의된 클래스 중 어떤 클래스에 속하지는 추론하는 서비스로, SENet 모델을 이용한다. 해당 이미지의 클래스 정보가 있는 JSON 포맷의 메타 데이터 파일과 학습에 사용할 이미지를 이용하여 학습한다. 유명한 예로 동물(개, 고양이 등)을 분류하거나, 꽃의 종류를 분류하는 예시가 있다.
다음으로, 객체 탐지 서비스는 주어진 이미지에 대해 분류뿐만 아니라 위치 개념도 포함된 모델로서 YOLOv5 모델을 이용한다. 이 모델에서는 객체의 위치를 판단하여 경계 박스(Bounding box)를 추론한다. 즉, 학습된 객체 탐지 모델은 이미지가 입력되면 이미지 내의 객체의 경계 박스를 찾고, 경계 박스 안의 객체가 무엇인지 분류하는 것이다. 사용자는 학습에 사용할 이미지와 파일명, 클래스, 경계 박스 정보가 포함된 메타 데이터 파일을 압축된 형태로 업로드한다. 메타 데이터 파일의 포맷은 JSON 형식의 COCO 포맷을 지원한다. 모델의 성능 평가를 위하여 AP와 mAP를 이용한다. AP(Average Preci sion)란 탐지 문제에서 사용되는 평가 지표로 Precision-Recall 그래프에서 그래프 아래쪽의 면적으로 계산된다. mAP(mean Average Precision)란 탐지하는 클래스가 여러 개인 경우 각 클래스당 AP를 구한 다음, AP들의 평균으로 모델의 성능을 평가한다.
마지막으로, 객체 분할(Object Segmentation)이란 주어진 이미지에서 객체를 찾고, 경계 박스를 찾는 객체 탐지와 달리 객체의 영역을 찾는 것이다. 직사각형이 아닌 폴리곤 형태로 객체의 영역이 추론되는 서비스로 Mask R-CNN을 이용한다.

5) NLP AI 서비스
NLP AI 서비스는 인간의 언어를 데이터로 학습하는 인공지능 분야로, 전력 AI 엔진 서비스 포털에서는 텍스트 분류(Text classification)와 개체명 추출(Text entity extraction), 감성 분석(Sentiment analysis) 등 3가지 모델을 학습할 수 있는 기능을 지원하며, BERT(Bidirectional Encoder Representations from Transformers) 모델을 이용한다. 
텍스트 분류란, 텍스트를 입력받아 텍스가 어떤 종류의 범주(클래스)에 속하지는 추론하는 작업을 말한다. 가령 고객지원센터의 등록된 문의 사항을 분석하여 인공지능을 이용한 업무 분류를 예로 들 수 있다. 데이터 셋으로는 텍스트와 해당 텍스트가 어떤 클래스인지 라벨링된 TSV 형식의 파일이 이용된다.
다음으로, 텍스트 항목 추출(Text entity extraction)이란 입력된 텍스트에서 사전에 정의된 태그의 텍스트를 추출하는 모델이다. 즉, 미리 정의해 둔 사람, 회사, 장소, 시간, 단위 등에 해당하는 단어(개체명)를 문서에서 인식하여 추출 분류하는 기법이다. 데이터 셋은 JSON 형태의 데이터 셋 포맷을 지원하고, 텍스트 원문과 텍스트 내 단어에 대한 태그 정보가 포함되어 있다.
마지막으로, 감성 분석(Sentiment analysis)이란 입력된 텍스트로부터 텍스트의 내용이 긍정적인지 부정적인지 추론하는 모델이다. 데이터 셋은 텍스트와 해당 텍스트가 긍정, 부정 2개의 클래스로 라벨링된 TSV 형식의 파일이다. 자연어 처리와 관련된 3가지 서비스 모델은 모두 분류 문제이기 때문에 Accuracy, Confusion Matrix, Precision/Recall score, F1 score와 같이 다양한 성능 평가 방법을 이용하여 성능을 평가한다.

6) 전력 AI 모델 허브 포털
일반적으로 이미지, 텍스트 분야에 대한 인공지능 모델 개발은 모델 학습에 많은 시간이 소요되기 때문에, 미리 학습되어 배포 및 공유된 AI 사전 학습 모델을 바탕으로 전이학습을 통하여 모델을 개발하게 된다. 이런 경우 인공지능 개발자가 해당 도메인에 가장 적합하고 성능이 검증된 모델을 검색하기 쉽게 제공할 수 있도록 전력 AI 엔진 시스템에서는 AI 모델 허브 포털을 제공한다.

ceecb0ebc213bf9b3b0e90641952b05f_1668406715_7878.png        ceecb0ebc213bf9b3b0e90641952b05f_1668406740_6802.png
 

5. 맺음말

 본 시스템의 활용을 통하여 AI 모델의 개발 프로세스인 데이터 전처리, 모델 선정, 모델 학습 및 서비스 배포 등을 모두 자동화할 수 있다. 이를 통하여 데이터 분석 기간을 단축하고, 개발 비용을 절감할 수 있을 것으로 기대되며, 기존에 존재하던 전력 데이터를 활용할 수 있을 뿐만 아니라 새롭게 수집되는 새로운 전력 데이터를 이용하여 높은 성능과 최적의 AI 모델을 쉽고 빠르게 도출할 수 있다.
또한 전력 도메인 지식은 보유하고 있으나, AI 지식이 부족한 비전문가도 손쉽게 이를 활용하여 전력 AI 모델을 활용할 수 있을 것으로 기대된다. 이외에도 구축된 고성능 GPU를 이용함으로써 대용량의 전력 빅데이터(이미지 및 텍스트 등)를 다수의 GPU를 이용하여 분산 학습함으로써 학습 시간을 단축할 수 있다. 한국전력은 각종 업무 분야(전력 수요 예측, 고장 진단 등)에 AI 기술을 적용하고 있으며, AI 엔진 시스템을 통하여 AI 영역을 전사로 확대할 계획이다.

lji3651@kepco.co.kr 

카테고리

카테고리
현재(2019~)

잡지리스트

잡지리스트

이달의 광고업체

이달의 광고업체