README.md 12.7 KB
Newer Older
TAE HWAN KIM's avatar
TAE HWAN KIM committed
# BeeAI: KSB 인공지능 프레임워크
TAE HWAN KIM's avatar
TAE HWAN KIM committed

TAE HWAN KIM's avatar
TAE HWAN KIM committed
## 소개

TAE HWAN KIM's avatar
TAE HWAN KIM committed
![개념도](images/images_conceptual_illustration.jpg)
TAE HWAN KIM's avatar
TAE HWAN KIM committed

#### 개념 및 구조
- KSB 인공지능 프레임워크(이하 <b>BeeAI</b>)는 <b>IoT, 빅데이터, 기계학습 및 도메인 지식</b>을 융합하여 다양한 인공지능 서비스 구축에 필요한 공통기능을 제공하는 인공지능 프레임워크입니다. BeeAI는 분산병렬 인프라를 기반으로, 다양한 데이터 소스의 수집으로부터 도메인 응용서비스 제공까지의 전주기적 솔루션을 지향합니다.
- BeeAI는 <b>멀티모달 데이터처리, 멀티모델 동시학습 및 추론, 자동기계학습, 분산병렬학습 및 추론, 학습모델 및 도메인지식의 탑재·연동</b> 등의 기능을 제공합니다. 각각의 기능들은, <b>워크플로우를 이용하여 선택·조합·실행·서빙 및 재활용</b>이 가능하도록 설계되었습니다.

#### 특장점
- <b>지속성</b> : SW/Data/Analytics/경험 등 기업의 데이터를 활용한 인공지능 기술력 내재화 가능
- <b>다양성</b> : SW 컴퍼넌트들의 조합으로 다양한 응용 서비스 시스템 구성 가능
- <b>재활용성</b> : 워크플로우 재활용 및 공유 기능 제공
- <b>확장성</b> : 개발자 API를 이용한 3rd Party 컴퍼넌트 개발 및 등록 인터페이스 제공
- <b>편의성</b> : (1) 웹 기반 DIY 워크플로우 저작도구 및 모니터링/실행/제어 인터페이스제공, (2) Stand-alone 실행환경과 웹툴킷 저작 환경을 포함한 컨테이너 기반 툴박스 제공, (3) 모델 학습과 서빙 프로세스 일원화


## 가입절차

BeeAI를 다운받기 위한 절차는 다음과 같습니다.

#### ETRI 외부 클라우드 저장소 회원가입

- <https://oss.etri.re.kr/> 접속 후 "외부 클라우드 저장소" 클릭 (아래 그림 참조)

TAE HWAN KIM's avatar
TAE HWAN KIM committed
![ETRI 오픈소스포털](images/images_oss.etri.re.kr.png)
TAE HWAN KIM's avatar
TAE HWAN KIM committed

- 외부 클라우드 저장소 회원가입 (아래 그림 참조). 회원 가입시의 "Full name"과 "Username"은 아래 "<b>권한요청 Email 발송</b>"에서 필요함.

TAE HWAN KIM's avatar
TAE HWAN KIM committed
![ETRI 외부 클라우드 저장소 가입](images/images_etri.external.git.png)
TAE HWAN KIM's avatar
TAE HWAN KIM committed

#### 권한요청 Email 발송

가입시의 "Full name"과 "Username"을 포함하는 메일을 작성하여 발송합니다 (아래 참조).

- Email 제목: KSB KAF Git Repository 접근승인요청
- Email 수신처: dwk@etri.re.kr
- 내용: 반드시  "Full name"과 "Username"을 포함하여야 하며, 기타 내용은 자유양식으로 작성

담장자 (dwk@etri.re.kr) 부재시, 추가 Email 수신처는 아래와 같습니다.

- kanghj@etri.re.kr
- leeyh@etri.re.kr

발송된 권한요청 Email은 담당자에 의해 수동으로 확인됩니다. 담당자가 부재 중이 아닐 경우, 빠른 확인 후 권한요청 승인에 대한 답변이 이메일로 발송됩니다.

#### 다운로드

권한요청 승인 답메일을 받은 후에는, 아래의 명령어를 이용하여 BeeAI를 다운로드할 수 있습니다.
<pre>
  <code>git clone http://211.43.13.21/ksb/kaf</code>
</pre>
처음으로 다운로드할 경우, 가입시 이용한 사용자 ID ("Username")와 암호 ("Password")를 입력합니다.

#### 업데이트

BeeAI가 업데이트된 경우, 아래 명령어를 이용해 업데이트된 파일만 받을 수 있습니다.
<pre>
  <code>git pull http://211.43.13.21/ksb/kaf</code>
</pre>

#### 참고

동일한 BeeAI를 <https://csleoss.etri.re.kr/kor/sub02_04.do> 사이트에서 별도의 회원 가입 후, "2. KSB 인공지능 프레임워크 (오픈소스 및 바이너리 파일)"를 통해서도 다운로드 받을 수 있습니다. <b>주의</b>: 이 방법으로 다운을 받으면, BeeAI가 업데이트 되었을 경우 전체파일을 새로 받아야 합니다.

