[研討會心得] 20190917 Chatbots 12 at 天瓏書局 Coding Space

前言

大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。這次很開心受到 chatbot 社群的邀請,參加了 “Chatb10ts meetup 聊天機器人小小聚 12 @ 天瓏書局 Coding Space” 的聚會活動,並且分享 LINE API 更新與個人開發的心得。在此也跟各位分享本次參與的心得,並且也希望透過社群分享的力量能夠讓聊天機器人的開發動能更加的盛大。

  • 社群 Chatbots Meetup: https://chatbots.kktix.cc/
  • 本次活動網頁: 活動網址
  • 本次活動的共筆紀錄: https://beta.hackfoldr.org/chatbot/

由於 Chatbots Meetup 本身屬於社群自主性的活動,裡面也有許多社群朋友所贊助的閃電秀。裡面的所有內容也是相當的難得與有趣。也希望能夠透過本篇文章讓大家稍微了解 Chatbots Meetup 社群閃電秀的魅力。

LINE Platform Update 201909 / 資深開發技術推廣工程師 Evan Lin

投影片

本次的分享主要是跟大家分享一下近期平台的相關更新,希望能讓大家第一時間的到最清楚的相關消息。

###Flex Message 更新

在 LINE Bot 溝通上, Flex Message 給予了許多的相關設計彈性,不僅僅可以設計出許多特殊訊息。想要設計閱讀卡,菜單甚至是小卡片訊息都是可以的。這一次的更新則帶來更多強大的更新,包括了服飾展示卡片,交通行程規劃卡片,甚至是代辦事項跟工作記錄卡片都可以顯示。 其他部分歡迎了解相關文章

LINE Developer Document 支援繁體中文

(網頁: LINE Login overview)

LINE 持續在開發者關係與改善開發者文件持續努力,目前也於近期在 LINE Developer Document 特別提供中文內容,協助開發者更快掌握 LINE 開發相關資訊! 目前涵蓋主題包含:LINE Login, Messaging API, Bot Designer。

Stay Tuned! 更多中文化內容,敬請期待!

LINE SDK 4.x 將在 2019/12/12 End-of-life

LINE 平台功能提供了許多有用的功能,不僅僅可以讓電商網站可以使用,更可以讓 Client App 來作為使用。不論是 LINE Login ,還是一些傳訊給 LINE 好友的相關功能,不論你是使用 iOS 或是 Android 系統的行動裝置開發者都可以使用。 為了提供更安全,確保開發者都能使用最新版本的開發套件,不久前已經聲明 LINE SDK 4.x 即將棄用 (deprecated) 。 現在即將在 2019/12/12 之後就正式停止支援 LINE SDK 4.x ,並且正將相關文件與下載的鏈結都移除。 請開發者們儘早將使用的套件升級。以下的相關文件也會做適當的修改與移除:

更多相關內容:

開放群眾參與的即時訊息查證系統 Cofacts 真的假的 / LAE - 郭冠宏 ggm

投影片

第二場則是由 LINE API Expert - ggm 郭冠宏所帶來關於 Cofacts 的架構分享。 Cofacts (真的假的 LINE ID: @cofacts)的出發來自於太多的民眾對於不確定的新聞消息的轉傳,造成不必要的過度恐慌或是不實訊息的散佈。 Cofacts 的運作流程如下:

  • 在聊天室收到轉傳訊息 (Receive message in chatroom)
  • 轉傳給 Cofacts (Forward to Cofacts)
  • 取得查證資訊 (Get auto-response)
  • 轉傳回原聊天室 (Forward back to source chatroom)

而整個系統有分成兩大塊平台,一個是使用者回報與收到編輯審核結果的回覆。另外一個則是負責協助審核新聞資訊的編輯系統。大致上架構圖如下:

雖然看似單純的回覆流程,但是由於回覆之後還會牽扯到回報的使用者覺得有沒有正確。使得整體設計上需要加上一個 “狀態” (state) 的設計,也使得整個使用者回覆的訊息流程變得需要更多的調整與優化。

這整張系列圖敘述了使用者轉傳新聞後可能出現的相關狀態圖,也很建議讓其他開發者來了解一個希望有使用者回覆與貢獻的互動溝通介面中需要多少的狀態敘述圖。很建議大家好好的閱讀這篇投影片的內容。

聊天機器人與社群經營 / 撒景賢

講者主要分享透過 Chat Bot 經營生酮飲食社團的經驗談。

