1. 最佳實(shí)踐:基于LLM在DevOps領(lǐng)域的實(shí)踐實(shí)現(xiàn)效能提升丨IDCF

        共 9819字,需瀏覽 20分鐘

         ·

        2024-04-15 07:58

        點(diǎn)這里??星標(biāo)關(guān)注,獲取最新資訊!


        沈威乾 研發(fā)效能(DevOps)工程師(中級(jí))認(rèn)證學(xué)員

        ??摘要

        隨著大型語(yǔ)言模型(LLM)技術(shù)的迅速發(fā)展,軟件工程師面臨著新的開(kāi)發(fā)范式。本文探討了LLM在DevOps領(lǐng)域的應(yīng)用的探索實(shí)踐。文章首先介紹了LLM在DevOps發(fā)展背景、將LLM集成至DevOps流程、組織推廣和提效方式等相關(guān)實(shí)踐,然后探討了LLM的原理及其限制,最后展望了LLM在DevOps領(lǐng)域的未來(lái),強(qiáng)調(diào)軟件工程師應(yīng)積極擁抱變化專(zhuān)注于核心價(jià)值,利用LLM作為可靠的協(xié)作伙伴,提高項(xiàng)目交付的效率和質(zhì)量,同時(shí)保持自身的競(jìng)爭(zhēng)力。

        ??關(guān)鍵詞:LLM, DevOps,Copilot

        01



        背景

        DevOps 

        在2023年,大型語(yǔ)言模型(LLM)在DevOps領(lǐng)域的應(yīng)用經(jīng)歷了顯著的增長(zhǎng),尤其是在軟件開(kāi)發(fā)、項(xiàng)目管理和質(zhì)量保障等方面。

        LLM技術(shù)在過(guò)去一年中取得了顯著的進(jìn)步,隨著OpenAI的GPT-4.0和ChatGPT的發(fā)布,模型的能力在多個(gè)方面實(shí)現(xiàn)了顯著的能力提升,包括不限于更高級(jí)的語(yǔ)言理解、更好的上下文理解、更精確的的推理能力。GitHub的Copilot也得到了快速的發(fā)展,Copilot是由GitHub與OpenAI合作開(kāi)發(fā)的AI代碼補(bǔ)全工具,利用LLM技術(shù)為開(kāi)發(fā)者提供實(shí)時(shí)的代碼建議和補(bǔ)全功能,極大地提高了編程效率和代碼質(zhì)量。這一工具的推出,標(biāo)志著LLM技術(shù)在軟件開(kāi)發(fā)領(lǐng)域的實(shí)際應(yīng)用邁出了重要一步。

        在此基礎(chǔ)上,更多的企業(yè)開(kāi)始探索將LLM集成到DevOps流程中,進(jìn)行了LLM與軟件開(kāi)發(fā)的結(jié)合探索,特別是在代碼自動(dòng)補(bǔ)全和AI輔助工具方面。這些探索提高了研發(fā)人員的開(kāi)發(fā)交付效率。此外,云服務(wù)提供商向用戶(hù)介紹了LLM技術(shù)的應(yīng)用,及如何利用LLM技術(shù)來(lái)改進(jìn)軟件開(kāi)發(fā)管理的新趨勢(shì)和方法。對(duì)LLM技術(shù)進(jìn)行封裝和集成,推出了各種基于LLM的服務(wù),這些服務(wù)在軟件項(xiàng)目管理和質(zhì)量保障方面發(fā)揮了重要作用。

        然而,盡管LLM技術(shù)在提高效率方面展現(xiàn)出了巨大的潛力,但在企業(yè)規(guī)模應(yīng)用、信息安全、與現(xiàn)有工具的整合等方面仍面臨挑戰(zhàn)。因此,大多數(shù)企業(yè)目前仍處于探索和嘗試落地的階段。總的來(lái)說(shuō),LLM技術(shù)在DevOps領(lǐng)域的應(yīng)用正在逐步深入。盡管面臨一些挑戰(zhàn),但其提供的新的工具和方法預(yù)示著這一領(lǐng)域的未來(lái)發(fā)展?jié)摿Γ瑸檐浖_(kāi)發(fā)和項(xiàng)目管理帶來(lái)了新的機(jī)遇。

        本文將圍繞以下方式組織,第二章講述公司基于LLM在Devops領(lǐng)域進(jìn)行的實(shí)踐探索,第三章關(guān)注LLM的原理和限制從而最大限度發(fā)揮其長(zhǎng)處,第四章展望了LLM在DevOps領(lǐng)域的進(jìn)一步發(fā)展方向和從業(yè)者應(yīng)該如何面對(duì)新的技術(shù)。

        02



        探索實(shí)踐

        DevOps 

        公司通過(guò)LLM集成DevOps的流程中從而提升研發(fā)效能的探索實(shí)踐,本章從三部分展開(kāi),首先是公司將LLM技術(shù)融入到DevOps流程所做的探索和實(shí)踐,其次是如何從組織層面維度在全員中推廣相關(guān)的產(chǎn)品,最后是團(tuán)隊(duì)成員通過(guò)哪些具體的工具在DevOps流程中進(jìn)行提效,著重以研發(fā)視角展開(kāi)。

        2.1 LLM集成DevOps流程

        作為大型互聯(lián)網(wǎng)公司,既要擁抱前沿的技術(shù),又要考慮到數(shù)據(jù)的隱私和安全,同時(shí)模型要符合自身業(yè)務(wù),公司選擇內(nèi)部私有化部署,并通過(guò)內(nèi)部數(shù)據(jù)進(jìn)行定制化模型訓(xùn)練。由于模型部署在公司的內(nèi)部服務(wù)器上,所有數(shù)據(jù)都留在公司的網(wǎng)絡(luò)內(nèi),因此可以更好地控制數(shù)據(jù)的訪問(wèn)和使用。訓(xùn)練數(shù)據(jù)是內(nèi)部的,因此可以更好地保護(hù)敏感信息,避免數(shù)據(jù)泄露風(fēng)險(xiǎn),同時(shí)作為有嚴(yán)格合規(guī)要求的公司,內(nèi)部部署可以確保合規(guī)性。使用公司內(nèi)部的數(shù)據(jù)來(lái)訓(xùn)練模型,可以使模型更加符合公司的業(yè)務(wù)需求,提高輸出的準(zhǔn)確性和相關(guān)性。

        這種內(nèi)部定制方式部署需要大量的計(jì)算資源,包括高性能GPU和大量的存儲(chǔ)空間,以及專(zhuān)門(mén)的部門(mén)支持。定制化模型訓(xùn)練可能需要較高的初始投資,包括數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練和驗(yàn)證等。另外需要有足夠的技術(shù)能力來(lái)維護(hù)和更新模型,包括軟件工程師、數(shù)據(jù)科學(xué)家和IT運(yùn)維人員。公司都需要投入相應(yīng)的資源來(lái)確保模型的安全、準(zhǔn)確和高效運(yùn)行。

        在具備了LLM基礎(chǔ)的能力之后,需要考慮如何將模型集成到現(xiàn)有的Devops工作流程中,以及如何培訓(xùn)員工有效地使用這些工具,利用LLM技術(shù)提升工作效率和創(chuàng)新能力。公司在探索過(guò)程中提供的工具中包括聊天對(duì)話(huà)網(wǎng)站、瀏覽器插件、集成開(kāi)發(fā)環(huán)境(IDE)插件、API接口、定制處理的數(shù)據(jù)信息、智能體、會(huì)議助手等。

        對(duì)話(huà)網(wǎng)站和瀏覽器插件都提供了允許研發(fā)人員直接使用LLM相關(guān)能力以對(duì)話(huà)問(wèn)答的方式處理遇到的文檔中有疑問(wèn)的信息,或者一些基礎(chǔ)需要檢索的信息,從而提升效能

        集成開(kāi)發(fā)環(huán)境(IDE)插件可以直接在研發(fā)人員的IDE中集成的插件,方便在編寫(xiě)代碼時(shí)快速獲取幫助或生成代碼片段。在下文中具體講所涉及的相關(guān)功能。

        API接口、定制處理的數(shù)據(jù)信息、智能體等則提供了基于LLM底層模型進(jìn)行二次開(kāi)發(fā)的能力,對(duì)于公司的基礎(chǔ)服務(wù)如核心的PaaS服務(wù)、DevOps的CICD流水線服務(wù),將LLM能力和自身的數(shù)據(jù)整合至服務(wù)中,為一線研發(fā)使用和問(wèn)題排查上提升效率。

        公司不斷的迭代相關(guān)的工具,確保交互盡可能簡(jiǎn)單和直接,充分利用LLM的能力,以便研發(fā)人員可以專(zhuān)注于他們的核心任務(wù)。

        2.2 組織推廣

        LLM的發(fā)展一直都備受公司內(nèi)部的關(guān)注,包括決策層在內(nèi),都認(rèn)為其會(huì)極大的改變和增強(qiáng)員工的工作效率,即使在初期沒(méi)有實(shí)際的完備的產(chǎn)品,也鼓勵(lì)大家擁抱新的技術(shù),了解相關(guān)的知識(shí)。

        隨著底層能力初步建設(shè)和完善,公司也進(jìn)行組織層面的推廣,首先在公司有影響力的技術(shù)文件中明確了要積極利用LLM提升研發(fā)效能,同時(shí)對(duì)于工程領(lǐng)域的細(xì)分的技術(shù)線(如前端、后端、數(shù)據(jù)開(kāi)發(fā)等)進(jìn)行取消,公司認(rèn)為隨著LLM的發(fā)展,未來(lái)工程師的能力應(yīng)該是更加全面的,未來(lái)組織形態(tài)更應(yīng)該以交付價(jià)值為關(guān)注點(diǎn),團(tuán)隊(duì)乃至研發(fā)個(gè)體具備更全面的能力來(lái)提升交付能力。

        與此同時(shí)舉行了公司級(jí)別的LLM主題的黑客馬拉松,通過(guò)大家的集體智慧來(lái)探索相關(guān)產(chǎn)品和技術(shù)領(lǐng)域能夠通過(guò)LLM賦能的場(chǎng)景。在比賽直播和賽后分享作品的過(guò)程中,大家加深了技術(shù)的理解,同時(shí)展示很多的技術(shù)方向,更重要的是從組織層面盡可能寬泛的去影響其他研發(fā)人員的好奇,提升相關(guān)LLM產(chǎn)品的使用。

        公司培訓(xùn)中心將LLM做為年度最重要的主題展開(kāi)系列講座,分享嘉賓包括外部的國(guó)內(nèi)知名該領(lǐng)域的社區(qū)組織者,高校相關(guān)領(lǐng)域的教授,以及業(yè)內(nèi)知名企業(yè)負(fù)責(zé)LLM 賦能DevOps的專(zhuān)家和LLM相關(guān)的創(chuàng)業(yè)公司的負(fù)責(zé)人,也包括公司內(nèi)部負(fù)責(zé)基礎(chǔ)模型和集成開(kāi)發(fā)環(huán)境(IDE)插件的負(fù)責(zé)人等。分享主題上既包括LLM的原理和發(fā)展史,提示詞工程和技巧、LLM Agents、向量數(shù)據(jù)庫(kù)等,也包括如何更好的使用集成開(kāi)發(fā)環(huán)境(IDE)插件相關(guān)的功能來(lái)提升研發(fā)效能。

        隨著公司基礎(chǔ)LLM能力的完善,能夠確定一些LLM在研發(fā)過(guò)程中的具體應(yīng)用場(chǎng)景,如代碼輔助、文檔生成、錯(cuò)誤診斷等,將LLM集成到研發(fā)工具鏈和流程中并進(jìn)行了快速的迭代,如集成開(kāi)發(fā)環(huán)境(IDE)插件、代碼倉(cāng)庫(kù)評(píng)審和發(fā)布系統(tǒng)變更提示、編譯異常的錯(cuò)誤分析。從公司層面推廣工具的使用,通過(guò)實(shí)施監(jiān)控機(jī)制,跟蹤LLM的使用情況和效能指標(biāo)。評(píng)估LLM對(duì)研發(fā)效能的實(shí)際影響,并根據(jù)評(píng)估結(jié)果進(jìn)行調(diào)整和優(yōu)化。

        2.3 提效方式

        下面主要從研發(fā)的視角來(lái)看具體的LLM 工具在DevOps的哪些場(chǎng)景起到了提升效能的目的,我們從一次典型的交付流程來(lái)看,包括產(chǎn)品設(shè)計(jì)、架構(gòu)設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署和運(yùn)維等相關(guān)環(huán)節(jié),當(dāng)前能夠通過(guò)集成開(kāi)發(fā)環(huán)境(IDE)插件提升效能的環(huán)節(jié)主要是開(kāi)發(fā)和測(cè)試環(huán)節(jié)。代碼進(jìn)入CICD流水線后,編譯過(guò)程中如果報(bào)錯(cuò)會(huì)給出分析判斷以及相關(guān)組件潛在風(fēng)險(xiǎn)。研發(fā)人員提交PR后,會(huì)給出提交代碼的評(píng)審意見(jiàn)。

        集成開(kāi)發(fā)環(huán)境(IDE)插件提供的功能,提供了代碼自動(dòng)補(bǔ)全,解釋代碼,添加注釋?zhuān)a重構(gòu),生成單測(cè)用例,窗口對(duì)話(huà),自定義Prompt等相關(guān)功能,下面具體闡述相關(guān)功能對(duì)研發(fā)效能的提升。

        1.自動(dòng)化代碼生成和補(bǔ)全:雖然對(duì)于涉及多個(gè)類(lèi)協(xié)作完成的較大功能點(diǎn)還比較困難,但是對(duì)于拆解后等單個(gè)類(lèi)中功能點(diǎn),如單個(gè)函數(shù)功能,LLM可以理解自然語(yǔ)言描述的代碼需求,自動(dòng)完成函數(shù)或類(lèi)定義,以及根據(jù)自然語(yǔ)言描述生成或建議代碼片段。幫助開(kāi)發(fā)人員在編寫(xiě)代碼時(shí)減少重復(fù)性工作,提高編碼效率,此外LLM通過(guò)學(xué)習(xí)一些標(biāo)準(zhǔn)的最佳實(shí)踐,并可能幫助避免常見(jiàn)錯(cuò)誤,提升代碼質(zhì)量。根據(jù)從研發(fā)收集的反饋來(lái)看,在編寫(xiě)一些基礎(chǔ)模版代碼,其代碼質(zhì)量高于開(kāi)發(fā)人員的平均水平。

        2.代碼解釋、添加注釋、代碼重構(gòu):大型互聯(lián)網(wǎng)公司的項(xiàng)目往往經(jīng)歷了很多年、很多開(kāi)發(fā)人員的迭代,在初期由于業(yè)務(wù)的快速發(fā)展,往往犧牲開(kāi)發(fā)質(zhì)量來(lái)滿(mǎn)足業(yè)務(wù)需求,項(xiàng)目規(guī)范要求較低,導(dǎo)致文檔缺失,需要從代碼中去反推和理解業(yè)務(wù)。通過(guò)插件的代碼解釋功能能夠幫助開(kāi)發(fā)人員更快的理解代碼的業(yè)務(wù)含義,同時(shí)也可以生成相應(yīng)的注釋?zhuān)嵘?xiàng)目的可維護(hù)性,后續(xù)其他研發(fā)人員能夠更快速的理解含義。當(dāng)新的需求涉及原有質(zhì)量較低的代碼片段時(shí),可以通過(guò)插件代碼重構(gòu)功能對(duì)原有代碼進(jìn)行重構(gòu),但是也存在優(yōu)化后出錯(cuò)的概率,需要研發(fā)人員有能力進(jìn)行判斷。

        3.窗口對(duì)話(huà),當(dāng)在開(kāi)發(fā)過(guò)程需要查詢(xún)一些資料和API的使用方法時(shí),原有的方式是跳出開(kāi)發(fā)工作區(qū),去搜索引擎中查詢(xún)相關(guān)的問(wèn)題,通過(guò)窗口對(duì)話(huà)無(wú)需跳出工作開(kāi)發(fā)區(qū),直接通過(guò)問(wèn)答的方式獲取信息,更有助于研發(fā)人員保持專(zhuān)注和心流的狀態(tài)。

        4.自定義Prompt,通過(guò)保存?zhèn)€人常用的Prompt并關(guān)聯(lián)相關(guān)的快捷鍵,在后續(xù)類(lèi)似的場(chǎng)景可以快速的通過(guò)快捷鍵使用提示詞從而獲得相應(yīng)的回復(fù)。

        5.單元測(cè)試的編寫(xiě),在公司內(nèi)部很多團(tuán)隊(duì)都由于開(kāi)發(fā)節(jié)奏和項(xiàng)目的歷史原因而不進(jìn)行單測(cè)的編寫(xiě),隨著穩(wěn)定性的要求越來(lái)越高,越來(lái)越多的部門(mén)強(qiáng)制推動(dòng)增量代碼的單元測(cè)試的編寫(xiě),通過(guò)插件的單測(cè)能力,能夠針對(duì)增量代碼進(jìn)行單元測(cè)試用例的編寫(xiě),研發(fā)人員能夠在此基礎(chǔ)上進(jìn)行修改和優(yōu)化,以較小的工作增量保證代碼的質(zhì)量。

        6.智能錯(cuò)誤檢測(cè)和修復(fù):LLM可以分析新增的代碼,識(shí)別潛在的錯(cuò)誤和問(wèn)題,并提供修復(fù)建議,從而幫助開(kāi)發(fā)人員在早期發(fā)現(xiàn)并解決缺陷,提升代碼質(zhì)量。

        7.智能問(wèn)題定位和故障排除:在研發(fā)進(jìn)行自測(cè)過(guò)程中出現(xiàn)問(wèn)題時(shí),LLM可以幫助開(kāi)發(fā)人員快速排查錯(cuò)誤,定位問(wèn)題根源,提供解決方案建議,減少故障排除時(shí)間。在CICD流水線編譯過(guò)程發(fā)生報(bào)錯(cuò)或潛在的風(fēng)險(xiǎn)后,能夠給出相關(guān)的原因和修復(fù)方案從而更快的發(fā)現(xiàn)和修復(fù)問(wèn)題。

        8.除了集成開(kāi)發(fā)環(huán)境(IDE)插件外,CICD流水線基于LLM進(jìn)行二次開(kāi)發(fā),在研發(fā)人員進(jìn)行發(fā)起PR后,可以智能代碼審查,提供代碼質(zhì)量、安全性、性能等方面的建議,幫助開(kāi)發(fā)人員幫助發(fā)現(xiàn)潛在的問(wèn)題,并提高代碼質(zhì)量,減少返工。

        上述提到的主要是開(kāi)發(fā)階段的不同場(chǎng)景下通過(guò)集成開(kāi)發(fā)環(huán)境(IDE)Copilot插件和LLM集成CICD流水線來(lái)進(jìn)行研發(fā)效能的提升。除此之外在測(cè)試環(huán)節(jié)也可以通過(guò)LLM 完成相關(guān)的效能提升,包括測(cè)試用例和自動(dòng)化腳本的編寫(xiě)。利用LLM生成測(cè)試用例,確保代碼的每個(gè)部分都經(jīng)過(guò)適當(dāng)?shù)臏y(cè)試,從而保證代碼的正確性和健壯性,通過(guò)減少手動(dòng)編寫(xiě)測(cè)試用例的工作量來(lái)提升效能。利用LLM自動(dòng)生成自動(dòng)化測(cè)試腳本,提高測(cè)試的自動(dòng)化程度,減少手動(dòng)測(cè)試的工作量。

        除了上述典型的交付流程場(chǎng)景外,在其他的一些場(chǎng)景下,LLM也能夠起到研發(fā)效能提升的作用,對(duì)相關(guān)場(chǎng)景和所使用LLM能力進(jìn)行簡(jiǎn)述。

        復(fù)雜的業(yè)務(wù)系統(tǒng)往往有著較多的業(yè)務(wù)知識(shí)背景,當(dāng)新的成員進(jìn)入團(tuán)隊(duì)時(shí),能夠快速的學(xué)習(xí)相關(guān)的業(yè)務(wù)概念并映射到系統(tǒng)里至關(guān)重要,只有如此才能和團(tuán)隊(duì)的其他成員進(jìn)行協(xié)作。對(duì)于復(fù)雜的業(yè)務(wù)系統(tǒng)存在著很多的產(chǎn)品文檔,可能分散在不同的空間目錄下,查找并完整閱讀可能比較低效,通過(guò)LLM結(jié)合知識(shí)庫(kù)的方式構(gòu)建對(duì)應(yīng)的智能體,把產(chǎn)品知識(shí)文檔進(jìn)行切片然后向量化后續(xù)通過(guò)向量檢索進(jìn)行召回,再作為上下文輸入到大語(yǔ)言模型進(jìn)行歸納總結(jié)。這樣團(tuán)隊(duì)新人通過(guò)概述性的文檔進(jìn)行了解系統(tǒng)后,在遇到問(wèn)題后和智能體進(jìn)行問(wèn)答,進(jìn)一步深入理解系統(tǒng),減少對(duì)團(tuán)隊(duì)成員打擾,同時(shí)自身以更高效的方式學(xué)習(xí)業(yè)務(wù)。

        采用和上述相同的技術(shù)方案,可以用于公司相關(guān)的PaaS服務(wù)的chat bot,以及非研發(fā)人員使用OLAP平臺(tái)進(jìn)行數(shù)據(jù)分析的任務(wù)。公司級(jí)的PaaS服務(wù)往往沉淀了很多的文檔,包括快速入門(mén)、最佳實(shí)踐、架構(gòu)設(shè)計(jì)、實(shí)現(xiàn)原理、FAQ等,研發(fā)人員在開(kāi)發(fā)需求或者排查相關(guān)的問(wèn)題時(shí),原有的路徑是要尋找各種相關(guān)的文檔,確認(rèn)沒(méi)有相應(yīng)的解答后才能向提供方發(fā)起工單,效率很低,在LLM基礎(chǔ)上的chat bot能夠更快通過(guò)問(wèn)答的方式給出相應(yīng)的資料和解答。非研發(fā)人員(產(chǎn)品、運(yùn)營(yíng))使用OLAP平臺(tái)進(jìn)行數(shù)據(jù)分析時(shí),原有的路徑需要把想要的指標(biāo)以自然語(yǔ)言的方式給相關(guān)的研發(fā)人員,研發(fā)同學(xué)在將其轉(zhuǎn)換成對(duì)應(yīng)系統(tǒng)的檢索語(yǔ)句,查詢(xún)后將結(jié)果返回給非研發(fā)人員,這個(gè)過(guò)程本身對(duì)于研發(fā)同學(xué)的價(jià)值產(chǎn)出很小,但是又是不得不完成的任務(wù),在OLAP平臺(tái)提供的LLM的chat bot,非研發(fā)同學(xué)可以直接通過(guò)對(duì)應(yīng)自然語(yǔ)言轉(zhuǎn)換成對(duì)應(yīng)的查詢(xún)語(yǔ)句,自行完成相關(guān)的分析任務(wù)。

        此外,LLM可以作為學(xué)習(xí)工具,幫助開(kāi)發(fā)人員快速理解新的編程語(yǔ)言、框架和技術(shù)棧,通過(guò)快速學(xué)習(xí)其他的技術(shù)棧構(gòu)建出工作中所需要的工具,提升對(duì)應(yīng)環(huán)節(jié)的效率,從而最終提升研發(fā)效能。例如服務(wù)端研發(fā)人員通過(guò)和LLM進(jìn)行對(duì)話(huà)的方式快速學(xué)習(xí)了Chrome插件開(kāi)發(fā)的方式,通過(guò)開(kāi)發(fā)瀏覽器插件來(lái)記錄RPC復(fù)雜接口出入?yún)?shù)從而提升接口的自測(cè)效率。

        通過(guò)這些方式,LLM可以幫助DevOps團(tuán)隊(duì)提高工作效率,加速交付價(jià)值,同時(shí)減少錯(cuò)誤,最終提升整個(gè)軟件開(kāi)發(fā)生命周期的質(zhì)量。然而,需要注意的是,LLM生成的內(nèi)容可能需要人工審核和驗(yàn)證,以確保其準(zhǔn)確性和安全性,在下章我們進(jìn)一步講述。

        03



        原理及限制

        DevOps 

        為了更好的使用LLM在DevOps領(lǐng)域的提升效能,我們應(yīng)該盡量深入的理解LLM的原理和限制。

        大型語(yǔ)言模型(LLM)是一種基于深度學(xué)習(xí)的自然語(yǔ)言處理模型,它通過(guò)分析大量文本數(shù)據(jù)來(lái)學(xué)習(xí)語(yǔ)言的復(fù)雜結(jié)構(gòu)和規(guī)律。這些模型通常采用神經(jīng)網(wǎng)絡(luò)架構(gòu),如Transformer模型,并經(jīng)過(guò)預(yù)訓(xùn)練以理解和生成自然語(yǔ)言。LLM能夠處理和生成文本,回答問(wèn)題,翻譯語(yǔ)言,進(jìn)行文本摘要和創(chuàng)作。在DevOps領(lǐng)域,LLM可用于自動(dòng)化文檔生成、代碼審查、錯(cuò)誤檢測(cè)和自動(dòng)化測(cè)試。它們可以幫助開(kāi)發(fā)人員更快地編寫(xiě)代碼和識(shí)別問(wèn)題,從而提高開(kāi)發(fā)效率。

        從它的原理可以看出,LLM是通過(guò)學(xué)習(xí)已有的數(shù)據(jù),在海量參數(shù)的神經(jīng)網(wǎng)絡(luò)架構(gòu)基礎(chǔ)上涌現(xiàn)的能力,它的可靠性取決于它們獲取的數(shù)據(jù)。如果向它們提供虛假信息,它們就會(huì)在回答用戶(hù)詢(xún)問(wèn)時(shí)提供虛假信息。在DevOps領(lǐng)域,以代碼補(bǔ)齊的功能為例,LLM也是通過(guò)學(xué)習(xí)公開(kāi)的和企業(yè)內(nèi)部的代碼庫(kù)來(lái)提供相應(yīng)的輸出功能,在此過(guò)程中如果學(xué)到的代碼是低質(zhì)量的、甚至包含各種bug的代碼也有可能導(dǎo)致給用戶(hù)提供的代碼質(zhì)量很差,導(dǎo)致采用率很低,消耗了計(jì)算資源,但沒(méi)有提升效率。

        LLM 有時(shí)也會(huì)“產(chǎn)生幻覺(jué)”:當(dāng)它們無(wú)法提供準(zhǔn)確答案時(shí),它們會(huì)制造虛假信息。在DevOps領(lǐng)域,如果我們基于對(duì)話(huà)框進(jìn)行相關(guān)技術(shù)問(wèn)題進(jìn)行對(duì)話(huà)或者對(duì)一段代碼片段進(jìn)行重構(gòu)時(shí),會(huì)存在著錯(cuò)誤回答的概率,而即便有時(shí)上下文中已經(jīng)告知LLM,在后續(xù)的對(duì)話(huà)中,依然可能存在同樣的錯(cuò)誤而沒(méi)有得到糾正。這樣的限制其實(shí)對(duì)研發(fā)人員提出了一定的要求,具備相關(guān)知識(shí)能夠辨別出是否正確。

        在安全方面,除了可以通過(guò)惡意輸入操縱 LLM,使其提供某些類(lèi)型的響應(yīng),另外在DevOps領(lǐng)域,更常見(jiàn)安全問(wèn)題之一是,用戶(hù)可能為了提高自己的工作效率而將安全的機(jī)密數(shù)據(jù)上傳到 LLM 中。LLM 使用它們接收到的輸入來(lái)進(jìn)一步訓(xùn)練它們的模型,但是它們?cè)谠O(shè)計(jì)上沒(méi)有安全保險(xiǎn)庫(kù)功能,它們可能會(huì)在響應(yīng)其他用戶(hù)的查詢(xún)時(shí)公開(kāi)機(jī)密數(shù)據(jù)。比如企業(yè)內(nèi)的文件有不同的安全等級(jí),一些機(jī)密性高的文件和系統(tǒng),在企業(yè)安全架構(gòu)上只允許特定的人群看到,而由于LLM 設(shè)計(jì)上的缺陷導(dǎo)致相關(guān)信息被不具備權(quán)限的用戶(hù)看到。

        04



        前景

        DevOps 

        4.1 LLM在DevOps領(lǐng)域展望

        雖然LLM在DevOps領(lǐng)域提升效能存在著各種潛在的問(wèn)題和挑戰(zhàn),但是隨著技術(shù)的不斷進(jìn)步,我們可以期待未來(lái)LLM在DevOps領(lǐng)域的更廣泛應(yīng)用和改進(jìn)。在DevOps領(lǐng)域,LLM的進(jìn)一步發(fā)展方向可能包括以下幾個(gè)方面:

        1.更深入的代碼理解和生成:隨著模型能力的提升,LLM將能夠更深入地理解代碼的結(jié)構(gòu)和邏輯,從而在代碼生成、審查、bug修復(fù)、代碼優(yōu)化等方面發(fā)揮更大的作用。當(dāng)前的代碼補(bǔ)全更多的是聚焦在單個(gè)類(lèi)內(nèi)進(jìn)行補(bǔ)全,隨著能力提升可以更進(jìn)一步的在整個(gè)項(xiàng)目層面進(jìn)行代碼補(bǔ)全,另外LLM可以自動(dòng)識(shí)別代碼中的潛在錯(cuò)誤,并提供修復(fù)建議。

        2.內(nèi)置規(guī)范,提升代碼質(zhì)量:架構(gòu)、編碼規(guī)范內(nèi)建到 AIGC 工具中?;诖耍拍芴岣哕浖_(kāi)發(fā)的 AIGC 質(zhì)量,強(qiáng)化代碼的可用性。通過(guò)內(nèi)置的規(guī)則,使得代碼在生成的時(shí)候,符合團(tuán)隊(duì)制定的架構(gòu)、編碼規(guī)范,提升代碼的質(zhì)量。

        3.更智能的自動(dòng)化:LLM可以進(jìn)一步集成到持續(xù)集成/持續(xù)部署(CI/CD)流程中,通過(guò)結(jié)合代碼變更工具來(lái)分析變更帶來(lái)的影響和重點(diǎn)回歸的測(cè)試用例,自動(dòng)觸發(fā)相應(yīng)的測(cè)試。

        4.跨領(lǐng)域的知識(shí)融合:LLM可以結(jié)合其他領(lǐng)域的知識(shí),如系統(tǒng)架構(gòu)、安全、業(yè)務(wù)邏輯等,提供更全面的DevOps支持。例如,LLM可以分析系統(tǒng)日志,識(shí)別潛在的安全威脅,并建議相應(yīng)的防御措施。

        5.個(gè)性化和自適應(yīng)的DevOps工具:LLM可以根據(jù)開(kāi)發(fā)者的個(gè)人習(xí)慣和項(xiàng)目特點(diǎn),提供個(gè)性化的開(kāi)發(fā)建議和工具配置。例如,LLM可以根據(jù)開(kāi)發(fā)者的編碼風(fēng)格進(jìn)行代碼編寫(xiě),通過(guò)快捷鍵設(shè)置使用LLM 能力,從而提升研發(fā)效能。

        6.實(shí)時(shí)協(xié)作和交互:LLM可以成為開(kāi)發(fā)團(tuán)隊(duì)之間的實(shí)時(shí)協(xié)作工具,幫助解決溝通和協(xié)調(diào)問(wèn)題。例如,LLM可以作為會(huì)議助手總結(jié)DevOps會(huì)議中的討論的事項(xiàng)和接下來(lái)的todo list。

        7.可解釋性和透明度:隨著對(duì)模型決策過(guò)程的要求越來(lái)越高,LLM的可解釋性和透明度將成為重要的發(fā)展方向。開(kāi)發(fā)者和運(yùn)維人員需要理解LLM的推薦和決策依據(jù),以便更好地信任和利用這些工具。

        8.合規(guī)性:隨著LLM在DevOps中的應(yīng)用越來(lái)越廣泛,確保其符合合規(guī)要求將成為一議題。例如,LLM需要確保處理的數(shù)據(jù)符合隱私保護(hù)法規(guī),生成的代碼不包含版權(quán)問(wèn)題。

        這些發(fā)展方向都需要跨學(xué)科的合作,包括數(shù)據(jù)科學(xué)家、軟件開(kāi)發(fā)者、運(yùn)維工程師和法律專(zhuān)家等,共同推動(dòng)LLM在DevOps領(lǐng)域的創(chuàng)新和應(yīng)用。隨著技術(shù)的不斷進(jìn)步和數(shù)據(jù)的不斷豐富,未來(lái)的LLM將會(huì)更加成熟和強(qiáng)大,在DevOps領(lǐng)域得到更廣泛的應(yīng)用和推廣。

        4.2 從業(yè)人員專(zhuān)注核心價(jià)值

        LLM的發(fā)展對(duì)于軟件工程師而言開(kāi)啟了新的開(kāi)發(fā)范式,作為從業(yè)者既不應(yīng)該過(guò)分擔(dān)憂(yōu)的技術(shù)對(duì)自己的取代,也不應(yīng)該無(wú)視其快速的發(fā)展,應(yīng)該更好的使用相關(guān)的技術(shù)提升項(xiàng)目交付的效率和質(zhì)量,讓其成為一個(gè)可靠的協(xié)作伙伴。

        在LLM的快速發(fā)展的背景下,軟件工程師應(yīng)該將更多的精力投入到到更復(fù)雜、更難以自動(dòng)化、LLM難以替代的環(huán)節(jié),如需求的梳理、架構(gòu)的設(shè)計(jì)、復(fù)雜問(wèn)題的解決等,下面進(jìn)行簡(jiǎn)單的闡述。

        在未來(lái)需求的梳理和架構(gòu)的設(shè)計(jì)是軟件工程師的最核心的競(jìng)爭(zhēng)力之一,LLM難以完全替代。提升需求分析能力,學(xué)習(xí)如何更準(zhǔn)確地理解產(chǎn)品需求,并將其轉(zhuǎn)化為技術(shù)需求。通過(guò)加強(qiáng)架構(gòu)設(shè)計(jì)能力,設(shè)計(jì)可擴(kuò)展、可維護(hù)和易于部署的系統(tǒng)架構(gòu)。LLM短期內(nèi)還是難以完全創(chuàng)新的設(shè)計(jì)一個(gè)沒(méi)有學(xué)習(xí)過(guò)的系統(tǒng),以及系統(tǒng)非功能性的約束的方案設(shè)計(jì)方式。

        LLM可能提供一些優(yōu)化系統(tǒng)的通用建議,但是對(duì)于實(shí)際的業(yè)務(wù)系統(tǒng)而言,LLM無(wú)法提供具體系統(tǒng)性能優(yōu)化的實(shí)踐步驟,因此軟件工程師需要在這方面投入更多精力,對(duì)系統(tǒng)進(jìn)行性能分析、調(diào)優(yōu)和優(yōu)化,以提高系統(tǒng)的穩(wěn)定性和效率。

        LLM無(wú)法完全理解復(fù)雜問(wèn)題的背景和上下文,因此軟件工程師需要在這方面發(fā)揮主導(dǎo)作用,理解問(wèn)題本質(zhì),提升問(wèn)題解決能力,準(zhǔn)確快速的分析問(wèn)題、定位問(wèn)題和提出解決方案。

        LLM無(wú)法完全理解團(tuán)隊(duì)成員之間的溝通和協(xié)作需求,個(gè)人要提升團(tuán)隊(duì)協(xié)作和溝通能力,通過(guò)和團(tuán)隊(duì)成員有效溝通,并推動(dòng)團(tuán)隊(duì)協(xié)作的順利進(jìn)行。

        與此同時(shí),利用LLM來(lái)輔助完成一些重復(fù)性或模板化的任務(wù),或者通過(guò)拆解某些任務(wù)將其部分子任務(wù)自動(dòng)化或輔助化,以提高工作效率。通過(guò)這樣的策略,軟件工程師可以在LLM的背景下發(fā)揮更大的價(jià)值,并保持自己的競(jìng)爭(zhēng)力。

        在LLM快速發(fā)展的過(guò)程中,從業(yè)人員應(yīng)該擁抱新的技術(shù),讓其替代工程師更初級(jí)的工作,讓自身聚焦于需求理解、分析和拆解,架構(gòu)設(shè)計(jì),理解問(wèn)題本質(zhì)等工作維度,專(zhuān)注核心價(jià)值。

        參考文獻(xiàn)

        [1] ZHAO W, ZHOU K, LI J, et al. A Survey of Large Language Models[J].

        [2] Phodal Huang LLM 賦能的軟件架構(gòu):適應(yīng)代碼生成架構(gòu),改善生成質(zhì)量瓶頸 2023年7月

        與其臨淵羨魚(yú),不如退而結(jié)網(wǎng),用力擁抱夢(mèng)想?。?!

        《研發(fā)效能(DevOps)工程師 職業(yè)技術(shù)認(rèn)證》

        掌握端到端的研發(fā)效能知識(shí)體系,是想要成為高級(jí)管理者的必備技能!

        九期班·4月20日!??席位不多,盡快上車(chē)!擴(kuò)展職業(yè)發(fā)展與晉升之路!

        瀏覽 169
        10點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        10點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 国内三级在线 | 99成人 国产精品视频 | 强奸一级毛片 | 91精品啪在线观看国产老湿机 | 亚洲琪琪 |