人工智能即服務(wù)(AI as a Service)是一種由第三方對外提供的人工智能服務(wù)。即第三方公司依托云計算的優(yōu)勢,把人工智能軟硬件資源作為一項服務(wù)對外提供,使用企業(yè)和公司可以購買這項服務(wù)來滿足自身需求。
人工智能即服務(wù)對提供方和使用方都是有利的。對于提供方來說,人工智能作為一種新型的服務(wù)需求,在不久的將來具有很廣闊的市場前景,提供方可以把人工智能服務(wù)作為自己的主要業(yè)務(wù),采購一批人工智能硬件設(shè)備,部署相應(yīng)的人工智能服務(wù)器,規(guī)范管理和高效利用這些軟硬件資源,對外提供來創(chuàng)造收入。
另一方面,使用方不需要采購高昂的人工智能硬件設(shè)備,搭建自己的人工智能平臺,便能使用人工智能服務(wù),可以更加專注于公司的主要業(yè)務(wù),而不是成為某個方向的人工智能專家。由于人工智能作為一項服務(wù)對外提供,使用方可以評估和對比多個提供方的多個人工智能方案,在降低購買成本的同時,也能使用更符合自身要求的解決方案。最后人工智能即服務(wù)可以提高使用方的戰(zhàn)略靈活性,在企業(yè)發(fā)展的各個階段制定不同的人工智能計劃方案,針對性地使用不同的人工智能服務(wù),既能滿足階段性的需求,也可以降低企業(yè)風險。
人工智能即服務(wù)通過web形式為用戶提供人工智能服務(wù)。用戶將本地數(shù)據(jù)上傳至服務(wù)器,按照數(shù)據(jù)訪問的頻率分別存放在不同的物理存儲單元中,既可降低數(shù)據(jù)存儲費用,也可以提高存儲介質(zhì)資源的利用率。
此外,人工智能服務(wù)的提供方支持多平臺和多語言的選擇,例如亞馬遜支持Caffe、PyTorch、CNTK、Tensorflow等多種平臺使用,微軟支持C#、Python、Java和Ruby等多種語言的使用。
模型在服務(wù)器進行訓(xùn)練,使用方可以通過Web控制臺查看訓(xùn)練日志來掌握模型運行時的變化情況,查看后續(xù)預(yù)測結(jié)果來分析模型的性能優(yōu)劣,還可以直接修改特定的超參數(shù)來繼續(xù)調(diào)整和優(yōu)化模型,最后將訓(xùn)練好模型封裝為API接口進行調(diào)用。
人工智能作為一項服務(wù)對外提供,不同的提供方其收費方式亦不同。以谷歌、亞馬遜和微軟三家為例,下表1是其收費的異同點。
本章節(jié)簡要列出谷歌、亞馬遜、微軟三大主流人工智能即服務(wù)提供商的服務(wù)體驗,可以看出人工智能即服務(wù)使用主要包含以下幾個步驟:
(1)開通賬戶,綁定必要的支付通道。
(2)選擇存儲,確定訓(xùn)練和測試數(shù)據(jù)。
(3)在云端訓(xùn)練模型。
(4)調(diào)用云端服務(wù)接口。
表1 廠商收費異同點
(1)開通方式
第一步,打開Google Cloud Platform,登錄Google賬號,填寫個人信息。然后新建項目,填寫項目名字和存儲位置。
第二步,打開“storage”界面,新建一個Bucket,填寫存儲介質(zhì)的名字和默認存儲類別,以及選擇介質(zhì)所在的物理地址。
第三步,打開“home”界面,點擊“激活Cloud Shell”,輸入命令創(chuàng)建一個Cloud TPU資源,這個Cloud TPU會使用對應(yīng)版本的TensorFlow作為機器學習的框架,當Cloud Shell的“username@project”變成“username@tpuname”之后,表示成功登錄。
(2)訓(xùn)練和測試過程,以MNIST數(shù)據(jù)為例
第一步,在Cloud Shell輸入命令下載并解壓MNIST數(shù)據(jù)集,此時數(shù)據(jù)集并不在指定的Bucket中,還需要輸入命令將其上傳到Cloud Storage。
第二步,在Cloud Shell輸入相關(guān)命令運行MNIST模型,包括訓(xùn)練和測試過程。
(3)清除資源
項目完結(jié)需要刪除TPU資源時,首先先斷開與Compute Engine VM的連接,再刪除Compute Engine VM和對應(yīng)的Cloud TPU資源,可以輸入命令查看當前實例信息,檢查上述兩項是否成功刪除,最后刪除存儲空間Cloud Storage Bucket。
(1)開通方式
注冊Amazon Web Services賬號,填寫信息
(2)訓(xùn)練和測試數(shù)據(jù),以預(yù)測購買商品的潛在客戶為例
第一步,從Amazon云服務(wù)官網(wǎng)下載樣本和測試數(shù)據(jù),保存到本地,并上傳數(shù)據(jù)到Amazon S3控制臺。
第二步,在Amazon控制臺上選擇數(shù)據(jù)存放位置,并輸入存儲分區(qū)名字和設(shè)置權(quán)限,最后再輸入數(shù)據(jù)字段信息,完成數(shù)據(jù)源的建立。
第三步,在Amazon控制臺上新建ML模型,輸入ML模型的基本信息和設(shè)置。如果要監(jiān)控模型訓(xùn)練的過程,可以在控制臺設(shè)置模型AUC性能指標;如果要查看潛在用戶為特定比例對應(yīng)的數(shù)值,可以設(shè)置預(yù)測的分數(shù)閾值。
第四步,在使用Amazon ML模型進行訓(xùn)練時,可以生成兩種預(yù)測類型,一個是實時預(yù)測,另一個是批量預(yù)測。對于實時預(yù)測,可以在控制臺上提交一個測試樣本,獲得當前模型的預(yù)測結(jié)果;而批量預(yù)測,可以在控制臺上提交一定數(shù)量的測試樣本并查看其對應(yīng)的預(yù)測結(jié)果。
(3)清除資源
首先在控制臺上刪除樣本數(shù)據(jù)和測試數(shù)據(jù)以及對應(yīng)的temp文件,然后刪除對應(yīng)的批量預(yù)測的數(shù)據(jù),最后刪除訓(xùn)練的ML模型。
(1)開通方式
登錄Azure官網(wǎng)注冊并登錄賬號,使用Jupyter Notebook設(shè)置開發(fā)環(huán)境,導(dǎo)入Python程序包,從config.json獲取信息并連接到工作區(qū),創(chuàng)建遠程計算環(huán)境Azure Batch AI群集作為定型環(huán)境。
(2)訓(xùn)練和測試過程,以MNIST數(shù)據(jù)為例,這里全部使用python代碼,也可以使用C#,Java,PHP和Ruby等
第一步,下載MNIST數(shù)據(jù)集,并保存在本地,然后上傳數(shù)據(jù)到云存儲分區(qū)。
第二步,利用Notebook編寫代碼建立模型和加載數(shù)據(jù)。此時腳本未運行,存儲位置在Azure工作區(qū)。
第三步,創(chuàng)建Azure Batch AI群集對象,包含腳本目錄,腳本所需參數(shù)以及必要的Python包,運行該群集對象創(chuàng)建模型并加載數(shù)據(jù),進行訓(xùn)練和測試。
第四步,在控制臺上可以查看群集運行進度,顯示運行結(jié)果。模型訓(xùn)練完成后,可以注冊模型,用于后期查詢、檢查和部署該訓(xùn)練好的模型。
(3)清除資源
在控制臺上選擇刪除包括集群在內(nèi)的所有資源。
隨著AI技術(shù)的發(fā)展以及用戶需求的增加,人工智能即服務(wù)未來會獲得更大的發(fā)展,會呈現(xiàn)以下一些特點:
(1)人工智能即服務(wù)會成為主流云計算服務(wù)提供商的選擇。人工智能的普及必然會讓更多的用戶嘗試人工智能技術(shù),在初期階段使用云服務(wù)是一種便捷的選擇,無需采購大量物理集群,并且能夠快速體驗人工智能技術(shù)。
(2)支持主流人工智能計算平臺和常用編程語言。不同的用戶習慣的人工智能平臺往往不同,盡管每個云計算服務(wù)提供商有自主研發(fā)或更加擅長的平臺,但考慮到用戶需求,每個云計算服務(wù)提供商還是會提供多種人工智能平臺,并提供多種編程語言供使用。
(3)使用者相對碎片和輕度使用。使用人工智能即服務(wù)的用戶一般是無需長期或者沒有能力采購物理集群,并且不愿意維護相應(yīng)的系統(tǒng)。這種用戶一般多為碎片化的用戶,也就是臨時需要使用資源,否則用戶會選擇更加經(jīng)濟合理的自主集群模式。
(4)硬件加速能力是人工智能即服務(wù)的重要競爭力。人工智能的模型訓(xùn)練一般需要大量的計算資源,僅依賴CPU無法滿足快速訓(xùn)練需求。因此使用特殊硬件如GPU、TPU、FPGA會稱為人工智能的重要選擇。