TF Dev Summit × Modulabs : Learn by Run !
TensorFlow.js & Applied AI at the Coca-Cola Company (발표자 : 민규식)
※ 모두의연구소 페이지 : https://www.facebook.com/lab4all/
※ 모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
이 발표에서는 구글의 머신러닝 분야에 대한 접근 분야, 방법 및 목표를 구글 I/O 2017의 세션 발표들을 통해 알아봅니다.
From TPU to Mobile: Google's Machine Learning Vision
In this presentation, I will cover about the approaches, methods and goals of Google's machine learning area through the sessions of Google I/O 2017.
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
머신러닝 및 데이터 과학 분야의 컴퓨팅 수요는 해가 갈수록 급증하고 있습니다. 이와 더불어 분산처리 기술, 데이터 파이프라이닝 및 개발 환경 스택 관리 등의 관련된 다양한 이슈들 또한 엄청나게 늘어나고 있습니다. 머신러닝 모델의 기하급수적인 모델 복잡도 증가 추세와 마찬가지로, 모델 학습을 위한 환경 관리 또한 갈수록 복잡도가 높아지는 추세입니다.
이 세션에서는 이러한 문제를 해결하기 위해 python 언어 기반의 분산처리 스케쥴링/오케스트레이션 미들웨어 플랫폼을 개발한 4년간의 과정에서 겪은 다양한 문제들에 대해 다룹니다. 2015년 컨테이너 기반의 고밀도 분산처리 플랫폼 설계 및 프로토타이핑 과정을 PyCon KR에서 발표한 이후, 실제 구현 및 오픈소스화, 안정화를 거치며 겪은 다양한 기술적/비기술적 문제들에 대한 경험을 공유합니다.
기술적으로는 최근 몇 년 간의 클러스터 플랫폼 관련 기술의 진보와 함께 탄생한 다양한 도구들과, 이러한 도구들을 python 기반으로 엮어내기 위해 사용하고 개발한 다양한 오픈소스들을 다룹니다. Python 기반의 컨테이너 스케쥴링 및 오케스트레이션 과정의 구현과, 다양한 프로그래밍 언어로 만든 SDK를 graphQL을 이용하여 연동하는 과정에서의 몇몇 유의점을 설명합니다. 아울러 python 기반의 SDK를 다양한 언어로 포팅했던 경험을 간단하게 안내합니다.
플랫폼을 개발하는 중 등장한 TensorFlow, PyTorch 등의 다양한 머신러닝 프레임워크들을 도입하며 겪은 문제와 해결 과정에 대해서도 나눕니다. 연구 분야에는 Python 2.7 기반의 프레임워크들이 여전히 많습니다. 이러한 프레임워크 및 라이브러리의 지원을 위하여 Python 2 기반의 프레임워크와 Python 3.7로 구현한 컨테이너 인터페이스를 단일 컨테이너 환경에 중복 빌드 및 상호 간섭 없이 공존시키기 위해 개발한 아이디어를 소개합니다.
마지막으로 Python 기반의 프레임워크를 개발, 배포 및 상용화 하는 과정에서 겪은 다양한 어려움을 소개합니다. 솔루션을 배포 및 보급할 때 겪는 다양한 런타임, 하드웨어 환경 및 개인 정보 보호를 위한 폐쇄망 대상의 디플로이 등에 대응하기 위하여 Python 응용프로그램을 단독 실행용으로 패키징하는 과정에서 겪은 팁들을 설명합니다. 또한 GUI 빌드 및 Python, Go 및 C++을 함께 사용한 드라이버 가상화 레이어 개발 등의 내용도 살짝 다룹니다.
이 슬라이드는 PyCon KR 2019의 발표 슬라이드입니다. ( https://www.pycon.kr/program/talk-detail?id=138 )
Backend.AI (https://backend.ai)는 클라우드 및 온-프레미스 환경에서 여러 사용자가 안전하고 효율적으로 컴퓨팅 자원을 공유할 수 있는 머신러닝에 특화된 인프라 관리 프레임워크입니다. 현재 널리 사용되고 있는 오픈소스 기술인 OpenStack, Kubernetes 등과 비교하여 어떤 특징과 차이점이 있는지 소개하고, 프레임워크의 구조와 기반 기술 및 응용 사례를 데모와 함께 소개합니다.
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
이 발표에서는 구글의 머신러닝 분야에 대한 접근 분야, 방법 및 목표를 구글 I/O 2017의 세션 발표들을 통해 알아봅니다.
From TPU to Mobile: Google's Machine Learning Vision
In this presentation, I will cover about the approaches, methods and goals of Google's machine learning area through the sessions of Google I/O 2017.
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
머신러닝 및 데이터 과학 분야의 컴퓨팅 수요는 해가 갈수록 급증하고 있습니다. 이와 더불어 분산처리 기술, 데이터 파이프라이닝 및 개발 환경 스택 관리 등의 관련된 다양한 이슈들 또한 엄청나게 늘어나고 있습니다. 머신러닝 모델의 기하급수적인 모델 복잡도 증가 추세와 마찬가지로, 모델 학습을 위한 환경 관리 또한 갈수록 복잡도가 높아지는 추세입니다.
이 세션에서는 이러한 문제를 해결하기 위해 python 언어 기반의 분산처리 스케쥴링/오케스트레이션 미들웨어 플랫폼을 개발한 4년간의 과정에서 겪은 다양한 문제들에 대해 다룹니다. 2015년 컨테이너 기반의 고밀도 분산처리 플랫폼 설계 및 프로토타이핑 과정을 PyCon KR에서 발표한 이후, 실제 구현 및 오픈소스화, 안정화를 거치며 겪은 다양한 기술적/비기술적 문제들에 대한 경험을 공유합니다.
기술적으로는 최근 몇 년 간의 클러스터 플랫폼 관련 기술의 진보와 함께 탄생한 다양한 도구들과, 이러한 도구들을 python 기반으로 엮어내기 위해 사용하고 개발한 다양한 오픈소스들을 다룹니다. Python 기반의 컨테이너 스케쥴링 및 오케스트레이션 과정의 구현과, 다양한 프로그래밍 언어로 만든 SDK를 graphQL을 이용하여 연동하는 과정에서의 몇몇 유의점을 설명합니다. 아울러 python 기반의 SDK를 다양한 언어로 포팅했던 경험을 간단하게 안내합니다.
플랫폼을 개발하는 중 등장한 TensorFlow, PyTorch 등의 다양한 머신러닝 프레임워크들을 도입하며 겪은 문제와 해결 과정에 대해서도 나눕니다. 연구 분야에는 Python 2.7 기반의 프레임워크들이 여전히 많습니다. 이러한 프레임워크 및 라이브러리의 지원을 위하여 Python 2 기반의 프레임워크와 Python 3.7로 구현한 컨테이너 인터페이스를 단일 컨테이너 환경에 중복 빌드 및 상호 간섭 없이 공존시키기 위해 개발한 아이디어를 소개합니다.
마지막으로 Python 기반의 프레임워크를 개발, 배포 및 상용화 하는 과정에서 겪은 다양한 어려움을 소개합니다. 솔루션을 배포 및 보급할 때 겪는 다양한 런타임, 하드웨어 환경 및 개인 정보 보호를 위한 폐쇄망 대상의 디플로이 등에 대응하기 위하여 Python 응용프로그램을 단독 실행용으로 패키징하는 과정에서 겪은 팁들을 설명합니다. 또한 GUI 빌드 및 Python, Go 및 C++을 함께 사용한 드라이버 가상화 레이어 개발 등의 내용도 살짝 다룹니다.
이 슬라이드는 PyCon KR 2019의 발표 슬라이드입니다. ( https://www.pycon.kr/program/talk-detail?id=138 )
Backend.AI (https://backend.ai)는 클라우드 및 온-프레미스 환경에서 여러 사용자가 안전하고 효율적으로 컴퓨팅 자원을 공유할 수 있는 머신러닝에 특화된 인프라 관리 프레임워크입니다. 현재 널리 사용되고 있는 오픈소스 기술인 OpenStack, Kubernetes 등과 비교하여 어떤 특징과 차이점이 있는지 소개하고, 프레임워크의 구조와 기반 기술 및 응용 사례를 데모와 함께 소개합니다.
파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥Seomgi Han
서버 자원의 효율성을 극대화하기 위해서는 흔히 비동기 프로그래밍 방식을 적용합니다. 파이썬에서도 비동기 프로그래밍 방식으로 웹서비스를 제공하기 위해서 여타 웹프레임워크 프로젝트가 탄생했습니다. Tornado부터 시작하여, Aiohttp, Sanic, Vibora 등과 같은 프로젝트가 이러한 목적을 갖고 있는 프로젝트입니다. 그 중에서도 Vibora나 Sanic 등과 같은 프로젝트는 서로 자기가 처리 능력이 좋다며 자랑하고 있습니다. 그 이유로 비동기 방식을 활용하기 때문이라고 하는데, 설명을 들여다보면 빠지지 않고 나오는 단어가 있습니다. 바로 uvloop입니다.
uvloop이 무엇인지 궁금하여 알아보면, 다시 libuv라는 라이브러리를 만날 수 있습니다.
이 프로그램에서는 libuv가 어떤 방향성을 갖고 디자인되었으며, 어떤 기능을 갖고 있기에 다수의 프로젝트에서 사용하게 되었는지, 파이썬의 기본 라이브러리인 asyncio와는 어떤 차이점이 있는지를 알아봅니다. 또한 파이썬으로 만들어진 몇몇 웹프레임워크가 어떤 처리 능력을 보여주는지 직접 테스트해본 결과를 공유합니다.
https://github.com/FinanceData/Life-is-short
(github 페이지: 데이터세트, 동영상)
https://fb.com/financedata/posts/2170185529937113
(페이스북 페이지: 주피터 노트북 및 동영상)
파이썬으로 도전하는 업무자동화와 RPA(로봇프로세스자동화)
* 엑셀 노가다를 파이썬으로 자동화 할 수 있는 방법들
* 데스크탑 자동화(단순 반복 업무 자동화)에 필요한 라이브러리들과 사용 예
* RPA (상용 솔루션)과 파이썬 (무료 오픈소스)의 장점과 단점
* 파이썬을 활용한 업무 자동화 구체적인 방법
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
딥러닝 서비스를 만드는 스타트업 개발자, 개인 개발자로서 가장 신경을 쓰는 부분은 딥러닝 모델을 훈련시키고 러닝하는 과정을 효율적으로 만드는 것입니다. 스타트업에서 Devops 개발자로 일한 경험을 살려 모두가 알아두면 좋을 AWS가 제공하는 GPU 인스턴스를 활용하는 방법과 에이전트 기반 지표 수집, 그리고 스팟 인스턴스를 사용하여 비용을 줄이면서 안정된 서비스를 운영하는 방법 등을 공유합니다.
파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥Seomgi Han
서버 자원의 효율성을 극대화하기 위해서는 흔히 비동기 프로그래밍 방식을 적용합니다. 파이썬에서도 비동기 프로그래밍 방식으로 웹서비스를 제공하기 위해서 여타 웹프레임워크 프로젝트가 탄생했습니다. Tornado부터 시작하여, Aiohttp, Sanic, Vibora 등과 같은 프로젝트가 이러한 목적을 갖고 있는 프로젝트입니다. 그 중에서도 Vibora나 Sanic 등과 같은 프로젝트는 서로 자기가 처리 능력이 좋다며 자랑하고 있습니다. 그 이유로 비동기 방식을 활용하기 때문이라고 하는데, 설명을 들여다보면 빠지지 않고 나오는 단어가 있습니다. 바로 uvloop입니다.
uvloop이 무엇인지 궁금하여 알아보면, 다시 libuv라는 라이브러리를 만날 수 있습니다.
이 프로그램에서는 libuv가 어떤 방향성을 갖고 디자인되었으며, 어떤 기능을 갖고 있기에 다수의 프로젝트에서 사용하게 되었는지, 파이썬의 기본 라이브러리인 asyncio와는 어떤 차이점이 있는지를 알아봅니다. 또한 파이썬으로 만들어진 몇몇 웹프레임워크가 어떤 처리 능력을 보여주는지 직접 테스트해본 결과를 공유합니다.
https://github.com/FinanceData/Life-is-short
(github 페이지: 데이터세트, 동영상)
https://fb.com/financedata/posts/2170185529937113
(페이스북 페이지: 주피터 노트북 및 동영상)
파이썬으로 도전하는 업무자동화와 RPA(로봇프로세스자동화)
* 엑셀 노가다를 파이썬으로 자동화 할 수 있는 방법들
* 데스크탑 자동화(단순 반복 업무 자동화)에 필요한 라이브러리들과 사용 예
* RPA (상용 솔루션)과 파이썬 (무료 오픈소스)의 장점과 단점
* 파이썬을 활용한 업무 자동화 구체적인 방법
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
딥러닝 서비스를 만드는 스타트업 개발자, 개인 개발자로서 가장 신경을 쓰는 부분은 딥러닝 모델을 훈련시키고 러닝하는 과정을 효율적으로 만드는 것입니다. 스타트업에서 Devops 개발자로 일한 경험을 살려 모두가 알아두면 좋을 AWS가 제공하는 GPU 인스턴스를 활용하는 방법과 에이전트 기반 지표 수집, 그리고 스팟 인스턴스를 사용하여 비용을 줄이면서 안정된 서비스를 운영하는 방법 등을 공유합니다.
TF Dev Summit × Modulabs : Learn by Run !
Debugging with tensor board (발표자 : 이준호)
※ 모두의연구소 페이지 : https://www.facebook.com/lab4all/
※ 모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs
TF Dev Summit × Modulabs : Learn by Run !
Rear-World Robot Learning (발표자 : 최석원)
※ 모두의연구소 페이지 : https://www.facebook.com/lab4all/
※ 모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs
TF Dev Summit × Modulabs : Learn by Run !
TF.data & Eager Execution (발표자 : 김보섭)
※ 모두의연구소 페이지 : https://www.facebook.com/lab4all/
※ 모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs
Machine Learning on Your Hand - Introduction to Tensorflow Lite PreviewModulabs
TF Dev Summit × Modulabs : Learn by Run !
Machine Learning on Your Hand - Introduction to Tensorflow Lite Preview (발표자 : 강재욱)
※ 모두의연구소 페이지 : https://www.facebook.com/lab4all/
※ 모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs
7. Tesorflow.js
7
웹페이지의 구성요소
- HTML: 웹페이지의 큰 뼈대를 제공 (Hyper Text Markup Language)
- CSS: 색, 글씨체 등 디자인 요소를 관리 (Cascading Style Sheets)
- Java Script: 객체지향 스크립트 언어로 웹페이지의 동작을 담당
- 웹을 풍부하게 만들어주는 작고 가벼운 언어
8. Tesorflow.js
8
- Google brain 팀에 의해 개발, 2017년 8월 공개
- Java script 라이브러리로 인터넷 브라우저에서 deep learning inference, training이 가능
- WebGL을 통해 GPU 연산 가능
- WebGL: 웹 기반 그래픽 라이브러리 -> 웹 브라우저 내부에서 3D 그래픽을 사용할 수 있도록 제공
- 다양한 딥러닝 관련 기능들을 웹 상에서 제공 가능 (Style transfer, Generative model, Machine translation)
10. Tesorflow.js
10
In-browser ML
- No driver / no installs -> 웹 페이지에 접속만 하면 실행
- 링크를 통해 간편하게 공유 가능
- Highly interactive
- 핸드폰 등을 이용하는 경우 내장 센서를 input 으로 제공 가능
- Sensor data는 client 에 남고 web 에 올리지 않음 -> Privacy
13. Tesorflow.js
13
Tensorflow.js
- Browser 내에서 모델을 생성, 학습, 테스트 할 수 있음
- Python으로 training 을 수행하고 저장된 변수들을 불러와서 browser 내에서 inference 가능
- 불러온 모델을 browser 내에서 retrain 하는 것도 가능
- Conversion: TF나 Keras로 제작 -> model을 저장 -> JS 모델로 변환 -> JS에서 사용!
- Conversion에 제공되는 기능
- Graph optimization: Prediction을 할 때 사용하지 않는 node들 제거
- Weight optimization
- Support 90+ Tensorflow ops -> control flow ops (coming soon)
- Support 32+ Keras layers
- Node.js 를 통해 서버를 이용한 연산이 가능하도록 제공할 예정
15. Tesorflow.js
15
Example (Webcam controller PacMan)
- Controller의 방향에 이용할 이미지를 각각 촬영
- Parameter 들을 결정하고 Train 버튼을 누른다!
- Loss가 줄어든 것을 확인하고 play를 눌러 게임을 실행한다!
- 웹페이지 상에서 training 과 inference 모두 가능
23. Coca-Cola
23
Proof of Purchase
- 소비자는 제품 구매의 증거를 회사측에 전달 (barcode, proof of purchase seal, …) -> 회사는 보상을 지급
- Sales promotion, loyalty marketing, 소비 데이터 수집
24. Coca-Cola
24
Digital Engagement Marketing
- 기술의 발전으로 인해 web 이나 mobile 플랫폼을 이용한 proof of purchase 가능
- 소비자에게 즉각적인 보상 제공이 가능하며 접근성 향상
- 코카콜라의 경우 병뚜껑에 있는 14 character 로 구성된 pin code 를 이용
- 모든 제품에 unique 하게 할당된 코드 -> 하지만 이것도 손으로 치기 귀찮지요…
≈
25. Coca-Cola
25
Training 의 과정
- Processing time: 1초 이내, 정확도 95% 이상- Active learning UI를 제작 -> 소비자가 라벨링
- 작은 크기의 모델, update 수행 가능
27. Coca-Cola
27
Training
- Character probability matrix 계산
- Every character in every position
- Matrix size: 글자 수 x 라벨 수
Top 10 prediction 선택
Valid: Pincode 제출
Invalid: Active learning
28. Coca-Cola
28
Training
Improving the Model in 3 Phases
Made the model too large Prevented the model from converging Gets the model to converge
(5mb model with acc > 95%)