2022年11月2日 星期三

Google Machine Learning Community Summit 2022 活動速記

照片來自Sakon


這次在疫情之後,第一次實體到訪泰國參與 Google 所舉辦的ML Community Summit 2022 這個活動一連舉辦兩天,從中間可以學習最新的產品的訊息,包含最新產品資訊包含Vertex AI、JAX, TPU, 圓桌討論、Team building活動等

加入Google Developer Expert Program之後,最多的收穫就是跟來自不同國家的交流,這次出席的開發專家有來自印度、韓國、土耳其、美國、英國、新加坡、臺灣、摩洛哥、巴西、義大利、哥倫比亞、法國、馬來西亞(按照簡報順序排序)等國家。




第一天見面禮超讚

照片來自Sakon

開場的時候我們的ML計畫主持人,幫大家準備了驚喜,就是Jeff Dean 幫大家親自簽名的論文,真的很榮幸能夠拿到他親自發表的論文以及簽名

照片來自Sakon

照片來自Sakon

真的很棒。


接著就是陸續專家分享機器學習當紅議題,當然目前Google Cloud上面最流行的機器學習工具是Vertex AI,Google邀請了AI Platform Core的專家,從MLOps的角度做了完整的介紹,以及產品的發展方向,當然這個有簽NDA就不能透露太多,總之Vertex AI會是一個雲端在機器學習上會很便利的工具,當然這要結合GCP才能發揮對應價值,

有興趣可參閱 這個網址與影片

Vertex AI 

https://cloud.google.com/vertex-ai

What is Vertex AI? 

https://youtu.be/gT4qqHMiEpA

如果您想要自己弄一個,當然也有開源的,可以參考Google開源的Kubeflow, TFX

https://www.kubeflow.org/

以及

https://www.tensorflow.org/tfx

kubeflow + TFX + JupyterLab再搭配基礎設施,就能弄一個類似的東西,就端看我們要快速便利,還是要自己弄,Jerry老師認為能否自己弄的關鍵,應該就是團隊強不強,再來就是管理工具要自己花時間設計與開發囉。


接著是現在Google DeepMind團隊用很兇的JAX,您可以想像他是Python Numpy當中的進階版,因為它可以直接支援GPU跟TPU,Jerry老師在讀書會中有一個簡單分享,請參閱這裡

https://youtu.be/SllsasgVntg

以現行的各種AI演算法,最吃重的運算資源,需要快速的透過程式碼去操控,但是目前很多框架都是包起來,所以都要透過工具去觀察狀況,但是不一定能夠做很快速的修改,Jerry老師認為JAX的強項在於,把很多要做深度學習的事情函式化了,像是vmap可以輕鬆實現向量化的操作,把很多維度的工作處理得很簡單,還有很多其他像是jit、grad等功能,網路上有人寫了鐵人賽

https://ithelp.ithome.com.tw/users/20129616/ironman/5220

有興趣可以參考一下

最後就是TPU,這個高技術含量的議題,大家都知道AI在算力上一直都是一個重要的議題,因為所有模型除了「訓練」之外,連「推論」基本上都已經要GPU進行,在這次活動,Jerry老師看到了Google對TPU研發的實力,包含即將推出的Cloud TPU v4,可以超過250 teraflops(萬億次浮點運算每秒),重點是耗電量比原來2018年推出的Cloud TPU v3還少了30%~40%真的很不容易,處理頻寬可以到PB等級,實在是很讓人期待。

有興趣的朋友可以看這部影片

Cloud TPU v4: Fast, flexible, and easy-to-use ML accelerators

https://youtu.be/W7A-9MYvPwI

中午Jerry老師就跟一群來自印度的朋友一起吃飯,分享自己的心得。

照片來自Sakon

下午就是輪流報告GDE在各國的狀況以及自己的動態等

照片來自Sakon

再來就是圓桌會議,討論未來大家的方向

照片來自Margaret

照片來自Sakon

第二天我們參觀了泰國幾個重要的廟宇以及運河,很開心跟來自Hugging Face的專家Merve還有Margaret以及幾個同車的各國朋友一起互動,最開心的是拿到了遠從法國搭飛機過來的貼紙,Merve她是Hugging Face的法國NLP專家

