# BeeAI: KSB 인공지능 프레임워크 ## 소개 ![개념도](images/conceptual_illustration.jpg) #### 개념 및 구조 - KSB 인공지능 프레임워크(이하 BeeAI)는 IoT, 빅데이터, 기계학습 및 도메인 지식을 융합하여 다양한 인공지능 서비스 구축에 필요한 공통기능을 제공하는 인공지능 프레임워크입니다. BeeAI는 분산병렬 인프라를 기반으로, 다양한 데이터 소스의 수집으로부터 도메인 응용서비스 제공까지의 전주기적 솔루션을 지향합니다. - BeeAI는 멀티모달 데이터처리, 멀티모델 동시학습 및 추론, 자동기계학습, 분산병렬학습 및 추론, 학습모델 및 도메인지식의 탑재·연동 등의 기능을 제공합니다. 각각의 기능들은, 워크플로우를 이용하여 선택·조합·실행·서빙 및 재활용이 가능하도록 설계되었습니다. #### 특장점 - 지속성 : SW/Data/Analytics/경험 등 기업의 데이터를 활용한 인공지능 기술력 내재화 가능 - 다양성 : SW 컴퍼넌트들의 조합으로 다양한 응용 서비스 시스템 구성 가능 - 재활용성 : 워크플로우 재활용 및 공유 기능 제공 - 확장성 : 개발자 API를 이용한 3rd Party 컴퍼넌트 개발 및 등록 인터페이스 제공 - 편의성 : (1) 웹 기반 DIY 워크플로우 저작도구 및 모니터링/실행/제어 인터페이스제공, (2) Stand-alone 실행환경과 웹툴킷 저작 환경을 포함한 컨테이너 기반 툴박스 제공, (3) 모델 학습과 서빙 프로세스 일원화 BeeAI에 대한 보다 자세한 설명은 아래 문서를 참조하세요. ## 가입절차 BeeAI를 다운받기 위한 절차는 다음과 같습니다. #### ETRI 외부 클라우드 저장소 회원가입 - 접속 후 "외부 클라우드 저장소" 클릭 (아래 그림 참조) ![ETRI 오픈소스포털](images/oss.etri.re.kr.png) - 외부 클라우드 저장소 회원가입 (아래 그림 참조). 회원 가입시의 "Full name"과 "Username"은 아래 "권한요청 Email 발송"에서 필요함. ![ETRI 외부 클라우드 저장소 가입](images/etri.external.git.png) #### 권한요청 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를 다운로드할 수 있습니다.
  git clone http://211.43.13.21/ksb/kaf
처음으로 다운로드할 경우, 가입시 이용한 사용자 ID ("Username")와 암호 ("Password")를 입력합니다. #### 업데이트 BeeAI가 업데이트된 경우, 아래 명령어를 이용해 업데이트된 파일만 받을 수 있습니다.
  git pull http://211.43.13.21/ksb/kaf
