在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

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

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

EM

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

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

F1

分別計算準確率和召回率, F1 是準確率和召回率的調和平均數。

defcalc_f1_score(answers,prediction):
f1_scores=[]
foransinanswers:
#分詞后的答案,分詞方法參見附錄2
ans_segs=mixed_segmentation(ans,rm_punc=True)
#分詞后的預測
prediction_segs=mixed_segmentation(prediction,rm_punc=True)
#計算答案和預測之間的最長公共子序列,參見附錄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)
#準確率和召回率的調和平均數
f1=(2*precision*recall)/(precision+recall)
f1_scores.append(f1)
returnmax(f1_scores)

對于準確率和召回率增加下了解。看一個例子,如下圖所示,方框代表全集,黃色圈代表正確結果集合,斜紋圈代表返回的預測結果。這樣就構成了如下幾個部分:

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

在這里插入圖片描述

方框代表全集;

黃色圈代表正確結果集合;

斜紋圈代表返回的預測結果,也叫召回結果;

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

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

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

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

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

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

在這里插入圖片描述

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

Accuracy 和 Accuracy norm

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

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

在這里插入圖片描述

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

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

defprocess_results(self,doc,results):
gold=doc["gold"]
#分數最高的作為預測結果和目標答案做對比
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時,先用模型為每個選項計算出的分數(例如,對數似然值)中,選出其中最大的作為預測結果。如果預測結果對應的選項索引和真實的正確選項索引相同,那么 accuracy 就是 1,否則為0;

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

Perplexity 困惑度

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

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

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

在這里插入圖片描述

unigram 對應只考慮一個詞出現概率的算法,相當于詞出現概率相互獨立;

bigram 對應條件概率考慮連續的兩個詞的概率;

而 trigram 對應條件概率考慮連續的三個詞的概率。

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)

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

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

進一步參考資料

概述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)):
#動態規劃算法:以 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、分詞

#考慮英文和數字的分詞
#例子:tvb電視臺已于2006年買下播映權->
#['tvb','電','視','臺','已','于','2006','年','買','下','播','映','權']
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

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

    關注

    2

    文章

    450

    瀏覽量

    38806
  • 模型
    +關注

    關注

    1

    文章

    3244

    瀏覽量

    48845
  • 語言模型
    +關注

    關注

    0

    文章

    524

    瀏覽量

    10277

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

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

收藏 人收藏

    評論

    相關推薦

    機器學習模型評估指標

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

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

    其預訓練和微調,直到模型的部署和性能評估。以下是對這些技術的綜述: 模型架構: LLMs通常采用深層的神經網絡架構,最常見的是Transformer網絡,它包含多個自注意力層,能夠捕捉輸入數據
    發表于 05-05 10:56

    【大語言模型:原理與工程實踐】大語言模型的基礎技術

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

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

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

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

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

    【《大語言模型應用指南》閱讀體驗】+ 基礎知識學習

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

    使用單值評估指標進行優化

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

    基于免疫網絡的信息安全風險評估模型

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

    網絡安全評估指標優化模型

    針對指標選取的主觀性帶來的評估結果準確率低、實時性較差等問題,提出了基于因子分析法和主成分分析法的網絡安全態勢評估指標優化模型。該
    發表于 11-21 16:22 ?5次下載

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

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

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

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

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

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

    分類模型評估指標匯總

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

    清華大學大語言模型綜合性能評估報告發布!哪個模型更優秀?

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

    模型在戰略評估系統的應用有哪些

    智慧華盛恒輝大模型,顧名思義,是指參數規模超過千萬的機器學習模型。這些模型主要應用于自然語言處理、計算機視覺、語音識別等領域,在大場景下的表現尤為出色。 智慧華盛恒輝大
    的頭像 發表于 04-24 13:48 ?285次閱讀
    主站蜘蛛池模板: 狠狠干狠狠干狠狠干| 成人在线一区二区| 91视频免费网站| 午夜影院色| 国产一区二区三区在线观看影院| 欧美又粗又长又湿又黄的视频| 亚洲国产精品第一页| 日韩无| 欲色淫香| 一二三区视频| 欧美亚洲综合一区| 天天爱夜夜做| 国产男女怕怕怕免费视频| 久久婷婷久久一区二区三区| 最新激情网| 久久国产乱子伦精品免费强| 久久婷五月| 一区二区三区精品国产欧美| 亚洲国产欧美在线人成aaa | 人人干天天操| 日日操夜夜操狠狠操| 日本精品一卡二卡≡卡四卡| 午夜小视频网站| 午夜.dj高清在线观看免费8| 男人天堂网www| 免费一级特黄欧美大片勹久久网| 99久久99久久久精品齐齐鬼色| 亚洲欧美日韩动漫| 国产农村一一级特黄毛片| 91福利国产在线观看网站| 天堂v网| 午夜精品久久久久久91| 精品一区亚洲| 日本亚洲成人| 日不卡在线| 亚洲成在人色婷婷| 亚洲色五月| 综合网伊人| 中国一级特黄高清免费的大片| 性网站视频| 国产婷婷一区二区三区|