KSB 인공지능 프레임워크 개요


KSB 인공지능 프레임워크는 다양한 학습모델과 지식/경험을 선택조합하여 서비스를 생성할 수 있는 DIY 자가학습형 지식융합 인공지능 서비스 프레임워크를 지향합니다.
분산병렬 인프라를 기반으로, 다양한 데이터 소스로부터 도메인의 응용서비스를 제공하기까지의 전주기적 솔루션을 지향합니다. 데이터의 수집-적재-처리-분석-서빙에 이르는 시스템을 구성할 수 있는 프레임워크 기능과 이를 실행하고 운영할 수 있는 플랫폼 기능을 제공합니다.

KSB 인공지능 프레임워크는 프레임워크 개발자들이 기능을 확장할 수 있도록 컴퍼넌트와 API를 개발할 수 있는 인터페이스를 제공합니다. 또한 개발자들에 의해서 만들어진 컴퍼넌트나 API 들을 이용하여, 응용서비스를 개발하고 운영할 수 있는 사용자 인터페이스를 제공합니다.

KSB 인공지능 프레임워크의 사용자 는 다음과 같이 정의합니다.

구분 설명
응용서비스 개발자 KSB 인공지능 프레임워크의 KSB 클라이언트를 이용하여 응용서비스(워크플로우)를 개발하고 테스트 하는 자
기계학습 모델 개발자 응용서비스에 필요한 기계학습 모델 또는 파이썬 모듈 등을 프레임워크에서 제시하는 인터페이스를 만족하도록 개발하여 프레임워크에 탑재하는 자.
현재 Spark ML 기반 기계학습 모델, 텐서플로우 기반 딥러닝 모델, 자체 개발한 자동기계학습(AutoML) 모델을 탑재할 수 있도록 지원함.
도메인 전문가 경험이나 지식을 구조화하여 저장하고 이를 활용할 수 있도록 인터페이스를 생성하여 프레임워크에 탑재하는 자
응용서비스 운영자 테스트가 끝난 응용서비스를 실행하고, 프레임워크를 통해 실행된 시스템(엔진)들이 중단없이 안정적으로 실행되도록 자원을 할당하고 운영하는 자
프레임워크 관리자 프레임워크 및 웹툴킷 사용자에 대한 관리 및 전반적인 시스템 관리를 담당하는 자

KSB 인공지능 프레임워크의 개발자 는 다음과 같이 정의합니다.

구분 설명
컴퍼넌트 개발자 프레임워크의 개발자 인터페이스를 통하여 새로운 컴퍼넌트를 개발하여 프레임워크에 탑재하는 자
코어 개발자 프레임워크 기능을 확장할 수 있도록 API를 개발하는 자

프레임워크를 통해 실행된 응용서비스를 최종적으로 제공받는 자를 소비자 로 정의합니다.


KSB 인공지능 프레임워크는 다음과 같은 고객들에게 도움을 주기 위해 개발되고 있습니다.


주요개념

KSB 인공지능 프레임워크는 유기적인 관계에 있는 일련의 작업의 흐름을 워크플로우 라는 개념으로 정의합니다. 워크플로우는 독립적인 실행 시스템에 해당하는 단위인 엔진 을 하나 이상 선언함으로써 정의될 수 있습니다. 독립적인 논리 배포단위인 엔진 은 엔진의 틀에 해당하는 엔진 컨테이너 에 필요한 컴퍼넌트 를 선언함으로써 정의됩니다. 이러한 과정에 의해 정의된 워크플로우 스펙에 따라 프레임워크는 실행시스템을 동적으로 구성하고, 이를 도메인의 응용에 필요한 서비스를 제공하도록 클러스터 상에 실행합니다.

워크플로우

일련의 작업을 정의하고 실행하기 위한 단위입니다. 하나의 워크플로우는 하나 이상의 엔진컨테이너의 정의로 구성될 수 있으며, 워크플로우를 구성하는 각각의 엔진들은 배치실행과 동시실행 방식으로 구동될 수 있습니다.

엔진컨테이너