照片來自Jerry


大家可以到這裡看到她的風采

https://huggingface.co/merve

https://www.youtube.com/watch?v=IBaDGxgY3Po

https://github.com/merveenoyan

以及跟一樣自然語言專業的新加坡同行交流了虛擬人的市場與技術

照片來自Sakon


最後我們有一個完美的合照

照片來自Sakon

跟各國專家互動交流,除了可以學習到不同的國家文化、談吐、價值觀,更可以了解全球大家對於機器學習這個技術的發展看法,以及最新的做法,最後恭喜下面中間這位印度朋友Sayak正式加入Hugging Face成為Developer Advocate Engineer。

照片來自Jerry

您也可以在這裡看到Sayak,他也是一個知名的ML專家

https://sayak.dev/

https://youtu.be/Q6BqBlUN8Lc

Hugging Face儼然已經成為機器學習的中立國家,大家快點加入台灣的Hugging Face群組

https://huggingface.co/TFUGT

為台灣爭光:D

最後也很榮幸認識Margaret,她也算是相當活躍的ML專家,同時具備藝術專長,可以到這裡看到她資訊 https://margaretmz.art/

還有來自英國的NLP專家Grigory 剛好要在2023年出全球第一本JAX的書,有興趣也可以參考一下

https://www.manning.com/books/jax-in-action

對JAX想研究可以參考他的medium

https://moocaholic.medium.com/jax-a13e83f49897


請大家加入台灣Google開發者社群行列

https://developers.google.com/

還有關注全球的開發者活動

https://developers.google.com/community/devfest

如果對Google專家計畫有興趣可以參考這裡

還有太多資訊可以說了,但是工作太多,只能說收穫滿滿,只好改天找機會再跟大家分享囉。

下次見!








2022年6月9日 星期四

Google IO 2022必須知道的十件事

今年Google IO 2022在AI 上必須知道的十件事

 

大家好我是Jerry老師,已經有一段時間因為公司忙碌沒發文,今天要跟大家分享的是關於今年Google在Google I/O的活動上分享最近透過AI方法做的十件事,特別在Google產品上都透過AI做了許多附加價值的事情,包含在Google翻譯、Google地圖、Youtube、Google Meet、Google Doc、Google搜尋、 Google助理、 Google手機、Google眼鏡等9種產品上,全文參考內容來自於這裡

 

今年的開頭讓Jerry老師覺得很棒,因為疫情、環境的關係,Google做了很多對社會有很大幫助的事情,像是「預測洪水的預警時間,發送超過2300萬則的災害警報給印度的民眾」,「透過翻譯技術協助烏克蘭人跟波蘭人能夠互相溝通」,「協助彙整全球Covid-19的照護資訊,有超過20億人次使用來找附近診所」,「透過Google手機發送數億條的空襲訊息讓烏克蘭人能夠避難」,這些都是對社會非常有幫助的事情。





接下來Jerry老師彙整了Google IO上10件必須要知道的事

 

1.     Google翻譯能夠自主學習新的語言



過去學習語言翻譯是採用雙語學習(Bilingual learning),像是英文轉西班牙文,他就要有對應的英文跟西班牙文,但是全世界語言很多,不一定每個語言轉換都有成對的訓練資料可以用。Google的團隊發表了一種做法叫單語學習(Monolingual learning)這種方法可以在Zero-Resource的情況下去學習新的語言翻譯,使用了Transformer-based的模型架構與半監督學習(Semi-supervised)的方式,學習了24種新語言的翻譯,包含阿薩姆語(Assamese)、林加拉語(lingala)、米佐语(Mizo)等。

 

細節請參閱文章


 


 

 

2.     Google Map建立最佳環保路徑

 



Google也透過機器學習的技術,提出了eco-friendly的概念,自動生成最佳的環保路徑提供給使用者使用。


細節請參閱文章


 

 

3.     Youtube能夠提供自動章節分段功能


能夠自動透過機器學習的方式去分析影片中的內容,進行自動分段的工作,這個技術解決了影片過長,但是使用者想分段去觀賞的問題,同時也可以提升搜尋的效率與結果。

 

 

4.     Google Meet自動加亮


在Google Meet上 也透過機器學習的方式去做了畫面加亮、去背、增強背景等功能