## 설치

TAE HWAN KIM's avatar
TAE HWAN KIM committed
다운받은 BeeAI를 설치하기 위해 다음 문서를 참고합니다.
TAE HWAN KIM's avatar
TAE HWAN KIM committed

- BeeAI 설치
TAE HWAN KIM's avatar
TAE HWAN KIM committed
  - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/1.3.HowToInstallKsbFrameWork-1903.md>
TAE HWAN KIM's avatar
TAE HWAN KIM committed
- 웹툴킷 설치
TAE HWAN KIM's avatar
TAE HWAN KIM committed
  - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/1.4.HowToInstallKsbWebToolkit-1903.md>
TAE HWAN KIM's avatar
TAE HWAN KIM committed


## 처음 실행하기

TAE HWAN KIM's avatar
TAE HWAN KIM committed
BeeAI를 실행하기 위해 다음 문서를 참고합니다.
TAE HWAN KIM's avatar
TAE HWAN KIM committed

TAE HWAN KIM's avatar
TAE HWAN KIM committed
- BeeAI 실행
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/1.5.HowToRunFirst-1903.md>
TAE HWAN KIM's avatar
TAE HWAN KIM committed

HooYoungAhn's avatar
HooYoungAhn committed
## 사용자 가이드 
TAE HWAN KIM's avatar
TAE HWAN KIM committed

HooYoungAhn's avatar
HooYoungAhn committed
KSB 인공지능 프레임워크를 이용하여 인공지능 서비스를 만드는 방법을 설명한 사용자 매뉴얼이다. 
KSB 웹툴킷을 이용하여 인공지능 서비스와 관련된 워크플로우를 만들고 실행하거나 제어하는 방법을 설명한다. 
또한 워크플로우를 쉽게 개발할 수 있도록 KSB 웹툴킷 기반의 다양한 워크플로우 개발 예제를 소개한다.
TAE HWAN KIM's avatar
TAE HWAN KIM committed

HooYoungAhn's avatar
HooYoungAhn committed
### 워크플로우 예제 :: 데이터 처리
TAE HWAN KIM's avatar
TAE HWAN KIM committed

HooYoungAhn's avatar
HooYoungAhn committed
#### 스트림 데이터 적재하기
- 스트림 데이터를 MongoDB에 적재하는 예제를 소개합니다.
HooYoungAhn's avatar
HooYoungAhn committed
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.1.HttpToMongodbExample.md>
TAE HWAN KIM's avatar
TAE HWAN KIM committed

HooYoungAhn's avatar
HooYoungAhn committed
#### 배치방식으로 데이터 처리하기
- KMeans 클러스터링을 수행하는 배치데이터 처리 예제를 소개합니다.
HooYoungAhn's avatar
HooYoungAhn committed
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.2.KMeansExample.md>
HooYoungAhn's avatar
HooYoungAhn committed

HooYoungAhn's avatar
HooYoungAhn committed
#### 비식별 처리하기
- 원본 데이터에 총계처리, 가명처리, 부분식별자삭제, 암호화 비식별화 기능을 적용한 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.3.DeidentificationExample.md>
HooYoungAhn's avatar
HooYoungAhn committed

TAE HWAN KIM's avatar
TAE HWAN KIM committed

HooYoungAhn's avatar
HooYoungAhn committed
### 워크플로우 예제 :: ML 모델 학습 및 서빙

#### ML모델 학습하기
- DecisionTree 분류 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.4.BatchMLTrainInSingleEngine.md>


HooYoungAhn's avatar
HooYoungAhn committed
#### AutoML 학습하기
- AutoML 학습 예제를 소개합니다..
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.5.BatchAutoMLTrainInSingleEngine.md>

#### 배치방식으로 ML모델 예측결과 얻기
- AutoML로 학습된모델로부터 예측하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.6.BatchMLPredictInSingleEngine.md>

#### 스트림 방식으로 ML모델 예측결과 얻기
- 온도센서 스트림 데이터를 전처리하여 기계학습 모델에 의해 예측된 온도값을 Kafka 스트림으로 내보내는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.7.RealtimeIngestToPredictInSingleEngine.md>


#### 스트림 방식으로 예측하여 REST 방식으로 서빙하기
- 온도센서 스트림 데이터를 전처리하여 기계학습 모델에 의해 예측된 온도값을 클라이언트 요청에 따라 전달하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.8.RealtimeIngestToServingInTwoEngines.md>


#### 스트림 예측결과를 지식추론하여 REST 방식으로 서빙하기
- 온도센서 스트림 데이터를 전처리하여 기계학습 모델에 의해 예측된 온도값을 클라이언트의 요청에 따라 최적의 제어를 추론하여 전달하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.9.RealtimeIngestToServingWithKbInTwoEngines.md>


HooYoungAhn's avatar
HooYoungAhn committed
### 워크플로우 예제 :: DL 모델 학습 및 서빙
#### 텐서플로우 모델 주기적으로 학습하기
- 텐서플로우 기반 딥러닝 모델을 주기적으로 학습하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.10.HourlyTensorflowTraining.md>


