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

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

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

大語言模型中的常用評估指標

jf_pmFSk4VX ? 來源:GiantPandaCV ? 2023-06-12 17:00 ? 次閱讀

大語言模型中的常用評估指標

EM

EM 是 exact match 的簡稱,所以就很好理解,em 表示預(yù)測值和答案是否完全一樣。

defcalc_em_score(answers,prediction):
em=0
foransinanswers:
#刪掉標點符號
ans_=remove_punctuation(ans)
prediction_=remove_punctuation(prediction)
ifans_==prediction_:
#只有在預(yù)測和答案完全一樣時em值為1,否則為0
em=1
break
returnem

F1

分別計算準確率和召回率, F1 是準確率和召回率的調(diào)和平均數(shù)。

defcalc_f1_score(answers,prediction):
f1_scores=[]
foransinanswers:
#分詞后的答案,分詞方法參見附錄2
ans_segs=mixed_segmentation(ans,rm_punc=True)
#分詞后的預(yù)測
prediction_segs=mixed_segmentation(prediction,rm_punc=True)
#計算答案和預(yù)測之間的最長公共子序列,參見附錄1
lcs,lcs_len=find_lcs(ans_segs,prediction_segs)
iflcs_len==0:
f1_scores.append(0)
continue
#準確率和lcs_len/len(prediction_segs)成正比
precision=1.0*lcs_len/len(prediction_segs)
#召回率和lcs_len/len(ans_segs)成正比
recall=1.0*lcs_len/len(ans_segs)
#準確率和召回率的調(diào)和平均數(shù)
f1=(2*precision*recall)/(precision+recall)
f1_scores.append(f1)
returnmax(f1_scores)

對于準確率和召回率增加下了解??匆粋€例子,如下圖所示,方框代表全集,黃色圈代表正確結(jié)果集合,斜紋圈代表返回的預(yù)測結(jié)果。這樣就構(gòu)成了如下幾個部分:

7f584fe4-05ea-11ee-962d-dac502259ad0.png

在這里插入圖片描述

方框代表全集;

黃色圈代表正確結(jié)果集合;

斜紋圈代表返回的預(yù)測結(jié)果,也叫召回結(jié)果;

A 代表正確的、召回的部分,也叫 True Positive(TP);

C代表錯誤的、召回的部分,也叫 False Positive (FP);

B代表錯誤的、沒召回的部分,也叫 False Negative (FN);

方框之內(nèi)、兩個圓圈之外的部分,代表正確的、沒召回的部分,叫 True Negative (FN);

這時再來看 F1 的計算,就更直觀了:

7f69d7c8-05ea-11ee-962d-dac502259ad0.png

在這里插入圖片描述

precision 代表著召回結(jié)果中的正確比例,評估的是召回的準確性;recall 代表正確召回結(jié)果占完整結(jié)果的比例,考慮的是召回的完整性;F1 既考慮了正確性,又考慮了完整性。

Accuracy 和 Accuracy norm

有了上面對 TP、FP、TN、FN 的定義,這里可以直接給出 Accuracy 的計算公式:

7f731b9e-05ea-11ee-962d-dac502259ad0.png

在這里插入圖片描述

可以看出 accuracy 代表正確的(正確的、召回的部分 + 正確的、沒召回的部分)比例。適合于離散的結(jié)果、分類任務(wù),比如選擇題。

但是看 lm-evaluation-harness 中的 accuracy 又不完全遵循上面的定義:

defprocess_results(self,doc,results):
gold=doc["gold"]
#分數(shù)最高的作為預(yù)測結(jié)果和目標答案做對比
acc=1.0ifnp.argmax(results)==goldelse0.0
#考慮選項長度
completion_len=np.array([float(len(i))foriindoc["choices"]])
acc_norm=1.0ifnp.argmax(results/completion_len)==goldelse0.0

return{
"acc":acc,
"acc_norm":acc_norm,
}

