對話aiXcoder總裁劉德欣:智能化軟件開發(fā)2.0時代,企業(yè)如何落地領域化大模型
科技日新月異的今天,以大模型、Agent等為代表的人工智能技術正引領各行各業(yè)的深刻變革。軟件開發(fā)領域,一場由AI驅動的產業(yè)智能化升級快速演變,進入智能化軟件開發(fā)2.0時代。
本文引用地址:http://www.ex-cimer.com/article/202408/462094.htm近日,我們采訪了硅心科技(以下簡稱:aiXcoder)總裁劉德欣,主要圍繞企業(yè)如何落地領域化大模型,如何更好地擁抱智能化軟件開發(fā)2.0時代等話題進行深入探討。以下內容根據采訪實錄整理。
請劉總簡單介紹下智能化軟件開發(fā)1.0時代及其發(fā)展現狀?
智能化軟件開發(fā)1.0時代可以說是通過引入大模型技術,集中實現了軟件開發(fā)的一些初級自動化場景,包括代碼生成、代碼補全、單元測試生成和缺陷檢測等。系統(tǒng)也支持簡單的需求捕獲和拆分等任務。但是,這些功能通常是以獨立的方式執(zhí)行,不能深入理解和應用企業(yè)特定的業(yè)務邏輯。
目前國內外的玩家主要有GitHub的Copilot、Amazon的CodeWhisperer、百度的comate 、阿里的通義靈碼、甚至包括我們aiXcoder的上一代產品等。各家產品在功能和能力上差異并不大,缺乏明顯的差異化。盡管產品在宣傳中,強調了具有更強的上下文理解能力和更大的參數量,甚至與GPT-3.5等模型進行比較占據優(yōu)勢,但實際上并沒有真正解決大模型與企業(yè)領域知識融合這一核心問題,使得它們無法滿足企業(yè)基于自身的業(yè)務落地大模型的需求,簡單來講,覺得大模型學不會自己企業(yè)的領域知識,幻覺和生成結果不確定性嚴重;而這種孤立性和對業(yè)務邏輯的理解不足,也導致了其產品對軟件開發(fā)復雜需求的處理浮于表面,實際上代碼輸出的準確性和實用性往往會大打折扣,限制了其在實際企業(yè)業(yè)務環(huán)境中的應用效果和用戶的信任度。
您認為智能化軟件開發(fā)1.0時代具體存在的問題有哪些?
智能化軟件開發(fā)1.0存在的問題主要問題是不進行有效個性化訓練而直接落地大模型,這會直接產生兩大缺陷:應用模式缺陷和技術缺陷。
首先,從應用模式來看,主要缺陷表現在兩個方面。
第一,在訓練層面,缺乏對業(yè)務原始需求與設計的考量。1.0時代的產品往往只關注代碼本身的語法和結構,忽略了代碼必須服務于具體的業(yè)務需求和邏輯,所以并沒有將需求分析和設計文檔等企業(yè)背景知識融合進模型的訓練中,導致生成/補全的代碼往往缺乏業(yè)務邏輯,從而使產品的準確性和可用性不足。
第二,在測試層面,無法形成需求到測試的閉環(huán)。測試自動化在1.0時代通常只基于現有代碼進行,忽略了測試的本質是驗證需求的完整性和正確性,沒能深入到需求層面,而是僅依賴于代碼級的表面生成,沒有實現對原始需求的全面交互和驗證。
其次,從技術缺陷來看,主要表現在三個方面。
一是環(huán)境依賴信息的缺失,現在的大模型訓練主要是在開源代碼及企業(yè)代碼上的訓練,這種脫離企業(yè)背景知識,僅對代碼訓練的方式,依然缺乏足夠的項目上下文支持,這導致生成的代碼雖然在語法上正確,但經常與項目的實際業(yè)務需求不符。雖然各大模型廠商都在上下文長度上努力,但并不會從根源上解決這一技術缺陷。
二是當前的智能化開發(fā)輔助主要依賴于大模型的語言能力,通過模式匹配和簡單的Prompt指令生成代碼。然而,這種方法僅停留在表層語言模型的使用上,無法深入理解復雜的業(yè)務邏輯和編程規(guī)范,導致大模型在實際應用中的表現不盡如人意,影響了結果的有效性和可靠性,尤其是生成內容的可靠性仍然存在較大問題。
三是微調方法的局限性,盡管在1.0時代我們采用了全參微調(Fine Tuning)、以及LoRa、Adapter、Prompt等PEFT高效參數微調(部分參數微調)方式,甚至嘗試使用RAG和MoE等方法讓大模型學習特定領域知識,但這些常規(guī)微調技術和方法仍存在局限性。盡管它們在某些特定任務中表現出一定的效果,但由于沒有充分訓練企業(yè)領域的專有數據和背景知識,這些方法在真實業(yè)務應用中的表現往往難以達到預期,無法完全滿足實際業(yè)務的需求。
從客戶角度來看,我們發(fā)現很多大模型在通用的場景或者主流的測評集上表現都不錯,聲稱也能達到30%到50%的準確率。但是一旦拿到企業(yè)中去應用,通常發(fā)現準確率下降到了10%以下。即使用各種方式做微調,效果也不盡如人意。對于企業(yè)而言,技術團隊和商務團隊盡力引入并上線了智能軟件開發(fā)產品,也進行了相應的微調,但如果最終結果無法達到預期,可能會引發(fā)內部大量用戶和軟件開發(fā)人員的投訴,帶來巨大的風險。綜合來看,真實企業(yè)軟件開發(fā)場景是非常復雜的,具有很強的業(yè)務邏輯、擁有明確的編碼規(guī)范和獨特的代碼風格,在多階段的復雜開發(fā)流程中更是涉及多角色、多工具、多團隊的共同協(xié)作參與。盡管智能化軟件開發(fā)1.0時代提供了一定的軟件自動化支持,但其并沒有真正解決企業(yè)領域知識問題,也沒有充分考慮真實開發(fā)場景的復雜需求。所以基于這樣一個背景,aiXcoder率先提出了軟件開發(fā)2.0時代的概念,并已成功在多家大型企業(yè)中落地實施。通過這一模式,企業(yè)才能真正抓住并充分利用大模型所帶來的技術紅利。
aiXcoder如何定義智能化軟件開發(fā)2.0時代的?
智能化軟件開發(fā)2.0時代:首先通過嚴格的數據治理和鏈式管理,對企業(yè)的特定領域知識進行全面的結構化處理,確保從需求定義、設計、編碼到最終代碼提交的每個環(huán)節(jié)都得到精準記錄和系統(tǒng)關聯(lián)。在此基礎上,進行低成本、高度個性化的模型訓練,構建基于領域的軟件工程大模型。通過多智能體協(xié)同自動化、傳統(tǒng)軟件開發(fā)方法和最佳實踐的有機結合,全面保障了開發(fā)流程的高效性與結果的準確性,使大模型從單一的代碼生成工具轉變?yōu)榕c企業(yè)開發(fā)過程深度協(xié)同的智能體集合,顯著提升了開發(fā)效率和產品質量。
我們所定義的智能化軟件開發(fā)2.0時代,其核心概念并不復雜??梢杂靡粋€公式來概括:智能化軟件開發(fā)2.0 = 專業(yè)軟工領域大模型 + 多Agent協(xié)同 + 傳統(tǒng)軟件工程方法。
首先,本階段的智能軟件開發(fā)強調對軟件研發(fā)流程的高度數據治理。整個開發(fā)全過程,從需求分析、概要設計、詳細設計、編碼實現、測試,直到最終產品上線,每一個環(huán)節(jié)都通過結構化的數據治理和全面的數據鏈管理進行鏈式數據追蹤,確保軟件開發(fā)的原始需求被精確記錄并與系統(tǒng)緊密關聯(lián)。這種全鏈條的協(xié)同工作方式,不僅使得大模型能夠最大程度地理解企業(yè)特定的業(yè)務邏輯,還能夠在開發(fā)的每一個階段中準確反映這些邏輯。同時,基于經過治理的領域化數據集,對模型進行個性化訓練,使大模型能夠深入學習并應用企業(yè)的領域知識,從而構建一個低成本、高度個性化的企業(yè)領域化大模型,這將是最關鍵的一步。此外,在實現領域個性化的基礎上,通過多Agent方式處理軟件開發(fā)流程中的各類任務,并結合傳統(tǒng)的軟件開發(fā)方法、工具和最佳實踐,確保了領域大模型輸出的準確性和可靠性。
這種結合了專業(yè)軟工領域大模型、多Agent協(xié)同,以及傳統(tǒng)軟件工程方法、工具與最佳實踐的協(xié)同自動化方式,正是我們所定義的智能化軟件開發(fā)2.0時代。
根據智能化軟件開發(fā)2.0時代的定義和特性,劉總,您認為企業(yè)在邁入2.0時代時,應該重點關注哪些關鍵行動或策略?有哪些具體的準備工作是企業(yè)需要優(yōu)先考慮的?
結合多年來我們團隊對軟件工程領域的深刻理解,以及aiXcoder在企業(yè)領域化大模型落地方面的豐富經驗。我們總結了以下4個核心策略,幫助企業(yè)更好的擁抱智能軟件開2.0時代。
第一是面向領域的開發(fā)數據治理,這一點非常關鍵。簡而言之,企業(yè)需要對最原始的需求文檔進行深入治理,將自然語言表達的“大白話”需求逐步轉化為精確的開發(fā)語言描述,從需求分析、設計,到開發(fā)、測試及運維等環(huán)節(jié)的數據、知識都進行整合并進行全鏈條數據治理,并確保數據質量、規(guī)模與多樣性,以服務于領域大模型的構建與優(yōu)化。值得一提的是,這種數據管理框架和方法能夠高效復用,日后大模型產生的海量數據都是基于該框架治理,從而可持續(xù)用于訓練,這有助于提高企業(yè)在應對市場變化時的靈活性和響應速度。
第二是基于領域數據的個性化模型構建。通過利用治理好的領域知識數據集,并充分考慮企業(yè)算力資源、代碼量等因素,對大模型進行靈活的個性化訓練及參數調優(yōu),確保大模型能夠精準捕捉并反映企業(yè)業(yè)務需求,使其逐步掌握企業(yè)特定的業(yè)務流程與邏輯、專業(yè)術語和編碼規(guī)范。進一步地,通過應用PEFT、MoE、RAG和AI Agent等技術和方法,確保個性化訓練能夠根據企業(yè)具體業(yè)務需求進行靈活調整和優(yōu)化。這樣的策略不僅增強了模型的業(yè)務適應性,還提升了模型訓練效率和輸出的準確性。
第三點是將大模型的先進能力與傳統(tǒng)軟件工程的方法和工具相結合。許多企業(yè)在引入大模型后,往往傾向于完全依賴大模型,忽視了原本效果優(yōu)異的軟件開發(fā)工具。這種做法實際上并不合理,因為大模型雖然具有強大的能力,但其生成結果并非總是精準無誤。為了確保大模型輸出結果的準確性與可靠性,企業(yè)應繼續(xù)結合和利用傳統(tǒng)的軟件工程工具與方法,使其與大模型協(xié)同工作,從而保障開發(fā)流程的時效性和結果的高質量。
最后一點是面向各場景的智能協(xié)同。通過引入Agent技術,將其與企業(yè)特有的軟件開發(fā)流程和現有的軟件開發(fā)工具相結合,以提升開發(fā)流程的透明度和效率。同時,確保所有自動化過程的合規(guī)性和可追蹤性,實現需求分析、設計、編碼、測試和部署等各個開發(fā)場景的深度協(xié)同。通過系統(tǒng)化的數據共享和流程整合,開發(fā)團隊能夠在各個階段實現無縫銜接,從而更加高效地應對復雜的項目需求和快速變化的市場環(huán)境。
aiXcoder如何幫助企業(yè)落地智能軟件開發(fā)2.0時代?
在與很多大型企業(yè)交流的過程中,我們發(fā)現目前企業(yè)普遍面臨著搞不懂、訓不轉、學不會三大挑戰(zhàn),展開來講,就是企業(yè)缺乏優(yōu)秀人才,現有的技術人員搞不懂模型應該如何訓練。有些企業(yè)技術積累較好,試圖通過開源模型+各種微調的方式,嘗試讓大模型的能力更貼近企業(yè)的真實開發(fā)環(huán)境要求,最終還是發(fā)現大模型學不會企業(yè)的領域知識,效果不盡如人意。
為此,我們發(fā)布了一個大模型落地框架LLM Adoption Framework(LAF),旨在幫助企業(yè)了解如何將大模型與領域知識相結合,并利用我們的經驗,幫助來自各個領域和行業(yè)的企業(yè)有效地部署和落地領域大模型。具體來說,該框架是一種咨詢的方法論,分為以下三個階段:第一個階段,評估階段。我們首先會根據企業(yè)的商業(yè)目標進行全面評估,深入了解企業(yè)已開展的工作,以及為何未能實現大模型落地的預定業(yè)績目標,并分析導致這些差距的原因。第二階段,模型構建及訓練階段。基于這些差距企業(yè)應該怎么選擇模型,怎么準備和處理數據,如何訓練模型,可以通過哪些數據治理的方法來達到預期的狀態(tài)。此階段旨在精確構建并優(yōu)化大模型,確保模型深度融合并體現企業(yè)特有的領域知識。在這一階段,不僅進行模型架構的設計與搭建,還包括針對企業(yè)獨特業(yè)務邏輯和領域特定數據的深入治理及訓練過程。第三階段,上線及產品化階段。這一階段主要涉及產品化的過程。我們將幫助企業(yè)將領域大模型與其內部多個平臺通過API進行集成,并確保模型能力能夠有效輸出到業(yè)務端,所有這些都需要根據企業(yè)的實際需求進行定制化實現。
總而言之,aiXcoder的LAF并非特定于任何一個開源/閉源大模型提供商,而是大量利用aiXcoder提供的大模型訓練、領域經驗和軟件工程最佳實踐為企業(yè)提供更具體的深度咨詢和指導。同時,aiXcoder的LAF不僅限于aiXcoder模型使用,企業(yè)可以選擇任何閉源和開源模型,它是完全可以通用的,并非aiXcoder“獨門秘籍”,可以根據企業(yè)“領域知識”量身定制大模型落地實施及行動計劃。
最后,總結一下我們的觀點:
● 無論是開源還是閉源,選擇專業(yè)的軟件工程大模型,而不是通用大模型。
● 不關注大模型廠商宣傳支持了多少功能和HumanEval、MBPP、MultiPL-E等常規(guī)的“打榜”評測集評測結果,要關注大模型實際生成內容是否真的理解企業(yè)的業(yè)務。
● 務必要結合領域知識治理并訓練,再做進一步微調。直接使用常規(guī)的全參微調、高效微調、RAG等方式幫助不大。
● 大模型落地要高度自治、解耦,企業(yè)業(yè)務的復雜程度和連續(xù)性,更不允許綁定某個大模型廠商。
● 一定要做個性化訓練,不能直接落地代碼大模型,同時培養(yǎng)自己的技術人員,有效規(guī)避直接部署模型的高風險。
關于aiXcoder簡介:aiXcoder孵化自北京大學軟件工程研究所,創(chuàng)始團隊均來自北京大學,是全球最早將深度學習技術應用于代碼生成與代碼理解領域的團隊,也是最早將深度學習應用在編程產品的團隊。公司專注于AIGC for Code領域,致力于將前沿人工智能技術應用于軟件工程,為企業(yè)提供完備的智能化軟件開發(fā)解決方案,包括私有化部署、領域化大模型落地及定制化開發(fā)等服務,現已在金融、軍工、航空航天、通信、高科技等行業(yè)頭部企業(yè)部署實施。目前已服務智能編程社區(qū)版產品用戶80萬+,獲得廣泛行業(yè)及眾多C端開發(fā)者們的認可。
評論