天天看點

金融資料智能在螞蟻金服的現狀與發展

點選這裡回顧9月27日上午開發者峰會精彩内容

螞蟻金服在過去的十幾年中用技術重塑金融服務,主要工作集中在金融級交易支付技術和金融級資料智能技術兩個領域。

金融資料智能在螞蟻金服的現狀與發展

除了和傳統大資料相同的需求之外,金融資料智能還有一些獨特的需求:

  • 實時性要求高:實時資料增長非常迅速,線上決策越來越多,資料時效性對業務發展非常重要。
  • 計算場景複雜多樣:從簡單統計和決策規則發展到複雜圖、AI模型以及複雜決策。
  • 資料鍊路長,全鍊路研發調試:模型研發橫跨18個系統,需要掌握多種研發模式,對研發團隊提出了巨大挑戰。
  • 計算存儲高可用:需要實作跨域容災,高可靠的計算服務。
  • 資料安全,監管合規,風險防控:嚴格的資料安全、等級體系,保護使用者隐私,遵守監管合規,全面風險的防控。

為了應對金融資料智能的需求,螞蟻金服的計算技術也經曆了漫長的演進和發展過程。針對海量資料,需要使用像MapReduce/RDD這樣的批處理計算引擎。時效性要求高,是以也需要做實時計算。資料分析的需求越來越多,于是也實作了互動式分析。同時,計算技術也會面臨一些挑戰,比如多種計算模式帶來了研發效率問題,多套系統帶來了多樣存儲需求,需要花費額外成本,并且還需要不同的容災要求并保障資料安全,并帶來了複雜度上升的問題。

金融資料智能在螞蟻金服的現狀與發展
開放計算架構

可能對于工程師們而言,想要解決上述問題最理想的方案就是建構一套統一的系統,但是難點在于系統是什麼,如何确定系統的邊界以及如何對系統進行抽象。首先,因為計算引擎本身與業務是強相關的,而在現階段沒有一個引擎能夠滿足螞蟻金服所有的業務需求,并且業務仍在不停地進行創新,也在不停地提出新的需求。是以,螞蟻金服希望能夠擁有開放的計算架構,能夠容納各種各樣的計算引擎。

在開放的計算架構之下,存儲也需要統一起來。資料存儲可以有各種各樣的格式,可以有多個副本和複制,可以針對計算引擎進行各種各樣的優化,但是在底層需要使用統一的存儲,同時要有統一的全站式安全管控措施。

金融資料智能在螞蟻金服的現狀與發展

資料安全管控必須是全站的,金融資料智能體系需要提供全站統一的中繼資料管理、接入規範、安全等級以及隐私保護體系。隻有在統一的資料安全規範之上,才可以将不同計算引擎接入進來。并且,針對每個引擎也需要能夠提供不同的安全管控政策。

金融資料智能在螞蟻金服的現狀與發展

在開放架構、統一存儲和統一資料安全規範的基礎之上,螞蟻金服還希望統一程式設計模型。螞蟻現在的做法是統一基于一套标準SQL及擴充讓使用者直接面對底層資料來寫自己的業務邏輯。可以想象為将引擎和存儲抽象出來,對業務而言,不需要關注流計算與批計算,而隻需要關注需要資料做什麼以及資料的時效性即可,其他的部分則由引擎以及存儲層自動優化和解決。此外,在統一程式設計模型中真正實作了面向資料的程式設計,業務同學面向抽象出來的資料編寫業務邏輯,而不需要關注具體細節,這就是資料虛拟化的過程。統一程式設計模型是螞蟻金服基于現有的計算模式和經驗總結而成的,它能夠為使用者帶來研發體驗的巨大提升。

金融資料智能在螞蟻金服的現狀與發展

以上的這些就形成了螞蟻金服所認為的能夠支撐未來金融業務持續發展的一整套金融資料智能體系。而如今最為火熱的話題就是人工智能技術,螞蟻也需要考慮如何在金融智能業務中應用人工智能。

人工智能系統的現狀基本上就是先有一個資料集,經過資料倉庫清洗資料,然後将資料放在模型平台上進行訓練并且輸出訓練好的模型,最終将模型推給線上的服務。在整個流程裡面,肯定需要多套系統,并且資料也需要複制多份,這就有可能造成資料安全風險以及存儲效率低下的問題。此外,因為模型本身的限制,這一過程很難做到實時,但是實時性在金融系統正在變得越來越重要。對于使用者而言,需要做資料倉庫,需要掌握機器學習平台,還需要将模型部署上線,整套過程非常複雜和煩瑣。而螞蟻金服在金融資料智能新體系裡面直接插入了機器學習引擎。

