日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

大模型應用可以分為幾個層次,API 調(diào)用、模型微調(diào)、模型繼續(xù)預訓練、模型預訓練,成本依次呈幾何級數(shù)遞增,不同規(guī)模企業(yè)可以簡單衡量下投入產(chǎn)出比,來確定在哪個層面應用大模型。

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

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

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

嘉賓簡介

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

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

    關注

    1821

    文章

    50376

    瀏覽量

    267085
  • 字節(jié)跳動

    關注

    0

    文章

    353

    瀏覽量

    10134
  • 大模型
    +關注

    關注

    2

    文章

    3805

    瀏覽量

    5280

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    前端的單元測試

    https://www.bilibili.com/opus/1178756596191199237 從入門到會寫:前端單元測試最佳學習路徑 在當今的互聯(lián)網(wǎng)開發(fā)江湖中,前端技術棧的更新迭代速度令人咋舌
    的頭像 發(fā)表于 03-19 16:05 ?627次閱讀

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

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

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

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

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

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

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

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

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

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

    單元測試專業(yè)工具在新能源開發(fā)中的作用研究

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

    何在vivadoHLS中使用.TLite模型

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

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

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

    HarmonyOSAI編程單元測試用例

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

    模型捉蟲行家MV:致力全流程模型動態(tài)測試

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

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

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

    從FA模型切換到Stage模型時:module的切換說明

    。 supportedModes標識應用支持的運行模式,當前只定義了駕駛模式(drive)。/Stage模型已廢棄。 distro對象中的moduleName標識當前HAP的名稱。 distro對象中
    發(fā)表于 06-05 08:16

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

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

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

    。這個教科書級的避讓動作背后,是超過8000萬行代碼的精密協(xié)作,而確保這些代碼絕對可靠的秘密武器,正是我們今天要揭秘的軟件單元測試。 ?一、代碼世界的顯微鏡:單元測試為何重要? 如果把整車軟件比作一座摩天大樓,單元測試就是檢查
    的頭像 發(fā)表于 05-12 11:00 ?731次閱讀
    滨海县| 尚义县| 藁城市| 诸城市| 措勤县| 阿拉善盟| 繁峙县| 额尔古纳市| 临泉县| 平度市| 灵宝市| 小金县| 宿松县| 华池县| 峨眉山市| 桑日县| 上林县| 库尔勒市| 怀远县| 甘肃省| 临夏县| 承德市| 筠连县| 左权县| 石阡县| 武隆县| 贵南县| 淅川县| 古丈县| 瑞丽市| 扬中市| 龙岩市| 驻马店市| 建昌县| 新巴尔虎左旗| 兴业县| 泸水县| 峡江县| 正定县| 五华县| 松江区|