天天看點

前端智能化在阿裡雲大資料研發平台中的實踐

作者 | 秦奇
前端智能化在阿裡雲大資料研發平台中的實踐

在這個 AI 浪潮改變人們生活方方面面的時候,人工智能技術也在改變各個崗位的技術研發生态,阿裡在這方面走還是非常前端,以阿裡前端智能化小組為例,不僅有D2C(Design to Code)的 Imgcook ,前端算法工程體系Pipcook,也有 C2C (Code to Code),智能 UI 等能力。本文重點介紹了C2C 在阿裡雲飛天大資料平台中的一些實踐,期望通過實際的方案介紹讓大家對前端智能化有更深入的了解。

業務背景

先簡單介紹下業務背景,阿裡雲飛天大資料平台是阿裡巴巴10年大資料建設最佳實踐的結晶,每天有數萬名資料和算法工程師正在使用飛天大資料平台,承載了阿裡巴巴99%的資料業務建構。同時廣泛應用于城市大腦、數字政府、電力、金融、新零售、智能制造、智慧農業等各個領域的大資料建設。

具體的發展曆程,産品架構和前端頁面概覽可以參見下圖:

前端智能化在阿裡雲大資料研發平台中的實踐
前端智能化在阿裡雲大資料研發平台中的實踐

業務挑戰

從上面幾張圖就可以清晰地看到阿裡雲大資料研發平台中前端頁面的幾個特點:

  • 重程式設計場景,存在大量的WebIDE 和 編輯器場景,每天超過 70% 的使用者會用程式設計
  • 重可視化互動,存在大量資料的可視化展現,任務的編排的場景。

而且作為一個研發平台除了穩定性外,對提升客戶,也就是在上面做研發人員的效率是最重要的事情,是以我們産品前端智能化的要核心去解決就是效率問題。

解決方案

從業務挑戰看,前端智能化方案在業務落地,主要解決的就是兩個問題:

  • 各個産品元件的智能化更新
  • 統一的算法工程能力,保證算法的持續更新疊代和快速部署的能力

針對這些思考,我們把整個智能化的建設布局做成如下:

前端智能化在阿裡雲大資料研發平台中的實踐

以下分别會從智能編輯器,智能化可視化,以及算法工程方面主要闡述。

智能編輯器

編輯器是大資料研發中的核心元件,如何讓開發者快速進行資料開發一直是我們的核心需求。借助于智能化和機器學習,我們加強了編輯器的核心能力,比如智能代碼推薦、代碼診斷等。

前端智能化在阿裡雲大資料研發平台中的實踐

智能代碼推薦

代碼推薦是指在編寫代碼時,編輯器會基于目前上下文,列舉出可能的候選項供使用者進行選擇。使用者一旦選擇了推薦項,則會自動補全對應的輸入,這樣可以極大提升開發者的編碼效率。

借助于智能化的算法和大部分使用者的使用習慣,我們實作了代碼推薦的智能模型,結合語言文法規則,可以推薦出目前最符合文法規則的代碼。代碼推薦采用的算法一般為語言模型算法(Language Model),常用的模型算法有n-gram、LSTM以及最近比較火熱的GPT和CodeGPT(GPT基于程式設計語言預訓練模型)。

考慮到代碼編寫每個人都有不同的代碼風格和編碼習慣,通用的推薦算法可能并不是最佳的方案。受淘寶“千人千面“機制的啟發,代碼推薦是否也能根據個人的編碼習慣進行推薦呢?為此我們對使用者的實際編碼習慣進行了研究,實作了一套“千人千面”的推薦模型,進而可以針對每個人推薦出符合個人習慣的代碼。

代碼診斷

前端智能化在阿裡雲大資料研發平台中的實踐

代碼缺陷一直是開發者很頭痛的存在,而引起缺陷的原因也是多種多樣,如果能夠在編寫階段即可發現代碼缺陷,能夠節省大量的人力物力,而代碼診斷正是為此而生。借助于引擎側的能力,和衆多文法規則,以及代碼審查的相關資訊,在使用智能化算法進行訓練之後,已經基本具備了代碼缺陷檢測的能力。這裡的訓練模型可以參考監督模型,常用的是支援向量機(Support Vector Machine, SVM)。

智能可視化

在大資料平台中,資料是最核心的内容,而可視化則是展示資料特性、價值的最佳工具。尤其在資料分析的場景下,可視化展示可以幫助使用者快速、直覺的發現資料的規律。

資料探查

Data profiling is the process of examining the data available from an existing information source (e.g. a database or a file) and collecting statistics or informative summaries about that data. The purpose of these statistics may be to: Find out whether existing data can be easily used for other purposes. --維基百科
前端智能化在阿裡雲大資料研發平台中的實踐

資料探查是擷取資料的統計資訊和資訊摘要的過程。如何實作資料類型、特征的自動分析和圖表的自動選擇是核心問題。其中資料類型分析我們基于DataWizard 的 Analyzer 與 Statistic 子產品進行分析,可以分析出字段類型、基本字段特征等。圖表推薦參考如下經典的決策圖,基于對比、分布、組成和關系四個緯度進行推薦。整個探查過程我們已經封裝了元件,可以快速調用實作自己的探查産品。

前端智能化在阿裡雲大資料研發平台中的實踐

并且我們正在基于資料-圖表的對應訓練智能模型,實作資料特征的智能識别和圖表的智能推薦。

算法工程

以上提到的衆多智能模型的訓練,借助于阿裡雲機器學習平台,我們形成了通用的模型訓練、評估和部署鍊路。

模型訓練

借助于PAI DSW的互動式模組化能力,我們可以基于Notebook的形式快速實作模型的訓練過程,包括資料的加載、預處理、訓練集、測試集切分等操作。然後基于Tensorflow完善的模型實作,可以很快實作自己的訓練過程。

前端智能化在阿裡雲大資料研發平台中的實踐

模型評估

模型評測是展現模型效果的重要的方法,模型是為了解決實際的生産問題,是以模型的評估方案也必須符合問題的定義,能夠真實反映出模型對該問題的效果。常見的評估方法有準确率、召回率等,同時經常也需要根據實際問題自定義評估的名額。比如針對代碼推薦的場景,除了準确率(Top-N)之外,還有推薦耗時、推薦長度等名額,隻有結合這些名額去綜合評估才能反映出模型的真實效果。

模型部署

PAI EAS提供了模型線上部署的能力,一鍵上傳即可實作模型的部署,之後通過API即可快速調用。

未來展望

  • 立足于智能化,能夠緊跟業界進展,将好用的算法應用于我們的産品中,為使用者提供更強大的服務。
  • 發掘更多的智能化場景,使用機器學習的方式去解決問題,

寫在最後

機器學習帶來了一種解決問題的思路,我們發現很多業務上的問題其實都可以借鑒機器學習的思路去考量。更深一步,我覺得人人都會機器學習是未來的趨勢。就像資料分析,機器學習也會變得越來越容易上手。比如pipcook就是一個能夠讓前端同學也能快速上手機器學習的架構,希望這種工具能夠越來越多。集團前端智能化在P(RD)2C、以及D(esion)2C和C(ode)2C幾個方向共建,目的就是針對前端場景,以智能化的手段去解決業務問題,歡迎一起交流。

前端智能化在阿裡雲大資料研發平台中的實踐

繼續閱讀