구글의 머신러닝 비전: 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 등과 비교하여 어떤 특징과 차이점이 있는지 소개하고, 프레임워크의 구조와 기반 기술 및 응용 사례를 데모와 함께 소개합니다.
TensorFlow.js & Applied AI at the Coca-Cola CompanyModulabs
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
파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥Seomgi Han
서버 자원의 효율성을 극대화하기 위해서는 흔히 비동기 프로그래밍 방식을 적용합니다. 파이썬에서도 비동기 프로그래밍 방식으로 웹서비스를 제공하기 위해서 여타 웹프레임워크 프로젝트가 탄생했습니다. Tornado부터 시작하여, Aiohttp, Sanic, Vibora 등과 같은 프로젝트가 이러한 목적을 갖고 있는 프로젝트입니다. 그 중에서도 Vibora나 Sanic 등과 같은 프로젝트는 서로 자기가 처리 능력이 좋다며 자랑하고 있습니다. 그 이유로 비동기 방식을 활용하기 때문이라고 하는데, 설명을 들여다보면 빠지지 않고 나오는 단어가 있습니다. 바로 uvloop입니다.
uvloop이 무엇인지 궁금하여 알아보면, 다시 libuv라는 라이브러리를 만날 수 있습니다.
이 프로그램에서는 libuv가 어떤 방향성을 갖고 디자인되었으며, 어떤 기능을 갖고 있기에 다수의 프로젝트에서 사용하게 되었는지, 파이썬의 기본 라이브러리인 asyncio와는 어떤 차이점이 있는지를 알아봅니다. 또한 파이썬으로 만들어진 몇몇 웹프레임워크가 어떤 처리 능력을 보여주는지 직접 테스트해본 결과를 공유합니다.
머신러닝 및 데이터 과학 연구자를 위한 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 등과 비교하여 어떤 특징과 차이점이 있는지 소개하고, 프레임워크의 구조와 기반 기술 및 응용 사례를 데모와 함께 소개합니다.
TensorFlow.js & Applied AI at the Coca-Cola CompanyModulabs
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
파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥Seomgi Han
서버 자원의 효율성을 극대화하기 위해서는 흔히 비동기 프로그래밍 방식을 적용합니다. 파이썬에서도 비동기 프로그래밍 방식으로 웹서비스를 제공하기 위해서 여타 웹프레임워크 프로젝트가 탄생했습니다. Tornado부터 시작하여, Aiohttp, Sanic, Vibora 등과 같은 프로젝트가 이러한 목적을 갖고 있는 프로젝트입니다. 그 중에서도 Vibora나 Sanic 등과 같은 프로젝트는 서로 자기가 처리 능력이 좋다며 자랑하고 있습니다. 그 이유로 비동기 방식을 활용하기 때문이라고 하는데, 설명을 들여다보면 빠지지 않고 나오는 단어가 있습니다. 바로 uvloop입니다.
uvloop이 무엇인지 궁금하여 알아보면, 다시 libuv라는 라이브러리를 만날 수 있습니다.
이 프로그램에서는 libuv가 어떤 방향성을 갖고 디자인되었으며, 어떤 기능을 갖고 있기에 다수의 프로젝트에서 사용하게 되었는지, 파이썬의 기본 라이브러리인 asyncio와는 어떤 차이점이 있는지를 알아봅니다. 또한 파이썬으로 만들어진 몇몇 웹프레임워크가 어떤 처리 능력을 보여주는지 직접 테스트해본 결과를 공유합니다.
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
2019년 3월 23일에 있었던 한국게임학회 인공지능분과 첫 모임에 진행했던 <구글 텐서플로우 첫걸음> 강연자료입니다. 텐서플로우 소개와 2.0 에 대한 간략한 특징을 다루고 있고, Sample Code 를 통해 2.0 에 추가된 feature 들을 간단히 다뤄봅니다.
Sample Code link : https://colab.research.google.com/drive/1CODzwAU5BE9h99s-xJZCb9B__UHXpucE
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
2019년 3월 23일에 있었던 한국게임학회 인공지능분과 첫 모임에 진행했던 <구글 텐서플로우 첫걸음> 강연자료입니다. 텐서플로우 소개와 2.0 에 대한 간략한 특징을 다루고 있고, Sample Code 를 통해 2.0 에 추가된 feature 들을 간단히 다뤄봅니다.
Sample Code link : https://colab.research.google.com/drive/1CODzwAU5BE9h99s-xJZCb9B__UHXpucE
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
[Tensorflow-KR Offline 세미나 발표자료]
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps Cycle 구성 방법론. (Azure Docker PaaS 위에서 1만 TPS Tensorflow Inference Serving 방법론 공유)
100% Serverless big data scale production Deep Learning Systemhoondong kim
- BigData Sale Deep Learning Training System (with GPU Docker PaaS on Azure Batch AI)
- Deep Learning Serving Layer (with Auto Scale Out Mode on Web App for Linux Docker)
- BigDL, Keras, Tensorlfow, Horovod, TensorflowOnAzure
2019.11.09에 있었던 제주 GDG 발표 슬라이드입니다.
Blog : http://coffeedjimmy.github.io
Cooperation github repo: https://github.com/coffeedjimmy/Pytorch-TensorFlow2-Comparison
네이버 클라우드 플랫폼의 "TensorFlow Server"상품은 TensorFlow를 비롯한 딥러닝 및 머신러닝 패키지와 코드를 작성할 수 있는 웹 기반의 Jupyter Notebook을 제공하여 빠르게 딥러닝, 머신러닝을 구현할 수 있게 해주는 상품입니다. 해당 온라인 교육을 통해 네이버 클라우드 플랫폼 상에서 Jupyter를 이용해 데이터 분석환경을 구축하는 법을 알아봅니다. | The "TensorFlow Server" product on Naver's cloud platform includes TensorFlow. This product provides a web-based Jupyter Notebook that allows users to write deep learning and machine learning packages and code so that they can quickly implement deep learning and machine learning.In this chapter, we will learn how to build a data analysis environment using Jupyter on Naver's cloud platform.
Machine Learning Model Serving with Backend.AIJeongkyu Shin
머신러닝 모델을 서비스 단에서 서빙하는 것은 손이 많이 갑니다.
서비스 과정을 편리하게 하기 위하여 TensorFlow serving 등 서빙 과정을 돕는 다양한 도구들이 공개되고 개발되고 있습니다만, 여전히 서빙 과정은 귀찮고 불편합니다. 이 세션에서는 Backend.AI 와 TensorFlow serving을 이용하여 간단하게 TensorFlow 모델을 서빙하는 법에 대해 다루어 봅니다.
Backend.AI 서빙 모드를 소개하고, 여러 TF serving 모델 등을 Backend.AI 로 서비스하는 과정을 통해 실제로 사용하는 법을 알아봅니다.
Serving the machine learning model at the service level is a lot of work. A variety of tools are being developed and released to facilitate the process of serving. TensorFlow serving is the greatest one for serving now, but the docker image baking-based serving process is not easy, not flexible and controllable enough. In this session, I will discuss how to simplify the serving process of TensorFlow models by using Backend.AI and TensorFlow serving.
I will introduce the Backend.AI serving mode (on the trunk but will be official since 1.6). After that, I will demonstrate how to use the Backend.AI serving mode that conveniently provides various TensorFlow models with TensorFlow serving on the fly.
Origin Link : http://www.oss.kr/oss_information6/58382
2012년 3월 31일 "제 22회 Open Technet"이 열렸습니다.
다음 커뮤니케이션 한남동 사옥 5층 교육장에서 우분투 커뮤니티와 함께 진행된 제 22회 Open Technet 은 '우분투와 함께하는 공개SW 활용'에 관한 주제로 진행되었습니다.
<session>
'국내 포탈에서의 우분투'
(강사) 다음 커뮤니케이션 최민호(시스템엔지니어)
Boosting machine learning workflow with TensorFlow 2.0Jeongkyu Shin
TensorFlow 2.0 is the latest release aimed at user convenience, API simplicity, and scalability across multiple platforms. In addition, TensorFlow 2.0, along with a variety of new projects in the TensorFlow ecosystem, TFX, TF-Agent, and TF federated, can help you quickly and easily create a wide variety of machine learning models in more environments. This talk will introduce TensorFlow 2.0 and discusses how to develop and optimize machine learning workflows based on TensorFlow 2.0 and projects within the various TensorFlow ecosystems.
This slide was presented at GDG DevFest Songdo on November 30, 2019.
올해 Google I/O에서는 구글의 머신러닝 및 딥러닝 분야에 대한 다양한 접근이 소개되었습니다. 이 발표에서는 Google I/O 2019에서 다룬 머신러닝 세션들을 크게 머신러닝 플랫폼, 머신러닝 클라우드 및 머신러닝 기반의 응용 서비스 확장으로 구분하고, 각각에 대하여 요약해 봅니다. 또한 현재의 발표를 바탕으로 이후의 방향성이 어떻게 될 것인지에 대하여 몇가지 예측을 해 봅니다.
이 슬라이드는 2019년 6월 Google I/O Extended 판교 및 서울에서 발표한 슬라이드입니다.
This talk covers the machine learning activities published during Google I/O.
2018년 8월 19일 PyCon KR 2018에서 오픈소스 교육과 Python을 주제로 발표한 내용입니다.
# 개요
오픈소스 및 오픈소스 개발 방법론은 현대 프로그래밍 개발 및 생태계에서 가장 중요한 축을 담당하고 있다. 전세계 유수의 IT 기업들은 거의 모두 오픈소스를 사용하며, 자체 결과물을 오픈소스로 공개하고 있다. 또한 윈도우 및 맥오에스, 리눅스 및 안드로이드를 비롯한 운영체제들 또한 오픈소스로 개발되거나 또는 오픈소스 커뮤니티 방법론을 이용해 테스트되고 있다.
최근 오픈소스 소프트웨어 및 개발 방법론은 과거 컴퓨터 언어 및 개발 과정과 큰 차잇점이 있다. 가장 큰 차잇점은 네트워크에 의해 가속화된 생태계의 속도이다. 최근 오픈소스 소프트웨어 생태계의 경우 개발 방법론, 기술, 라이브러리 및 프로젝트들이 등장하고 성숙하는 과정에 걸리는 시간이 기존 컴퓨터 생태계에 비해 굉장히 짧다. 따라서 오픈소스 참여 기술보다는 오픈소스 생태계 및 변화의 흐름을 이해하는 것이 더 중요해지고 있다. 따라서 일반적인 대학 교과과정의 타임 프레임을 적용하여 과목을 설계하기에는 무리가 있다.
이 세션에서는 오픈소스 소프트웨어 대학 교육 과정을 설계하고 2년간 강의하며 겪은 다양한 경험을 Python 언어를 중심으로 다룬다. Python은 초기 접근이 용이하여 21세기 초부터 많은 대학이 기초 프로그래밍 언어로 선택하고 있어, 오픈소스 소프트웨어 방법론 교과 과정의 주 언어로 선택하였다. 교과 과정이 지향하는 바는 프로그래밍과 오픈소스 문화 두가지이다. 이를 반영한 교육 과정 설계 시 주의한 점들과, 2년간의 경험 끝에 잘못 생각한 것으로 판단하게 된 몇가지에 대해 간단히 소개한다.
오픈소스 소프트웨어 교육 과정에서는 초반부 오픈소스의 역사, 문화에 대해 학습한 방법과, Python 기반의 오픈소스 프로젝트 진행 과정에서 경험한 다양한 사례 및 장단점에 대해 소개한다. 개발 과정에서는 GitHub을 이용한 협업, 오픈소스 소프트웨어를 무에서 시작하거나 포크해서 시작하는 과정, 공동 작업에서의 PEP 준수의 중요성, 컨트리뷰터,커미터,메인테이너 결정 및 운영과, 팀 내 충돌, 그리고 Code of Conduct를 만들었던 과정을 차례로 설명한다. 또한 배포 패키지 개발을 위해 pypi를 사용하고, manpage로 매뉴얼을 준비하는 과정 및 python 패키지 제작시 겪는 몇몇 허들에 대해서도 소개한다.
마지막으로 과정에서 동기 부여에 대해 고민한 여러 생각 및 경험과 함께, 수업 과정에서 사용한 오리지널 프로젝트 원저자와의 GitHub을 통한 소통 및 오픈소스 경험의 확장 과정을 소개한다.
오픈소스 및 오픈소스 개발 방법론은 현대 프로그래밍 개발 및 생태계의 핵심이 되었습니다. 전세계 유수의 IT 기업들은 거의 모두 오픈소스를 사용하며, 자체 결과물을 오픈소스로 공개하고 있습니다. 지금과 같이 거대 기업들이 오픈소스를 본격적으로 도입하고 공개하기 시작한 역사는 아직 그리 오래되지 않았습니다. 이 세션에서는 특허 및 저작권, 오픈소스의 정의, 오픈소스 저작권에 대한 설명, 오픈소스 저작권의 종류와 함께 오픈소스를 둘러싼 여러 사건 및 변화에 대해 알아봅니다.
이 발표는 2018년 4월 14일 서울에서 열린 TensorFlow Dev Summit Extended Seoul '18 에서 TensorFlow Dev Summit 2018의 발표 내용 중 TensorFlow.Data 및 TensorFlow.Hub에 관한 발표들을 정리한 내용입니다.
This presentation summarizes the talks about TensorFlow.Data and TensorFlow.Hub among the sessions of TensorFlow Dev Summit 2018, and presented at TensorFlow Dev Summit Extended Seoul '18 held on April 14, 2018 in Seoul.
2018년 2월 24일 KCD2018에서 Google Polymer에 대하여 발표한 내용입니다. 이 발표에서는 웹, 하이브리드 앱 및 프로그레시브 웹 앱 개발을 위한 구글의 웹컴포넌트 라이브러리인 폴리머를 쉽고 재미있게 다룹니다. 웹컴포넌트, 폴리머에 대한 소개와 함께 폴리머 2.0의 특징을 소개합니다. 또한 modulizer, TypeScript, yarn, webpack의 도입을 추진하고 있는 폴리머 3.0 알파 버전의 주요변화를 알아봅니다.
이 발표에서는 TensorFlow의 지난 1년을 간단하게 돌아보고, TensorFlow의 차기 로드맵에 따라 개발 및 도입될 예정인 여러 기능들을 소개합니다. 또한 2017년 및 2018년의 머신러닝 프레임워크 개발 트렌드와 방향에 대한 이야기도 함께 합니다.
In this talk, I look back the TensorFlow development over the past year. Then discusses the overall development direction of machine learning frameworks, with an introduction to features that will be added to TensorFlow later on.
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Jeongkyu Shin
summary
Chatbot is the underlying technology of an interactive interface. One of the problems to be solved for popularization of chatbots is the unnaturalness of inhuman conversation. This presentation introduces the process of implementing emotion status reading based on Python 3 for human conversation implementation, and the experience of simulating the emotional state of the bot itself, with the demonstration. We also share the problems and solutions we encountered in implementing the emotional models.
개요
챗봇은 대화형 인터페이스의 기반 기술이다. 챗봇의 대중화를 위해 해결해야 할 문제중 하나는 비인간적 대화에서 오는 부자연스러움이다. 이 발표에서는 인간적인 대화 구현을 위하여 Python 3를 기반으로 감정 상태 읽기를 구현한 과정과, 봇 자체의 감정 상태를 시뮬레이션한 경험을 데모와 함께 소개한다. 또한 감정 모형을 구현하는 과정에서 만났던 문제들 및 해결 방법을 공유한다.
상세
챗봇은 대화형 인터페이스 및 음성 인식과의 결합을 통한 무입력 방식 인터페이스의 기반 기술이다. 챗봇은 고객상담 서비스 분야부터 온라인 구매, 디지털 어시스턴트 등의 다양한 분야에 널러 사용되며, 텍스트 기반의 메신저부터 음성 인식 기반의 스마트 스피커등의 인터페이스를 통해 빠르게 보급되고 있다. 이러한 챗봇의 대중화는 최근 머신러닝을 기반으로 한 자연어 처리 기술의 성능 향상과, 딥러닝 분야의 발전에 힘입어 가능해진 end-to-end 모델 구현에 기술적으로 큰 영향을 받았다.
챗봇이 응용되는 분야가 넓어지고 다양한 분야에서 챗봇 서비스 및 사업이 성장함에 따라 '불편한 골짜기 ' 라고 불리는 비인간적 대화에서 오는 피로 문제가 점차 대두되고 있다. 비인간적 대화가 가져오는 피로는 사용자 경험 및 이용 지속성에 영향을 크게 미친다. 따라서 이 문제는 대화형 디지털 어시스턴트의 대중화 과정에서 어렵지만 우선적으로 해결해야 할 과제들 중 하나가 되었다.
감정 모형은 비인간적 대화를 벗어나 자연스러운 대화를 구현하기 위한 몇 가지 방법 중 하나이다. 이 발표에서는 Python 3를 기반으로 감정 상태 읽기를 구현하고, 감정상태를 시뮬레이션하는 과정에 대한 경험과 접근 방법을 소개한다. Python의 NLTK 패키지를 이용하여 감정 사전 데이터를 생성한다. 그 다음 기존 대화 데이터를 Python 3 및 Pandas를 이용하여 초벌가공한다. 가공한 데이터를 이용하여 wordvec 공간을 정의한다. Wordvec 공간의 각 단어에 감정 데이터를 이용해 만든 태그를 붙여 적절한 위상 공간을 정의한다. 이후 실시간 대화에서 들어오는 단어들을 일정 단위로 입력하여, 현재 화자의 감정 상태 및 감정 변화를 추적한다. 이후 봇의 감정을 담당하는 기계학습 모형을 만들어 학습시키고, 봇의 현재 감정에 따라 답변 문장을 변경하거나 기타 인터페이스를 통해 어필하도록 구현한다. 최종적으로는 봇 인터페이스 및 재미있는 인터페이스 아이디어와 함께 묶어 대화를 시연한다.
이 과정에서 겪은 문제들 및 해결 방법을 함께 소개한다. 우선 NLTK 패키지를 기반으로 감정 사전을 만드는 과정과, 감정 사전 인덱스를 한국어에 맞게 커스텀하는 과정을 설명한다. 그리고 감정 상태를 정의한 공간에서 봇의 감정 변화가 실제 인간과 다르게 심하게 튀는 문제를 고려하는 방법을 설명한다. 다양한 문제들의 해결 방법과 함께, 실제 서비스를 위해 멀티 모드 모델 체인에 컨텍스트 엔진 및 대화 엔진과 감정 모형을 연결하는 과정을 재미있는 데모와 함께 공유하고자 한다.
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)Jeongkyu Shin
기술적 배경이 없는 창업자가 기술이 필요한 창업을 하려고 할 때 중요한 내용은 무엇일까요? 스타트업에 필요한 기술들과, 창업시 고민할 방향을 안내합니다.
2017년 4월 27일 구글캠퍼스 서울의 Campus For Moms 에서 발표한 슬라이드입니다.
What is important when a founder who does not have a technical background wants to start a business that requires technology? It introduces the technologies necessary for start-up, and directions to worry when starting a business.
This slide is for invited talk of Campus For Moms on April 27, 2017 at Google Campus Seoul.
9. 머신러닝 관련 요약
▪기반 (infrastructure) / 소프트웨어
▪TensorFlow
▪ TensorFlow 1.2 → 1.3
▪TPU
▪ 2nd Generation TPU
▪ CloudTPU
▪Android O
▪ TensorFlow Lite
▪서비스 / 제품
▪Image-based breakthrough
▪ Google Photo
▪ Google Lens
▪ Visual positioning service
▪Android Things
▪ Google Home
▪ Google IoT
▪TensorFlow + Everyone
▪ Google for Jobs
▪Firebase + TensorFlow
13. 머신러닝 관련 요약
▪기반 (infrastructure) / 소프트웨어
▪TensorFlow
▪ TensorFlow 1.2 → 1.3
▪TPU
▪ 2nd Generation TPU
▪ CloudTPU
▪Android O
▪ TensorFlow Lite
▪서비스 / 제품
▪Image-based breakthrough
▪ Google Photo
▪ Google Lens
▪ Visual positioning service
▪Android Things
▪ Google Home
▪ Google IoT
▪TensorFlow + Everyone
▪ Google for Jobs
▪Firebase + TensorFlow
14. TensorFlow 요약
▪통계
▪2015년 12월 이후 17500 이상의
커밋수
▪475명 이상의 구글 외부 기여자
(v1.0 기준)
▪상당한 양의 외부 커밋
▪6400개 이상의 TensorFlow 관련
저장소
▪현재
▪완전한 ML 모델 프로토타이핑
▪분산 훈련 지원
▪CPU/GPU/TPU/모바일 환경 지원
세션 레퍼런스: Effective TensorFlow for Non-Experts
15. TensorFlow 요약
▪Keras API support
▪추상화를 통한 고급 프로그래밍 API 도입
▪TensorFlow Serving
▪텐서플로 모델 추론 서비스를 쉽게 해 주는 도구
▪XLA compiler
▪다양한 환경 지원 및 속도 향상을 위한 개선
18. TensorFlow Serving
▪C++ 라이브러리
▪TensorFlow 모델 저장 / 내보내기 포맷: protocol buffer
▪일반 코어 플랫폼
▪바이너리
▪바로 쓸 수 있는 예제 포함
▪Docker 컨테이너, K8s 예제
▪호스팅 서비스
세션 레퍼런스: From Research to Production
21. 머신러닝 관련 요약
▪기반 (infrastructure) / 소프트웨어
▪TensorFlow
▪ TensorFlow 1.2 → 1.3
▪TPU
▪ 2nd Generation TPU
▪ CloudTPU
▪Android O
▪ TensorFlow Lite
▪서비스 / 제품
▪Image-based breakthrough
▪ Google Photo
▪ Google Lens
▪ Visual positioning service
▪Android Things
▪ Google Home
▪ Google IoT
▪TensorFlow + Everyone
▪ Google for Jobs
▪Firebase + TensorFlow
22. TPU: Tensor Processing Unit
▪2세대 TPU 공개
▪1세대 TPU
▪ 일반 CPU&GPU 보다 15~30배 빠름
▪ 30~80배의 전성비
▪ 추론 과정에 특화 (훈련에 쓰지 않음)
▪2세대 TPU
▪ 180테라플롭스의 FP 성능
▪ 64GB의 엄청 높은 대역폭의 메모리
▪ 훈련 및 추론 모두를 위해 디자인
▪ 상호 연결이 가능하도록 설계
세션 레퍼런스: TensorFlow Frontiers
27. 머신러닝 관련 요약
▪기반 (infrastructure) / 소프트웨어
▪TensorFlow
▪ TensorFlow 1.2 → 1.3
▪TPU
▪ 2nd Generation TPU
▪ CloudTPU
▪Android O
▪ TensorFlow Lite
▪서비스 / 제품
▪Image-based breakthrough
▪ Google Photo
▪ Google Lens
▪ Visual positioning service
▪Android Things
▪ Google Home
▪ Google IoT
▪TensorFlow + Everyone
▪ Google for Jobs
▪Firebase + TensorFlow
28. Android O와 TensorFlow
▪TensorFlow 모바일 보급 활성화 방안
▪TensorFlow Lite 내장
▪ 별도의 환경 설치를 앱마다 할 필요가 없음
▪ 운영체제 차원의 하드웨어 가속 지원
▪XLA 기반의 최적화 제공
▪ 다양한 프로그래밍 언어에 바인딩 가능
세션 레퍼런스: Android meets TensorFlow
42. 머신러닝 관련 요약
▪기반 (infrastructure) / 소프트웨어
▪TensorFlow
▪ TensorFlow 1.2 → 1.3
▪TPU
▪ 2nd Generation TPU
▪ CloudTPU
▪Android O
▪ TensorFlow Lite
▪서비스 / 제품
▪Image-based breakthrough
▪ Google Photo
▪ Google Lens
▪ Visual positioning service
▪Android Things
▪ Google Home
▪ Google IoT
▪TensorFlow + Everyone
▪ Google for Jobs
▪Firebase + TensorFlow
43. 머신러닝 관련 요약
▪기반 (infrastructure) / 소프트웨어
▪TensorFlow
▪ TensorFlow 1.2 → 1.3
▪TPU
▪ 2nd Generation TPU
▪ CloudTPU
▪Android O
▪ TensorFlow Lite
▪서비스 / 제품
▪Image-based breakthrough
▪ Google Photo
▪ Google Lens
▪ Visual positioning service
▪Android Things
▪ Google Home
▪ Google IoT
▪TensorFlow + Everyone
▪ Google for Jobs
▪Firebase + TensorFlow
44. Google Lens
▪센서 기반의 위치 정보 서비스
▪이미지+지역 정보+추천 검색
▪실시간으로 현재 위치의 정보 파악
▪이미지 기반의 POV 정보 추적
▪추천기능
세션 레퍼런스: Google I/O Keynote
47. 머신러닝 관련 요약
▪기반 (infrastructure) / 소프트웨어
▪TensorFlow
▪ TensorFlow 1.2 → 1.3
▪TPU
▪ 2nd Generation TPU
▪ CloudTPU
▪Android O
▪ TensorFlow Lite
▪서비스 / 제품
▪Image-based breakthrough
▪ Google Photo
▪ Google Lens
▪ Visual positioning service
▪Android Things
▪ Google Home
▪ Google IoT
▪TensorFlow + Everyone
▪ Google for Jobs
▪Firebase + TensorFlow
48. Google Home
▪다중 사용자 구분 (신경망 기반의 빔포밍 / 유저 인식 기술)
▪더 많은 도구 및 기기들과의 통합 지원
▪중요한 점
▪Google Home은 구글이 보여준 하나의 예에 해당된다
▪실질적으로 중요한 전략 목표는 Google Assistant API 를 통한 디지털 어시스
턴트의 대중화에 방점을 찍고 있음
49. 세션 레퍼런스: Using Google Cloud and TensorFlow on Android Things
사용자가 원하는
모든 컨텐트나 서비스들
구글 어시스턴트가
제공
사용자가 필요한
모든 장소
50. Android Things
▪임베디드 및 저스펙 환경을 위한
안드로이드 배포판
▪HW 프로토타이핑 업체 제휴
▪Adafruit
▪Pimoroni
▪Sparkfun Project Kit
▪개발킷, BSP 등 제공
▪Intel® Edison
▪Intel® Joule
▪NXP Pico i.MX7D
▪NXP Pico i.MX6UL
▪NXP Argon i.MX6UL
▪Raspberry Pi 3
51. 세션 레퍼런스: Using Google Cloud and TensorFlow on Android Things
52. Google Assistant API
▪Hotword 라이브러리
▪Hotword
▪타이머
▪알람
▪하드웨어
▪라즈베리파이 3B
▪하나 또는 두개의 마이크
▪스피커
▪인터넷 연결
▪gRPC API
▪클라이언트/서버 API RPC 콜
▪ TCP/IP가 되면 지원
▪최소화된 계산
▪최소화된 전력 소모
▪거의 모든 플랫폼에서 실행됨
▪ TCP/IP가 되면 지원
▪오픈소스 샘플 코드 제공
▪ 플랫폼: Linux, macOS, Windows, Android, iOS
▪ 언어: C/C++/C#, Go, Python, Node.js, PHP,
Ruby
53. 기기에 어시스턴트 추가
세션 레퍼런스: Using Google Cloud and TensorFlow on Android Things
54. AIY Voice Kit
▪자연어 인식기
▪Google Assistant SDK 사용
▪스피커, 버튼, 마이크, 카드보드 박스
▪라즈베리파이 3
세션 레퍼런스: Using Google Cloud and TensorFlow on Android Things
56. Google Assistant SDK
▪공개 예정 기능
▪개선된 음성 기반 컨트롤
세션 레퍼런스: Using Google Cloud and TensorFlow on Android Things
57. 세션 레퍼런스: Using Google Cloud and TensorFlow on Android Things
호출 실행 경로
58. 요약
▪기반 및 소프트웨어
▪소프트웨어: TensorFlow를 중심으로 모바일부터 거대 연산 클러스터까지 다양한 스케일
의 머신러닝 보급 및 헤게모니 장악 준비
▪하드웨어 및 클라우드: TPU를 이용하여 가성비 및 스케일링에 집중
▪서비스 / 제품
▪구글 번역, 구글 포토: 머신러닝을 통한 기존 서비스 및 제품의 정확도 향상
▪Google Lens: 머신러닝이 가장 강력한 힘을 발휘하는 이미지 영역의 응용 서비스
▪DIY 키트 및 Android Things Assistant API를 내세운 디지털 어시스턴트 전략
▪ 제 2의 카드보드