国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

大模型顛覆研發模式:字節跳動是如何在單元測試中落地大模型的?

jf_WZTOguxH ? 來源:AI前線 ? 2023-08-16 14:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大模型的出現引發了一場軟件工程革命,它根本性地改變了軟件開發的流程和方式。當下,越來越多的企業開始在實際的研發工作中,結合大模型增強軟件開發在設計、需求、測試、發布和運維等各個環節中的能力,提高質量和效率。

在接受 InfoQ 采訪時,字節跳動算法專家張樹波表示,大語言模型是一項人工智能基礎技術的突破,必然會帶來多個行業的變革。2023 年初,字節跳動智能服務團隊開始啟動大模型 X 智能單測項目。目前,大模型生成單元測試已經在實際業務中落地。

單元測試是保障項目可靠性的重要手段。傳統的智能單測生成依賴靜態分析、動態分析等工具,對不同的語言需要重新適配。隨著模型參數規模的提升,模型的代碼理解、代碼生成能力也大幅提升,使用模型端到端的生成單元測試,可以低成本地將單元測試覆蓋到多種編程語言。然而大模型在單測生成任務上仍存在模型幻覺(隨機生成不存在變量名、方法名)和測試分支覆蓋不全的問題。

為解決以上問題,字節跳動智能服務團隊發現通過任務微調、強化學習等技術可以提升語言模型的單元測試生成語法正確率和分支覆蓋率。經過測試,他們的基于 Bloom 70 億參數模型的生成效果不弱于通用版 ChatGPT 的水平,并且在低端顯卡上的推理時延只有 ChatGPT 的 25%。且目前大模型單元測試生成分支覆蓋率在實際項目中達到 56%,同時在抖音的 Android、iOS 雙端落地,問題有效性達到 80%,修復率 65%。

在今年 9 月 3-5 日舉辦的 QCon 全球軟件開發大會·北京站中,張樹波將把以上經驗分享給大家。張樹波碩士畢業于清華大學,先后就職于 vivo、字節跳動,從事 NLP 算法多年,在智能單測、智能客服、語音助手等業務場景有豐富的落地經驗。

在大會開始前,InfoQ 對張樹波進行了專訪,探索字節跳動是如何在單元測試中落地大模型的,以及大模型對軟件研發工作流的改變。以下為對話實錄,經編輯。

InfoQ:您在今年 9?舉辦的 QCon 全球軟件開發?會·北京站上的演講主題是《?模型助?智能單測?成》,為什么會選擇這?主題?

張樹波:2022 年底 OpenAI 發布 ChatGPT,其效果令人大為震撼,曾經讓 NLPer 困擾的自然語言處理問題,例如歧義、長程依賴、知識缺失、推理能力不足等,都得到了很大程度的緩解和解決。大語言模型是一項人工智能基礎技術的突破,必然會帶來多個行業的變革。2023 年初,我們字節跳動智能服務團隊啟動了大模型 X 智能單測項目,探索至今,大模型生成單元測試已經在實際業務中落地。這其中我們總結出了一些經驗,希望能夠幫助聽眾。

InfoQ:對于這波?模型結合軟件開發應?熱潮,您觀察到哪些有趣的趨勢?

張樹波:大模型會讓開發更輕松。大模型代碼生成會降低開發者編寫重復性代碼,但是不意味者開發門檻降低,開發者需要具備辨識模型生成是否正確,以及對最終上線負責。當前大模型生成的代碼還不能保證絕對正確,甚至有些隱蔽的錯誤,不容易被新手開發者發現。從這個角度來看,大模型對有經驗的開發者助益更大。

大模型如何改變傳統單測生成? InfoQ:在?模型出現以前,傳統的智能單測?成?法是什么樣的?存在哪些痛點?