엔진컨테이너는 워크플로우 상에서 필요한 목적에 맞게 구성할 수 있는 하나의 실행 시스템인 엔진에 대한 틀로서, 엔진컨터이너 상에 컴퍼넌트들을 탑재하여 각 컴퍼넌트의 값을 설정하여 엔진에 대한 정의를 합니다. 엔진의 유형은 현재 총 12 종이 제공되고 있으며, 자세한 내용은 엔진 유형 목록을 참조하시기 바랍니다.

컴퍼넌트

엔진컨테이너를 구성하는 구성체로서, 5가지의 컴퍼넌트의 유형이 존재하며 각각 다음과 같은 역할을 수행합니다.

현재 프레임워크 상에는 데이터처리/학습/서빙 관련 총 73종의 컴퍼넌트가 탑재되어 있으며, 자세한 내용은 컴퍼넌트 목록을 참조하시기 바랍니다. 개략적인 분류는 다음과 같습니다.


KSB 인공지능 프레임워크 SW v1.0 구성요소

KSB 클라이언트

KSB 클라이언트 는 워크플로우를 작성하고, 이를 KSB 프레임워크 에서 구동하도록 지시하기 위해 KSB 프론트엔드 로 요청하는 역할을 수행하는 도구입니다. KSB 프레임워크 의 클라이언트 모듈은 웹기반의 클라이언트 모듈인 KSB 웹툴킷 과 스칼라 기반의 클라이언트 모듈인 KSB Client SDK 두 가지 형태로 제공됩니다.

KSB 웹툴킷

KSB 웹툴킷 은 워크플로우를 정의할 수 있는 편집기, 워크플로우를 실행하고 제어하기 위한 모니터링, 데이터의 업로드 및 시각화 등을 웹 방식의 그래픽 환경에서 수행할 수 있도록 제공되는 클라이언트 모듈입니다. 자세한 내용은 KSB 웹툴킷 소개 를 참조하시기 바랍니다.

KSB Client SDK

KSB Client SDK 는 스칼라(자바) 기반의 클라이언트 개발도구로서, 개발자가 KSB 프레임워크 상에서 실행하고자 하는 워크플로우를 개발할 수 있는 환경과 작성한 워크플로우를 실행할 수 있는 API 를 함께 제공합니다 (자세한 설명은 KSB 프레임워크 SW 개발환경 구성을 참조). 또한 KSB 프레임워크 상에 실행가능한 다양한 종류의 워크플로우 예제를 포함하고 있으므로, 이를 참조하여 다양한 워크플로우 시나리오 예제를 작성할 수 있습니다.

KSB 프론트엔드

KSB 프론트엔드KSB 웹툴킷 이나 KSB Client SDK 를 이용하여 작성된 워크플로우 스펙을 받아서 KSB 오케스트레이터 로 넘겨 줌으로써 워크플로우를 수행하도록 하는 매개역할을 수행합니다. 이 외에도 사용자 관리나 저장소 관리 등의 다양한 요청에 대해 대응하는 front-end 로서의 역할을 수행합니다.

KSB 메세지 인터페이스

KSB 메세지 인터페이스 는 각 컴퍼넌트들에 대한 속성값을 정의하고 값을 전달하기 위한 KSB 메세지 인터페이스 객체에 해당합니다.

KSB 오케스트레이터

KSB 프론트엔드 로부터 넘겨받은 워크플로우 사양에 따라 필요한 엔진을 구성하여 실행하도록 요청하고, 각각의 엔진에 대한 구동과 종료 및 제어를 수행하는 등의 역할을 수행합니다.

KSB 엔진 컴퍼넌트

엔진컨테이너를 구성하는 구성체로서 5가지 유형이 있으며, 이들 5가지의 컴퍼넌트의 조합에 의해 엔진이 생성됩니다. 현재 KSB 프레임워크 에는 약 73종 이상의 컴퍼넌트가 구현되어 있습니다. ( 상기 컴퍼넌트 설명 참조 )

KSB 연동플랫폼

KSB 프레임워크 는 목적에 따른 다양한 외부 실행 플랫폼과 연동할 수 있는 인터페이스를 제공합니다. 각각의 KSB 연동플랫폼엔진컴퍼넌트Runner 에 의해 연동과 실행이 제어됩니다. 현재 KSB 프레임워크 에는 Spark, Tensorflow, Tensorflow Serving, Jena Knowledge Base 등을 연동하기 위한 모듈이 각각의 Runner 컴퍼넌트 로 구현되어 있습니다.

