精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

怎么評估算法的性能

深度學習自然語言處理 ? 來源:CS的陋室 ? 作者:CS的陋室 ? 2022-08-11 10:40 ? 次閱讀

我在很多文章里都有吐槽大規模預訓練模型的性能差,落地成本高,這一期就和大家講講,怎么評估算法的性能的。

當然,這篇文章應該是比較科普的,主要是為了讓大家樹立一個性能意識,在進行方案選型和最終檢測的時候,能有關注性能的這個意識。

性能的意義

這里所謂的性能,本質是對執行速度、執行資源消耗的一種評估。在現實的落地場景,一個模型最終能不能用起來,除了和算法效果有關,即類似準確率召回率,還和依賴的資源以及速度是相關的。

我們可以把運行環境比作一個空間有限的房間,如果你的刀是40米長的,其實很難在這個房間里使的舒服,即使他的傷害很高很強,與之相反,一把短一些的到在有限空間內,用起來會更得心應手。這就是性能的意義,在預訓練模型逐步熱門之后,這個問題會更加尖銳,預訓練無論是計算復雜度,還是空間需求,都很大,先不說訓練,就是推理,單機推理還算可以,但是耗時,還是高并發需求下,并非所有的組織都能支持,因此,我們需要對性能有足夠的敏感性,否則會很可能會出現,一頓操作效果調優一個月的預訓練模型,最終因為上不了線功虧一簣的尷尬情況,當然,這也是作為一名算法工程師,必備的一種能力。

性能評估的觀測指標

要評估性能好壞,有哪些評估項,又有那些評估指標,詳細介紹下。

首先是單機速度的評估。即單進程下,每次推理所需要的時間,或者單位時間下能處理的計算次數,一般評估的是rt(Reaction Time,響應時間)或者qps/tps(query per second,transaction per second)。但是,由于很多時候,不同的輸入可能會影響這個時間,所以一般使用和在線分布接近的樣本或者query來批量請求,求平均值,而常見的,耗時長度的分布服從二八法則,因此我們要關注的是TOP耗時的情況,因此我們還會看不同位置的分位點情況,例如90%、95%或者99%分位點。另外還有種評估的方式,用合格率之類的方法,例如最高耗時不能超過200ms,超過的算失敗,然后計算成功率,成功率99%以上。

對于互聯網環境,除了單機速度,還必須考慮并發能力,并發能力是指當同時很多請求同時或者接近同時請求的時候的性能狀態,很多時候,因為熱點事件的出現,大家會大量開始在網上檢索請求,對計算機而言,完不成的任務就會開始排隊(這個和銀行柜臺類似的),排隊太長系統自然就難堪重負崩潰了,例如微博、B站、知乎這種偶爾的崩潰就很多是因為這個原因。指標上,其實更多是和單機的評估類似,只是評估的時候,一般是用多進程同時請求以模擬在線情況,例如4進程、8進程這種,然后來看速度還能不能保證在合格范圍內。

除了速度之外,偶爾還要看看其他的問題,例如內存,有沒有內存泄漏(在服務運行期間內存有沒有持續增加),在高峰期內存是否在正常范圍內(例如80%以內),都是需要關注的。

從批跑到壓測

前面有提到,評估性能最簡單的方式就是批量跑case,簡單的性能評估,其實就是找一批和query批量跑,然后掐時間。這里,先說下這個query需要有什么要求:

數量得足夠,否則均值和分位點計算就達不到統計意義。

而且盡可能和現實場景匹配,這樣測得時間和在線實際時間比較接近(這個其實沒那么難,直接撈日志抽樣即可)

這個時間的評估其實不難,簡單的用tqdm,上面就顯示平均時間(X item/s),但是如果要算分位點了,肯定要把每個case的時間都記錄下來再統計,例如弄numpy里面的函數計算,寫起來并不算困難。

但是,一旦要考慮并發能力了,那就要壓測了,即壓力測試,所謂的壓測,其實就是計算機模擬N個用戶,同時不斷向服務發送請求,當然,要壓測的話,通常需要把模型打包成服務,例如grpc或者http的。然后和觀測上面提的指標,耗時、qps、成功率、內存等。一般情況,我們不需要用所有服務器來實驗,一般也是對一臺機器即可,因為多臺機器,如果有做負載均衡,其實性能就是多臺機器求和而已。python實現上,先是對模型打包成服務形成服務端,而壓測腳本這邊寫一個客戶端來請求服務端,上壓測的話就弄個多進程觸發即可,網上有很多樣例代碼,直接搜,當然別指望能照搬,肯定是需要自己服務的情況來修改額,畢竟接口不盡相同。

小結

本文給大家簡單介紹了算法這邊需要關注的性能,以及評估的主要方式,能讓大家對性能樹立一個基本的概念,讓大家清楚性能是什么,怎么觀測等,后續會給大家介紹一些性能調優的手段,幫助大家更好地優化性能,成功把自己心心念念的模型推上線。

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

    關注

    54

    文章

    11105

    瀏覽量

    103010
  • 算法
    +關注

    關注

    23

    文章

    4599

    瀏覽量

    92639
  • 模型
    +關注

    關注

    1

    文章

    3171

    瀏覽量

    48711