張樹波:傳統的單測生成應用最廣、最成功的是基于搜索的單測生成,也就是很多場景都會提到的(search based software testing - SBST),其中集成了非常多的程序分析技術,包括各種各樣的靜態分析、動態分析以及遺傳算法甚至 constrain solving。但因為語言的特性不同,同樣的分析技術對不同的語言是需要重新實現的。雖然測試生成的原理在不同語言是通用的,但是強依賴于軟件分析技術,那么每新增一種新的語言支持,就需要適配一整套分析技術,成本較大。另外,精確的分析可能會依賴于編譯產物,例如動態分析,因此要求目標項目進行編譯后才能進行測試生成,提高了生成所需的前置準備要求。

而基于模型的生成可以直接分析源碼,無需編譯,降低生成的要求,大大擴大適應場景。近幾年來應用 repository mining 提升 test generation 甚至 program repair 效果的工作也在逐漸的增加,說明 NLP 中的一些假設在軟工領域也是成立的,比如現有 repository 中包含了 test generation 甚至 program repair 中需要的知識,大家也做了相應的嘗試,學習歷史知識并應用到新的任務中在軟工領域也是大家認可的思路。

InfoQ:應??模型后,智能單測?成?法發?了哪些變化?實際效果如何?能完全替代傳統的智能單測?成?法嗎?

張樹波:這里先補充一個業務應用背景,智能單測一般在開發者代碼編寫過程中 (IDE) 和在代碼提交后 (CI) 發揮作用,前者要求可讀性、正確性,后者要求正確性、覆蓋率指標。應用大模型后,智能單測由傳統模版生成 + 遺傳算法的方式向端到端的模型生成方式演化。傳統單測在正確性和覆蓋率指標上仍然比大模型生成的要高,在 CI 過程中,仍占主導位置,大模型在其中作為補充。而在 IDE 中,大模型生成單測的可讀性更好,便于開發者修改,因此在 IDE 中單測更傾向使用大模型生成的結果。

我們智能服務團隊的主要基于 Bloom、starcoder 等開源模型做了測試以及微調,經過測試,其中基于 Bloom 的 70 億參數模型的生成效果不弱于通用版 ChatGPT 的水平,并且在低端顯卡(A30)上的推理時延只有 ChatGPT 的 25%。目前,我們的大型模型單元測試生成分支覆蓋率在實際項目中達到 56%,同時在抖音的 Android、iOS 雙端落地, 問題有效性達到 80%,修復率 65%。同時我們也正在試用火山方舟上大模型的單測生成能力,效果正在評估中。

整體來看,大模型仍有一定局限,發展有個過程,各有千秋,取長補短,可以融合應用 1+1>2,不同場景可以有不同的應用方式。

InfoQ:?模型在智能單測?成中的應?原理是什么?

張樹波:大模型單測生成屬于代碼生成、文本生成的范疇,旨在通過大模型完成端到端的單測代碼生成。大模型單測生成輸入是待測方法、以及上下文,輸出為單元測試函數。隨著模型規模的提升,模型的代碼理解、單測生成能力也大幅提升。

目前智能服務團隊內使用的大模型基座主要是開源模型,例如 Bloom、Starcoder,基于以上大模型,我們對裸模型以及使用單測訓練數據微調之后模型,分別做了評估,當前選擇了基于 Bloom7B 的微調模型落地。同時我們團隊在 Java、Swift、Go 等多種編程語言的大模型落地計劃,廣泛收集了公開數據集、業務數據集用于微調。

如何提升?模型單測?成準確性? InfoQ:您提到?模型在單測?成任務上仍存在模型幻覺和測試分?覆蓋不全的問題,對于這兩個問題,字節有哪些解決思路?如何提升?模型單測?成準確性?

張樹波:當前我們使用單測生成任務數據在大模型做了微調,讓大模型專注單測生成。實驗表明,通過構建高質量的訓練數據,可以顯著提升大模型單測分支覆蓋率指標。基于微調后的大模型,通過引入以編譯器、靜態分析結果作為獎勵的強化學習,可以進一步緩解模型幻覺的問題。微調和強化學習的基本假設是模型在預訓練階段學習到了代碼相關知識,通過微調或強化學習,可以激發模型的潛力,或讓模型跟隨特定偏好,輸出更好結果。如果預訓練階段沒有過多的對應任務領域的語料,通過繼續預訓練的方式可以讓模型適配這一領域,然后進行后面的微調和強化學習,可以取得更好的結果。

