天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker...

42
透過 Golang 無痛建置機器學習聊 天機器人 Evan Lin @ Linker Networks

Transcript of 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker...

Page 1: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

透過 Golang 無痛建置機器學習聊天機器人

Evan Lin @ Linker Networks

Page 2: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

About Me• Cloud Architect @ Linker

Networks

• Golang User Group - Co-Organizer

• Top 5 Taiwan Golang open source contributor (github award)

• Developer, Curator, Blogger

Page 3: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Three chatbots

Page 4: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

First: Build a line chatbot within 3 minutes

Page 5: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

How to choose programming language for Chat Bot?

• Easy to Write

• Fast in Run and Compile

• Powerful Concurrency

• Powerful Built-in Toolchain

Page 6: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Go Go Powe Ranger

Page 7: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Line Message API

Page 8: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Deploy Line Bot …. Just one click

https://github.com/kkdai/LineBotTemplate

Page 9: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Let’s Demo ….. on video

Page 10: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

How to deploy Line Bot in 3 minutes

Page 11: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Ok! How can I modify code

Page 12: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

PetNeedMe: 流浪動物領養Line機器人

Page 13: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Second: Build a line chatbot with LUIS.AI

Page 14: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

What is LUIS.AI

Page 15: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Language Understanding Intelligent

台北天氣如何?台北冷

嗎?

台北天

氣好嗎

?

台北天氣怎

麼樣?

台北天空是

什麼顏色?

台北有下雨嗎?

去台北需要帶傘嗎?

Page 16: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

LUIS: Intent and Entity

台北天氣如何?Intent: Check Weather

Entity: Taipei

Page 17: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

LUIS SDKs

Go Version ???

Page 18: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

LUIS Go package

Page 19: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Baby LUIS Chatbot

Page 20: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Total intents

Page 21: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

How to train your baby (chatbot)

Input syntax

Response related activity

Display related intent

Remember selection and train

NO

YES

Has Chatbot Learn it?

Page 22: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

How to train your baby (chatbot)

Input syntax

Response related activity

Display related intent

Remember selection and train

NO

YES

Has Chatbot Learn it?

Page 23: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Daddy, I have learned!

Github: LUIS Go package https://github.com/kkdai/luis Line baby LUIS https://github.com/kkdai/LineBotBabyLuis

Page 24: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Final: Build a line chatbot with deep learning - Tensorflow

Page 25: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Tensroflow Inception Model Graph

Page 26: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

It is so hard to be a data scientist …. until ...

Page 27: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

You got some great books

Page 28: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Or .. you have learn some great courses..

Page 29: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Data Collect Probe & Sensor & Smart GW

Vizualization

Data Process

Data Analysis &Machine Learning DC/OS Spark ML Tensorflow

DC/OS

StorageCassandra

Kafka (Queueing)

Go/Akka (Connector)

Spark (ETL/Streaming)

D3.js

Scikit Learn R

Interactive Dashboard

Jupyter Notebook

Zeppelin

ML Job Scheduler Chronos

HPC (with GPU) server

Storage SDNStorage SDN

Machine Learning Data Flow

Page 30: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Serving Pre-build Models (1)

Page 31: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Serving Pre-build Models (2)

Image Serve image to inception model

Predict resultResponse result

github: https://github.com/kkdai/LineBotAnimal github: https://github.com/kkdai/tf-go-inception

Page 32: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Let’s ask about some animal

Page 33: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Even more...

Page 34: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Lots of models here ..

Page 35: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Other tensorflow models (1)

https://github.com/tensorflow/models/tree/master/im2txt

Page 36: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Other tensorflow models (2)

https://github.com/tensorflow/models/tree/master/transformer

Page 37: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Don’t let your imaginations limits you

Refer: http://www.butterlion.com.tw/

Page 38: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

歡迎訂閱 碼天狗

http://weekly.codetengu.com/

Page 40: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

iThome Gopher Day 2017/06/29 北科大集思中心 (Call for speaker)

Page 41: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Linker is hiring

Cloud Platform Engineer- Kubernetes, DCOS- Golang- DevOps

Page 42: 天機器人 透過 Golang 無痛建置機器學習聊 · About Me • Cloud Architect @ Linker Networks • Golang User Group - Co-Organizer • Top 5 Taiwan Golang open source contributor

Live Demo