原文標題:算法性能評估指南

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何評估adc的性能參數

    評估ADC(模數轉換器)的性能參數是一個綜合考量多個因素的過程。以下是一些關鍵的ADC性能參數及其評估方法: 一、分辨率 分辨率是衡量ADC能夠區分的最小信號變化的能力,通常以位(bi
    的頭像 發表于 11-19 17:26 ?354次閱讀

    多通道負載測試和性能評估

    多通道負載測試和性能評估是軟件質量保證的重要組成部分,它們可以幫助我們發現和解決系統的性能瓶頸,提高系統的可用性和穩定性。 多通道負載測試是一種模擬多個用戶同時訪問系統的方法,以檢查系統在高并發
    發表于 11-11 16:44

    如何評估智能系統的性能

    評估智能系統的性能是一個復雜而多維的任務,它涉及多個方面和指標。以下是一些關鍵的評估方法和策略: 一、功能測試 功能測試是評估智能系統是否按照預期執行任務的關鍵環節。這包括: 單元測試
    的頭像 發表于 10-29 09:49 ?208次閱讀

    基于FPA的軟件工作量綜合評估研究與實踐

    方法基于軟件系統工作量估算法的融合,基于FPA評估法與專家經驗估算相結合,綜合評估軟件系統工作量,并將該方法實踐于多個項目中,結果得到了用戶的認可,表明了綜合
    發表于 10-15 10:45 ?0次下載

    AM335x功耗估算工具

    電子發燒友網站提供《AM335x功耗估算工具.pdf》資料免費下載
    發表于 10-12 11:46 ?0次下載
    AM335x功耗<b class='flag-5'>估算</b>工具

    評估板中TAS5558的PWM輸出性能為什么實測達不到SPEC中的性能

    基于TAS5634評估板和相應的gui軟件操作,對PWM輸出的單端和差分性能進行了測試,目前按寄存器的默認配置 三種調制方式都沒有達到SPEC中的性能,AD調制模式SNR測出約為77dB, BD
    發表于 10-09 10:04

    門窗傳感器評估平臺介紹和性能概述

    電子發燒友網站提供《門窗傳感器評估平臺介紹和性能概述.pdf》資料免費下載
    發表于 09-10 10:49 ?0次下載
    門窗傳感器<b class='flag-5'>評估</b>平臺介紹和<b class='flag-5'>性能</b>概述

    AM263x功率估算工具

    電子發燒友網站提供《AM263x功率估算工具.pdf》資料免費下載
    發表于 09-09 09:42 ?0次下載
    AM263x功率<b class='flag-5'>估算</b>工具

    如何評估機床測頭的性能是否滿足特定行業的需求?

    評估機床測頭的性能是否滿足特定行業的需求,需要從多個維度進行綜合考量。以下是一些關鍵步驟和評估標準:1.精度要求:測量精度是評估機床測頭性能
    的頭像 發表于 08-08 15:40 ?629次閱讀
    如何<b class='flag-5'>評估</b>機床測頭的<b class='flag-5'>性能</b>是否滿足特定行業的需求?

    如何評估美國洛杉磯高防服務器的性能

    評估美國洛杉磯高防服務器的性能對于確保網站或應用程序的穩定性和安全性至關重要。高防服務器通常被用來抵御分布式拒絕服務(DDoS)攻擊和其他網絡威脅。下面是一篇科普性質的文章,介紹如何評估這些服務器的
    的頭像 發表于 07-31 09:52 ?231次閱讀

    STM32F4用來作為計算單元的時候,如何評估算法或應用的時間性能

    STM32F4用來作為計算單元的時候,如何評估算法或應用的時間性能?能不能通過配置使之具備計時功能?精度達到us級別就足夠了。 關于計時,在debug狀態下,通過states的計數值可以計算時間性能,但必須是debug設置斷點
    發表于 05-16 06:37

    DC電源模塊的性能評估和比較

    BOSHIDA DC電源模塊的性能評估和比較 DC電源模塊是一種常用的電源模塊,主要用于提供直流電源給不同的電子設備。在進行性能評估和比較時,可以考慮以下幾個方面: ?1. 輸出功率:
    的頭像 發表于 04-09 13:14 ?440次閱讀

    DC電源模塊的安全性能評估與測試方法

    BOSHIDA DC電源模塊的安全性能評估與測試方法 DC電源模塊的安全性能評估與測試方法應包括以下幾個方面: ?DC電源模塊的安全性能
    的頭像 發表于 03-08 11:15 ?643次閱讀
    DC電源模塊的安全<b class='flag-5'>性能</b><b class='flag-5'>評估</b>與測試方法

    SAGE算法性能分析

    電子發燒友網站提供《SAGE算法性能分析.pdf》資料免費下載
    發表于 02-28 10:38 ?0次下載

    五軸按鍵測試機:精準評估按鍵性能的利器

    五軸按鍵測試機:精準評估按鍵性能的利器
    的頭像 發表于 12-26 09:15 ?525次閱讀
    五軸按鍵測試機:精準<b class='flag-5'>評估</b>按鍵<b class='flag-5'>性能</b>的利器