5.     Google Doc 自動摘要功能

這是一個很特別的機器學習技術,在影片中可以看到包含了自然語言理解(NLU)、資訊壓縮(IC)、自然語言生成(NLG)等技術,可以讓Google文件能夠有自動摘要的功能,方便使用者能夠先閱讀摘要掌握文本資訊。當然主要先從英文的會議記錄開始,但是可以想得到未來大量的文本閱讀上,在Google文件上面可以變得非常方便。 

 

6.     Google搜尋可以用照片作為搜尋關鍵字



混合搜尋(Multi search)是一個重要的技術,突破了過去搜尋只能用文字處理,過去我們曾用過以圖搜尋、以文搜圖的方式去獲取資訊,但是今年Google搜尋將會提供用圖+文字的混合搜尋的方式,可以把圖片當作文字的一部分,搭配文字進行搜尋。

 

 

7.     Google助理可以透過擬人化的方式喚醒與互動



Google助理變得更擬人化了,過去我們使用音箱上面會常常會不小心喚醒音箱服務,但是現在音箱多了視覺辨識功能,我們可以用「Look and Talk」的功能,用看然後再說話的方式,喚醒音箱,想像就是對人講話的方式來做互動。

 

詳細請參閱影片


 

 

8.     更強大的自然語言理解模型PaLM


去年Google才出了LaMDA,今年又出了一個PaLM,事實上Google希望能夠打造出跨語言的自然語言理解模型,這個PaLM能夠處理的自然語言理解任務又更多了,Jerry老師將會再另外找時間去做比較深度的分享,基本上應該會出現在Google Devfest的活動上,敬請期待!


 

9.     Google手機自動檢測車禍、自動撥打緊急電話


在影片中介紹不少Google手機、手錶應用,讓我印象深刻的是自動檢測車禍、自動撥打電話功能,請參閱影片來感受一下這個技術對於人們有多大的幫助

 

詳細請參閱影片


 

 

10.  Google眼鏡與翻譯的結合



 

最後是Google測試中的產品,目標也是在希望能夠讓人與人溝通能夠更加便利,透過這個Google眼鏡,能夠做快速翻譯的動作,透過分析雙方的聲音,能夠直接在眼鏡上用自己習慣的語言做互動,對於語言不通的兩個人,可以做有效率的溝通。


詳細請參閱影片


 


以上做簡單分享,供大家參考!




2020年10月17日 星期六

如何透過TensorFlow建構負責任的AI系統-DevFest 2020

今天的devfest2020 活動非常精彩,感謝大家的參與


今天主要分享如何透過TensorFlow以及Google相關的技術, 建立可解釋AI(Explainable AI)與具備負責任的AI(Responsible AI),並且打造具備負責任的機器學習機制, 包含從界定問題、建構及準備資料、建構與訓練模型、 評估模型、部署與監控等流程,運用的工具像是 Tensorboard、Embedding Projector、What-If Tool等, 協助大家了解機器學習的近期新發展方向。

附上活動的簡報與相關連結。



1.演講簡報

2.機器學習與應用

3.更多了解TensorFlow

4.RAI with TensorFlow

5.直播回放網址

2020年7月26日 星期日

機器學習 x 19 種產業應用|快速找出最佳演算法

非常興奮能夠跟大家分享Jerry老師的最新線上課程。



這堂課程叫做「機器學習 x 19 種產業應用|快速找出最佳演算法」,有鑒於大家對於機器學習的落地還充滿很多問題,因此Jerry老師特別把過去的經驗整理成課程,幫助大家了解機器學習如何在19種產業實現。

不過課程還沒開放之前,有一份問券需要懇請各位讀者幫忙填寫
https://www.surveycake.com/s/Zq4k7

以利Jerry老師強化課程內容
也謝謝大家支持喔!



2020年5月15日 星期五

五分鐘學會使用TPU訓練BERT自然語言模型





大家好我是Jerry老師,這篇帶來了五分鐘學會系列,主要跟大家分享如何在GCP上採用TPU來訓練自然語言模型,整個過程不包含「訓練時間、主機設定與安裝時間」只需要五分鐘就可以幾行指令就可以完成訓練操作。