除了以上方式,另外一種簡單粗暴的方式是提升模型規模,規模越大,能力上限越高。

InfoQ:除此之外,?模型在單測?成中還有那些局限性?是否會遇到數據質量問題?是否需要考慮隱私和安全問題?有哪些措施可以確保數據安全?

張樹波:大模型在單測生成瓶頸在能給大模型提供多少背景信息,如果是一個簡單的函數,沒有涉及任何其他自定義的類,大模型未來可以完美解決,但是涉及其他的類的,甚至是多層的,外層信息稀疏性,會提高輸入的上下文輸入長度,在實際落地中會在輸入長度和生成效果之間做一個取舍。微調數據質量非常重要,決定模型是否可用的關鍵因素。關于數據安全問題,火山方舟提出了全方位的大模型安全架構,為模型訓練方和使用者提供安全可信環境。

InfoQ:在?模型助?智能單測?成的過程中,字節團隊內還積累了哪些經驗和教訓?對于希望在項?中應??模型進?智能單測?成的團隊,您會給他們提供哪些建議?

張樹波: 不僅是在大模型助力智能單測生成這個方向,所有大模型 X 某某類似的應用落地都是一項系統工程。在大模型落地過程中,其他兄弟團隊給予了大量的經驗和技術支持。

InfoQ:您認為在?模型助?智能單測?成??,還有哪些需要進?步研究和探索的領域 / 挑戰??模型在智能單測?成領域的未來發展趨勢是什么樣的?

張樹波:目前,我們對于 LLM 的應用仍比較初級,所以首先是最基礎的研究,如何正確激發大模型在單測任務上的潛力,讓大模型發揮全部的效果。目前我們探索的手段包括但不限于任務微調、prompt engineering、RL,然后是下一個階段,如何讓模型不斷地增強在特定場景中的效果。另外,大模型的能力和發展讓原本一些無法通過自動化解決的問題有了新的可能性,比如經典的 oracle problem,不僅僅是困擾單測生成,GUI 的測試、program repair 的落地都受限于這個經典問題。如果大模型能夠解決 oracle problem,剛才提到的多種軟工技術,會迎來又一個落地的春天,而我們對于這個趨勢充滿信心。

“大模型將對研發模式產生顛覆性改變” InfoQ:?模型在軟件研發?作流中最?的價值是什么??模型對軟件研發?作流的改變,將會如何影響軟件開發?業的未來發展趨勢?

張樹波:毫無疑問,大模型將對研發的模式產生顛覆性的改變,但這個改變并不會在一夜之間就發生,會是一個持續漸進的過程,三年五年甚至十年。隨著大模型的不斷發展和進化,對于研發工作流的影響程度會逐漸加深加強。副駕駛 Copilot 是一種比較可能的切入和演進方式,一開始會在一些比較合適的小場景,Copilot 以半自動化的方式對特定任務進行賦能和提效(比如單測的生成),然后隨著模型對代碼的理解能力和推理能力增強,推理結果置信度提升,模型在任務中的重要程度逐步增加,在一些任務上達到和人類同等重要的參與程度。

同時,能力可以泛化推廣到其他相似或者相關的任務,比如 defect detection、fault localization、program repair 等等,成為開發者的“強化外骨骼”或者最佳搭檔。甚至有可能在不遠的將來,實現通過 prompt 研發和調試軟件,就像《西部世界》中的場景一樣。

InfoQ:?前市?上存在很多結合?模型的研發效能?具,但在?些企業的端到端落地過程中并不理想,也沒有實現提效的突破,這背后可能存在哪些問題?不同規模的企業如何通過?模型實現最優的研發效率和質量?

張樹波:大模型適合做推理任務,這是之前單體小模型不具備的能力。在這個基礎上,可以反觀大模型是否在做這類事情。另外當前市面上的開源大模型或者大模型 API 都是通用大模型接口,如果直接在某個領域應用可能存在領域的 gap。大模型本身也存在問題,例如大模型生成內容是有偏的,而且存在模型幻覺、推理錯誤等問題。同時研發效能工具的需要結合具體業務落地,我們智能服務團隊,在抖音、直播、剪映做了很多開創性的研發效能實踐,歡迎大家與我們合作。