#### 온디맨드 방식으로 Inception 모델 서빙하기
- 텐서플로우 Inception 모델을 이용한 온디맨드 방식의 이미지 분류 서비스 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.11.InceptionServingExample.md>


#### 스트림 방식으로 Mnist 모델 서빙하기
- Kafka로부터 전달받은 이미지를 텐서플로우 기반 Mnist 모델로 분류하여 Kafka 스트림으로 전달하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.12.TfStreamPredictionMnist.md>


HooYoungAhn's avatar
HooYoungAhn committed
### 워크플로우 예제 :: 융합서빙 및 기타
HooYoungAhn's avatar
HooYoungAhn committed

HooYoungAhn's avatar
HooYoungAhn committed
#### 융합 REST API 만들기
- REST API를 파이프라인하여 새로운 융합 REST API 를 만드는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.13.ConvergedServingEndToEndExample.md>

#### 쿠버네티스를 이용한 주기적인 모델학습 및 예측모델 서빙하기
- 강남교통 모델을 주기적으로 학습하고 학습된 모델을 쿠버네티스에서 서빙하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.5.14.TrafficPeriodicTrainAndK8sServingExample.md>

### 워크플로우 예제 :: 교통속도 예측 튜토리얼


#### 교통속도 스트림 데이터 전처리하기
- 교통센서로부터 시계열 속도 데이터를 수집하여 전처리를 수행하고, 파일로 저장하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.6.1.TrafficPreprocessing.md>

#### 교통속도예측 텐서플로우 모델 학습하기
- 일정 기간 수집하여 전처리한 시계열 속도 데이터를 이용하여 텐서플로우 기반 딥러닝 모델을 학습하여 서빙용 모델을 만드는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.6.2.TrafficTraining.md>


#### 온디맨드 방식으로 교통속도예측 모델 서빙하기
- 텐서플로우 기반 딥러닝 모델을 이용한 교통 속도 예측 RESTful 서비스 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.6.3.TrafficOnDemandServing.md>

#### 스트림 방식으로 교통속도예측 모델 서빙하기
- 교통센서로부터 시계열 속도 데이터를 수집한 후 전처리를 수행하고, 텐서플로우 기반 딥러닝 모델에 의해 예측된 속도를 클라이언트로 전달하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.6.4.TrafficStreamServing.md>
HooYoungAhn's avatar
HooYoungAhn committed

HooYoungAhn's avatar
HooYoungAhn committed
#### 실시간 시계열 교통속도 센서스트림 처리하기
- 교통센서로부터 동시에 무작위로 들어오는 시계열 속도 데이터를 수집하여 시간 순으로 데이터를 처리해서 
내보내는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.6.5.TrafficTimeseriesProcessing.md>


#### 실시간 시계열 교통속도 센서스트림 처리 및 텐서플로우 모델 서빙하기
- 교통센서로부터 시계열 속도 데이터를 수집한 후 전처리를 수행하고, 텐서플로우 기반 딥러닝 모델에 의해 
예측된 속도를 클라이언트로 전달하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.6.6.TrafficStreamingPredict.md>


#### 실시간 시계열 교통속도 센서스트림 처리/학습/예측 및 주기적 모델 갱신하기
- 교통센서로부터 시계열 속도 데이터를 수집한 후 전처리를 수행하고, 텐서플로우 기반 딥러닝 모델에 의해 
예측된 속도를 클라이언트로 전달하는 한편, 전처리한 속도 데이터를 계속해서 파일에 저장한 후 
텐서플로우 기반 딥러닝 모델을 주기적으로 학습하는 예제를 소개합니다.
    - <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.6.7.TrafficEndToEnd.md>


HooYoungAhn's avatar
HooYoungAhn committed
### 참고

|  | 설명 |  링크 |
| ------ | ------ | ------ |
| Python 모듈 사용하기 | 사용자가 작성한 Python 모듈을 KSB 프레임워크에 탑재하기 위해 Docker 이미지로 만드는 방법에 대해 설명합니다. | <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.7.1.KSB_Dockerize.md> |
| KSB 프레임워크와 연동을 위한 tensorflow 학습코드 작성하기 | 사용자가 작성한 Python 기반 tensorflow 학습코드와 KSB 프레임워크 간 연동을 위해, 코드 작성 방법에 대해 설명합니다. | <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.7.2.KSB_TfPyCoding_Guide.md> |
HooYoungAhn's avatar
HooYoungAhn committed
| CSV 파일 Parquet로 저장하기 | 사용자 CSV 파일을 Parquet 형태의 파일로 변환하여 저장하는 방법에 대해 설명합니다. | <https://etrioss.kr/thkimetri/ksb19.03-manual/blob/master/manual1903/2.7.3.CSV2Parquet.md> |
HooYoungAhn's avatar
HooYoungAhn committed

HooYoungAhn's avatar
HooYoungAhn committed

## BeeAI 관련 웹사이트
TAE HWAN KIM's avatar
TAE HWAN KIM committed
- BeeAI 네이버 카페
  - <https://cafe.naver.com/ksbeeai>
- ETRI 오픈소스포털
  - <https://oss.etri.re.kr/>