2. 01. 팀소개
02. 개발배경 : Deep Learning is hot
03. 개발목표 : Easy Deep Learning
04. 기술특징 : Everything is OpenSource
05. 활용사례
06. 발전가능성 : 좋은 공개 S/W가 되기 위하여
07. 데모
08. Q/A
목 차
3. 01. 팀 소개
김승우
tmddno1@gmail.com
NLP AI / Data전처리
김수상
healess1@gmail.com
Chatbot / NLP AI
백지현
intwis100@gmail.com
정형Data AI / Infra & AWS
김영재
youngjaekim0129@gmail.com
이미지 AI / API
이태영
managingc@gmail.com
Data 수집
박성찬
soul8085@gmail.com
FE / 이미지 AI
누구나 쉽게 쓸 수 있는
Deep Learning Framework 를 만들자. By HoyAI
4. 02. 개발배경 : Deep Learning is Hot
DATA와 Idea만으로 실현 가능한 기술
대기업, 중소기업, 개인까지 Deep Learning 자유롭게 사용하는 세상
5. 02. 개발배경 : Deep Learning is Hard
너무 많은 라이브러리와
복잡한 환경을 알아야 합니다.
6. 02. 개발배경 : Deep Learning is Hard
DATA 수집하는 것도 힘들고,
전처리 하는 것도 힘듭니다.
Labeling
7. 02. 개발배경 : Deep Learning is Hard
Deep Learning의
복잡한 알고리즘도 배워야 합니다.
8. 03. 개발목표 : Easy Deep Learning
한번에 수집, 전처리, 모델링, 평가, 서비스 전부 가능한
Framework을 만들자
Deep Learning PipeLine
Data Extraction &
Data Preprocessing
Data Mart
[HDF5]
Deep Learning & Machine Learning
[Data>PreProcess>Train>Eval]
Restful Service Connected Service
Tensorflow 기반의 Deep Learning Framework
9. 03. 개발목표 : Easy Deep Learning
Easy to
Use
Easy to
Service
Easy to
Maintain
Easy to
Extends
Easy to
Distribute
스스로 최적의 파라미터를
찾아주는 AutoML, UI기반
Restful api로
예측 결과값 제공
Net별 버전관리도 쉽고,
추가 훈련 쉽게
다양한 DLNet을 연계
Chatbot 가능
복잡한 Lib X, Local, Clould
등 쉽게 설치
TensorMSA의 5가지 고민
10. 03. 개발목표 : Easy Deep Learning
Easy to
Use
Easy to
Service
Easy to
Maintain
Easy to
Extends
Easy to
Distribute
스스로 최적의 파라미터를
찾아주는 AutoML, UI기반
Restful api로
예측 결과값 제공
Net별 버전관리도 쉽고,
추가 훈련 쉽게
다양한 DLNet을 연계
Chatbot 가능
복잡한 Lib X, Local, Clould
등 쉽게 설치
TensorMSA의 5가지 고민
11. 03. 개발목표 : Easy Deep Learning
Easy to
Use
Easy to
Service
Easy to
Maintain
Easy to
Extends
Easy to
Distribute
스스로 최적의 파라미터를
찾아주는 AutoML, UI기반
Restful api로
예측 결과값 제공
Net별 버전관리도 쉽고,
추가 훈련 쉽게
다양한 DLNet을 연계
Chatbot 가능
복잡한 Lib X, Local, Clould
등 쉽게 설치
TensorMSA의 5가지 고민
12. 03. 개발목표 : Easy Deep Learning
Easy to
Use
Easy to
Service
Easyto
Maintain
Easy to
Extends
Easy to
Distribute
스스로 최적의 파라미터를
찾아주는 AutoML, UI기반
Restful api로
예측 결과값 제공
Net별 버전관리도 쉽고,
추가 훈련 쉽게
다양한 DLNet을 연계
Chatbot 가능
복잡한 Lib X, Local, Clould
등 쉽게 설치
TensorMSA의 5가지 고민
13. 03. 개발목표 : Easy Deep Learning
Easy to
Use
Easy to
Service
Easy to
Maintain
Easyto
Extends
Easy to
Distribute
스스로 최적의 파라미터를
찾아주는 AutoML, UI기반
Restful api로
예측 결과값 제공
Net별 버전관리도 쉽고,
추가 훈련 쉽게
다양한 DLNet을 연계
Chatbot 가능
복잡한 Lib X, Local, Clould
등 쉽게 설치
TensorMSA의 5가지 고민
14. 03. 개발목표 : Easy Deep Learning
Easy to
Use
Easy to
Service
Easy to
Maintain
Easy to
Extends
Easyto
Distribute
스스로 최적의 파라미터를
찾아주는 AutoML, UI기반
Restful api로
예측 결과값 제공
Net별 버전관리도 쉽고,
추가 훈련 쉽게
다양한 DLNet을 연계
Chatbot 가능
복잡한 Lib X, Local, Clould
등 쉽게 설치
TensorMSA의 5가지 고민
15. 04. 기술특징 : Everything is OpenSource
Micro Service Architecture
- TensorMSA는 OpenSource로만 구성
컨테이너 + 클라우드
Docker + AWS (EC2)
CLIENT SIDE
SPA (Single Page Application)
빠른 화면 처리 (React is)
JS 최신문법 (ES6)
차트생성 (ReChart.js)
빌드 (Webpack)
디자인 (SCSS/CSS)
API
표준화된 IF
Data 처리표준
(REST API)
URL 저장소
(Swagger)
Data 타입
(JSON)
SERVER SIDE
DeepLearning 구현
딥러닝 (Tensorflow)
스케줄 (Celery)
WAS (Django)
통계처리 (Python 3.5)
Http (Nginx)
Meta Data
(Postgres
SQL)
Data보관
(HDF5)
16. 04. TensorMSA : Easy to use
- 사용자는 데이터에만 집중, 복잡한 파라미터는 AutoML 해결, UI
User Task >>최소화 Automatic Tasks >> 최대화
1.비지니스 정의
2.데이터 정의
3.파이프라인 선택
4.파라메터 범위 정의
5.모니터링
Tensorflow MSA - Deep Learning PipeLine
1.유전자알고리즘 구성
2.세대 구성원 랜덤정의
3.분산 서버 실행
4.평가 및 선택
1.파이프 라인
Flow 생성
2.노드별
실행 정보 세팅
3. 전체 파이프
라인 실행
1.데이터 추출
2.데이터 가공
3.모델 훈련 및 평가
RUN
Progress & Result
User
17. 04. TensorMSA : Easy to Service
- 어떠한 장비에서도 Restful API를 사용해 Service 제공가능
User Task
1.비지니스 정의
2.데이터 정의
3.파이프라인 선택
4.파라메터 범위 정의
5.모니터링
Train Task
Graph Flow
1.Data Extract
2.Preprocess
3.Data Store
4.Train
5.Evaluation
Inference Task
Network ID
Network Version 1
Network Version 2
Network Batch 2
Network Batch 1
User
18. 04. TensorMSA : Easy to Maintain
- 편리한 딥러닝 모델 관리
Job Tasker
1.Data Extract 2.Preprocess 3.Data Store 4.Train 5.Evaluation
Set of Graph Flow (Executed Day 1) PREDICT : N
1.Data Extract 2.Preprocess 3.Data Store 4.Train 5.Evaluation
Set of Graph Flow (Executed Day 2) PREDICT : N
1.Data Extract 2.Preprocess 3.Data Store 4.Train 5.Evaluation
Set of Graph Flow (Executed Day 2) PREDICT : Y
정확도
75%
73%
82%
영원히
좋은모델?
변하는 데이터에 맞게 추가 훈련
19. 04. TensorMSA : Easy to Extends
- Chatbot 같은 여러 개의 딥러닝 모델이 필요한 구조도 확장가능
- 새로운 Neural Network도 손쉽게 추가 가능
ChatBot Framework LayerOther Apps
1.Lexicical 2.Sentence 3.NER 4.Intent 5.Service
Deep Learning Layer
얼굴인식 입고예측 기타…
안녕하세요~ 안녕하세요~
20. 04. TensorMSA : Easy to Distribute
Upload
Build
Develope
- Infra 고민 X, 어느 곳에서도 손쉽게 설치와 서비스 가능
21. 05. 활용사례
얼굴 인식 지능형 사람찾기 제품입고일예측
사람 얼굴 인식 직원 검색 AI를 통해 제품
입고일자를 예측하여
효율적인 재고관리 가능
…
…
직원 100명 인식
이미지 입력
생산이력
제품 입고일
가이드
재공진행
입고이력
그럼 무엇을 할 수 있을까요?
22. 06. 발전가능성 : To be OpenSource Project
누구나 쉽게 적용하여 사용하는 Deep Learning Framework
- 누구나 참여
- 함께 공부하고
- 같이 고민하는
23. 06. 발전가능성 : 좋은 공개 S/W가 되기 위하여
TensorMSA 블로그에 Project 개요, 설치방법, 개발가이드,
개발환경 제공
24. 06. 발전가능성 : 무료 교육을 통한 TensorMSA 공유
Deep Learning을 모르는 사람들을 위해 Deep Learning 강의자료
공개
약 4만 명 조회
안녕하세요 TensorMSA를 개발한 POSCO ICT AI LAB 백지현 인사드립니다.
저희 AI LAB에서는 각 분야별 (정형, 이미지, 자연어) 딥러닝 전문가들이 누구나 쉽게 쓸 수 있는 딥러닝 프레임워크를 만들고자 결성 하였습니다.
Deep Learning , 알파고, 데이터 예측, 자율주행 자동차, 챗봇, 인공지능 스피커 등
이렇게 멋진 Deep Learning 기술들을 어떻게 하면 쉽게 쓸 수 있을까요?
데이터와 아이디어만 있으면 실현 가능한 기술! 빨리 실무에 적용하고 싶은데 어떻게 하면 좋을까요?
대기업 뿐만 아니라, 중소기업, 개인까지 모두 다 쉽게 접근하는 Deep Learning 세상을 만들고 싶다.
우리의 고민은 여기서 부터 시작하였습니다.
Deep Learning 을 하기 위해서는 여러가지 기본적으로 알아야 할 기술이 너무 많습니다.
첫째로 Deep Learning을 구현하기 위한 환경이 너무 복잡합니다.
리눅스도 알아야 하고, 파이선은 기본이고, GPU도 사용해야 하고, GPU머신이 없다면 Clould도 도전해야 하고, Numpy, Scikit Learn, Pandas
이미지 처리를 위해 OpenCV, 거기다 가장 중요한 Deep Learning 라이브러리인 Tensorflow도 알아야 합니다.
둘째로 Data를 수집 전처리 하는 것도 힘이 듭니다.
Deep Learning은 데이터를 기반으로 학습하는 Data Driven 프로그램인 만큼, 데이터 수집이
중요하고, 이것을 전처리 하고, 레이블링 하는것도 힘듭니다.
세번째로, 이름도 생소한 딥러닝 알고리즘을 배워야 합니다.
convolutional neural network, recurrent neural network등등 그리고 모델을 튜닝하기 위핸 각종 hyper parameter인
히든레이어 개수, CNN 필터, 옵티마이저, 러닝레이트등 너무나 많은 것을 배워야 합니다.
그래서 우리는 개발 목표를 이렇게 설정했습니다. Deep Learning is easy.
이런 복잡한 것들을 줄이고, 누구나 쉽게 딥러닝을 사용할 수 있게 하기 위해
Tensorflow 기반의 Deep Learning Framework 을 개발하기로 하였습니다.
데이터 수집, 전처리 , 모델링, 평가, 서비스 전체를 연결하는 파이프라인 을 만들기로 하였습니다.
누구나 쉽게 사용할수 있는 Deep Learning Framework을 만들기 위해서 우리는 5가지를 고민했습니다.
첫번째 사용이 쉬워야 합니다. 우리는 사용자가 데이터에만 집중하게 하기 위해 스스로 최적의 파라미터를 찾아주는 기능을 화면으로 제공합니다.
두번째로 서비스가 쉬워야 합니다. 좋은 모델을 만들었지만, 실제로 사용해야 할 시스템에서 가져다 쓰기 힘들면 무슨 소용이 있을까요?
가져다 쓰기 편하게 Restful API를 제공합니다.
세번째로 딥러닝 모델의 관리가 쉬워야 합니다. 한번 훈련한 모델이 영원히 좋은 모델이 아닙니다.
여러 모델을 관리하기 쉬운 구조를 제공합니다.
네번째로 확장이 쉬워야 합니다. 새로운 딥러닝 네트워크를 추가하기 쉽습니다. 또한 여러 딥러닝 네트워크를 사용하는 챗봇같은 복잡한 응용프로그램으로 확장도 가능합니다.
다섯번째로 배포가 쉬워야 합니다. 복잡한 라이브러리를 일일히 설치 할필요 없습니다. 도커 환경을 통해 몇줄의 커맨드로 설치해서 쓸수 있으며, 로컬이나, 클라우드 환경 아무곳에서나 잘 동작합니다.
누구나 쉽게 사용할수 있는 Deep Learning Framework을 만들기 위해서 우리는 5가지를 고민했습니다.
첫번째 사용이 쉬워야 합니다. 우리는 사용자가 데이터에만 집중하게 하기 위해 스스로 최적의 파라미터를 찾아주는 기능을 화면으로 제공합니다.
두번째로 서비스가 쉬워야 합니다. 좋은 모델을 만들었지만, 실제로 사용해야 할 시스템에서 가져다 쓰기 힘들면 무슨 소용이 있을까요?
가져다 쓰기 편하게 Restful API를 제공합니다.
세번째로 딥러닝 모델의 관리가 쉬워야 합니다. 한번 훈련한 모델이 영원히 좋은 모델이 아닙니다.
여러 모델을 관리하기 쉬운 구조를 제공합니다.
네번째로 확장이 쉬워야 합니다. 새로운 딥러닝 네트워크를 추가하기 쉽습니다. 또한 여러 딥러닝 네트워크를 사용하는 챗봇같은 복잡한 응용프로그램으로 확장도 가능합니다.
다섯번째로 배포가 쉬워야 합니다. 복잡한 라이브러리를 일일히 설치 할필요 없습니다. 도커 환경을 통해 몇줄의 커맨드로 설치해서 쓸수 있으며, 로컬이나, 클라우드 환경 아무곳에서나 잘 동작합니다.
누구나 쉽게 사용할수 있는 Deep Learning Framework을 만들기 위해서 우리는 5가지를 고민했습니다.
첫번째 사용이 쉬워야 합니다. 우리는 사용자가 데이터에만 집중하게 하기 위해 스스로 최적의 파라미터를 찾아주는 기능을 화면으로 제공합니다.
두번째로 서비스가 쉬워야 합니다. 좋은 모델을 만들었지만, 실제로 사용해야 할 시스템에서 가져다 쓰기 힘들면 무슨 소용이 있을까요?
가져다 쓰기 편하게 Restful API를 제공합니다.
세번째로 딥러닝 모델의 관리가 쉬워야 합니다. 한번 훈련한 모델이 영원히 좋은 모델이 아닙니다.
여러 모델을 관리하기 쉬운 구조를 제공합니다.
네번째로 확장이 쉬워야 합니다. 새로운 딥러닝 네트워크를 추가하기 쉽습니다. 또한 여러 딥러닝 네트워크를 사용하는 챗봇같은 복잡한 응용프로그램으로 확장도 가능합니다.
다섯번째로 배포가 쉬워야 합니다. 복잡한 라이브러리를 일일히 설치 할필요 없습니다. 도커 환경을 통해 몇줄의 커맨드로 설치해서 쓸수 있으며, 로컬이나, 클라우드 환경 아무곳에서나 잘 동작합니다.
누구나 쉽게 사용할수 있는 Deep Learning Framework을 만들기 위해서 우리는 5가지를 고민했습니다.
첫번째 사용이 쉬워야 합니다. 우리는 사용자가 데이터에만 집중하게 하기 위해 스스로 최적의 파라미터를 찾아주는 기능을 화면으로 제공합니다.
두번째로 서비스가 쉬워야 합니다. 좋은 모델을 만들었지만, 실제로 사용해야 할 시스템에서 가져다 쓰기 힘들면 무슨 소용이 있을까요?
가져다 쓰기 편하게 Restful API를 제공합니다.
세번째로 딥러닝 모델의 관리가 쉬워야 합니다. 한번 훈련한 모델이 영원히 좋은 모델이 아닙니다.
여러 모델을 관리하기 쉬운 구조를 제공합니다.
네번째로 확장이 쉬워야 합니다. 새로운 딥러닝 네트워크를 추가하기 쉽습니다. 또한 여러 딥러닝 네트워크를 사용하는 챗봇같은 복잡한 응용프로그램으로 확장도 가능합니다.
다섯번째로 배포가 쉬워야 합니다. 복잡한 라이브러리를 일일히 설치 할필요 없습니다. 도커 환경을 통해 몇줄의 커맨드로 설치해서 쓸수 있으며, 로컬이나, 클라우드 환경 아무곳에서나 잘 동작합니다.
누구나 쉽게 사용할수 있는 Deep Learning Framework을 만들기 위해서 우리는 5가지를 고민했습니다.
첫번째 사용이 쉬워야 합니다. 우리는 사용자가 데이터에만 집중하게 하기 위해 스스로 최적의 파라미터를 찾아주는 기능을 화면으로 제공합니다.
두번째로 서비스가 쉬워야 합니다. 좋은 모델을 만들었지만, 실제로 사용해야 할 시스템에서 가져다 쓰기 힘들면 무슨 소용이 있을까요?
가져다 쓰기 편하게 Restful API를 제공합니다.
세번째로 딥러닝 모델의 관리가 쉬워야 합니다. 한번 훈련한 모델이 영원히 좋은 모델이 아닙니다.
여러 모델을 관리하기 쉬운 구조를 제공합니다.
네번째로 확장이 쉬워야 합니다. 새로운 딥러닝 네트워크를 추가하기 쉽습니다. 또한 여러 딥러닝 네트워크를 사용하는 챗봇같은 복잡한 응용프로그램으로 확장도 가능합니다.
다섯번째로 배포가 쉬워야 합니다. 복잡한 라이브러리를 일일히 설치 할필요 없습니다. 도커 환경을 통해 몇줄의 커맨드로 설치해서 쓸수 있으며, 로컬이나, 클라우드 환경 아무곳에서나 잘 동작합니다.
누구나 쉽게 사용할수 있는 Deep Learning Framework을 만들기 위해서 우리는 5가지를 고민했습니다.
첫번째 사용이 쉬워야 합니다. 우리는 사용자가 데이터에만 집중하게 하기 위해 스스로 최적의 파라미터를 찾아주는 기능을 화면으로 제공합니다.
두번째로 서비스가 쉬워야 합니다. 좋은 모델을 만들었지만, 실제로 사용해야 할 시스템에서 가져다 쓰기 힘들면 무슨 소용이 있을까요?
가져다 쓰기 편하게 Restful API를 제공합니다.
세번째로 딥러닝 모델의 관리가 쉬워야 합니다. 한번 훈련한 모델이 영원히 좋은 모델이 아닙니다.
여러 모델을 관리하기 쉬운 구조를 제공합니다.
네번째로 확장이 쉬워야 합니다. 새로운 딥러닝 네트워크를 추가하기 쉽습니다. 또한 여러 딥러닝 네트워크를 사용하는 챗봇같은 복잡한 응용프로그램으로 확장도 가능합니다.
다섯번째로 배포가 쉬워야 합니다. 복잡한 라이브러리를 일일히 설치 할필요 없습니다. 도커 환경을 통해 몇줄의 커맨드로 설치해서 쓸수 있으며, 로컬이나, 클라우드 환경 아무곳에서나 잘 동작합니다.
TensorMSA의 기술 특징을 살펴 보겠습니다. 모든것이 오픈소스로 되어 있습니다.
Frontend는 React기반의 SPA구조로 개발되었고, Backend는 Tensorflow 기반으로 Django restapi를 통해
정보를 주고 받도록 설계하여, Micro Service Arhciture로 설계하였습니다.