Just Model It 이벤트에서 사용할 Backend.AI 에 관한 소개입니다. Backend.AI의 개괄, 주요 기능 및 사용예들을 다룹니다. 또한 Backend.AI 를 이용한 End-to-end ML model 개발 시나리오도 소개합니다.
An Introduction to Backend.AI to use in Just Model It event. It covers the overview of Backend.AI, its main features and examples. It also introduces the scenario of developing end-to-end ML model using Backend.AI.
13. Backend.AI
i · B m
r l
n
,p m
r ylyl
A
r r m
a l
d U
V p P yl DU
u b t
S
rcu U eB J m
o c K m
( + 1 (
r u
n
, G
! V m
A
w ) w
I k o C
d U
K /. 1 .
b K 1 /. 1 .
S
p K
b J
14. Backend.AI
§
• TensorFlow, PyTorch, Caffe, Chainer
§
• 예) TensorFlow 1.2~1.12 동시 운영
• 예) PyTorch와 TensorFlow 동시 운영
§
§
• 로컬에서 테스트 후 스케일
• 모든 워크로드를 서버에서
*
15. Backend.AI
§
• 로컬에서 테스트 후 스케일
• 모든 워크로드를 서버에서
§ (19.03*)
• use.backend.AI 기반의 모델 서빙
• 함수처럼 딥러닝 모델 사용
• Backend.AI SDK를 통한 다양한 언어 지원
– Python / JAVABETA / Node.js / JavaScript (on
browser) / Microsoft Excel / PHPBETA
§ (19.06⍿)
• 직접 개발한 모델의 서빙 지원
• 기존 모델의 데이터 기반 커스텀 트레이닝
지원
/
1/ 8
* 02 /
9
⍿ ) 9 (
16. Backend.AI
§
• 물리 서버 및 VM 설치 모두 지원
• OpenStack 설치 지원
§
• Amazon AWS, Microsoft Azure, Google
Cloud Platform
§ (polycloud)
• 예) Amazon + Microsoft
• 예) On-premise + Amazon
• 클라우드 통합을 위한 편의 지원
– Callosum: 자체 보안 통신 레이어 구현
17. Backend.AI
§ IDE
• IntelliJ IDEA (PyCharm 포함), Visual Studio Code, ATOM
editor, Jupyter Notebook 통합
• TensorBoard 등의 모니터링 툴 설치 및 접근 지원
§ CPU / GPU / RAM
§ GPU GPU (fractional scaling)
• Streaming Multi-Processor 및 RAM 기준
• GPU 공유 : ML 추론 서비스·교육·실습 워크로드에
특화
• 다중 GPU : 연구·개발 워크로드에 특화
§
• NVIDIA CUDA 기반 가속 (TensorFlow / TensorRT)
– NGC (for DL / HPC) 환경 통합 지원
– NVLink / NVSwitch * 최적화 지원
• AMD ROCm 기반 가속 (TensorFlow) *
*
18. Backend.AI
§
• 데스크탑 올인원 CLI/GUI 앱 제공 (윈도우 / 맥 /
리눅스) *
§ API
• 완전한 문서 지원 (영어)
• 온/오프라인 컴포넌트 설치
– pip / npm / composer 기반의 SDK 설치 지원
– .deb 기반의 클러스터 설치 지원 *
• 오픈소스 생태계
§ Backend.AI SDK
• Python 3 / Node.js / JAVA / PHP SDK 지원
§
• Python 3.6 + aiodocker
• 완전한 비동기 구현
• Docker 기반 컨테이너 가상화
)
30
*( .
91
19. Backend.AI
e P B c
A G o d c
U n o o c
C P
. 1 .
ub l a
1 .
kI i t
. 1 .
.
. 1 .
.
, ,
) (
20. Backend.AI
Cloud
Cloud Pay-as-you-go
OpenSource
Ground
Bring Your
Own Hardware
Examples
Services
Garden Showcases
계산 기반의 과학·공학
연구, 딥러닝 모델 훈
련 및 엄청나게 간편한
코딩 환경을 구축하는
Scalable PaaS
자신만의 Backend.AI
서버팜을 설치하고 수
정하고 개발할 수 있는
오픈소스 버전
Backend.AI 및 Lablup.AI
통합 솔루션 사용자들
을 위한 문서, 포럼 및
쇼케이스들
Backend.AI codeonweb.com
21. Backend.AI
§ https://github.com/lablup/backend.ai
• 2015년 8월 첫 공개
• 2016년 11월 v0.1 릴리즈
• 2017년 10월 v1.0 릴리즈 : 17개의 컴포넌트 저장소로 구성, 개발 매뉴얼 제공
시작
• 2018년 1월 v1.1 / 2월 v1.2 / 3월 v1.3 / 9월 v1.4 릴리즈 / 11월 v1.5 릴리즈
– 코드 안정화 (1.1)
– 설치 매뉴얼 및 싱글 클러스터용 자동 설치 지원 (1.2)
– 플러그인 아키텍처 도입 (1.3)
– GPU 자원 고급 할당 및 스케줄러 기능 강화 (1.4)
• 2019년 1월 v18.12 릴리즈 (버전 스키마 변경 / 연도월 방식)
– 어플리케이션 실행 및 소켓 터널링 / 그룹별 자원할당
22. Backend.AI
§
• 대규모 HPC 클러스터 오케스트레이션 기능 강화 (v19.03+)
• VPN 없는 hybrid cloud 및 on-premise 연동 (v19.03+)
• 오토스케일링 기능 강화
– 장시간 연산 세션을 위한 scale-in protection (v19.03)
– 사용자 편의성을 위한 데스크탑 앱 제공 (v19.03)
– 리소스 여유 용량에 따라 cold/hot instance group 운영
• Model Serving 지원
– 세션 개념조차 필요없는 단순화된 deploy 지원
23. Backend.AI
§ Backend.AI Ground
• 오픈소스 (코어 + 라이브러리 + 플러그인)
• 설치형 소프트웨어 / 프레임워크
• 듀얼 라이센스 채택
– 비상업용 : LGPLv3
– 상업용 및 재배포 : 별도 commercial license 및 사용 계약
§ Backend.AI Cloud
• Backend.AI Ground 기반으로 Lablup에서 직접 운영하는 클라우드
• 서버팜이 없는 경우 바로 사용 가능
§ Backend.AI Enterprise
• 상업 용도의 별도 계약에 따른 엔터프라이즈 솔루션
• 온프레미스 / 서포트 플랜 제공
24. Backend.AI:
eG
I
hd P L
E
Rn L
S (
T Lk
op d
import tensorflow as tf
import matplotlib
v1 = tf.Variable(…, name="v1")
v2 = tf.Variable(…, name="v2")
...
plot(...)
Qk P
eG
DA P B a rG
B
) /-
.
c K
25. Backend.AI:
개발자를 위한
사용자 인터페이스
GPU를 활용하는
다양한 도구
가상화 솔루션
및 클라우드 서비스
연산 및 SW 자원관리
미들웨어
§ 보안 격리된 컨테이너 기반 가상화로
서버 수준 고밀도 자원 공유
§ 오토스케일링 및 컨테이너 버전 관리
§ 컨테이너와 GPU 연결 기능 제공
§ 사전 정의된 목적 특화 컨테이너 제공
§ 사용자별 자원 사용량 추적
§ Jupyter, VSCode, Atom, CLI/IDE 등
다양한 사용자 개발환경 플러그인
지원
§ 완전관리형 클라우드 / 설치형
오픈소스
.
27. Backend.AI
>_
HTTPS
WebSocket / REST
/ GraphQL
ZeroMQ
(private protocols)
User data files
https://api.backend.ai
§ 실시간 터미널 접속
§ Query / batch / streaming mode
§ 사용량 및 세션 상태 조회
§ 멀티미디어 출력 렌더링
§ 사용자 세션 인증
§ 실시간 세션별 자원 사용량 통
계
§ 자동 rolling upgrade
§ 프로그래밍할 수 있는 시스템콜 샌드
박스
§ 코어 개수, 메모리 등 컨테이너 자원
제한
§ 사용자별 가상폴더
§ 공유·예제 dataset 제공
§ 코드 실행 요청
routing
§ 입출력 중계
§ Agent auto-scaling
§ Hybrid cloud 지원
28. Backend.AI: (v1.4)
§ GPU GPU
• Streaming Multi-Processor 및 RAM 기준
– 예) GPU 2.5개, 0.3개 할당 가능
• GPU 공유 : ML 추론 서비스·교육·실습 워크로드에 특화
• 다중 GPU : 연구·개발 워크로드에 특화
§ (vfolder)
• 다른 사용자 초대 및 권한 설정
§
• NVLink / NVSwitchBETA 최적화
§ NVIDIA
• NGC (for DL / HPC) 환경 통합 지원
§
• CUI 및 GUI 관리 콘솔
• Jupyter, Visual Studio Code, IntelliJ, Atom 통합 플러그인
() 0 / .
35. Just Model It
§ “Just Model It” (2019 1~3 )
• 실 사용 희망자 공개 모집 진행 중 (2019.1.7~27)
– https://events.backend.ai/just-model-it/
– 자격 제한 없이 대학, 기업, 연구소 등 모든
실제 사용자 그룹 대상 모집
• 다수의 GPU 서버 클러스터 구성
– DGX-2 및 다수의 DGX-1V, DGX station
• 최소 6팀 이상의 참가 팀에 대해 Backend.AI
client를 통해 자원 및 환경 제공
– 시스템 검증
– 개발 과정 및 코드 공개 (예정)
§ !
38. Backend.AI
§
• 로컬에서 테스트 후 스케일
• 모든 워크로드를 서버에서
§ (1.5*)
• use.backend.AI 기반의 모델 서빙
• 함수처럼 딥러닝 모델 사용
• Backend.AI SDK를 통한 다양한 언어 지원
– Python / JAVABETA / Node.js / JavaScript (on
browser) / Microsoft Excel / PHPBETA
§ (19.03⍿)
• 직접 개발한 모델의 서빙 지원
• 기존 모델의 데이터 기반 커스텀 트레이닝
지원
/
1/ 8
* 02 /
9
⍿ ) 9 (
39. Backend.AI Serving Mode
§
• Amazon Lambda처럼 모델 서빙
• 다양한 모델을 필요시에만 서빙하고 삭제할 수 있음
§
• TensorFlow Serving 기반 (19.03a2)
– SavedModel 활용하여 Backend.AI의 모든 리소스 관리기능을 함께 지원
• (이후) PyTorch 모델 서빙 지원
§
• TensorFlow Serving의 엄청나게 간편한 wrapper로서 동작 (19.03 / 19.06)
• TensorFlow에서 부족한 자원 할당 및 관리 지원
• Backend.AI SDK와 통합하여 어플리케이션 개발에 바로 활용 가능