從Watson看AI平台的架構設計

2021-08-10 05:19:55 字數 3302 閱讀 5231

摘要:本文分析ibm watson在技術架構上所面臨的問題及解決辦法,總結了人工智慧平台在走向產品化需要面對的諸多挑戰。最後提出了以雲計算paas容器服務平台為基礎,上層使用saas的服務架構來搭建企業級ai平台,是技術上可行也是較經濟的一種解決方案。

2023年被認為是人工智慧的元年,隨著alphago戰勝南韓棋手李世石,人工智慧產業徹底站到了風口上。然而人工智慧研發團隊的核心技術人員通常都是掌握了某些核心演算法的科學家,他們對於平台的架構設計,工程實施並不一定經驗豐富。 如何基於核心ai能力搭建出一套可持續運營又具有業務成長性的企業級ai平台呢? 筆者以ibm的 watson為案例,來分析架構設計上需要考慮的方方面面。

ibm的watson在2023年在美國危險邊緣(jeopardy)真人騷中以77147分的成績戰勝兩位人類選手贏得100萬美金頭獎而一舉成名。在這個故事背後,ibm解決了那些人工智慧領域的問題呢?我們先來看看 jeopardy這個節目的競賽規則。作為美式智力問答節目,jeopardy的題目由若干詞條或短句組成,讓競賽者找出這些線索所描述的人或事物,答案需要以提問的形式提供給主持人。 例如題目問「在撲克牌遊戲中,五張同一花色順聯的牌」 。 選手的正確回答是「什麼叫同花順」?這就要求參賽選手要有知識的廣度和搶答的反應速度,並且還需要有腦筋急轉彎的聯想歸納能力。watson能在不聯網的情況下,處在人類日常的環境當中,去理解、搶答、贏得比賽,主要在人工智慧3個領域取得突破:

理解自然語言的能力。雖然在比賽中watson為了提高理解的精確度關閉了語音翻譯功能,使用文字作為輸入方式(遊戲規則允許選手閱讀顯示屏上的問題,所以並不算watson違規),但它仍然需要準確的解讀人類措辭含糊的提問。

非結構化資料的處理和機器學習能力。接下來watson要從百科全書般浩繁的文件中學習儲備知識。

快速運算。在比賽中從知識庫中找到備選項, 通過複雜的判斷邏輯從備選項中選擇正確度最高的答案。要達到超過人腦的推理運算速度,快速準確的用人類語音給出最終答案。

從賽後watson研發團隊deepqa在人工智慧領域頂級刊物ai magazine上的公布**《building watson: an overview of the deepqa project》 (參考1)和維基百科(參考2 ) 上的內容, watson問題分析的工作流程如圖1:

圖1

圖2借助watson在智慧型問答領域的成功,ibm努力把它作為乙個人工智慧品牌推向商用。例如安裝在汽上,回答駕駛員有關維修的問題,以及如何提供路況資訊和發出安全警示。當汽車故障出現時,watson可以告訴駕駛員什麼地方出了問題, 是否需要預約去4s點修理。

然而訓練watson贏得比賽是一回事,選擇怎樣的技術架構把watson打造成能支援同時服務數以萬計使用者的ai平台,就是另乙個問題。 以前述的汽車助手為例, 要構建乙個企業級的ai互動問答平台, 就不得不考慮如下實際問題:

多租戶帶來的資源隔離。 對於企業使用者而言,為了資料的安全性和平台的穩定性均要求對其資料,資源進行隔離不和其它使用者混用。

企業的需求不一,並且使用的服務不同,如何滿足其定製化。

由於是新應用,企業客戶更希望ai平台的計算能力能隨著業務量的增長動態提公升,讓花的每一分錢都用到實處。

海量的資料儲存需求。 大量人機對話產生的語音資料, 需要有廉價安全的儲存方式來儲存。