lm-evaluation-harness 在計算acc時,先用模型為每個選項計算出的分數(shù)(例如,對數(shù)似然值)中,選出其中最大的作為預(yù)測結(jié)果。如果預(yù)測結(jié)果對應(yīng)的選項索引和真實的正確選項索引相同,那么 accuracy 就是 1,否則為0;

Accuracy norm(歸一化準確率),這個指標在計算過程中,會對模型計算出的每個選項的分數(shù)進行歸一化。歸一化的方法是將每個選項的分數(shù)除以選項的長度(字符數(shù))。這樣就得到了一個考慮了選項長度影響的新的分數(shù)列表。根據(jù)這個新的分數(shù)選取最大的分數(shù)的選項作為答案。

Perplexity 困惑度

困惑度(perplexity)的基本思想是:模型對于一個測試集中的句子,計算這個句子中詞組合出現(xiàn)的概率,概率越高,困惑度越低,模型性能就證明是越好。

1、一個句子的概率,有如下定義,x 代表一個字符,它們組合在一起構(gòu)成一個句子,句子的概率就等于詞的概率相乘:

7f7f2f7e-05ea-11ee-962d-dac502259ad0.png

在這里插入圖片描述

unigram 對應(yīng)只考慮一個詞出現(xiàn)概率的算法,相當于詞出現(xiàn)概率相互獨立;

bigram 對應(yīng)條件概率考慮連續(xù)的兩個詞的概率;

而 trigram 對應(yīng)條件概率考慮連續(xù)的三個詞的概率。

2、困惑度的計算:

7f8d4eba-05ea-11ee-962d-dac502259ad0.png

在這里插入圖片描述

