SlideShare a Scribd company logo
1 of 75
빅데이터를 위한
Distributed Deep
Learning 플랫폼 만들기
유승현
Search System
CONTENTS
Deep Learning 플랫폼 탄생 배경
새로운 요구사항
설계 및 검토
C3DL 기반으로 만들기
Deep Learning 플랫폼 탄생 배경
Deep Learning 플랫폼 초기 요구사항
다수의 연구원들이 GPU자원을 사용하고 싶어함
제한된 GPU 자원
Deep Learning 플랫폼 초기 요구사항
Caffe, TensorFlow, Theano, Torch
Deep Learning Frameworks
C3DL 기반 기술 ­ Docker
다양한 딥러닝 프레임워크를 깔끔하게 지원 가능
패키지 표준화 하면서 동시에 개인 환경에 맞도록 셋팅 가능
Why Docker?
naver/c3_dl-caffe naver/c3_dl-tensorflow user/pytorch
naver/c3_dl-base
C3DL 기반 기술 ­ Docker
GPU isolation 지원
NVIDIA-Docker
https://github.com/NVIDIA/nvidia-docker
C3DL 기반 기술 ­ Hadoop YARN
A framework for job scheduling and
cluster resource management.
Hadoop YARN
https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html
DL
Application
C3 Deep Learning Cluster
Zookeeper
Dev. Environment
Dev. Server
Resource
Manager
YARN
Node
Manager
YARN
Docker
Registry C3 HDFS Storage
YARN
with
GPU
Scheduling
Node
Manager
YARN
Node
Manager
YARN
. . .
C3 Distributed Shell
NVIDIA Docker
GPU Device ID
Manager Input
Output
DL App
Toolset
dlapp-launcher
dlapp-shell dlapp-run
https://deview.kr/2016/schedule#session/170
새로운 요구사항
Deep Learning Workflow
Batch
Serving
Streaming
Datasets Training Model Inference
새로운 요구사항
Distributed inference
- training이 완료된 모델로 inference를 하고 싶다.
- 배치 작업, 오래 걸리는 작업들은 2~3개월 필요
사례: 웹 이미지 adult test
Distributed inference
를 구현했는데,
GPU할당만 해주면 돌릴께요
새로운 요구사항
Distributed training
- 여러 장비에서 GPU할당 받아서 training을 하고 싶다
- 사실상 Distributed tensorflow 사용하고 싶다는 문의
Distributed tensorflow
사용하고 싶어요
새로운 요구사항
Serving (long live)
웹서버를 실행해서 request, response 방식으로 처리
1000시간 넘게 실행하고 있네??
서버를 계속 실행해두면 되겠군.
새로운 요구사항
CPU만 사용해서 실행
- training이 끝난 모델을 사용해서 inference만 하고 싶은데, CPU가 가성비가 더 좋은 경
우가 있음.
- 단, 기존 C3DL와 같은 방식으로 사용하고 싶다.
DL
Application
Distributed Deep Learning 솔루션 검토
Tensorflow on Spark - https://github.com/yahoo/TensorFlowOnSpark
DSSTNE - https://github.com/amzn/amazon-dsstne
Caffe on Spark - https://github.com/yahoo/CaffeOnSpark
Deeplearning4j on spark - https://deeplearning4j.org/spark
torch-distlearn - https://github.com/twitter/torch-distlearn
Distributed Keras - https://github.com/cerndb/dist-keras
Apache SINGA - http://www.comp.nus.edu.sg/~dbsystem/singa/
BigDL - https://github.com/intel-analytics/BigDL
Distributed Deep Learning 솔루션
Distributed Deep Learning 솔루션 검토
Tensorflow On Spark
http://yahoohadoop.tumblr.com/post/157196317141/open-sourcing-tensorflowonspark-distributed-deep
Distributed Deep Learning 솔루션 검토
DSSTNE
Amazon ECS
SparkAmazon ECS
GPU task
GPU slave
CPU
https://aws.amazon.com/ko/blogs/big-data/generating-recommendations-at-amazon-scale-with-apache-spark-and-amazon-dsstne/
설계 및 검토
YARN application 변경
한개의 JOB에 한개의 container만 실행
BATCH JOB이라고 가정하고 만들어져 있음
기존 C3DL
Distributed - 여러 container 동시 실행할때 장비 다운등 에러처리
Serving - Long-live JOB도 지원해야함
변경 & 구현 해야하는것
YARN application 개발
Resource Manager, Application Master, Node Manager, Container …
YARN API
예외 처리
Container가 죽었을때…, 장비가 다운되었을때..
예제 프로그램이 1000줄 이상…
Distributed Shell
Apache Slider
Slider is a YARN application to deploy existing distributed
applications on YARN
https://deview.kr/2016/schedule#session/168
Apache Slider 를 이용한 멀티테넌트 하둡 클러스터
Apache Slider - 쉽다
Apache Slider ­ container 구분
몇번째 container 인지 구분해줌
app_container_tag
Slider
Application
Master
Agent (app_container_tag=1)
Agent (app_container_tag=2)
app
app
Apache Slider ­ container 구분
몇번째 container 인지 구분해줌
app_container_tag
Slider
Application
Master
Agent (app_container_tag=1)
Agent (app_container_tag=2)
app
app
Agent (app_container_tag=1)
app
Apache Slider - serving
Availability
- Application 자동으로 재시도
Flexibility
- container 개수를 증가/감소 시킬수 있음
원래 계속 실행하는 작업을 위해 만들어 졌음
Apache Slider ­ contributor
https://issues.apache.org/jira/browse/SLIDER-1239
https://issues.apache.org/jira/browse/SLIDER-494
Batch 모드 개발
문서가 부족함
옆에 물어봄…
Apache Slider ­ contributor
https://issues.apache.org/jira/browse/SLIDER-1239
https://issues.apache.org/jira/browse/SLIDER-494
Batch 모드 개발
문서가 부족함
옆에 물어봄…
Apache Slider ­ contributor
https://issues.apache.org/jira/browse/SLIDER-1239
https://issues.apache.org/jira/browse/SLIDER-494
Batch 모드 개발
문서가 부족함
옆에 물어봄…
REST API
Resource
Manager
YARN
DL App
Toolset
dlapp-launcher
REST API
Resource
Manager
YARN
DL App
Toolset
REST API Server
REST API
REST API 선택한 이유
버그 수정, 배포시 빠르게 대응 가능
REST API를 공개하면 사용자가 직접 응용이 가능
REST API
성능은 고려사항이 아님 à 빨리 개발
REST-API에 대한 구현이 직관적임
Swagger 문서화
Flask-RESTPlus선택
REST API
Flask-RESTPlus swagger
https://swagger.io/
CPU만 사용
CPU만 사용하고 싶음, C3DL에 제출
요구사항
C3DL 기반으로 만들기
DL(Deep Learning) App 구현 Concept
• DL App 구성 요소
• Deep Learning Framework 환경 (Caffe, TensorFlow …)
• User Program ( Source Code )
• Input Data
• Output Data
Input Output
DL Framework 환경
Source
Code
DL(Deep Learning) App 구현 Concept
/User_Dev_Workspace
/DL_App_Workspace
Deep Learning App
Input
Output
User
Container
Distributed API 설계 전략
쉬운 API
자유도 높은
API
Distributed API 설계 전략 - 자유도 높은 API
{
"username": "testuser",
"queue": "test",
"worker": {
"config": [
{
"sms": {
"employee_id": "kr00000"
},
"docker": {
"expose_tcp_port": [
6006
],
"workdir": "/root/c3_workspace",
"image": "naver/c3_dl-tensorflow",
"args": "",
"command": "./run.sh",
"registry": "dregistry.navercorp.com"
},
"user_package_uri": "hdfs://c3/user/c3dl_admin/user-package/testuser/20170918162225.651323.tar.gz",
"data": {
"to_hdfs": [
{
Distributed API 설계 전략 - 쉬운 API
{
"username": "test1",
"worker_count": 2,
"ps_count": 1,
"distributed_tensorflow": true,
"appname": "distributed_training",
"queue": "test",
"docker": {
"image": "naver/c3_dl-tensorflow:r1.2",
"workdir": "/root/c3_workspace",
"command": "python cifar10_main.py",
"registry": "dregistry.navercorp.com",
"args": "--data-dir=hdfs://c3/user/test1/cifar-10-data --job-dir=hdfs://c3/user/test1/model_dir --num-gpus=1 --train-
steps=100"
},
"user_package_uri": "hdfs://c3/user/test1/cifar10_estimator.tar.gz”,
"resource": {
"memory_mb": 15360,
"vcores": 1,
"gcores": 1
}
}
분산 처리를 위한 구현 Concept
/User_Dev_Workspace
User
/DL_App_Workspace
Deep Learning App
Input
Output
Containe
r/DL_App_Workspace
Deep Learning App
Input
Output
Containe
r
/DL_App_Workspace
Deep Learning App
Input
Output
Containe
r
/User_Dev_Workspace
/User_Dev_Workspace
Distributed Inference
대용량 배치 작업, 오래 걸리는 작업들은 2~3개월 필요
Map-reduce 처럼 input, output만 지정하면 자동으로 나누어졌으면 좋겠다
GPU자원이 남으면 최대한 사용하고 싶다
요구사항
Distributed Inference
/User_Dev_Workspace
User
/DL_App_Workspace
DL App
Input
Output
/DL_App_Workspace
DL App
Input
Output
/DL_App_Workspace
DL App
Input
Output
/input_dir
|- data_01
|- data_02
|- data_03
/output_dir
|- out_01
|- out_02
|- out_03
Distributed Inference
/User_Dev_Workspace
User
/DL_App_Workspace
DL App
Input
Output
/DL_App_Workspace
DL App
Input
Output
/DL_App_Workspace
DL App
Input
Output
/input_dir
|- data_01
|- data_02
|- data_03
/output_dir
|- out_01
|- out_02
|- out_03
Distributed Inference
여러 디렉토리에서 입력을 받고 싶은 경우에는 직접 작성
직접 INPUT을 작성할 수도 있음
/DL_App_Workspace
DL App
Input
Output
/input_dir
|- data_01
|- data_02
|- data_03
/output_dir
|- out_01
|- out_02
|- out_03Input
/input_dir2
|- data_01
|- data_02
|- data_03
Distributed Inference ­ example json
{ "partition_count": 12,
"data": {
"from_hdfs": [ {
"excludes": ["_complete"],
"type": "dironly",
"input_path": "data",
"hdfs": "/user/blog/blogdatal/2017"
}],
"to_hdfs": [ {
"hdfs": "/user/blog/prediction/2017/result-
{{ partition_num }}",
"output_path": "result",
"overwrite": false
}],
"auto_partition": true,
"format": "%2d"
}
}
{
"data_list": [
{
"from_hdfs": [{
"hdfs": "/user/blog/blogdata/2017/01",
"input_path": "data"}],
"to_hdfs": [{
"hdfs": "/user/blog/prediction/2017/result-01",
"output_path": "result",
"overwrite": false }]
},
{
"from_hdfs": [{
"hdfs": "/user/blog/blogdata/2017/02",
"input_path": "data"}],
"to_hdfs": [{
"hdfs": "/user/blog/prediction/2017/result-02",
"output_path": "result",
"overwrite": false}]
},
…
Distributed Inference ­ example json
{ "partition_count": 12,
"data": {
"from_hdfs": [ {
"excludes": ["_complete"],
"type": "dironly",
"input_path": "data",
"hdfs": "/user/blog/blogdatal/2017"
}],
"to_hdfs": [ {
"hdfs": "/user/blog/prediction/2017/result-
{{ partition_num }}",
"output_path": "result",
"overwrite": false
}],
"auto_partition": true,
"format": "%2d"
}
}
{
"data_list": [
{
"from_hdfs": [{
"hdfs": "/user/blog/blogdata/2017/01",
"input_path": "data"}],
"to_hdfs": [{
"hdfs": "/user/blog/prediction/2017/result-01",
"output_path": "result",
"overwrite": false }]
},
{
"from_hdfs": [{
"hdfs": "/user/blog/blogdata/2017/02",
"input_path": "data"}],
"to_hdfs": [{
"hdfs": "/user/blog/prediction/2017/result-02",
"output_path": "result",
"overwrite": false}]
},
…
Distributed Inference ­ example json
{ "partition_count": 12,
"data": {
"from_hdfs": [ {
"excludes": ["_complete"],
"type": "dironly",
"input_path": "data",
"hdfs": "/user/blog/blogdatal/2017"
}],
"to_hdfs": [ {
"hdfs": "/user/blog/prediction/2017/result-
{{ partition_num }}",
"output_path": "result",
"overwrite": false
}],
"auto_partition": true,
"format": "%2d"
}
}
{
"data_list": [
{
"from_hdfs": [{
"hdfs": "/user/blog/blogdata/2017/01",
"input_path": "data"}],
"to_hdfs": [{
"hdfs": "/user/blog/prediction/2017/result-01",
"output_path": "result",
"overwrite": false }]
},
{
"from_hdfs": [{
"hdfs": "/user/blog/blogdata/2017/02",
"input_path": "data"}],
"to_hdfs": [{
"hdfs": "/user/blog/prediction/2017/result-02",
"output_path": "result",
"overwrite": false}]
},
…
Distributed Inference
스케쥴링
"partition_count": 5, "concurrency": 2
Task 2
Task 1
Task 3
Task 4
Task 5
Distributed Inference
스케쥴링
"partition_count": 5, "concurrency": 2
Task 2 Task 1
Task 3
Task 4
Task 5
Distributed Inference
스케쥴링
"partition_count": 5, "concurrency": 2
Task 2
Task 1
Task 3
Task 4
Task 5
Task ATask B
Distributed Inference
스케쥴링
"partition_count": 5, "concurrency": 2
Task 2
Task 3
Task 4
Task 5
Task A
Task B
Distributed Inference
스케쥴링
GPU자원이 남을 때 많이 사용가능
장비 장애 발생할 때 자동으로 재시작
사용자가 얻는건
Distributed Training
Distributed Tensorflow 실행하게 해주세요
Tensorflow on Spark 지원 해주세요
요구사항
Distributed Tensorflow 실행
https://cloud.google.com/ml-engine/docs/concepts/trainer-considerations
Distributed Tensorflow 실행
Distributed Tensorflow 실행
Distributed Tensorflow 실행
Distributed Tensorflow 실행
{
"environment": "cloud",
"cluster": {
"worker": ["worker1.example.com:2222, "worker2.example.com:2222""],
"ps": ["ps0.example.com:2222"],
"master": ["worker0.example.com:2222"]
},
"task": {"index": 0, "type": "master"}
}
TF_CONFIG
Distributed Tensorflow 실행
Distributed Tensorflow 실행전에 실행하는 host, port를 알아야함
필요한것
cluster 어디에서 실행될지 알 수 없음
Docker Overlay Network
Distributed Tensorflow 실행전에 hostname을 알 수 있음
Hostname을 고정
Network isolation
다른 distributed deep learning도 지원 가능
Docker Overlay Network
HOST1 10.113.183.76 HOST2 10.2.83.112
Docker Overlay Network
HOST1 10.113.183.76 HOST2 10.2.83.112
$ docker network create testnet --driver=overlay --subnet=192.168.0.0/16
Overlay
name: testnet, Subnet: 192.168.0.0/16
Docker Overlay Network
HOST1 10.113.183.76 HOST2 10.2.83.112
$ docker run -it --net testnet -h worker1 --network-alias worker1
Overlay
name: testnet, Subnet: 192.168.0.0/16
worker1 192.168.0.2
Docker Overlay Network
HOST1 10.113.183.76 HOST2 10.2.83.112
$ docker run -it --net testnet -h worker2 --network-alias worker2
Overlay
name: testnet, Subnet: 192.168.0.0/16
worker1 192.168.0.2 worker2 192.168.0.3
Distributed Tensorflow 실행중
Overlay
Node
Manager
Node
Manager
Slider
Application
Master
YARN Container YARN Container YARN Container YARN Container
변경된 C3DL 구조
Resource
Manager
YARN
dlapp-submit
/apps/submit
Resource
Manager
YARN
삽질 & 팁
Docker Overlay Network 설정 삽질..
Zookeeper 여러개 설정은 ‘,’ 를 사용해서
zk://zk01.example.com:2181,zk02.example.com:2181,zk03.example.com:218
1
--cluster-store 설정
Docker Overlay Network 설정 삽질..
• --add-host --ip
• IP가 중복되면 안되서 IP관리가 필요함
• --link 옵션을
• --add-host와 비슷하게 동작하는데, deplicated 된 옵션
Docker 문서를 잘읽자
Distributed Tensorflow 삽질…
PS는 자동 종료가 안되서 수동으로 종료해주어야함
SERVICE type으로 설정하면 다른 BATCH 작업 종료후에 종료
Parameter Server는 종료 안됨
인터넷에 있는 Distributed Tensorflow 예제를 실행해 볼때 버전 확인
Tensorflow 버전이 빠르게 변하기 때문에 예전 버전의 예제들도 있음
Tensorflow 예제 코드의 버전 확인
Slider 개발 팁
stdout, stderr 출력 로그는 재시작할때마다 로그가 리셋됨.
{app_log_dir} 밑에 두는게 좋음
Log는 stdout, stderr 사용 안하는게 좋음
Install, start, stop, status는 모두 구현
status 무조건 0을 리턴하도록 구현해두어서 종료가 안되는 문제 있었음
To Do
Resource Scheduling 고도화
예약기능
짧은 시간동안 많은 GPU사용
성능 개선
Container 재활용
Tensorflow외에 다른 Distributed training 지원
Thank you
Merci bien

More Related Content

What's hot

[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기NAVER D2
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.jsHeeJung Hwang
 
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지Changje Jeong
 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lakeDaeMyung Kang
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報Amazon Web Services Japan
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advanceDaeMyung Kang
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축Juhong Park
 
How Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for PerformanceHow Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for PerformanceBrendan Gregg
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
Cloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflakeCloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflakeSANG WON PARK
 
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019Amazon Web Services Korea
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 SeoulElastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 SeoulSeungYong Oh
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016Amazon Web Services Korea
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Amazon Web Services Korea
 

What's hot (20)

[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
 
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lake
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
 
How Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for PerformanceHow Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for Performance
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
Cloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflakeCloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflake
 
Deep Dive on Amazon Aurora
Deep Dive on Amazon AuroraDeep Dive on Amazon Aurora
Deep Dive on Amazon Aurora
 
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 SeoulElastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
 

Viewers also liked

[221]똑똑한 인공지능 dj 비서 clova music
[221]똑똑한 인공지능 dj 비서 clova music[221]똑똑한 인공지능 dj 비서 clova music
[221]똑똑한 인공지능 dj 비서 clova musicNAVER D2
 
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼NAVER D2
 
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법NAVER D2
 
[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기
[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기
[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기NAVER D2
 
[232]mist 고성능 iot 스트림 처리 시스템
[232]mist 고성능 iot 스트림 처리 시스템[232]mist 고성능 iot 스트림 처리 시스템
[232]mist 고성능 iot 스트림 처리 시스템NAVER D2
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술NAVER D2
 
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색NAVER D2
 
[246]reasoning, attention and memory toward differentiable reasoning machines
[246]reasoning, attention and memory   toward differentiable reasoning machines[246]reasoning, attention and memory   toward differentiable reasoning machines
[246]reasoning, attention and memory toward differentiable reasoning machinesNAVER D2
 
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbmsNAVER D2
 
[241]large scale search with polysemous codes
[241]large scale search with polysemous codes[241]large scale search with polysemous codes
[241]large scale search with polysemous codesNAVER D2
 
[215]streetwise machine learning for painless parking
[215]streetwise machine learning for painless parking[215]streetwise machine learning for painless parking
[215]streetwise machine learning for painless parkingNAVER D2
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현NAVER D2
 
[212]big models without big data using domain specific deep networks in data-...
[212]big models without big data using domain specific deep networks in data-...[212]big models without big data using domain specific deep networks in data-...
[212]big models without big data using domain specific deep networks in data-...NAVER D2
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화NAVER D2
 
[213]building ai to recreate our visual world
[213]building ai to recreate our visual world[213]building ai to recreate our visual world
[213]building ai to recreate our visual worldNAVER D2
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기NAVER D2
 
유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리NAVER D2
 
[141]네이버랩스의 로보틱스 연구 소개
[141]네이버랩스의 로보틱스 연구 소개[141]네이버랩스의 로보틱스 연구 소개
[141]네이버랩스의 로보틱스 연구 소개NAVER D2
 
[124]자율주행과 기계학습
[124]자율주행과 기계학습[124]자율주행과 기계학습
[124]자율주행과 기계학습NAVER D2
 

Viewers also liked (20)

[221]똑똑한 인공지능 dj 비서 clova music
[221]똑똑한 인공지능 dj 비서 clova music[221]똑똑한 인공지능 dj 비서 clova music
[221]똑똑한 인공지능 dj 비서 clova music
 
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
 
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
 
[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기
[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기
[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기
 
[232]mist 고성능 iot 스트림 처리 시스템
[232]mist 고성능 iot 스트림 처리 시스템[232]mist 고성능 iot 스트림 처리 시스템
[232]mist 고성능 iot 스트림 처리 시스템
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
 
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
 
[246]reasoning, attention and memory toward differentiable reasoning machines
[246]reasoning, attention and memory   toward differentiable reasoning machines[246]reasoning, attention and memory   toward differentiable reasoning machines
[246]reasoning, attention and memory toward differentiable reasoning machines
 
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
 
[241]large scale search with polysemous codes
[241]large scale search with polysemous codes[241]large scale search with polysemous codes
[241]large scale search with polysemous codes
 
[215]streetwise machine learning for painless parking
[215]streetwise machine learning for painless parking[215]streetwise machine learning for painless parking
[215]streetwise machine learning for painless parking
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현
 
[212]big models without big data using domain specific deep networks in data-...
[212]big models without big data using domain specific deep networks in data-...[212]big models without big data using domain specific deep networks in data-...
[212]big models without big data using domain specific deep networks in data-...
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
 
[213]building ai to recreate our visual world
[213]building ai to recreate our visual world[213]building ai to recreate our visual world
[213]building ai to recreate our visual world
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기
 
유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리
 
[141]네이버랩스의 로보틱스 연구 소개
[141]네이버랩스의 로보틱스 연구 소개[141]네이버랩스의 로보틱스 연구 소개
[141]네이버랩스의 로보틱스 연구 소개
 
[124]자율주행과 기계학습
[124]자율주행과 기계학습[124]자율주행과 기계학습
[124]자율주행과 기계학습
 

Similar to [225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기

Infra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and TerraformInfra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and TerraformInho Kang
 
세션2_데보션테크데이_Decapod_v1.2.pdf
세션2_데보션테크데이_Decapod_v1.2.pdf세션2_데보션테크데이_Decapod_v1.2.pdf
세션2_데보션테크데이_Decapod_v1.2.pdfJaesuk Ahn
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AIJoongi Kim
 
sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리Sang-bae Lim
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCPDaegeun Kim
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Jeongkyu Shin
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampSang-bae Lim
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표Hyun-min Choi
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)uEngine Solutions
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Sourcecho hyun jong
 
[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민NAVER D2
 
On premise db & cloud database
On premise db & cloud databaseOn premise db & cloud database
On premise db & cloud databaseOracle Korea
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 
RAD서버: 완벽한 백엔드 플랫폼
RAD서버: 완벽한 백엔드 플랫폼RAD서버: 완벽한 백엔드 플랫폼
RAD서버: 완벽한 백엔드 플랫폼Devgear
 
올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발cho hyun jong
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략Devgear
 

Similar to [225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기 (20)

Infra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and TerraformInfra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and Terraform
 
세션2_데보션테크데이_Decapod_v1.2.pdf
세션2_데보션테크데이_Decapod_v1.2.pdf세션2_데보션테크데이_Decapod_v1.2.pdf
세션2_데보션테크데이_Decapod_v1.2.pdf
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCP
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcamp
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Source
 
[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민
 
On premise db & cloud database
On premise db & cloud databaseOn premise db & cloud database
On premise db & cloud database
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
RAD서버: 완벽한 백엔드 플랫폼
RAD서버: 완벽한 백엔드 플랫폼RAD서버: 완벽한 백엔드 플랫폼
RAD서버: 완벽한 백엔드 플랫폼
 
올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 
[231] Clova 화자인식
[231] Clova 화자인식[231] Clova 화자인식
[231] Clova 화자인식NAVER D2
 
[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 
[231] Clova 화자인식
[231] Clova 화자인식[231] Clova 화자인식
[231] Clova 화자인식
 
[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화[232]TensorRT를 활용한 딥러닝 Inference 최적화
[232]TensorRT를 활용한 딥러닝 Inference 최적화
 

[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기

  • 1. 빅데이터를 위한 Distributed Deep Learning 플랫폼 만들기 유승현 Search System
  • 2. CONTENTS Deep Learning 플랫폼 탄생 배경 새로운 요구사항 설계 및 검토 C3DL 기반으로 만들기
  • 3. Deep Learning 플랫폼 탄생 배경
  • 4. Deep Learning 플랫폼 초기 요구사항 다수의 연구원들이 GPU자원을 사용하고 싶어함 제한된 GPU 자원
  • 5. Deep Learning 플랫폼 초기 요구사항 Caffe, TensorFlow, Theano, Torch Deep Learning Frameworks
  • 6. C3DL 기반 기술 ­ Docker 다양한 딥러닝 프레임워크를 깔끔하게 지원 가능 패키지 표준화 하면서 동시에 개인 환경에 맞도록 셋팅 가능 Why Docker? naver/c3_dl-caffe naver/c3_dl-tensorflow user/pytorch naver/c3_dl-base
  • 7. C3DL 기반 기술 ­ Docker GPU isolation 지원 NVIDIA-Docker https://github.com/NVIDIA/nvidia-docker
  • 8. C3DL 기반 기술 ­ Hadoop YARN A framework for job scheduling and cluster resource management. Hadoop YARN https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html
  • 9. DL Application C3 Deep Learning Cluster Zookeeper Dev. Environment Dev. Server Resource Manager YARN Node Manager YARN Docker Registry C3 HDFS Storage YARN with GPU Scheduling Node Manager YARN Node Manager YARN . . . C3 Distributed Shell NVIDIA Docker GPU Device ID Manager Input Output DL App Toolset dlapp-launcher dlapp-shell dlapp-run https://deview.kr/2016/schedule#session/170
  • 12. 새로운 요구사항 Distributed inference - training이 완료된 모델로 inference를 하고 싶다. - 배치 작업, 오래 걸리는 작업들은 2~3개월 필요 사례: 웹 이미지 adult test Distributed inference 를 구현했는데, GPU할당만 해주면 돌릴께요
  • 13. 새로운 요구사항 Distributed training - 여러 장비에서 GPU할당 받아서 training을 하고 싶다 - 사실상 Distributed tensorflow 사용하고 싶다는 문의 Distributed tensorflow 사용하고 싶어요
  • 14. 새로운 요구사항 Serving (long live) 웹서버를 실행해서 request, response 방식으로 처리 1000시간 넘게 실행하고 있네?? 서버를 계속 실행해두면 되겠군.
  • 15. 새로운 요구사항 CPU만 사용해서 실행 - training이 끝난 모델을 사용해서 inference만 하고 싶은데, CPU가 가성비가 더 좋은 경 우가 있음. - 단, 기존 C3DL와 같은 방식으로 사용하고 싶다. DL Application
  • 16. Distributed Deep Learning 솔루션 검토 Tensorflow on Spark - https://github.com/yahoo/TensorFlowOnSpark DSSTNE - https://github.com/amzn/amazon-dsstne Caffe on Spark - https://github.com/yahoo/CaffeOnSpark Deeplearning4j on spark - https://deeplearning4j.org/spark torch-distlearn - https://github.com/twitter/torch-distlearn Distributed Keras - https://github.com/cerndb/dist-keras Apache SINGA - http://www.comp.nus.edu.sg/~dbsystem/singa/ BigDL - https://github.com/intel-analytics/BigDL Distributed Deep Learning 솔루션
  • 17. Distributed Deep Learning 솔루션 검토 Tensorflow On Spark http://yahoohadoop.tumblr.com/post/157196317141/open-sourcing-tensorflowonspark-distributed-deep
  • 18. Distributed Deep Learning 솔루션 검토 DSSTNE Amazon ECS SparkAmazon ECS GPU task GPU slave CPU https://aws.amazon.com/ko/blogs/big-data/generating-recommendations-at-amazon-scale-with-apache-spark-and-amazon-dsstne/
  • 20. YARN application 변경 한개의 JOB에 한개의 container만 실행 BATCH JOB이라고 가정하고 만들어져 있음 기존 C3DL Distributed - 여러 container 동시 실행할때 장비 다운등 에러처리 Serving - Long-live JOB도 지원해야함 변경 & 구현 해야하는것
  • 21. YARN application 개발 Resource Manager, Application Master, Node Manager, Container … YARN API 예외 처리 Container가 죽었을때…, 장비가 다운되었을때.. 예제 프로그램이 1000줄 이상… Distributed Shell
  • 22. Apache Slider Slider is a YARN application to deploy existing distributed applications on YARN https://deview.kr/2016/schedule#session/168 Apache Slider 를 이용한 멀티테넌트 하둡 클러스터
  • 23. Apache Slider - 쉽다
  • 24. Apache Slider ­ container 구분 몇번째 container 인지 구분해줌 app_container_tag Slider Application Master Agent (app_container_tag=1) Agent (app_container_tag=2) app app
  • 25. Apache Slider ­ container 구분 몇번째 container 인지 구분해줌 app_container_tag Slider Application Master Agent (app_container_tag=1) Agent (app_container_tag=2) app app Agent (app_container_tag=1) app
  • 26. Apache Slider - serving Availability - Application 자동으로 재시도 Flexibility - container 개수를 증가/감소 시킬수 있음 원래 계속 실행하는 작업을 위해 만들어 졌음
  • 27. Apache Slider ­ contributor https://issues.apache.org/jira/browse/SLIDER-1239 https://issues.apache.org/jira/browse/SLIDER-494 Batch 모드 개발 문서가 부족함 옆에 물어봄…
  • 28. Apache Slider ­ contributor https://issues.apache.org/jira/browse/SLIDER-1239 https://issues.apache.org/jira/browse/SLIDER-494 Batch 모드 개발 문서가 부족함 옆에 물어봄…
  • 29. Apache Slider ­ contributor https://issues.apache.org/jira/browse/SLIDER-1239 https://issues.apache.org/jira/browse/SLIDER-494 Batch 모드 개발 문서가 부족함 옆에 물어봄…
  • 32. REST API REST API 선택한 이유 버그 수정, 배포시 빠르게 대응 가능 REST API를 공개하면 사용자가 직접 응용이 가능
  • 33. REST API 성능은 고려사항이 아님 à 빨리 개발 REST-API에 대한 구현이 직관적임 Swagger 문서화 Flask-RESTPlus선택
  • 35. CPU만 사용 CPU만 사용하고 싶음, C3DL에 제출 요구사항
  • 37. DL(Deep Learning) App 구현 Concept • DL App 구성 요소 • Deep Learning Framework 환경 (Caffe, TensorFlow …) • User Program ( Source Code ) • Input Data • Output Data Input Output DL Framework 환경 Source Code
  • 38. DL(Deep Learning) App 구현 Concept /User_Dev_Workspace /DL_App_Workspace Deep Learning App Input Output User Container
  • 39. Distributed API 설계 전략 쉬운 API 자유도 높은 API
  • 40. Distributed API 설계 전략 - 자유도 높은 API { "username": "testuser", "queue": "test", "worker": { "config": [ { "sms": { "employee_id": "kr00000" }, "docker": { "expose_tcp_port": [ 6006 ], "workdir": "/root/c3_workspace", "image": "naver/c3_dl-tensorflow", "args": "", "command": "./run.sh", "registry": "dregistry.navercorp.com" }, "user_package_uri": "hdfs://c3/user/c3dl_admin/user-package/testuser/20170918162225.651323.tar.gz", "data": { "to_hdfs": [ {
  • 41. Distributed API 설계 전략 - 쉬운 API { "username": "test1", "worker_count": 2, "ps_count": 1, "distributed_tensorflow": true, "appname": "distributed_training", "queue": "test", "docker": { "image": "naver/c3_dl-tensorflow:r1.2", "workdir": "/root/c3_workspace", "command": "python cifar10_main.py", "registry": "dregistry.navercorp.com", "args": "--data-dir=hdfs://c3/user/test1/cifar-10-data --job-dir=hdfs://c3/user/test1/model_dir --num-gpus=1 --train- steps=100" }, "user_package_uri": "hdfs://c3/user/test1/cifar10_estimator.tar.gz”, "resource": { "memory_mb": 15360, "vcores": 1, "gcores": 1 } }
  • 42. 분산 처리를 위한 구현 Concept /User_Dev_Workspace User /DL_App_Workspace Deep Learning App Input Output Containe r/DL_App_Workspace Deep Learning App Input Output Containe r /DL_App_Workspace Deep Learning App Input Output Containe r /User_Dev_Workspace /User_Dev_Workspace
  • 43. Distributed Inference 대용량 배치 작업, 오래 걸리는 작업들은 2~3개월 필요 Map-reduce 처럼 input, output만 지정하면 자동으로 나누어졌으면 좋겠다 GPU자원이 남으면 최대한 사용하고 싶다 요구사항
  • 44. Distributed Inference /User_Dev_Workspace User /DL_App_Workspace DL App Input Output /DL_App_Workspace DL App Input Output /DL_App_Workspace DL App Input Output /input_dir |- data_01 |- data_02 |- data_03 /output_dir |- out_01 |- out_02 |- out_03
  • 45. Distributed Inference /User_Dev_Workspace User /DL_App_Workspace DL App Input Output /DL_App_Workspace DL App Input Output /DL_App_Workspace DL App Input Output /input_dir |- data_01 |- data_02 |- data_03 /output_dir |- out_01 |- out_02 |- out_03
  • 46. Distributed Inference 여러 디렉토리에서 입력을 받고 싶은 경우에는 직접 작성 직접 INPUT을 작성할 수도 있음 /DL_App_Workspace DL App Input Output /input_dir |- data_01 |- data_02 |- data_03 /output_dir |- out_01 |- out_02 |- out_03Input /input_dir2 |- data_01 |- data_02 |- data_03
  • 47. Distributed Inference ­ example json { "partition_count": 12, "data": { "from_hdfs": [ { "excludes": ["_complete"], "type": "dironly", "input_path": "data", "hdfs": "/user/blog/blogdatal/2017" }], "to_hdfs": [ { "hdfs": "/user/blog/prediction/2017/result- {{ partition_num }}", "output_path": "result", "overwrite": false }], "auto_partition": true, "format": "%2d" } } { "data_list": [ { "from_hdfs": [{ "hdfs": "/user/blog/blogdata/2017/01", "input_path": "data"}], "to_hdfs": [{ "hdfs": "/user/blog/prediction/2017/result-01", "output_path": "result", "overwrite": false }] }, { "from_hdfs": [{ "hdfs": "/user/blog/blogdata/2017/02", "input_path": "data"}], "to_hdfs": [{ "hdfs": "/user/blog/prediction/2017/result-02", "output_path": "result", "overwrite": false}] }, …
  • 48. Distributed Inference ­ example json { "partition_count": 12, "data": { "from_hdfs": [ { "excludes": ["_complete"], "type": "dironly", "input_path": "data", "hdfs": "/user/blog/blogdatal/2017" }], "to_hdfs": [ { "hdfs": "/user/blog/prediction/2017/result- {{ partition_num }}", "output_path": "result", "overwrite": false }], "auto_partition": true, "format": "%2d" } } { "data_list": [ { "from_hdfs": [{ "hdfs": "/user/blog/blogdata/2017/01", "input_path": "data"}], "to_hdfs": [{ "hdfs": "/user/blog/prediction/2017/result-01", "output_path": "result", "overwrite": false }] }, { "from_hdfs": [{ "hdfs": "/user/blog/blogdata/2017/02", "input_path": "data"}], "to_hdfs": [{ "hdfs": "/user/blog/prediction/2017/result-02", "output_path": "result", "overwrite": false}] }, …
  • 49. Distributed Inference ­ example json { "partition_count": 12, "data": { "from_hdfs": [ { "excludes": ["_complete"], "type": "dironly", "input_path": "data", "hdfs": "/user/blog/blogdatal/2017" }], "to_hdfs": [ { "hdfs": "/user/blog/prediction/2017/result- {{ partition_num }}", "output_path": "result", "overwrite": false }], "auto_partition": true, "format": "%2d" } } { "data_list": [ { "from_hdfs": [{ "hdfs": "/user/blog/blogdata/2017/01", "input_path": "data"}], "to_hdfs": [{ "hdfs": "/user/blog/prediction/2017/result-01", "output_path": "result", "overwrite": false }] }, { "from_hdfs": [{ "hdfs": "/user/blog/blogdata/2017/02", "input_path": "data"}], "to_hdfs": [{ "hdfs": "/user/blog/prediction/2017/result-02", "output_path": "result", "overwrite": false}] }, …
  • 50. Distributed Inference 스케쥴링 "partition_count": 5, "concurrency": 2 Task 2 Task 1 Task 3 Task 4 Task 5
  • 51. Distributed Inference 스케쥴링 "partition_count": 5, "concurrency": 2 Task 2 Task 1 Task 3 Task 4 Task 5
  • 52. Distributed Inference 스케쥴링 "partition_count": 5, "concurrency": 2 Task 2 Task 1 Task 3 Task 4 Task 5 Task ATask B
  • 53. Distributed Inference 스케쥴링 "partition_count": 5, "concurrency": 2 Task 2 Task 3 Task 4 Task 5 Task A Task B
  • 54. Distributed Inference 스케쥴링 GPU자원이 남을 때 많이 사용가능 장비 장애 발생할 때 자동으로 재시작 사용자가 얻는건
  • 55. Distributed Training Distributed Tensorflow 실행하게 해주세요 Tensorflow on Spark 지원 해주세요 요구사항
  • 60. Distributed Tensorflow 실행 { "environment": "cloud", "cluster": { "worker": ["worker1.example.com:2222, "worker2.example.com:2222""], "ps": ["ps0.example.com:2222"], "master": ["worker0.example.com:2222"] }, "task": {"index": 0, "type": "master"} } TF_CONFIG
  • 61. Distributed Tensorflow 실행 Distributed Tensorflow 실행전에 실행하는 host, port를 알아야함 필요한것 cluster 어디에서 실행될지 알 수 없음
  • 62. Docker Overlay Network Distributed Tensorflow 실행전에 hostname을 알 수 있음 Hostname을 고정 Network isolation 다른 distributed deep learning도 지원 가능
  • 63. Docker Overlay Network HOST1 10.113.183.76 HOST2 10.2.83.112
  • 64. Docker Overlay Network HOST1 10.113.183.76 HOST2 10.2.83.112 $ docker network create testnet --driver=overlay --subnet=192.168.0.0/16 Overlay name: testnet, Subnet: 192.168.0.0/16
  • 65. Docker Overlay Network HOST1 10.113.183.76 HOST2 10.2.83.112 $ docker run -it --net testnet -h worker1 --network-alias worker1 Overlay name: testnet, Subnet: 192.168.0.0/16 worker1 192.168.0.2
  • 66. Docker Overlay Network HOST1 10.113.183.76 HOST2 10.2.83.112 $ docker run -it --net testnet -h worker2 --network-alias worker2 Overlay name: testnet, Subnet: 192.168.0.0/16 worker1 192.168.0.2 worker2 192.168.0.3
  • 70. Docker Overlay Network 설정 삽질.. Zookeeper 여러개 설정은 ‘,’ 를 사용해서 zk://zk01.example.com:2181,zk02.example.com:2181,zk03.example.com:218 1 --cluster-store 설정
  • 71. Docker Overlay Network 설정 삽질.. • --add-host --ip • IP가 중복되면 안되서 IP관리가 필요함 • --link 옵션을 • --add-host와 비슷하게 동작하는데, deplicated 된 옵션 Docker 문서를 잘읽자
  • 72. Distributed Tensorflow 삽질… PS는 자동 종료가 안되서 수동으로 종료해주어야함 SERVICE type으로 설정하면 다른 BATCH 작업 종료후에 종료 Parameter Server는 종료 안됨 인터넷에 있는 Distributed Tensorflow 예제를 실행해 볼때 버전 확인 Tensorflow 버전이 빠르게 변하기 때문에 예전 버전의 예제들도 있음 Tensorflow 예제 코드의 버전 확인
  • 73. Slider 개발 팁 stdout, stderr 출력 로그는 재시작할때마다 로그가 리셋됨. {app_log_dir} 밑에 두는게 좋음 Log는 stdout, stderr 사용 안하는게 좋음 Install, start, stop, status는 모두 구현 status 무조건 0을 리턴하도록 구현해두어서 종료가 안되는 문제 있었음
  • 74. To Do Resource Scheduling 고도화 예약기능 짧은 시간동안 많은 GPU사용 성능 개선 Container 재활용 Tensorflow외에 다른 Distributed training 지원