作者:徐瑛
隨著市場的不斷發(fā)展,人們的需求越來越復(fù)雜,為了滿足用戶多變的需求,編程語言也是每隔幾年變個樣,C、C++,還有新興的Python潮流……等等。作為程序員,不僅要不斷學(xué)習(xí)新興的編程語言,還要不斷重復(fù)造輪子的工作。
重復(fù)造輪子,即把前人做過的事情再做一遍,而IT行業(yè)一直在流行一句話,就是“不要重復(fù)造輪子”,因為一個成熟的輪子,都是由多名資深程序員,經(jīng)過了長時間、多次迭代而形成的,重復(fù)造輪子,不僅耗費很多時間精力,而且輪子還不一定有前人造的好,重復(fù)造輪子的行為多了,最終會嚴(yán)重拖慢項目進度,影響工作效率。
但是重復(fù)造輪子又是程序員工作中不可避免會發(fā)生的事情,減少重復(fù)造輪子成為各大企業(yè)提高工作效率的當(dāng)務(wù)之急,此時低代碼/無代碼的新型開發(fā)模式就應(yīng)運而生了。而華為云和用友就是在這個領(lǐng)域領(lǐng)先的廠商之一。用友作為華為資深的合作伙伴,有著30年的企業(yè)服務(wù)經(jīng)驗,且與華為在企業(yè)云服務(wù)業(yè)務(wù)上高度互補,為各自生態(tài)的伙伴帶來更好的使用體驗以及更多的機遇,而用友最新的企業(yè)低代碼開發(fā)平臺YonBuilder就是基于華為鯤鵬云的底層技術(shù)打造而成的,這也是雙方在核心戰(zhàn)略層面緊密合作、共同打造全新IT開發(fā)模式道路上邁出的重要一步。
在7月31日,華為云和用友在用友產(chǎn)業(yè)園中區(qū)E121會議室聯(lián)合舉辦了DevRun開發(fā)者沙龍用友·華為云杯企業(yè)云服務(wù)開發(fā)者大賽專場活動,從用友YonBuilder低代碼開發(fā)平臺的介紹和深度解析出發(fā),結(jié)合華為云的EI企業(yè)智能與華為鯤鵬云服務(wù)及解決方案,通過4大主題為與會者帶來了干貨滿滿的分享課程。
以下內(nèi)容經(jīng)由 InfoQ 編輯整理自 DevRun 開發(fā)者沙龍用友·華為云杯專場活動。
華為云ModelArts,零代碼玩轉(zhuǎn)AI開發(fā)
深度學(xué)習(xí)在1943年已經(jīng)出來,為什么沉寂很多年?主要是因為當(dāng)時的數(shù)據(jù)資源不夠豐富,另外算力達不到。但是現(xiàn)在已經(jīng)有很多數(shù)據(jù)資源和算力去支撐深度學(xué)習(xí)的算法。首先數(shù)據(jù)資源越來越豐富,通過一些物聯(lián)網(wǎng)和穿戴式技術(shù)的設(shè)備,獲得更多數(shù)據(jù)。其次是算法能力不斷突破,主要體現(xiàn)兩個方面。一個是算法能夠做的事情越來越多,第二是算法越來越準(zhǔn),越來越靠近,甚至某些領(lǐng)域已經(jīng)超過了人類的水平。第三,各大企業(yè)也不斷的進行開發(fā)。這些現(xiàn)象都為深度學(xué)習(xí)的發(fā)展提供了條件。
但是AI開發(fā)的時候是會有很多問題,主要是算力昂貴,如果用戶自己去買NPU或者GPU芯片,一次性成本太高,而且大部分還是閑置。其次需要高級技能的從業(yè)人員,需要精通代開發(fā),熟悉模型原理。最后是需要海量高質(zhì)量的已標(biāo)注數(shù)據(jù),標(biāo)注數(shù)據(jù)的成本比較高,但是華為的ModelArts就可以很好的解決以上問題,首先ModelArts采用云計算,大家可以租賃計算資源,不需要升級和維護設(shè)備。在數(shù)據(jù)處理階段,有一些智能標(biāo)注的模塊,多場景標(biāo)注UI加快標(biāo)注速度,而且推出主動學(xué)習(xí)和預(yù)置模型,加快了標(biāo)注速度。
當(dāng)然ModelArts不止這些,作為一站式AI開發(fā)平臺,從數(shù)據(jù)開始,包括處理數(shù)據(jù)、訓(xùn)練模型、模型部署、推理模型、終端部署、發(fā)布應(yīng)用,整個過程都有AI組件進行幫助,它依托的就是它本身的算力。上圖這是ModelArts的AI平臺架構(gòu),底層是它的算力過程,一些它支持的算力,一個是自動學(xué)習(xí)一個是訓(xùn)練平臺一個是推理評理,還有一個是數(shù)據(jù)處理平臺當(dāng)然還有AI市場等等。下面會一一進行詳細(xì)分析:
首先介紹一下ModelArts對數(shù)據(jù)怎么處理的,數(shù)據(jù)處理在AI推理流程中,占的時間比較長,ModelArts會提供一些在線標(biāo)注的工具,可以幫助我們標(biāo)注不同的數(shù)據(jù),比如可以標(biāo)注圖像分類、圖像檢測,標(biāo)記聲音數(shù)據(jù)集還有聲音分類等等,此外還推出了團隊標(biāo)注,支持多人團隊標(biāo)注。ModelArts給標(biāo)注數(shù)據(jù)的特征就是可視化,并且支持智能標(biāo)注,以提高我們的標(biāo)注效率。在難例標(biāo)注方面,能協(xié)助用戶高效處理難例集。
接下來說一下訓(xùn)練過程。先說自動學(xué)習(xí),這也是華為推出的比較偏向于零基礎(chǔ)零代碼開發(fā)人員推出的AI開發(fā)平臺。用戶只需要跟著流程走,先上傳數(shù)據(jù),然后標(biāo)注數(shù)據(jù),標(biāo)注數(shù)據(jù)以后點訓(xùn)練模型,繼續(xù)進行我們的部署驗證,最后發(fā)布模型,整個過程按照流程走,不需要寫任何代碼就可以完成這個工作。所有底層算法包括一些參數(shù)都是他自動幫助你適配調(diào)優(yōu)。
另外一種訓(xùn)練模型的方式就是可以通過向?qū)渲糜?xùn)練,算法里面有很多預(yù)置好的算法,你可以使用這些預(yù)置算法,整個過程不需要寫代碼,按照這個流程去先把你的算法導(dǎo)入進去,然后按照整個流程。如果使用預(yù)置算法,整個過程只是比自動學(xué)習(xí)豐富了一點,可以多配置你的具體算法,可以配置超參來調(diào)整結(jié)果。整個訓(xùn)練模型過程是可以評估和監(jiān)控,可以查看資源情況,包括資源日志、評估結(jié)果等等。
最后說到交互式Notebook建模,其支持Python建模語言,更開放。這個特別適合已經(jīng)很了解AI開發(fā)的流程的用戶,去測試新出的算法或者自己構(gòu)建一個算法。在寫好了分裝以后,可以把代碼分裝,讓它自動執(zhí)行。而ModelArts提供SDK和PyCharm,使得用戶可以通過底層撰寫SDK,應(yīng)用這個SDK就模擬在網(wǎng)站上進行。ModelArts的PyCharm就像穩(wěn)定版的Notebook,允許用戶在里面寫代碼,幫助進行代碼的推送、執(zhí)行、日志上傳。
除了上述說的三種方法之外,ModelArts推出的另一個功能,ML Studio,除了支持深度開發(fā)還支持傳統(tǒng)的機器學(xué)習(xí),上圖左邊是支持的算法,右邊是參數(shù)配置,最后執(zhí)行日志是我們的執(zhí)行結(jié)果,用戶可以通過在畫布上拖拽算法然后構(gòu)建工作流。
最后王龍步老師簡單的介紹了一下華為云AI市場的改版,新推出了ModelArtsflow、ModelArtsHub。可以讓用戶把AI過程的組件,包括數(shù)據(jù)集包括算法包括模型,以及最后的Notebook都可以放到AI市場上進行分享或者出售。另外是推出了ModelArtsHub,類似拆封即用的一個產(chǎn)品,可以讓算法下載即用。
鯤鵬展翅,力算未來,開創(chuàng)計算新時代——華為鯤鵬云服務(wù)及解決方案
現(xiàn)在手機的使用或者移動端的使用越來越多,2018年全球連接設(shè)備數(shù)已經(jīng)超過230億,而且這個數(shù)據(jù)還在不停的爆發(fā)增長。這樣對我們整體的算力提出了新的訴求。僅僅傳統(tǒng)的通用芯片已經(jīng)滿足不了越來越復(fù)雜的運算,我們已經(jīng)進入計算架構(gòu)創(chuàng)新的黃金時段。
通用計算這塊華為的應(yīng)對策略就是推出華為鯤鵬芯片,鯤鵬芯片是基于ARM設(shè)計的,有別于英特爾采用的復(fù)雜指令集,ARM做整型計算能力更強,但是在雙精度浮點計算領(lǐng)域會相對弱一些。所以在打造優(yōu)勢解決方案的時候需要考慮場景適配的問題。
當(dāng)然對于軟件開發(fā)者來說,其實比較關(guān)心的還是工具,華為鯤鵬從操作系統(tǒng)到開發(fā)工具、編譯工具和管理工具,各個開源組件上面整個生態(tài)已經(jīng)非常完備了,基本可以支持絕大部分常用開源軟件,即便不能直接下載到安裝包的軟件我們通常也能夠找到對應(yīng)的適配帖子。
到具體落地上,華為鯤鵬云所有的云服務(wù)以及解決方案可以說是非常全面了,首先在云上,華為有一系列定制化的芯片,包括高性能的CPU,即ARM,還有高性能的AI即昇騰,除此之外針對存儲控制器、網(wǎng)絡(luò)服務(wù)器、服務(wù)管理都有對應(yīng)的芯片做處理。這些芯片協(xié)同起來提供上層的能力。同時華為推出了軟硬件協(xié)同的擎天架構(gòu),真正實現(xiàn)軟硬件協(xié)同。在軟硬件協(xié)同的基礎(chǔ)上,華為構(gòu)建了鯤鵬云服務(wù)并打造了比較通用的優(yōu)勢解決方案,比如HPC高性能計算方案、大數(shù)據(jù)+AI、還有鯤鵬原生等等,可以在安全可靠可信基礎(chǔ)上,提供顯著的性價比提升,也能比較方便地研發(fā)出創(chuàng)新性的移動應(yīng)用。
除了這些基礎(chǔ)服務(wù)之外,華為還擁有一站式應(yīng)用管理平臺,包括創(chuàng)新解決方案、一站式微服務(wù)應(yīng)用管理平臺、企業(yè)級云中間件、高性能Serverless服務(wù),與此同時,華為還針對目前最讓人頭疼的大數(shù)據(jù)領(lǐng)域提出了華為云全棧智能數(shù)據(jù)服務(wù),利用存算分離的架構(gòu)以及華為在算力和存儲方面的優(yōu)勢,為用戶提供更好的數(shù)據(jù)處理體驗。
不過用戶面臨的問題還有應(yīng)用的遷移和移植問題,關(guān)于應(yīng)用移植,華為總結(jié)了一些方法論。首先是操作系統(tǒng),因為Windows本身并不支持ARM,所以目前對Windows有強依賴的方案是不支持的,需要先改造為使用Linux,Linux基本都支持;第二,數(shù)據(jù)庫也是類似的方式,歐美閉源不支持,開源或者國產(chǎn)閉源基本都已經(jīng)支持。針對開發(fā)語言來說,解釋型語言、編譯型的語言支持,但是不支持匯編語言。
移植過程和我們開發(fā)的時候是一致的,首先面對一個新平臺做它的技術(shù)選型分析,分析完畢以后實施編譯遷移,第三是功能,驗證和性能調(diào)優(yōu),最后進行規(guī)模商用。在這里劉老師以NC Cloud鯤鵬移植實踐為例,為大家說明了整個移植的過程。
最后劉龍飛老師針對鯤鵬社區(qū)和鯤鵬伙伴計劃做了個簡單的介紹,目前已經(jīng)有2000多家企業(yè)加入鯤鵬凌云生態(tài),有200多個鯤鵬商品已經(jīng)發(fā)布出來,有1000多個技術(shù)方案認(rèn)證已經(jīng)通過。同時華為也歡迎更多人能夠加入鯤鵬的生態(tài),共同推動計算產(chǎn)業(yè)的發(fā)展,也共享產(chǎn)業(yè)發(fā)展的紅利。
Hello YonBuilder
低代碼是一種創(chuàng)建應(yīng)用的方法,可以使得開發(fā)人員使用最少的編碼知識,來快速開發(fā)應(yīng)用程序。
簡單來說就是讓開發(fā)者可以在圖形界面中,使用可視化建模的方式,來組裝和配置應(yīng)用程序,開發(fā)者可以借此跳過跳過繁瑣的基礎(chǔ)架構(gòu),只關(guān)注于使用代碼來實現(xiàn)業(yè)務(wù)邏輯。
YonBuilder作為一個市面上比較成熟的低代碼開發(fā)平臺,它的特點有兩個,第一是其將自己的云端,支撐云端ERP的技術(shù)平臺都進行開放,第二是用友把自己的能力都打包,然后做成產(chǎn)品能夠讓開發(fā)者去使用。通過這兩個措施,讓使用YonBuilder的開發(fā)者能夠有80%的時間去思考業(yè)務(wù),20%的時間可能我們還需要處理我們的業(yè)務(wù)。
在實際業(yè)務(wù)中,用友也對開發(fā)者的開發(fā)流程進行了改革,以前想做一個應(yīng)用,要先開一個需求討論會然后提出一些要求,再形成需求文檔,再進行設(shè)計,最后再由開發(fā)去完成。實際上在YonBuilder上面,甚至可以實現(xiàn)讓業(yè)務(wù)人員自己去設(shè)計流程、設(shè)計數(shù)據(jù)流轉(zhuǎn),設(shè)計在各個端上面我們需要具備的能力。只有當(dāng)業(yè)務(wù)在出現(xiàn)個性化需求時才需要開發(fā)者進入腳本或者代碼來完成這個事情。
接下來肖老師講述了一個實際案例,圖右是系統(tǒng)里的采購流程,而完成一個采購需要走這些過程,從采購訂單到完成銷售,完成一個銷售需要四個過程,銷售訂單、發(fā)貨、出庫到發(fā)票,但是到具體的客戶還會有一些個性化的需求,比如說這個客戶是以經(jīng)銷商為主的銷售方式,那么客戶要求能不能構(gòu)建出一個新的應(yīng)用,讓經(jīng)銷商直接在我系統(tǒng)上面去下單?這個需求包含幾個能力要求。第一,你的平臺是否具備支撐社會化的能力。第二點,我在你平臺上搭建的業(yè)務(wù)活動如何和已有的標(biāo)品數(shù)據(jù)和流程去對接?最后在完成業(yè)務(wù)時,能不能實時、快速的把數(shù)據(jù)分析和報表拿出來。
為了實現(xiàn)這個需求,用友做了如下事情,首先為應(yīng)用準(zhǔn)備一份數(shù)據(jù),和現(xiàn)在系統(tǒng)已經(jīng)有的檔案做結(jié)合,之后為這個業(yè)務(wù)構(gòu)建對應(yīng)的應(yīng)用頁面,其次基于這份業(yè)務(wù)和單據(jù)快速的構(gòu)建流程,做完了流程之后需要配置這個單據(jù)和標(biāo)配已有的銷售訂單來進行數(shù)據(jù)對接以及數(shù)據(jù)回寫的工作,全部完成之后,最后會將成果發(fā)布到系統(tǒng)上,發(fā)布到系統(tǒng)以后會在整體的ERP上生成一個獨立的應(yīng)用,這個應(yīng)用可以直接在平臺上打開,也可以通過集成的方式集成到第三方系統(tǒng)里。
上述案例很好的體現(xiàn)了低代碼平臺的三個優(yōu)勢。第一,讓其他角色參與到開發(fā)過程中,如案例中的經(jīng)銷商就,完全可以把業(yè)務(wù)單據(jù)設(shè)定好;第二,銷售管理的員工完全可以定義我們的數(shù)據(jù)對接,將要貨單和銷售訂單能夠?qū)釉谝黄?第三,開發(fā)者只需要進行個性化的邏輯和規(guī)則的開發(fā)。
YonBuilde,I know you
隨著社會的發(fā)展,開發(fā)人員都普遍面臨這幾個問題:針對界面開發(fā),無法很好的實現(xiàn)用戶交互,定位困難,鏈條非常長,針對AI和區(qū)塊鏈等新興領(lǐng)域,學(xué)習(xí)成本過高等等這些都是開發(fā)人員碰到的問題。對產(chǎn)品負(fù)責(zé)人來說,在新項目上線時,如何搭建一個快速真正可用的產(chǎn)品、面對產(chǎn)品運維成本過高問題,急需降低運維成本、如何把開發(fā)的產(chǎn)品更好的推廣出去,讓更多用戶見到它等等,而這些問題都可以通過YonBuilder平臺進行解決。
用友的低代碼平臺是整合上圖提供的這些能力,包括云原生、分布式架構(gòu)等一系列整合的內(nèi)容,通過它可以讓開發(fā)人員用簡單靈活的方式進行開發(fā)。最終實現(xiàn)人人都是開發(fā)者。同時用友也會對的開發(fā)者進行判斷分級,分成公民開發(fā)者、初級開發(fā)者、高級開發(fā)者、技術(shù)專家四類,針對不同的開發(fā)者提供不同的能力。
針對公民開發(fā)者,在數(shù)據(jù)存儲領(lǐng)域,用友提供一個統(tǒng)一的查詢框架,可以實現(xiàn)遠程的跨領(lǐng)域查詢。在前端領(lǐng)域,用友通過統(tǒng)一的模板組件和存儲進行設(shè)計,其解析的過程中協(xié)議是統(tǒng)一的,前后端的交互也是統(tǒng)一的。同時用友提供不同的支持多單的組件渲染功能,它會根據(jù)不同端進行渲染。在后臺服務(wù)領(lǐng)域,用友提供了一種比較簡單的開發(fā)方式就是規(guī)則引擎,即把部分算法按照一定順序排列組合一下,然后按照這個順序執(zhí)行這些算法,最終完成一個服務(wù)的開發(fā)。這些算法的規(guī)則,可以重復(fù)復(fù)用,同時也提供到了很多系統(tǒng)級規(guī)則,以及一些領(lǐng)域級規(guī)則,供在開發(fā)時直接調(diào)用。
針對初級開發(fā)者,其主要的需求就是將時間花在的業(yè)務(wù)開發(fā)上,而不是調(diào)試環(huán)境和微服務(wù),從而加快的創(chuàng)新速度。所以這種情況下,用友低代碼開發(fā)的核心就是無服務(wù)器架構(gòu),可以讓他不關(guān)注底層問題,而把自己的精力放在業(yè)務(wù)上,實現(xiàn)函數(shù)即服務(wù)。
為了實現(xiàn)這個目標(biāo),用友為公共服務(wù)提供統(tǒng)一的腳本服務(wù)。后端服務(wù)中有一個函數(shù)的執(zhí)行引擎,是用規(guī)則的方式嵌入。在前端展現(xiàn)層,即web或者是移動端的界面,它其實就是一個標(biāo)準(zhǔn)的JS腳本,可以在任何一個前端界面嵌入這個腳本。在前端界面根據(jù)模板界面進行簡單配置,使用用友模板的設(shè)計器就可以進行函數(shù)配置,比如通過事件的機制來觸發(fā),然后做一些業(yè)務(wù)處理。對于后端來說,函數(shù)跟規(guī)則引擎整合在一起,用戶可以通過設(shè)計器靈活的定制規(guī)則。這個規(guī)則會調(diào)用函數(shù)執(zhí)行引擎,然后通過執(zhí)行引擎執(zhí)行函數(shù)。執(zhí)行函數(shù)過程中,后端函數(shù)里面提供大量的模型的操作接口,包括常用的接口服務(wù)都可以調(diào)用。
針對高級開發(fā)者而言,即高級開發(fā)人員和專業(yè)開發(fā)人員。他們更喜歡的就是什么事情都可以自己控制,你的低代碼開發(fā)平臺好用但是得知道怎么用?怎么部署的?自己能不能管理這個部署的結(jié)構(gòu)?這種情況下,其實高級開發(fā)者關(guān)注研發(fā)全生命周期的管理,不只是關(guān)注研發(fā)這個事情本身。這種情況下他關(guān)注從原代碼的開發(fā)到調(diào)試到應(yīng)用環(huán)境的部署,到產(chǎn)品的驗證、發(fā)布,還有產(chǎn)品怎么上架去對外銷售,包括產(chǎn)品運維都需要關(guān)注。用友在低代碼開發(fā)平臺中也提供了一整套的工具和機制來支持這方面的能力。
為了達到高級開發(fā)者需求,用友做了如下措施:第一通過云服務(wù)的環(huán)境在我們的產(chǎn)品上進行開發(fā)。在可信環(huán)境下,即在用友的技術(shù)中臺上提供給租戶或者ISV的開發(fā)者用來去部署開發(fā)產(chǎn)生的服務(wù)環(huán)境,提供一系列的便捷工具,我們的應(yīng)用引擎可以幫助他快速發(fā)布和部署應(yīng)用,并且做了訪問隔離,使得不同的開發(fā)組織之間的環(huán)境不能互相訪問,這樣保證環(huán)境的安全性。第二在外部環(huán)境,即企業(yè)自建的開發(fā)環(huán)境,會提供限流、安全檢驗來保證環(huán)境的安全可靠性。第三,在內(nèi)部環(huán)境中,通過創(chuàng)造沙箱環(huán)境,在隔離數(shù)據(jù)庫和生產(chǎn)環(huán)境的同時,保證用戶體系的打通的。
針對真正的開發(fā)專家而言,他可以在現(xiàn)在低代碼開發(fā)平臺已經(jīng)提供的基礎(chǔ)上,再開發(fā)他自己新的研發(fā)資源。他可以對低代碼的產(chǎn)出進行擴展,他可以幫助我們完善我們的低代碼開發(fā)平臺,就像一個開源項目一樣他可以貢獻自己產(chǎn)出。同時用友的低代碼開發(fā)平臺會提供很多擴展機制,同時這種擴展機制,會有一個注冊的發(fā)布流程,讓技術(shù)專家或者是專業(yè)開發(fā)人員,開發(fā)完了以后可以發(fā)布到統(tǒng)一的注冊中心,然后通過這里增加一些配置,供其他人使用。
小結(jié)
本次DevRun開發(fā)者沙龍用友·華為云杯專場成功舉辦,為關(guān)注低代碼/零代碼開發(fā)的小伙伴們帶來了許多實踐上的經(jīng)驗。今年華為云還將在各地開辦各類技術(shù)沙龍活動,持續(xù)展開技術(shù)布道,感興趣的開發(fā)者可以持續(xù)關(guān)注。
榜單收錄、高管收錄、融資收錄、活動收錄可發(fā)送郵件至news#citmt.cn(把#換成@)。
海報生成中...