Chatbot UX 設計經驗法則與案例分享 / 溫明輝

相關文章

最後則由國立台北商業大學商業設計與管理系副教授溫教授來幫大分享 Chatbot UX 設計經驗法則與案例分享。身為兩個在 LINE 上面相當成功的 LINE Bot - 微股力與記帳雞產品的幕後指導教授,溫教授分享了許多在 Chatbot 的特性與 Chatbot UX (User Experience) 設計上需要注意的地方。 以下紀錄幾個重點:

App 成功無法直接複製

  • LINE bot 可以主動提醒
  • 群組效應

Chatbot 使用者某些時不是來聊天

  • 舉凡記帳機或是微股力使用者重要不是來聊天,可能有某些使用目的性。
  • 聊天功能很多時間才是提醒使用者的用處(尤其在群組內,有趣的回覆有效提醒使者)

擬人化 / 機器主張

  • TaxiGo 主要就是將功能完整呈現,而不是要擬人化。
  • Chatbot 應該要讓使用者能夠使用為主。

讓使用者擁有主導權

  • 減少 User 抗拒
  • 避免封鎖

不需要追求介面簡潔性

需求滿足 -> 友善互動 -> 愉悅的體驗

就算使用介面困難,但是能滿足根本的需求。才是使用者最在意的事情。

避免一視同仁的廣播訊息

  • 擴展使用者興趣
  • 但是推播會引發封鎖率,所以要減少一視同仁的推播。
  • 優化視覺呈現的內容(透過使用者的分眾,標記)

用 UI 補償 AI

  • AI 目前發展雖然迅速,但是還是有限制。
  • 但是可以使用

Chatbot 是無所不在的意識

  • Mini App
  • 語音輸入

這些 UX 的設計重點都相當有用,有興趣的讀者也歡迎在文章裡面尋找更多相關資訊。

閃電秀

