作者 | 秦奇
在這個 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幾個方向共建,目的就是針對前端場景,以智能化的手段去解決業務問題,歡迎一起交流。