KSB 인공지능 프레임워크는 다양한 학습모델과 지식/경험을 선택조합하여 서비스를 생성할 수 있는 DIY 자가학습형 지식융합 인공지능 서비스 프레임워크를 지향합니다.
분산병렬 인프라를 기반으로, 다양한 데이터 소스로부터 도메인의 응용서비스를 제공하기까지의 전주기적 솔루션을 지향합니다. 데이터의 수집-적재-처리-분석-서빙에 이르는 시스템을 구성할 수 있는 프레임워크 기능과 이를 실행하고 운영할 수 있는 플랫폼 기능을 제공합니다.
KSB 인공지능 프레임워크는 프레임워크 개발자들이 기능을 확장할 수 있도록 컴퍼넌트와 API를 개발할 수 있는 인터페이스를 제공합니다. 또한 개발자들에 의해서 만들어진 컴퍼넌트나 API 들을 이용하여 응용을 개발하고 실행하도록 하는 사용자 인터페이스를 제공합니다.
KSB 인공지능 프레임워크의 주요 이해관계자 는 다음과 같습니다.
응용 개발자 KSB 인공지능 프레임워크에 탑재된 모듈 및 소프트웨어 컴퍼넌트를 이용하여 응용을 개발하고 이를 실행하여 최종사용자에게 응용을 이용한 서비스를 제공하고자 하는 자
개발자 프레임워크 기능을 확장할 수 있도록 컴퍼넌트와 API를 개발하는 자로서 소프트웨어 컴퍼넌트 개발자, 파이썬 모듈 개발자, 지식전문가 가 포함됩니다.
운용자 프레임워크를 통해 실행된 시스템(엔진)들을 중단없이 안정적으로 실행되도록 자원을 할당하고 운영하고자 하는 자
관리자 프레임워크 및 웹툴킷 사용자에 대한 관리 및 시스템 전반적인 관리를 담당하는 자
최종사용자 프레임워크를 통해 실행된 응용 시스템으로부터 제공되는 서비스를 최종적으로 제공받는 자
KSB 인공지능 프레임워크는 유기적인 관계에 있는 일련의 작업의 흐름을 워크플로우 라는 개념으로 정의합니다. 워크플로우는 독립적인 실행 시스템에 해당하는 단위인 엔진 을 하나 이상 선언함으로써 정의될 수 있습니다. 독립적인 논리 배포단위인 엔진 은 엔진의 틀에 해당하는 엔진 컨테이너 에 필요한 컴퍼넌트 를 선언함으로써 정의됩니다. 이러한 과정에 의해 정의된 워크플로우 스펙에 따라 프레임워크는 실행시스템을 동적으로 구성하고, 이를 도메인의 응용에 필요한 서비스를 제공하도록 클러스터 상에 실행합니다.
일련의 작업을 정의하고 실행하기 위한 단위입니다. 하나의 워크플로우는 하나 이상의 엔진컨테이너의 정의로 구성될 수 있으며, 워크플로우를 구성하는 각각의 엔진들은 배치실행과 동시실행 방식으로 구동될 수 있습니다.
엔진컨테이너는 워크플로우 상에서 필요한 목적에 맞게 구성할 수 있는 하나의 실행 시스템인 엔진에 대한 틀로서, 엔진컨터이너 상에 컴퍼넌트들을 탑재하여 각 컴퍼넌트의 값을 설정하여 엔진에 대한 정의를 합니다. 엔진의 유형은 현재 총 12 종이 제공되고 있으며, 자세한 내용은 엔진 유형 목록을 참조하시기 바랍니다.
엔진컨테이너를 구성하는 구성체로서, 5가지의 컴퍼넌트의 유형이 존재하며 각각 다음과 같은 역할을 수행합니다.
현재 프레임워크 상에는 데이터처리/학습/서빙 관련 총 73종의 컴퍼넌트가 탑재되어 있으며, 자세한 내용은 컴퍼넌트 목록을 참조하시기 바랍니다. 개략적인 분류는 다음과 같습니다.
KSB 클라이언트 는 워크플로우를 작성하고, 이를 KSB 프레임워크 에서 구동하도록 지시하기 위해 KSB 프론트엔드 로 요청하는 역할을 수행하는 도구입니다. KSB 프레임워크 의 클라이언트 모듈은 웹기반의 클라이언트 모듈인 KSB 웹툴킷 과 스칼라 기반의 클라이언트 모듈인 KSB Client SDK 두 가지 형태로 제공됩니다.
KSB 웹툴킷 은 워크플로우를 정의할 수 있는 편집기, 워크플로우를 실행하고 제어하기 위한 모니터링, 데이터의 업로드 및 시각화 등을 웹 방식의 그래픽 환경에서 수행할 수 있도록 제공되는 클라이언트 모듈입니다. 자세한 내용은 KSB 웹툴킷 소개 를 참조하시기 바랍니다.
KSB Client SDK 는 스칼라(자바) 기반의 클라이언트 개발도구로서, 개발자가 KSB 프레임워크 상에서 실행하고자 하는 워크플로우를 개발할 수 있는 환경과 작성한 워크플로우를 실행할 수 있는 API 를 함께 제공합니다 (자세한 설명은 KSB 프레임워크 SW 개발환경 구성을 참조). 또한 KSB 프레임워크 상에 실행가능한 다양한 종류의 워크플로우 예제를 포함하고 있으므로, 이를 참조하여 다양한 워크플로우 시나리오 예제를 작성할 수 있습니다.
KSB 프론트엔드 는 KSB 웹툴킷 이나 KSB Client SDK 를 이용하여 작성된 워크플로우 스펙을 받아서 KSB 오케스트레이터 로 넘겨 줌으로써 워크플로우를 수행하도록 하는 매개역할을 수행합니다. 이 외에도 사용자 관리나 저장소 관리 등의 다양한 요청에 대해 대응하는 front-end 로서의 역할을 수행합니다.
KSB 메세지 인터페이스 는 각 컴퍼넌트들에 대한 속성값을 정의하고 값을 전달하기 위한 KSB 메세지 인터페이스 객체에 해당합니다.
KSB 프론트엔드 로부터 넘겨받은 워크플로우 사양에 따라 필요한 엔진을 구성하여 실행하도록 요청하고, 각각의 엔진에 대한 구동과 종료 및 제어를 수행하는 등의 역할을 수행합니다.
엔진컨테이너를 구성하는 구성체로서 5가지 유형이 있으며, 이들 5가지의 컴퍼넌트의 조합에 의해 엔진이 생성됩니다. 현재 KSB 프레임워크 에는 약 73종 이상의 컴퍼넌트가 구현되어 있습니다. ( 상기 컴퍼넌트 설명 참조 )
KSB 프레임워크 는 목적에 따른 다양한 외부 실행 플랫폼과 연동할 수 있는 인터페이스를 제공합니다. 각각의 KSB 연동플랫폼 은 엔진컴퍼넌트 중 Runner 에 의해 연동과 실행이 제어됩니다. 현재 KSB 프레임워크 에는 Spark, Tensorflow, Tensorflow Serving, Jena Knowledge Base 등을 연동하기 위한 모듈이 각각의 Runner 컴퍼넌트 로 구현되어 있습니다.
KSB 프레임워크 는 수집한 데이터를 적재하기 위한 저장소인 데이터 저장소, 자원이나 응용에 필요한 자원이나 룰, 컨텍스트 정보 등을 저장할 수 있는 자원/룰 저장소, 프레임워크 자체적인 워크플로우를 보관하기 위한 워크플로우 저장소, 크게 3가지 유형의 저장소 기능을 제공합니다.
KSB 인공지능 프레임워크 는 KSB 인공지능 프레임워크 웹페이지 를 통해 툴박스 버전과 클러스터 버전, 두 가지의 배포버전에 대한 설치방법을 제공하고 있습니다.
KSB 툴박스 는 KSB 웹툴킷 과 stand-alone 버전의 KSB 런타임(실행환경) 을 지원하는 툴박스 형태의 KSB 프레임워크 로서, 사용자의 로컬환경에서 KSB 프레임워크 실행환경을 쉽고 빠르게 구성하여 사용하기 위한 환경을 제공합니다.
KSB 클러스터 는 실제 클러스터 환경에서 운영하기 위한 배포 형태로서 KSB 웹툴킷 과 분산병렬 버전의 KSB 런타임 을 지원하는 KSB 프레임워크 로 구성되어 있습니다. 설치와 사용에 관한 자세한 사항은 KSB 인공지능 프레임워크 설치 매뉴얼을 참조하시기 바랍니다.