大模型應用可以分為幾個層次,API 調用、模型微調、模型繼續預訓練、模型預訓練,成本依次呈幾何級數遞增,不同規模企業可以簡單衡量下投入產出比,來確定在哪個層面應用大模型。

InfoQ:?模型會對程序員帶來哪些沖擊?程序員和?模型如何更好地共?,實現 1+1>2 的效果?

張樹波:我不認為大模型會減少對程序員的需求量,因為現在大模型還不能替代程序員,也不能為最終結果負責。在我們智能服務團隊的實際業務中,我們把程序員當成客戶,模型生成的單測為程序員服務,自動化單測檢測出來的問題需程序員解決,大模型和程序本身是共生的關系。

大模型生成代碼能力增強的同時,需要程序員提升自己的專業能力,能快速判斷大模型生成的代碼是否正確以及生成質量的高低。程序員能力越強,使用大模型生成代碼的質量也會越高,因為通過使用不同的 prompt,可以生成不同質量的代碼。程序員應該擁抱大模型,它可以提高代碼編寫效率,對于一些常識性的問題,它也能做到有問必答,省去網上搜索的時間。

嘉賓簡介

張樹波,字節跳動算法專家,清華大學碩士畢業,先后就職于 vivo、字節跳動。從事 NLP 算法多年,在智能單測、智能客服、語音助手等業務場景有豐富的落地經驗。將在 QCon 北京 2023 分享題為《大模型助力智能單測生成》的演講。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 人工智能
    +關注

    關注

    1817

    文章

    50098

    瀏覽量

    265387
  • 字節跳動
    +關注

    關注

    0

    文章

    352

    瀏覽量

    10075
  • 大模型
    +關注

    關注

    2

    文章

    3650

    瀏覽量

    5183

原文標題:大模型顛覆研發模式:字節跳動是如何在單元測試中落地大模型的?

