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

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

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

怎么評估算法的性能

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

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

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

性能的意義

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

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

性能評估的觀測指標

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

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

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

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

從批跑到壓測

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

數(shù)量得足夠,否則均值和分位點計算就達不到統(tǒng)計意義。

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

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

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

小結(jié)

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

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

    關(guān)注

    54

    文章

    11073

    瀏覽量

    102616
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4588

    瀏覽量

    92505
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3115

    瀏覽量

    48660

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

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何評估智能系統(tǒng)的性能

    評估智能系統(tǒng)的性能是一個復(fù)雜而多維的任務(wù),它涉及多個方面和指標。以下是一些關(guān)鍵的評估方法和策略: 一、功能測試 功能測試是評估智能系統(tǒng)是否按照預(yù)期執(zhí)行任務(wù)的關(guān)鍵環(huán)節(jié)。這包括: 單元測試
    的頭像 發(fā)表于 10-29 09:49 ?140次閱讀

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

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

    AM335x功耗估算工具

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

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

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

    如何評估TVS二極管的性能

    評估TVS(Transient Voltage Suppressor,瞬態(tài)電壓抑制器)二極管性能是一個涉及多個方面的綜合性過程。TVS二極管主要用于保護電子設(shè)備免受瞬態(tài)過電壓的沖擊,其性能直接關(guān)系
    的頭像 發(fā)表于 09-14 16:28 ?464次閱讀

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

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

    AM263x功率估算工具

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

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

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

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

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

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

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

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

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

    6G技術(shù)性能會議召開 共商空口與評估標準

    6G技術(shù)性能要求任務(wù)組圍繞ITU-R《IMT-2030空口最低技術(shù)性能要求報告》及《空口技術(shù)評估方法》組織技術(shù)討論,此次會議聚焦通信感知的系統(tǒng)性指標、人工智能相關(guān)指標、空口能效指標、評估
    發(fā)表于 03-20 10:36 ?432次閱讀

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

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

    SAGE算法性能分析

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

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

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