金融資料智能在螞蟻金服的現狀與發展

螞蟻金服SQLFlow的初衷是希望用SQL來表征和描述所要做的機器學習内容,使用SQL将資料和機器學習串聯起來,可以讓機器學習變得像SQL一樣簡單。使用者隻需要了解SQL就能夠完成機器學習訓練以及模型預測。

金融資料智能在螞蟻金服的現狀與發展

ElasticDL是螞蟻金服開源的基于彈性排程的AI引擎,它完全基于開源的TensorFlow,但在TensorFlow的基礎之上實作了容錯以及彈性排程。同時,ElasticDL與SQLFlow進行了內建,使得使用者訓練模型更加簡單。

金融資料智能在螞蟻金服的現狀與發展
金融級圖計算

在螞蟻金服業務中存在一些圖計算的典型場景,比如實時反套現、社交分析以及營銷圈人等。這些場景在螞蟻金服的金融資料智能體系下實作起來也是非常簡單的,相當于在體系中插入了一個圖計算引擎。這樣一來,不僅提供了離線和線上的圖計算引擎,同時将流計算、批計算打通,實作了混合計算引擎。此外,螞蟻還希望進一步優化金融資料智能體系,通過SQL + Gremlin這樣的标準使得機器學習的過程更加簡單。并且在底層還實作了強一緻的線上圖資料庫,能夠為使用者提供海量的圖資料存儲服務。

金融資料智能在螞蟻金服的現狀與發展

螞蟻金服的金融資料智能體系的思路就是提供一個開放架構,是以每當出現新的資料引擎和資料模式時,可以很容易地直接引入進來。如果業務存在新的需求,還可以接入深度定制化的引擎。無論接入了什麼樣的引擎,都可以直接處理海量的金融資料。而在這些計算引擎發展相對成熟的時候,可以在上層進行歸納,對研發效率等進行更進一步的優化。

金融資料融合計算
金融資料智能在螞蟻金服的現狀與發展

當完成了上述體系之後,還需要考慮很多業務往往需要面對非常複雜的計算場景。在複雜的金融場景下,需要同時使用多種計算引擎,是以需要融合計算模式,使得計算引擎之間的互通更加高效。是以,螞蟻金服和伯克利合作打造了Ray融合計算引擎。在融合計算引擎之下,可以用一套研發流程和标準來描述多種多樣的計算,底層計算的狀态、資料以及中間結果都是共享的,并且使用者可以選擇任意的一種研發語言同時完成資料處理、機器學習以及圖計算等工作。

金融資料智能在螞蟻金服的現狀與發展

融合計算Ray是一個開源架構。螞蟻金服在Ray項目上也作出了很多貢獻,也和伯克利大學一起推動Ray社群的發展。Ray可以将使用者的簡單本地邏輯轉換成海量的分布式執行模型。基于Ray架構,螞蟻實作了幾個融合計算場景,如動态圖推導,結合了流計算和圖計算,能夠實作一秒内完成6層疊代查詢;金融線上決策,資料生産到分布式查詢決策在一秒内完成;線上機器學習,實作資料樣本到模型端到端秒級更新及資料推送。

金融資料智能在螞蟻金服的現狀與發展

融合計算引擎并不是為了取代前面提到的所有引擎,而是作為一個計算引擎插入到開放計算架構中,用于某些特殊的場景。當對所有計算引擎具有深入的了解之後,就可以在上面進行優化,建構一個SmartSQL層。

金融資料智能在螞蟻金服的現狀與發展

未來展望

最後分享一下螞蟻對金融資料智能體系的展望,希望未來的金融資料智能平台的底層存儲是統一的,中間的引擎是開放的、可插拔的和可混用的。在最上層,可以進行優化和統一,也可以直接開放給不同引擎,形成Big Data Base體系。既希望金融資料智能平台能夠像使用資料庫一樣簡單,也希望其能夠成為開放計算架構的大資料平台,不僅能夠處理資料,還能夠擴充無限可能性。

金融資料智能在螞蟻金服的現狀與發展