講解完了主要三個講者之後,接下來就是介紹這個社群最有魅力的部分就是閃電秀。所有的閃電秀可以參考這篇共筆文章 https://beta.hackfoldr.org/chatbot/ ,由於都是五分鐘的閃電秀,主要內容快速用條列介紹給各位:

  • LINE BOT 市容幫手 / 班班
    • 投影片
    • 簡介:
      • 講者分享了一個在台北市行政區內一個透過 LINE 想要幫助里長們在市容上面的小幫手。因為許多里長都習慣透過 LINE 來跟台北市行政區的相關首長直接回報問題,有時候難免有遺漏或是效率不好的問題。這個機器人就是為了解決這個問題而生的,而講者是希望可以找到更多跟他一起想要幫忙解決這個問題的人。
  • Modern web 閃電秀 - 肌肉仔 / NiJia

  • 叉出一個開放的在宅醫療社群 / fly
    • 投影片
    • 簡介:
      • 這也是一個尋求一起來幫忙開發的閃電講,台灣在宅支援診所聯盟 ( http://i.hsca.me/ ) 希望可以透過在宅診所的計畫來尋求許多願意幫忙開發的熱心人士。希望可以讓偏遠地區的民眾可以透過 LINE Bot 來獲得更多的醫生資訊與相關資訊的服務。 歡迎一起來參加!!
  • Voice hackathon / Kevin

    • 這一個主要是推薦給大家最近基於 Google Assitant 所舉辦的 Voice Hackathon ,有興趣的可以一起來報名參加。
    • 報名網址: https://www.voicehackathon.org/

活動小結

社群分享永遠是讓創意激盪的最佳方式,而 Chatbots Meetup 是一個很熱情與充滿創造力的社群組織。也希望有更多有創意的開發者願意加入 LINE Chatbot 的開發行列,更希望能熱情的參與社群的活動與一起來分享。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE 開發社群計畫活動時程表 (持續更新)https://engineering.linecorp.com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/)

[研討會心得] 2019/09/05 [email protected]

前提

大家好,我是 LINE Taiwan 的 Technical Evangelist - Evan Lin。在 2019/09/05 的晚上,很開心能夠再邀請 TWJUG 社群來到 LINE 台北辦公室來舉辦社群聚會。這次的講者是 LINE 東京辦公室的 Yoshida Shinya 和 Kafka Summit 2017 擔任過講者的 Yuto Kawamura,講題分別是 ZGC for Future LINE HBase 和 Kafka Broker performance degradation by mysterious JVM pause 。

活動網址: KKTIX: https://twjug.kktix.cc/events/twjug201909

ZGC for Future LINE HBase / LINE Shinya Yoshida

投影片

首先帶來的是來自於 LINE 的同仁專職在負責 HBase 相關處理的 Shinya Yoshida 來分享關於 HBase 在 LINE 上面的相關應用。HBase 是一個廣為使用在 Java 上的 NoSQL 應用,擁有著快速的反應時間與高可用性 ( High Availability ) 。 由於 JVM 在 GC (Garbage Collection) 的處理上會動用到 STW (Stop The World: 也就是中斷存取的動作來做 GC ) ,這在對於需要大量連線與高效能的處理應用上是相當困擾的。 本篇演講就是分享相關的效能調校與觀察心得, 一開始講者先分享關於 Gargage Collection 的相關類別與種類。

首先講者分享 GC 有兩階段主要的處理:

  • Finding the garbage:
    • 解釋:
      • 也就是要先將可以回收的記憶體資源標記成 Garbage 。
    • 應用演算法:
      • 分為兩種主要方式,一個是透過 Counting Reference 也就是對於變數的使用做計數,做為可以回收的標記。另一種則為標記( Mark ) 也就是針對資料的相關使用方式透過樹狀結構來整理,如果沒有相關連的變數,代表該變數可以被回收的可能性就相對的高。
  • Collect the garbage and defrag :
    • 解釋:
      • 接下來就是回收記憶體資源後,整理破碎可用的記憶體空間。
    • 應用演算法:
      • Sweep/Compaction:
        • 先將可以回收的記憶體回收之後,將剩下不連續的記憶體整理過後變成連續可使用的記憶體。
      • Copy:
        • 相較於前一個方式, Copy 則直接使用一整個新的記憶體空間。直接將可以使用的連續性的記憶體複製過去。這樣比較消耗記憶體空間,但是對於效能上相較得比較快速。

這張圖講解了許多近期的 GC 演算法,在對於 DeFragment 的處理上都是使用 Copy 的方式,雖然比較消耗記憶體但是速度相對的快。針對這些方式可以看到有不少的 GC 演算法可以選擇, G1GC, ZGC 跟 Shenandoah 跟以往的 Old GC 。 而在 GC 的選擇方向上講者有以下以些方向可以推薦給大家參考:

  • 了解每個 GC 的優缺點。

  • 針對你的應用程式(服務)的硬體設施來挑選 GC。

裡面有許多的使用參考值得各位讀者去細看,這裡容我直接分享相關結果給各位。針對效能的比較上,講者最後挑選了 ZGC 跟 G1GC 來做一些比較,結果如下:

針對這樣的結果,可以看出來在不同的硬體設備(記憶體配置上) G1GC 與 ZGC 會有不同的效能呈現。可以看得出來在記憶體比較大的 (128G) 的配置下, ZGC 具有比較好的更新與讀取的效能。這樣的配置也跟 LINE 的服務應用上能夠呼應得上。 但是由於 HBase 在 Java 11 上面的 ZGC 還依舊是實驗階段( Experimental ) 所以在 LINE 的內部僅僅作為效能的測試使用,也將會通過更多的實驗與測試之後正式上線後再分享相關結果給各位。

Kafka Broker performance degradation by mysterious JVM pause / LINE - Yuto Kawamura

投影片

這一段則由 LINE 的資深工程師 Yuto Kawamura 分享一段曾經在正式上線服務所發生問題的除錯過程。 Kafka 在 LINE 的訊息後臺上佔有相當重要的地位 ,超過了六十個以上的服務都有使用 Kafka(可以參考這篇投影片) 。 而講者分享一個當初 Kafka 上面發生的問題,並且解釋整個如何除錯的過程。

現象/問題

原本每個 Kafka 訊息都是相當的順暢,但是忽然有一段時間發生了以下狀況: Response time degration for 99th %ile produce ,變且造成 zookeeper session timeout 。

接下來開始分析發生問題的時候,幾個相關的現象:

  • 發現每一個運行的 threads 的使用率暴增
  • GC Time (STW) 增加,在 JVM 裡面環節來分析發現 Garbage Collection 運作的時候所產生的系統停頓 (STW) 時間區段也變長了。

開始縮小範圍

透過這些結果,講者分享了他的偵錯經驗。首先他做了一個假設: 懷疑是 JVM 系統層的某些事件造成系統過慢。並且試著想要 Reproduce 一樣的環境。

這邊要解釋一下,關於 STW 的運作方式,運作 GC 的 STW 會做兩件事情首先是設定 safepoint 也就是告訴 JVM 要開始做 GC 了,這時候系統會等每一個運作的 thread 慢慢暫停,這個叫做 safepoint sync

而這時候的要來測試看看事不是 JVM safepoint sync 造成太多的時間浪費,使用的方式是寫一段很長的巢狀迴圈來避免系統太早執行 safepoint sync 。接下來透過觀測的方式來卻是自己的假設是否正確,同時也觀測是否能夠正確的重現問題。

這邊的內容相當精采,歡迎大家好好的了解投影片的內容。整個過程就是作者不斷透過假設,撰寫測試工具來試著重現問題。最後再透過一些底層觀測工具來確認自己的假設是否正確。

最後的問題是什麼? 讓筆者賣個關子,歡迎大家好好閱讀投影片來一起了解這個偵錯系統底層的 Kafka 效能問題的真相。

參考資料

活動小結

這一次聚會的內容相當的精彩,而且都是深入 JVM 系統的底層的介紹與除錯經驗。相信帶給每一位參加的人一個精彩的知識饗宴,也歡迎大家多了解投影片的內容一起來討論。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE 開發社群計畫活動時程表 (持續更新)https://engineering.linecorp.com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/

[研討會心得] 20190829 NAVER x LINE AI-Rush 2019 總決賽心得分享

什麼是 AI RUSH

大家好,我是 LINE Taiwan 的 Technical Evangelist – Evan Lin。去年於日本東京舉辦的 LINE DEVELOPER DAY 2018 會中,LINE 技術長朴懿彬以「Next LINE」定調 LINE 在技術上的發展願景,其中人工智慧、區塊鏈,與金融科技三大領域的相關技術,將扮演舉足輕重的角色,並以兩大關鍵字「串連(Connect)」與「互惠生態圈(Mutually Beneficial Ecosystem)」點出實現「Next LINE」所帶來的具體價值,讓 LINE 的服務持續進化。

為了探索 AI 的更多可能,並為 AI 開發社群提供一個切磋交流的平台,LINE 將首次與南韓市占第一的搜尋引擎 NAVER 聯手舉辦以人工智慧為主題的跨國黑客松「AI RUSH 2019」。「AI RUSH 2019」官方網站:https://ai-rush.com/

活動過程:

(圖片截至於 AI-Rush 官方網站)

整個 AI-Rush 活動分成兩個大部分,線上初賽與線下的決賽。 首先線上的初賽題目為「圖像分類 (Image Classification)」的題目,參賽者必須在 08/13 之前送出第一個階段的解法,最後經過挑選出最後的決賽隊伍,前往韓國春川的 NAVER Connect One 進行總決賽。

經過了第一階段的激烈競爭之後,透過第一階段的結算分數選出了總共三十個隊伍。要出發前往韓國來進行總決賽。 這次很開心台灣有四個隊伍進入了決賽,我也在韓國的仁川機場一路的陪伴他們往總決賽的場地勇敢邁進。

NAVER Connect One 總決賽:

08/26 全員到齊

08/26 當天在仁川機場迎接台灣的四隊代表隊伍後,就直接驅車前往位於韓國北方春川的 NAVER Connect One 的決賽場地。第一天到了當地其實已經是傍晚了,稍作休息後,我們就直接到餐廳來吃晚餐。

NAVER Connect One 的餐廳其實相當的乾淨,並且有專門的人員幫忙打理所有參賽者的餐點。在這邊的餐飲讓比賽的夥伴相當的安心與滿足。 吃完了晚餐過後,不少隊伍回到房間開始討論明後天的工作分配與相關準備,可以看得出來每一個參賽夥伴都躍躍欲試的樣子。

當然活動的特製貼紙與 LINE Developer 貼紙也是不會少。會場四周都有提供滿滿的貼紙讓參賽者可以自由地取用。當然也有不少本次活動特製的 “AI RUSH 2019” 的貼紙。

08/27 正式開工

“AI is the new black” 是這一次比賽的 Slogan 也是取自於 MIT Technology Review 2017 的文章。也就是代表著 AI 就是這個時代中最令人興奮與讓人覺得最跟得上時代的。 這也是 AI-Rush 想要參與的人都能感受到的。

這個會場是這次主要 AI-Rush 總決賽的 Hacking 的場所,在這個光線充足並且舒適的場地討論其實相當的棒,外面並且有供應源源不絕的甜點,飲料跟泡麵,讓每一個參賽的夥伴可以專心的討論與思考該如何尋找出最適合的運算方式。 就算是晚上或是半夜你都可以到這個會場中找到食物與參賽者來討論。 第一天的晚上就聽到有不少的團隊夥伴,因為半夜想吃點宵夜,於是到了會場跟大家一起 Hacking 。除了可以找靈感,也可以跟不少參與的夥伴來相互認識。

Quiz Game

在兩天一夜的 Hacking 過程中,每一個參加隊伍都相當的緊繃,全部人都相當嚴肅的面對的電腦螢幕。為了讓每一個參與的夥伴可以除了 Hacking 也能夠盡情地參與討論與互動。 主辦單位在 10:00, 14:00, 16:00, 20:00 與 22:00 都有安排小測驗 (Quiz time) ,並且在每一個 Quiz 的獲勝者都有機會可以得到相當珍貴的相關贈品。 這樣的小測驗除了可以讓每一個參賽的隊伍稍微放鬆心情之外,也可以吸引更多的參賽者在會場跟其他隊伍的互動。 讓整個活動相當的生動有趣。

小測驗的形式分為以下數種:

Quiz: 小挑戰

“剪刀,石頭,布” 這是一個很有趣的互動遊戲,也是一個讓台下的辛苦參與者可以伸展身體。透過主持人手舉起來玩猜拳遊戲,必須要贏過主持人(如果平手也被視為是淘汰),才能晉級。剩下最後的幾位才有機會來前面領取相關的贈品。

也有其他有趣的小挑戰:

  • 看兩張圖片找出不同的點。
  • 猜猜圖片是誰的照片。
  • 一些關於 LINE 的小歷史。

這些小活動的設計,除了可以讓會場的參與夥伴們有相關的互動之外,也紓解了競賽所產生的緊張氣氛。讓每個參賽者可以更認真的面對問題。

Treasure hunting

img img

除了有趣的小 Quiz 之外也有尋寶遊戲。主辦單位在活動會場周圍與餐廳的四周有隱藏有一些小紙條,只能能夠找到這些小紙條,也可以在每天的結尾前跟主辦單位來兌換相關贈品。 所以可以看到許多的參加隊伍除了在會場 Hacking 之外,也可以看到他們在會場與餐廳的周圍不斷地尋找相關的“寶藏“,畫面相當的有趣。

贈品

為了讓參賽者更能夠盡情享受互動的 Quiz 與 Treasure Hunting ,主辦單位的贈品準備的相當豐富。 想必每一位參賽者應該都收穫滿滿的。

08/28 名次揭曉與頒獎

激烈的競賽總是有揭曉的一天,最終恭喜來自於日本的團隊獲得了第一名的殊榮,第二名來自於東京大學的同學而第三名則是來自於韓國的同學。 這三個團隊也都樂於分享,也都在台上分享了如何分析資料,並且透過對於資料的了解方式來分享得到高分的技巧。

08/29 放鬆之旅

最後一天為了所有的參賽者安排了輕鬆的行程,工作人員們安排了韓國的鐵道自行車旅遊。整段旅程有接近兩個小時的放鬆行程,除了可以觀賞漂亮的鐵道風景之外,也有一些隧道有獨特的感受。每一個參賽者也都放鬆下盡情的享受韓國美麗的風景。

午餐則是選擇有名的春川雞,在具有風味的韓國餐廳之內享受韓國春川的風味餐點。每一個參加者都告訴我三天的行程下來,除了寫程式 Hacking 之外,大概就是不斷的吃東西。不論是 NAVER Connect One 的美食,小餐點甚至到了最後一天的春川雞。每一個參賽者都感受到主辦單位的用心與韓國的美食。

活動小結

一整個月的活動,最終選出了來自全世界的三十對決賽隊伍。三天密集的總決賽除了感受到每一個參賽團隊的熱情,更可以感受到大家對於追求最佳數據模型的專注與不妥協。 每一個團隊都希望到了最後一刻還可以想出更好的數據模型來解決使用者的問題,來尋求資料背後真正代表的意義。 我想這也是 AI-Rush 想要每一個參賽者能夠獲得的,更期待下一次與每一個參賽團隊見面的機會。

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年LINE 開發社群計畫活動時程表 (持續更新)https://engineering.linecorp.com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/)**

[研討會心得] GopherCon2019 心得分享 - How Uber Goes (1)

前提

偷個懶來看一下 GopherCon 2019 ,順便了解幾個有趣的議題。

GopherCon 2019: Elena Morozova - How Uber Goes

Youtube

最近 GopherCon 2019 的影片陸續上架了,歡迎大家記得去查看。一起來了解一下今年最新的分享。 今天分享一下這一場我覺得很不錯的題目,就是 How Uber Goes 。
Uber 工程師分享了從 2015 年之後導入了 Golang 之後遇到的幾個常見問題:

  • 建立大量的新服務。
  • 經常要切換不同的服務開發。 (Context Switching)
  • 要交付全球化的服務。

而解決方式則是透過以下三種方式:

  • Dependency Injection
  • Consistent Code Structure
  • Monorepo

由於這些問題,所以 Uber 內部首先為了方便建立不同新的服務而開發了 Dependency Injection Library - fx ( https://github.com/uber-go/fx ) ,透過 fx 開發不同新服務也變得更加的方便。 接下來有提到如何將每個不同服務會使用到的架構做一致性的架構設計,讓不同的服務之間程式碼能夠變得更好維護。最後透過 Monorepo (也就是所有的代碼都在一個很大的 repository 上面,而不是個別專案中) ,在套件版本的更動上也變得更加的方便(可以一個 commit 幫大家更新)。

Refer:

  • https://github.com/uber-go/fx

  • https://godoc.org/go.uber.org/fx

  • https://eng.uber.com/tag/uberfx/

  • https://www.youtube.com/watch?v=LDGKQY8WJEM

[Coursera] How Google does Machine Learning

Machine Learning with TensorFlow on Google Cloud Platform 系列上課心得

  • How Google does Machine Learning (本篇文章)
  • Introduce Tensorflow

How Google does Machine Learning 課程鏈結: 這裡

文章鏈結:

  • 課程僅有一個禮拜。本篇文章。

前言:

這是第二次的 [ML Study Jam 培訓計劃] 的免費課程,也是可以透過免費學習的經驗來拿取 Tensorflow T shirts 的計畫,當然我是不會錯過的。但是這次的課程是透過 Coursera 來完成,所以整體的課程上比重變得比較多,而且需要有更多影片與相關課程內容的討論。

課程大綱:

第一週主要都是 Machine Learning 經常會遇到的問題,以及 Google 在這方面是如何解決的。算是比較簡單的常識,這裡就不贅述。幾個需要注意的部份如下:

  • 許多在實驗室產生的數據模型 (model) 拿到實際上線無法正確使用,是因為資料的產生方式。不夠新,不夠實際。最好的改善方式是透過批次建立模型與 streaming data。

  • 這邊有討論到一些建立數據模型的時候,如果發現效果不夠好的時候應該要如何處理。一些建立的方式有:

    • 找出尚未發現的影響力特徵( Feature ),將其加入。
    • 增加適當的訓練數據。

到後半段主要介紹在 Google Cloud 裡面的一些基礎運用,由於大部分東西重複性有點高,在這裡就不贅述。

小結:

整篇課程算是相當的基本,不小心選錯了。就當作是複習吧!

Reference:

[TIL][Golang] 如何在你電腦上安裝嘗鮮版本的 Go(lang)

Go 1.13rc1 在 08/22 推出,裡面包含了一些新的功能讓人想試試看。但是僅僅想要測試新的語言功能卻不希望更改工作環境的設定。這裡提供一個新的方式,就是直接將最新版本到 Go binary file 下載,而不直接替換你工作環境。

Download Go binary by using go get

透過 go get golang.org/dl/go1.13rc1 的指令(後面也可以快速更換成任何你需要的版本),你就可以下載安裝檔案在你的 $GOBIN 下,透過執行 go1.13rc1 download 就會下載完整的執行檔案。 預設的安裝路徑會是 /Users/YOUR_NAME/sdk/go1.13rc1/ 。 之後就可以透過 go1.13rc1 直接嚐鮮最新版本的功能。

安裝多個版本的 Compiler

透過這樣的方式,你也可以快速的安裝多個版本的 Go(lang) binary 來做相關的 regression testing 或是跑一些 performance benchmark 。以下為一個簡單的範例來安裝舊版本的 Go 1.11 :

  • go get golang.org/dl/go1.11
  • $GOBIN/go1.11 download

希望這些能幫助到大家,一起來嚐鮮吧!!