首先大家必須要有GCP帳號,只要有申請Gmail,就可以快速開通。目前有300元美金免費試用,所以不用擔心費用,開通請往這裡



有了主控台之後,就可以開始玩了。
在主控台畫面,點選「新增專案」

接著可以會有一個自動產生的專案名稱,我們可以自己輸入,但是要記得輸入的名稱。
像是我在自動產生的名稱前後加上jerry跟tpu。

接著回主控台,在畫面右上角,開啟「Cloud Shell」



1.接著輸入以下參數
export PROJECT_NAME=jerry-project87630-tpu(注意這是剛剛我設定的ID)
請在紅字修改自己剛剛開的專案名稱

2.執行下面指令
gcloud config set project ${PROJECT_NAME}

3.建立bucket-name,這是Google專門存放資料的技術,我取的跟ID一樣好了
gsutil mb -p ${PROJECT_NAME} -c standard -l europe-west4 -b on gs://jerry-project87630-tpu
一樣請在紅字修改自己剛剛開的專案名稱


接著就正式開啟TPU囉
請輸入下面指令,這邊我的TPU名稱設定jerry,大家照貼即可。
ctpu up --tpu-size=v3-8 --name=jerry --machine-type=n1-standard-8 --zone=europe-west4-a --tf-version=2.2
這邊採用的是最新TensorFlow2.2版本
看到下面畫面,打 y 即可


接著會看到下面畫面,這是TPU建立過程。

接著進入我們剛剛設定好的TPU機器,執行下面指令
gcloud compute ssh jerry --zone=europe-west4-a
中間如果看到以下畫面,看到這幾行直接按Enter即可。

接著設定環境參數,執行下面指令
export TPU_NAME=jerry

設定BUCKET位置,這個跟前面設定一樣

export STORAGE_BUCKET=gs://jerry-project87630-tpu
一樣請在紅字修改自己剛剛開的專案名稱


然後安裝執行這次實作的套件
sudo pip3 install -r /usr/share/models/official/requirements.txt

最後就剩兩個步驟,設定以下環境參數

export PYTHONPATH="${PYTHONPATH}:/usr/share/models"
(vm)$ export BERT_BASE_DIR=gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16
(vm)$ export MODEL_DIR=${STORAGE_BUCKET}/bert-output(vm)$ export GLUE_DIR=gs://cloud-tpu-checkpoints/bert/classification(vm)$ export TASK=mnli

接著跑模型,執行下面指令

python3 /usr/share/models/official/nlp/bert/run_classifier.py \
  --mode='train_and_eval' \
  --input_meta_data_path=${GLUE_DIR}/${TASK}_meta_data \
  --train_data_path=${GLUE_DIR}/${TASK}_train.tf_record \
  --eval_data_path=${GLUE_DIR}/${TASK}_eval.tf_record \
  --bert_config_file=${BERT_BASE_DIR}/bert_config.json \
  --init_checkpoint=${BERT_BASE_DIR}/bert_model.ckpt \
  --train_batch_size=32 \
  --eval_batch_size=32 \
  --learning_rate=2e-5 \
  --num_train_epochs=3 \
  --model_dir=${MODEL_DIR} \
  --distribution_strategy=tpu \
  --tpu=${TPU_NAME}

看到下面畫面,表示跑成功囉,大約一小時之後會有結果,中途如果要中斷,就按Control+z

因為TPU非常貴,所以下面就是關閉的程序

首先離開VM
exit

接著確認目前的TPU有哪些還在執行
ctpu list

接著刪除指定的TPU,剛剛我設定的TPU名字是jerry,在下面畫面按 y 就可以刪除TPU囉!

ctpu delete jerry



目前的Google TPU費用,不同區域與等級都有不同價格
平均一個小時1塊到9塊美金不等

目前如果採用標準TPU-V2 約5塊美金,約156元台幣,跑一天差不多3800左右。
跑一個月就是11萬多,如果用好一點TPU-V3 約8塊美金,跑一個月17萬。
感謝文章的TPU費用是由Google雲端贊助的費用(GCP credit supported activity)。


以上是這篇文章跟大家分享透過TPU如何跑BERT模型,以及費用成本估算,感謝收看。



2020年3月30日 星期一

