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