#### 참고 동일한 BeeAI를 사이트에서 별도의 회원 가입 후, "2. KSB 인공지능 프레임워크 (오픈소스 및 바이너리 파일)"를 통해서도 다운로드 받을 수 있습니다. 주의: 이 방법으로 다운을 받으면, BeeAI가 업데이트 되었을 경우 전체파일을 새로 받아야 합니다. ## 설치 다운받은 BeeAI를 설치하기 위해서는 다음과 같은 과정이 필요합니다. - BeeAI 설치 - [csle 사용자 계정 생성하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-csle-%EC%82%AC%EC%9A%A9%EC%9E%90-%EA%B3%84%EC%A0%95%EA%B6%8C%ED%95%9C-administrator-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0) - [hostname을 csle1으로 변경하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-hostname%EC%9D%84-csle1%EC%9C%BC%EB%A1%9C-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0) - [/etc/hosts 수정하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-etchosts-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0) - [openjdk-8 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-openjdk-8-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [KSB 관련 프로그램 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-ksb-%EA%B4%80%EB%A0%A8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [SSH port 변경 및 SSHD config 수정하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-ssh-port-%EB%B3%80%EA%B2%BD-%EB%B0%8F-root-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B0%80%EB%8A%A5%ED%95%98%EB%8F%84%EB%A1%9D-sshd-config-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0) - [SSH config 수정하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-ssh-config-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0-known_hosts%EC%97%90-%ED%98%B8%EC%8A%A4%ED%8A%B8-%EC%A0%80%EC%9E%A5-%EC%A7%88%EB%AC%B8%EC%9D%84-%ED%95%98%EC%A7%80-%EC%95%8A%EB%8F%84%EB%A1%9D-%EC%84%A4%EC%A0%95) - [Hadoop 2.7.3 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-hadoop-273-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [spark-2.3.0-bin-hadoop2.7 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-spark-230-bin-hadoop27-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [hbase 1.2.4 (optional) 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-hbase-124optional-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [kafka 2.11-0.10.0.1 (optional) 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-kafka-211-01001optional-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [zookeeper 3.4.9 (optional) 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-zookeeper-349optional-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [bashrc 설정 추가하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-bashrc-%EC%84%A4%EC%A0%95-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0) - [Anaconda3 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-anaconda3-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [기타 라이브러리 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-%EA%B8%B0%ED%83%80-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [tensorflow 설치하기 (cpu 버전)](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-tensorflow-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-cpu%EB%B2%84%EC%A0%84) - [KSB 툴박스 파일 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-ksb-%ED%88%B4%EB%B0%95%EC%8A%A4-%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [ksb-csle config 파일 설정하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-ksb-csle-config-%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0) - [startService.sh, stopService.sh 생성하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-startservicesh-stopservicesh-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0) - [SSH 키 복사하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-ksb-%ED%88%B4%EB%B0%95%EC%8A%A4-docker-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%82%B4-ssh-%ED%82%A4%EB%A5%BC-host-pc%EC%97%90-%EB%B3%B5%EC%82%AC%ED%95%98%EA%B8%B0) - [Hadoop Hdfs 사용자 계정 추가하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-ksb-%ED%88%B4%EB%B0%95%EC%8A%A4-docker-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%82%B4-ssh-%ED%82%A4%EB%A5%BC-host-pc%EC%97%90-%EB%B3%B5%EC%82%AC%ED%95%98%EA%B8%B0) - [KSB 지식베이스 엔진 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.3.HowToInstallKsbFrameWork-1903.html#host-pc-ksb-%ED%88%B4%EB%B0%95%EC%8A%A4-docker-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%82%B4-ssh-%ED%82%A4%EB%A5%BC-host-pc%EC%97%90-%EB%B3%B5%EC%82%AC%ED%95%98%EA%B8%B0) - 웹툴킷 설치 - [DBMS 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.4.HowToInstallKsbWebToolkit-1903.html#ksb-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-dbms-postgresql-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [Apache Tomcat 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.4.HowToInstallKsbWebToolkit-1903.html#apache-tomcat-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C) - [Google Chrome 설치하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.4.HowToInstallKsbWebToolkit-1903.html#%EA%B5%AC%EA%B8%80-chrome-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0) - [BeeAI 구동](https://csleoss.etri.re.kr/images/contents/manual_1903/1.4.HowToInstallKsbWebToolkit-1903.html#ksb-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EA%B5%AC%EB%8F%99) - [웹툴킷 설정 업데이트](https://csleoss.etri.re.kr/images/contents/manual_1903/1.4.HowToInstallKsbWebToolkit-1903.html#ksb-%EC%9B%B9%ED%88%B4%ED%82%B7-%EC%84%A4%EC%A0%95-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8) - [Google Chrome 캐시 제거](https://csleoss.etri.re.kr/images/contents/manual_1903/1.4.HowToInstallKsbWebToolkit-1903.html#%EA%B5%AC%EA%B8%80-chrome-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EC%97%90%EC%84%9C-%EC%BA%90%EC%8B%9C-%EC%A0%9C%EA%B1%B0) - [회원 가입 기능 활성화](https://csleoss.etri.re.kr/images/contents/manual_1903/1.4.HowToInstallKsbWebToolkit-1903.html#ksb-%EC%9B%B9%ED%88%B4%ED%82%B7-%ED%9A%8C%EC%9B%90-%EA%B0%80%EC%9E%85-%EA%B8%B0%EB%8A%A5-%ED%99%9C%EC%84%B1%ED%99%94%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%84%A4%EC%A0%95) #### 참고 문서 - BeeAI 설치 - - 웹툴킷 설치 - ## 처음 실행하기 BeeAI를 실행하기 위해 아래의 절차가 필요합니다. - [툴박스 docker 컨테이너 실행하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.5.HowToRunFirst-1903.html#host-pc-ksb-%ED%88%B4%EB%B0%95%EC%8A%A4-docker-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0) - [툴박스 docker 컨테이너 초기화하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.5.HowToRunFirst-1903.html#docker-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-ksb-%ED%88%B4%EB%B0%95%EC%8A%A4-docker-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%B4%88%EA%B8%B0%ED%99%94%ED%95%98%EA%B8%B0) - [Ontology 로드하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.5.HowToRunFirst-1903.html#docker-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-ksb-base-ontology-%EB%A1%9C%EB%93%9C%ED%95%98%EA%B8%B0) - [프레임워크 구동하기](https://csleoss.etri.re.kr/images/contents/manual_1903/1.5.HowToRunFirst-1903.html#docker-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-ksb-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EA%B5%AC%EB%8F%99%ED%95%98%EA%B8%B0) #### 참고 문서 https://csleoss.etri.re.kr/images/contents/manual_1903/1.5.HowToRunFirst-1903.html ## 예제실행 BeeAI가 제대로 작동하는지 확인하기 위해 "배치방식으로 데이터 처리하기" 예제를 실행해 봅니다. ##### 배치방식으로 데이터 처리하기 (KMeansExample) 이 예제에서는 KMeans를 이용하여 입력자료를 분류합니다. 실행절차는 아래와 같습니다. - [입력 데이터 준비하기](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#%EC%9E%85%EB%A0%A5-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A4%80%EB%B9%84%ED%95%98%EA%B8%B0) - [워크플로우 생성하기](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#%EC%9B%8C%ED%81%AC%ED%94%8C%EB%A1%9C%EC%9A%B0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0) - [엔진선택](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#%EC%97%94%EC%A7%84-%EC%84%A0%ED%83%9D) - [Reader](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#reader) - [Writer](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#writer) - [Controller](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#controller) - [Runner](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#runner) - [Operator](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#operator) - [워트플로우 실행하기](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#%EC%9B%8C%ED%81%AC%ED%94%8C%EB%A1%9C%EC%9A%B0-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0) - [워크플로우 모니터링하기](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#%EC%9B%8C%ED%81%AC%ED%94%8C%EB%A1%9C%EC%9A%B0-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%ED%95%98%EA%B8%B0) - [결과 확인하기](https://csleoss.etri.re.kr/images/contents/manual_1.0/2.5.2.KMeansExample.html#%EA%B2%B0%EA%B3%BC-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0) #### 참고 문서 ## BeeAI 관련 웹사이트 - BeeAI 홈페이지 - - BeeAI 네이버 카페 - - ETRI 오픈소스포털 -