五分鐘掌握2020的TensorFlow新發展-機器學習公平性指標篇


這次的TensorFlow的2020年研討會還有正式公開的工具叫做公平性衡量指標(Fairness Indicators),這個是非常進階的機器學習工具。而公平性衡量指標(Fairness Indicators)是近年機器學習有關公平性研究熱門的研究領域,主要用於二元、多分類的機器學習題目。

過去的評估工具在大量數據集、大量的模型的情境下處理都不太好,Google需要十億個客戶系統上運作一個穩定的機器學習模型評估工具就變得非常重要。該工具評估的項目會包含:數據的分佈、模型的性能、多個不同參數下的表現。




上述的影片就是Google介紹如何透過公平性衡量指標(Fairness Indicators)概念實現公平的機器學習。

ML Practicum: Fairness in Perspective API相關的課程
https://developers.google.com/machine-learning/practica/fairness-indicators

在也指出幾個很重要的機器學習問題

從上圖上來觀察可以看到機器學習在各個流程上
包含從定義問題、準備資料、建立模型、部署、迭代的過程
都會出現人的主觀行為,進而影響到學習的偏差。


因此Google提出了一個機器學習公平性研究的工作流程


包含透過Tensorflow的資料驗證工具、模型分析工具、互動式視覺化工具來達到
改善機器學習有人類偏差的問題。


在這些介紹後,大家一定很好奇工具會有哪些。
首先這個必須學會TensorBoard,這個工具以前主要是用來視覺化模型的表現,在2.0之後功能就變得非常的多元。理解了TensorBoard(TensorFlow視覺化)之後,就可以理解以下的工具:

Tensorflow Data Analysis (TFDV):主要用於分析數據集的分佈。
Tensorflow Model Analysis (TFMA):主要用於分析模型的效能、也包含公平性指標可以分析不同模型表現。
The What-If Tool (WIT):主要透過互動的方式分析模型。

光說明沒有範例不夠看,所以請透過下面連結,可以直接到工具的範例中去深讀內容。
Tensorflow Data Analysis (TFDV)

Tensorflow Model Analysis (TFMA)

What-If Tool Dashboard

以上就是機器學習關於TensorFlow在公平性指標的簡單介紹。

2020年3月20日 星期五

五分鐘掌握2020的TensorFlow新發展-TF_Hub模型篇

想要免費的預訓練模型(Pre-trained Model)或演算法嗎?這裡通通都有。

這次的TensorFlow研討會還有正式公開的工具叫做TensorFlow Hub,裡面目前為止累積 472 個(2020/03)模型可以使用,大致上分為圖片(Image)、文字(Text)、影片(Video)
三種資料類型的模型,而且在裝置上面支持基本的TensorFlow之外,也包含TF.js、TFLite、Coral。

首先我們可以進入這裡 https://tfhub.dev/


接著就可以根據自己需求挑選模型,譬如說筆者這兩年流行的BERT,挑選bert_cased_L-12_H-768_A-12這個版本



接著可以看到幾個功能
1.下載模型離線使用(Download Model)
2.打開Colab觀看範例(Open Colab Notebook)



如上圖,如果我們選擇2.直接看範例,則可以執行Run all(如上圖範例),就可以進一步了解模型運作結果,以這個範例為例是以BERT去分類電影評論的情緒分析。


接著再往下看像是



透過Overview了解模型功能
透過Example use直接使用模型
透過Inputs、Outputs了解輸入與輸出

特別注意的是每一個模型都會有輸入、輸出的樣態
所以資料在設計上要注意輸入的類型或格式

這樣就可以直接享用模型囉,在未來不一定是資料科學家
只要了解概念與用途,就可以直接使用模型。


最後就是Google TensorFlow Hub也支持上架模型,只要四個步驟
1.建立模型
2.打包模型
3.撰寫文件
4.上架
詳細請參閱這裡
https://github.com/tensorflow/hub/tree/master/tfhub_dev




未來的趨勢就是,大家可以貢獻模型,提升全球在資料科學上的模型交流,筆者覺得是一個很棒的事情。


2020年TensorFlow相關文章:
五分鐘掌握2020的TensorFlow新發展-TF_Hub模型篇
五分鐘掌握2020的TensorFlow新發展-生態圈篇