筆者認為用基於paas的容器服務(container as a service 縮寫 caas) + saas的架構能很好地解決上述問題。容器服務(caas)是一種基於容器的虛擬化形式,其中容器引擎,編排和底層計算資源作為雲服務提供給使用者。容器服務平台技術近兩年已經發展得比較成熟,目前比較流行的實現方式是以docker為容器化技術,kubernetes為容器化的應用提供資源排程、部署執行、服務發現、擴容縮容等整一套功能。利用容器服務平台封裝、隔離和部署靈活的特性,能很好的解決上述多租戶帶來的問題。結合雲計算saas層的租戶管理, api管理,計費管理等應用層能力,能很好的解決企業二次開發定製化的需求。paas平台對於devops的無縫支援以及基礎資源(雲儲存、訊息佇列、rds以及映象),也使問題3和4的解決變得非常容易。完整的企業級ai平台技術架構如下(圖3):

圖3saas應用平台作為和使用者的互動介面,負責將ai平台的能力和使用者對接。根據ai平台的業務特點,自研發使用者管理,計費管理,以及對使用者資源的管理模組,研發基於oauth, restful的 openapi平台。

saas平台還要對ai平台的研發和日常監控進行支撐。 搭建ai平台的運營監控和**管理系統。

paas提供平台基礎資源。提供rds,既存放ai平台共享的知識庫和訓練模型,也存放租戶自定義的資料內容;提供雲儲存,放置各類結構化和非結構化的文件資源,人機對話產生的巨大儲存需求也有很好的解決方案;提供訊息佇列,用於支撐類似於uima-as橫向擴容時平行計算的訊息傳遞;提供顯像管理(包含虛機的基礎顯像管理和容器服務的容器顯像管理),用於儲存各ai子系統模組最新的docker映象。

paas自身支援devops。負責平台的**和軟體更新, 通過devops推送到paas平台的映象倉庫中,交由容器服務平台自動進行公升級和回滾。

基於paas的容器服務平台,在部署編排模組的管理下,從paas的映象中獲取相關容器映象,為每個租戶部署一套完整的ai生產環境。容器排程模組結合paas平台的基礎監控,根據租戶的資源運**況,對執行例項進行動態調整。配置管理模組統一管理各租戶內部子系統的配置。網路管理用於協調租戶內部和外部雲平台之間的網路路由和流量分配。

學習和訓練環境也部署在容器服務平台。 因為ai的訓練和學習時間不固定,沒有必要占用大量資源。在需要時申請,完成計算後釋放,能有效得節省計算資源的使用。

對於每個租戶,通過容器服務平台建立完整的watson系統。容器化的問題生成,答案生成引擎,和答案決策模組可在容器服務平台裡動態伸縮,達到資源的合理利用。

隨著以docker和kubernetes為代表的容器服務技術日益走向成熟,企業利用paas容器化平台+saas的架構搭建自己的業務平台已經進入了實踐階段, 國內已經湧現出了一些用私有雲的容器服務平台搭建自身業務平台的成功案例(參考4)。目前公有雲服務商azure、aws、google和阿里雲等都紛紛基於自己的paas平台推出了類似caas的產品。 這種架構設計利用雲平台動態伸縮的優勢降低ai平台的初始資源投入,同時保證平台後續沒有資源方面的瓶頸,是一種可行的ai平台架構設計解決方案。另一方面,我們也應看到該方案的侷限性,對於需要實時使用大量硬體資源(如gpu)的ai應用場景,容器服務化並不能解決全部問題。

從Watson看AI平台的架構設計

摘要 本文分析ibm watson在技術架構上所面臨的問題及解決辦法,總結了人工智慧平台在走向產品化需要面對的諸多挑戰。最後提出了以雲計算paas容器服務平台為基礎,上層使用saas的服務架構來搭建企業級ai平台,是技術上可行也是較經濟的一種解決方案。2016年被認為是人工智慧的元年,隨著alpha...

從架構的角度看Kafka 二

從架構角度看kafka 一 我們第一次接觸可能都是作為訊息傳輸來學,作用很簡單,就是生產者與消費者解耦,非同步操作。kafka是乙個很好地選擇,它有很高的吞吐量以及可行性。在大資料時代,這些使用者的行為資訊是很寶貴的,kafka很適合做這件事,他可以收集多台機器的使用者行為,進行資料分析和機器學習等...

從匯流排模型看IIC架構

1 iic匯流排 struct bus type i2c bus type 呼叫位置iic core.c i2c init void retval bus register i2c bus type iic裝置模型 i2c new device i2c client結構體 i2c register ...