文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    半導體嵌入式單元測試的核心技術、工具選型與落地全流程

    一、半導體嵌入式軟件的質量危機與單元測試的核心價值1.1 半導體嵌入式軟件的復雜性演進在摩爾定律的驅動下,半導體芯片的集成度呈指數級增長,嵌入式軟件作為芯片功能的核心載體,其復雜度也隨之飆升。以汽車
    發表于 03-06 14:55

    汽車軟件質量躍遷的系統性路徑:基于ISO 26262標準的單元測試體系重構與中日實踐深度對比(2026學術研究報告)

    豐田、本田等日本車企與比亞迪、蔚來等中國企業的實證數據,構建“單元測試覆蓋率-OTA召回成本-管理認知偏差”三維模型。研究發現: 日本車企通過CoverageMaster winAMS工具實現
    發表于 01-05 14:58

    嵌入式軟件單元測試中AI自動化與人工檢查的協同機制研究:基于專業工具的實證分析

    ? ?摘要****? 本文系統探討嵌入式軟件相較于通用軟件在單元測試層面的特殊性,分析其對高覆蓋率、可追溯性與實時性驗證的嚴苛需求,并以專業工具winAMS為技術載體,深入研究AI驅動的自動化測試
    發表于 12-31 11:22

    C語言單元測試在嵌入式軟件開發中的作用及專業工具的應用

    平臺和操作系統上運行,無需進行大量的修改 二、C語言單元測試在嵌入式開發中的關鍵作用 嵌入式系統對實時性和可靠性要求極高,單元測試是確保代碼質量的關鍵手段。單元測試在嵌入式開發中的作用主要體現在以下幾個
    發表于 12-18 11:46

    嵌入軟件單元測試的全面研究與實踐

    引言 嵌入軟件單元測試是確保嵌入式系統質量和可靠性的關鍵環節。嵌入式系統廣泛應用于汽車電子、工業控制、醫療設備等關鍵領域,其軟件直接操控硬件,任何微小的錯誤都可能導致嚴重后果。單元測試
    的頭像 發表于 12-01 14:31 ?532次閱讀

    單元測試專業工具在新能源開發中的作用研究

    單元測試的歷史由來與發展 單元測試的概念可以追溯到20世紀60年代,伴隨著計算機科學和軟件工程學科的發展而逐步形成。早期的計算機科學研究(20世紀60年代)中,程序員意識到僅依靠手工調試和集成測試
    的頭像 發表于 11-03 16:03 ?474次閱讀

    何在vivadoHLS中使用.TLite模型

    本帖欲分享如何在vivadoHLS中使用.TLite模型。在Vivado HLS中導入模型后,需要設置其輸入和輸出接口以與您的設計進行適配。 1. 在Vivado HLS項目中導入模型
    發表于 10-22 06:29

    邊聊安全 | 軟件單元測試的設計方法

    上海磐時PANSHI“磐時,做汽車企業的安全智庫”軟件單元測試的設計方法寫在前面:軟件單元測試的設計是一個系統化的過程,旨在驗證代碼的最小可測試部分(通常是函數或方法)是否按預期工作。軟件單元
    的頭像 發表于 09-05 16:18 ?7412次閱讀
    邊聊安全 | 軟件<b class='flag-5'>單元測試</b>的設計方法

    HarmonyOSAI編程單元測試用例

    根據選中的ArkTS方法名稱,CodeGenie支持自動生成對應單元測試用例,提升測試覆蓋率。 在ArkTS文檔中,光標放置于方法名稱上或框選完整的待測試方法代碼塊,右鍵選擇CodeGenie
    發表于 08-27 14:33

    模型捉蟲行家MV:致力全流程模型動態測試

    動態測試通過模擬真實運行數據,對模型及生成的代碼進行“全維度體檢”。這一過程層層遞進:從單元測試聚焦單個模塊的精準性,到集成測試驗證模塊間的協作邏輯,最終通過
    的頭像 發表于 07-09 16:37 ?885次閱讀
    <b class='flag-5'>模型</b>捉蟲行家MV:致力全流程<b class='flag-5'>模型</b>動態<b class='flag-5'>測試</b>

    請問如何在C++中使用NPU上的模型緩存?

    無法確定如何在 C++ 中的 NPU 上使用模型緩存
    發表于 06-24 07:25

    新能源車軟件單元測試深度解析:自動駕駛系統視角

    )。 ? 成本節約: ?通過虛擬化測試替代部分HIL設備,某車企減少70%的硬件采購成本(約800萬美元)。 ?第四部分:未來趨勢與行業建議****? ?MBSE與單元測試的深度融合? 基于模型
    發表于 05-12 15:59

    新能源車背后的隱形守護者:軟件單元測試的生死較量?

    。這個教科書級的避讓動作背后,是超過8000萬行代碼的精密協作,而確保這些代碼絕對可靠的秘密武器,正是我們今天要揭秘的軟件單元測試。 ?一、代碼世界的顯微鏡:單元測試為何重要? 如果把整車軟件比作一座摩天大樓,單元測試就是檢查
    的頭像 發表于 05-12 11:00 ?602次閱讀

    單元測試在嵌入式軟件中的關鍵作用及winAMS工具的卓越貢獻

    1.?單元測試概述 ?定義與核心目標? 單元測試是軟件開發過程中針對程序模塊(如函數、類或組件)的最小可測試單元進行的驗證活動。其核心目標在于隔離代碼片段,驗證其功能是否符合設計預期,
    的頭像 發表于 04-11 14:31 ?1054次閱讀

    嵌入式軟件單元測試的必要性、核心方法及工具深度解析

    一、為什么嵌入式軟件必須重視單元測試? ?嵌入式系統的特殊性? 在汽車 ECU、醫療設備控制器等場景中,軟件直接操控硬件,?單比特錯誤可能導致剎車失靈或呼吸機故障?。不同于 PC?軟件可頻繁熱更新
    的頭像 發表于 03-21 14:53 ?1429次閱讀