KSB 저장소

KSB 프레임워크 는 수집한 데이터를 적재하기 위한 저장소인 데이터 저장소, 자원이나 응용에 필요한 자원이나 룰, 컨텍스트 정보 등을 저장할 수 있는 자원/룰 저장소, 프레임워크 자체적인 워크플로우를 보관하기 위한 워크플로우 저장소, 크게 3가지 유형의 저장소 기능을 제공합니다.

프레임워크 코어


KSB 인공지능 프레임워크 동작방식

KSB 인공지능 프레임워크는 사용자에게 다음과 같은 API를 제공합니다.

구분
Workflow APIs POST /submitJob { workflow spec }
POST /startJob {engine_id}
POST /stopJob {engine_id}
Monitoring APIs POST /log
Repository APIs PUT /repo/create
POST /repo/append
GET /repo/get

submitJob API는 Json 형태로 워크플로우 Spec 을 정의합니다.
다음 그림과 같이 워크플로우에 포함된 엔진 및 엔진에 탑재된 컴퍼넌트들의 속성, 엔진의 스케쥴링 정보, 프레임워크 버전, 로그 레벨 등을 정의합니다.

워크플로우 Spec

프레임워크를 이용하여 인공지능 서비스를 만들고, 실행하는 순서는 다음과 같습니다.

  1. 기계학습 모델 개발자, 도메인 전문가등은 인공지능 서비스에 필요한 기계학습 모델, 파이썬 모듈, 지식추론 규칙 등을 개발하여 프레임워크에 탑재합니다.
  2. 프레임워크에서 기본적으로 제공하는 컴퍼넌트 외 인공지능 서비스를 하기 위해 필요한 컴퍼넌트가 있을 경우, 컴퍼넌트 개발자가 컴퍼넌트를 개발하여 프레임워크에 탑재합니다.
  3. 응용서비스 개발자KSB 클라이언트를 이용하여 인공지능 서비스를 하기 위한 워크플로우 Spec 을 작성하고 테스트합니다. 주로 KSB 웹툴킷의 워크플로우 편집기를 이용하여 워크플로우 Spec 을 작성하고, 모니터링 메뉴를 통해 결과를 모니터링 합니다.
    • KSB 클라이언트에서 작성한 워크플로우 Spec을 포함한 submitJob 명령을 KSB 프론트엔드 (API 게이트웨이)로 전송합니다. KSB 프론트엔드KSB 오케스트레이터로 워크플로우 Spec 을 전달합니다.
    • KSB 오케스트레이터는 워크플로우 Spec에 따라 필요한 엔진을 동적으로 구성하여 생성하고 실행합니다.

프레임워크 코어

  1. 응용서비스 개발자가 작성한 워크플로우가 제대로 동작하는 것이 검증되면, 응용서비스 운영자가 워크플로우의 실행 및 종료 등의 제어를 담당하고, 소비자에게 인공지능 서비스를 시작합니다.

KSB 배포

KSB 인공지능 프레임워크KSB 인공지능 프레임워크 웹페이지 를 통해 툴박스 버전클러스터 버전, 두 가지의 배포버전에 대한 설치방법을 제공하고 있습니다.

KSB 툴박스

KSB 툴박스KSB 웹툴킷 과 stand-alone 버전의 KSB 런타임(실행환경) 을 지원하는 툴박스 형태의 KSB 프레임워크 로서, 사용자의 로컬환경에서 KSB 프레임워크 실행환경을 쉽고 빠르게 구성하여 사용하기 위한 환경을 제공합니다.

KSB 클러스터

KSB 클러스터 는 실제 클러스터 환경에서 운영하기 위한 배포 형태로서 KSB 웹툴킷 과 분산병렬 버전의 KSB 런타임 을 지원하는 KSB 프레임워크 로 구성되어 있습니다. 설치와 사용에 관한 자세한 사항은 KSB 인공지능 프레임워크 설치 매뉴얼을 참조하시기 바랍니다.