1. 緣起
近日和公司同學分享了推薦系統的構建、策略、算法等相關內容。由於課程長度緣故,來不及和大家實踐一下,如何實現一個簡單推薦系統的CTR預估模型。於是,課後想分享一個基於Jupyter Notebook的demo,發現居然一時間找不到國內可以用於分享、協作、運行的機器學習平臺。通過google找到了幾個一站式的機器學習平臺,它們的特點都是基於Jupyter Notebook 構建的,都能夠在上面開發、調試、訓練、運行、分享機器學習相關的代碼集和數據集。
1.1 Jupyter NoteBook
首先回顧介紹Jupyter Notebook,根據官網的介紹,Jupyter是一種可以允許用戶創建、分享代碼、公式、可視化等富文本的web 應用。用戶通常在上面做數據清洗、數據轉換、數值計算、統計建模、機器學習等等。可以說Jupyter是數據科學家最常用、最好用的工具之一,可以快速的對數據處理、可視化、建模,可以說是數據科學的事實標準編輯器了。
1.2 免費平臺資源
平臺名稱 | 計算核心 | 核心運行時 | 內存 | 存儲 | 支持語言 |
---|---|---|---|---|---|
google colab | CPU 2cores /GPU tesla k80s 1core/TPU 8cores | 12個小時 | 12G | 50G | py2,py3 |
kaggle kernel | CPU 4 cores/GPU 2cores | 6個小時 | 16G/12G | 1G | py2,py3 |
Azure Notebooks | 未知 | 未知 | 4GB | 1G | py2,py3,R,F# |
一般而言,你用GPU訓練一個模型,平臺提供的內存資源會相應減少一些。在一些評測中,google的GPU比TPU性能稍微強勁些。總體而言,Google colab更加適合較爲大型的模型的訓練。
1.3 收費平臺資源
不同的平臺有不同的收費標準,基本上可以看做是函數計算的雲服務在售賣,本質上比 AI as services 底層一點,基礎收費方案,大約在一個月10刀左右。
floydhub
如下圖所示,可以看到,主力方案,基本提供100G存儲,使用的是NVIDIA的Tesla K80或者V100.但是需要注意這些資源都是搶佔式的,運行時可以長達7天,一般能用上完整的GPU,內存在60G左右。
paperspace
如下圖所示,paperspace使用的內核和內存方案類似於floyhub,但是有一定GPU併發,以及notebook的限制。
當然,你還可以購買一臺GPU Server 部署直接的Jupyter notebook。amazon,google,azure都有自己方案,那麼價格就遠貴於AI as service的供應商服務啦。
2.Google Colab
google colab 是以上介紹平臺中,最適合個人開發者的。它不僅僅是提供切實可用的計算、存儲資源,它的文件是默認存儲在google drive中,也能夠集成GitHub做版本控制。同時還可以安裝第三方python包,讀寫第三方的數據源,還能很輕鬆分享notebook文件。
打開首個google colab notebook,如下圖所示:
可以通過修改設置,選擇你的代碼運行環境,google支持py2和py3,硬件加速支持CPU、GPU、TPU。
可以通過代碼查看底層所分配的硬件資源。
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
可以通過 google colab 的庫,上傳本地文件。文件會臨時存儲在content目錄下。
from google.colab import files
uploaded = files.upload()
for fn in uploaded.keys():
print('User uploaded file "{name}" with length {length} bytes'.format(
name=fn, length=len(uploaded[fn])))
for name, data in uploaded.items():
with open(name, 'wb') as f:
f.write(data)
print ('saved file', name)
簡而言之,google colab是很好的一站式機器學習平臺,值得信賴、使用。google colab擁有的能力遠超文章所列舉,只待各位good coding~