#輸入一個句子sentence
#輸入模型算出的uni_gram_dict【unigram,單詞的概率表】和bi_gram_dict【bigram,兩個詞的概率表】
#返回困惑度
defperplexity(sentence,uni_gram_dict,bi_gram_dict):
#分詞
sentence_cut=list(jieba.cut(sentence))
#句子長度
sentence_len=len(sentence_cut)
#詞匯量
V=len(uni_gram_dict
p=1#概率初始值
k=0.5# ngram 的平滑值,平滑方法:Add-k Smoothing (k<1)
????for?i?in?range(sentence_len-1):
????????two_word?=?"".join(sentence_cut[i:i+2])
????????#?(bi_gram_dict.get(two_word,0)+k)/(uni_gram_dict.get(sentence_cut[i],0)?即兩個詞的條件概率
????????p?*=(bi_gram_dict.get(two_word,0)+k)/(uni_gram_dict.get(sentence_cut[i],0)+k*V)
????#?p?是?sentence?的概率
????#?返回困惑度
????return?pow(1/p,?1/sentence_len)

所以對一個句子的困惑度就是該模型得出的句子出現(xiàn)的概率的倒數(shù),再考慮句子長度對該倒數(shù)做一個幾何平均數(shù)。

對于一個正確的句子,如果模型得出的困惑度越低,代表模型性能越好。

進一步參考資料

概述NLP中的指標

附錄

附錄1、最長公共子序列

#最長公共子序列
deffind_lcs(s1,s2):
#申請一個二維矩陣,維度為len(s1)+1和len(s2)+1
#m[i+1][j+1]表示s2[i]和s2[i]位置對齊時,前面的以對齊位置為終點的最長公共子序列長度
m=[[0foriinrange(len(s2)+1)]forjinrange(len(s1)+1)]
mmax=0
p=0
foriinrange(len(s1)):
forjinrange(len(s2)):
#動態(tài)規(guī)劃算法:以 s2[i]和 s2[j]位置對齊時,
#如果s1[i]不等于s2[j],以對齊位置為終點的最長公共子序列長度為0,
#如果s1[i]等于s2[j],以對齊位置為終點的最長公共子序列長度為
#以s2[i-1]和s2[j-1]位置對齊和為終點的最長公共子序列長度加1
ifs1[i]==s2[j]:
m[i+1][j+1]=m[i][j]+1
ifm[i+1][j+1]>mmax:
mmax=m[i+1][j+1]
p=i+1
#返回最長的公共子序列和其長度
returns1[p-mmax:p],mmax

附錄2、分詞

#考慮英文和數(shù)字的分詞
#例子:tvb電視臺已于2006年買下播映權(quán)->
#['tvb','電','視','臺','已','于','2006','年','買','下','播','映','權(quán)']
defmixed_segmentation(in_str,rm_punc=False):
in_str=str(in_str).lower().strip()
segs_out=[]
#storeenglishandnumber,everyelementisachar
temp_str=""
sp_char=['-',':','_','*','^','/','\','~','`','+','=',
',','。',':','?','!','“','”',';','’','《','》','……','·','、',
'「','」','(',')','-','~','『','』']
forcharinin_str:
ifrm_puncandcharinsp_char:
continue
ifre.search(r'[u4e00-u9fa5]',char)orcharinsp_char:
iftemp_str!="":
ss=nltk.word_tokenize(temp_str)
segs_out.extend(ss)
temp_str=""
segs_out.append(char)
else:
temp_str+=char

#handlinglastpart
iftemp_str!="":
ss=nltk.word_tokenize(temp_str)
segs_out.extend(ss)

returnsegs_out

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

    關(guān)注

    2

    文章

    450

    瀏覽量

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

    關(guān)注

    1

    文章

    3244

    瀏覽量

    48847
  • 語言模型
    +關(guān)注

    關(guān)注

    0

    文章

    524

    瀏覽量

    10277

原文標題:大語言模型中的常用評估指標

文章出處:【微信號:GiantPandaCV,微信公眾號:GiantPandaCV】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    機器學習模型評估指標

    機器學習模型指標在機器學習建模過程,針對不同的問題,需采用不同的模型評估指標。
    發(fā)表于 09-06 12:51 ?1122次閱讀
    機器學習<b class='flag-5'>模型</b><b class='flag-5'>評估</b><b class='flag-5'>指標</b>

    【大語言模型:原理與工程實踐】核心技術(shù)綜述

    其預(yù)訓練和微調(diào),直到模型的部署和性能評估。以下是對這些技術(shù)的綜述: 模型架構(gòu): LLMs通常采用深層的神經(jīng)網(wǎng)絡(luò)架構(gòu),最常見的是Transformer網(wǎng)絡(luò),它包含多個自注意力層,能夠捕捉輸入數(shù)據(jù)
    發(fā)表于 05-05 10:56

    【大語言模型:原理與工程實踐】大語言模型的基礎(chǔ)技術(shù)

    就無法修改,因此難以靈活應(yīng)用于下游文本的挖掘。 詞嵌入表示:將每個詞映射為一個低維稠密的實值向量。不同的是,基于預(yù)訓練的詞嵌入表示先在語料庫利用某種語言模型進行預(yù)訓練,然后將其應(yīng)
    發(fā)表于 05-05 12:17

    【大語言模型:原理與工程實踐】大語言模型的評測

    和安全性。行業(yè)模型的評測則針對特定領(lǐng)域的能力,整體能力的評測則從宏觀角度評估模型的通用性。在基座模型的評測,除了自回歸損失和困惑度等
    發(fā)表于 05-07 17:12

    【大語言模型:原理與工程實踐】大語言模型的應(yīng)用

    操作。所謂零樣本提示(Zero-Shot Prompt),指的是在提示詞不包含與指令任務(wù)相似的任何示例。 當大語言模型訓練完成后,它便具備了分析情緒和識別命名實體等常見任務(wù)的能力,這些能力源于預(yù)訓練
    發(fā)表于 05-07 17:21

    【《大語言模型應(yīng)用指南》閱讀體驗】+ 基礎(chǔ)知識學習

    的表達方式和生成能力。通過預(yù)測文本缺失的部分或下一個詞,模型逐漸掌握語言的規(guī)律和特征。 常用模型結(jié)構(gòu) Transformer架構(gòu):大
    發(fā)表于 08-02 11:03

    使用單值評估指標進行優(yōu)化

    scoreA95%90%92.4 %當你的團隊在進行開發(fā)時,往往會嘗試多種多樣的算法架構(gòu)、模型參數(shù)、特征選擇,或是一些其它的想法。你可以通過使用單值評估指標(如準確率),根據(jù)所有的模型
    發(fā)表于 12-12 11:33

    基于免疫網(wǎng)絡(luò)的信息安全風險評估模型

    風險評估是評價網(wǎng)絡(luò)信息系統(tǒng)安全的有效措施之一。該文基于免疫網(wǎng)絡(luò)可動態(tài)實時診斷的特性,提出一種新的信息安全風險評估模型,給出模型各項
    發(fā)表于 04-10 08:44 ?14次下載

    網(wǎng)絡(luò)安全評估指標優(yōu)化模型

    針對指標選取的主觀性帶來的評估結(jié)果準確率低、實時性較差等問題,提出了基于因子分析法和主成分分析法的網(wǎng)絡(luò)安全態(tài)勢評估指標優(yōu)化模型。該
    發(fā)表于 11-21 16:22 ?5次下載

    自然語言處理常用模型解析

    自然語言處理常用模型使用方法一、N元模型二、馬爾可夫模型以及隱馬爾可夫模型及目前
    發(fā)表于 12-28 15:42 ?5886次閱讀
    自然<b class='flag-5'>語言</b>處理<b class='flag-5'>常用</b><b class='flag-5'>模型</b>解析

    機器學習算法常用指標匯總

    機器學習性能評價標準是模型優(yōu)化的前提,在設(shè)計機器學習算法過程,不同的問題需要用到不同的評價標準,本文對機器學習算法常用指標進行了總結(jié)。
    的頭像 發(fā)表于 02-13 15:09 ?4699次閱讀
    機器學習算法<b class='flag-5'>常用</b><b class='flag-5'>指標</b>匯總

    機器學習模型評估的11個指標

    建立機器學習模型的想法是基于一個建設(shè)性的反饋原則。你構(gòu)建一個模型,從指標獲得反饋,進行改進,直到達到理想的精度為止。評估
    的頭像 發(fā)表于 05-04 10:04 ?3465次閱讀
    機器學習<b class='flag-5'>模型</b><b class='flag-5'>評估</b>的11個<b class='flag-5'>指標</b>

    分類模型評估指標匯總

    模型進行評估時,可以選擇很多種指標,但不同的指標可能得到不同的結(jié)果,如何選擇合適的指標,需要取決于任務(wù)需求。
    的頭像 發(fā)表于 12-10 21:38 ?657次閱讀

    清華大學大語言模型綜合性能評估報告發(fā)布!哪個模型更優(yōu)秀?

    近日,清華大學新聞與傳播學院發(fā)布了《大語言模型綜合性能評估報告》,該報告對目前市場上的7個大型語言模型進行了全面的綜合
    的頭像 發(fā)表于 08-10 08:32 ?981次閱讀
    清華大學大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>綜合性能<b class='flag-5'>評估</b>報告發(fā)布!哪個<b class='flag-5'>模型</b>更優(yōu)秀?

    模型在戰(zhàn)略評估系統(tǒng)的應(yīng)用有哪些

    智慧華盛恒輝大模型,顧名思義,是指參數(shù)規(guī)模超過千萬的機器學習模型。這些模型主要應(yīng)用于自然語言處理、計算機視覺、語音識別等領(lǐng)域,在大場景下的表現(xiàn)尤為出色。 智慧華盛恒輝大
    的頭像 發(fā)表于 04-24 13:48 ?285次閱讀