1. 緣起
近日和公司同學(xué)分享了推薦系統(tǒng)的構(gòu)建曹步、策略朝氓、算法等相關(guān)內(nèi)容魔市。由于課程長度緣故,來不及和大家實(shí)踐一下赵哲,如何實(shí)現(xiàn)一個(gè)簡單推薦系統(tǒng)的CTR預(yù)估模型嘹狞。于是,課后想分享一個(gè)基于Jupyter Notebook的demo誓竿,發(fā)現(xiàn)居然一時(shí)間找不到國內(nèi)可以用于分享磅网、協(xié)作、運(yùn)行的機(jī)器學(xué)習(xí)平臺(tái)筷屡。通過google找到了幾個(gè)一站式的機(jī)器學(xué)習(xí)平臺(tái)涧偷,它們的特點(diǎn)都是基于Jupyter Notebook 構(gòu)建的簸喂,都能夠在上面開發(fā)、調(diào)試燎潮、訓(xùn)練喻鳄、運(yùn)行、分享機(jī)器學(xué)習(xí)相關(guān)的代碼集和數(shù)據(jù)集确封。
1.1 Jupyter NoteBook
首先回顧介紹Jupyter Notebook除呵,根據(jù)官網(wǎng)的介紹,Jupyter是一種可以允許用戶創(chuàng)建爪喘、分享代碼颜曾、公式、可視化等富文本的web 應(yīng)用秉剑。用戶通常在上面做數(shù)據(jù)清洗泛豪、數(shù)據(jù)轉(zhuǎn)換、數(shù)值計(jì)算侦鹏、統(tǒng)計(jì)建模诡曙、機(jī)器學(xué)習(xí)等等÷运可以說Jupyter是數(shù)據(jù)科學(xué)家最常用价卤、最好用的工具之一,可以快速的對(duì)數(shù)據(jù)處理渊涝、可視化慎璧、建模,可以說是數(shù)據(jù)科學(xué)的事實(shí)標(biāo)準(zhǔn)編輯器了驶赏。
1.2 免費(fèi)平臺(tái)資源
平臺(tái)名稱 | 計(jì)算核心 | 核心運(yùn)行時(shí) | 內(nèi)存 | 存儲(chǔ) | 支持語言 |
---|---|---|---|---|---|
google colab | CPU 2cores /GPU tesla k80s 1core/TPU 8cores | 12個(gè)小時(shí) | 12G | 50G | py2,py3 |
kaggle kernel | CPU 4 cores/GPU 2cores | 6個(gè)小時(shí) | 16G/12G | 1G | py2,py3 |
Azure Notebooks | 未知 | 未知 | 4GB | 1G | py2,py3,R,F# |
一般而言炸卑,你用GPU訓(xùn)練一個(gè)模型,平臺(tái)提供的內(nèi)存資源會(huì)相應(yīng)減少一些煤傍。在一些評(píng)測(cè)中盖文,google的GPU比TPU性能稍微強(qiáng)勁些◎悄罚總體而言五续,Google colab更加適合較為大型的模型的訓(xùn)練。
1.3 收費(fèi)平臺(tái)資源
不同的平臺(tái)有不同的收費(fèi)標(biāo)準(zhǔn)龄恋,基本上可以看做是函數(shù)計(jì)算的云服務(wù)在售賣疙驾,本質(zhì)上比 AI as services 底層一點(diǎn),基礎(chǔ)收費(fèi)方案郭毕,大約在一個(gè)月10刀左右它碎。
floydhub
如下圖所示,可以看到,主力方案扳肛,基本提供100G存儲(chǔ)傻挂,使用的是NVIDIA的Tesla K80或者V100.但是需要注意這些資源都是搶占式的,運(yùn)行時(shí)可以長達(dá)7天挖息,一般能用上完整的GPU金拒,內(nèi)存在60G左右。
paperspace
如下圖所示,paperspace使用的內(nèi)核和內(nèi)存方案類似于floyhub套腹,但是有一定GPU并發(fā)绪抛,以及notebook的限制。
當(dāng)然电禀,你還可以購買一臺(tái)GPU Server 部署直接的Jupyter notebook幢码。amazon,google,azure都有自己方案,那么價(jià)格就遠(yuǎn)貴于AI as service的供應(yīng)商服務(wù)啦鞭呕。
2.Google Colab
google colab 是以上介紹平臺(tái)中蛤育,最適合個(gè)人開發(fā)者的宛官。它不僅僅是提供切實(shí)可用的計(jì)算葫松、存儲(chǔ)資源,它的文件是默認(rèn)存儲(chǔ)在google drive中底洗,也能夠集成GitHub做版本控制腋么。同時(shí)還可以安裝第三方python包,讀寫第三方的數(shù)據(jù)源亥揖,還能很輕松分享notebook文件珊擂。
打開首個(gè)google colab notebook,如下圖所示:
可以通過修改設(shè)置费变,選擇你的代碼運(yùn)行環(huán)境摧扇,google支持py2和py3,硬件加速支持CPU挚歧、GPU扛稽、TPU。
可以通過代碼查看底層所分配的硬件資源滑负。
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
可以通過 google colab 的庫在张,上傳本地文件。文件會(huì)臨時(shí)存儲(chǔ)在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是很好的一站式機(jī)器學(xué)習(xí)平臺(tái),值得信賴痴鳄、使用瘟斜。google colab擁有的能力遠(yuǎn)超文章所列舉,只待各位good coding~