自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

應(yīng)用程序任務(wù)驅(qū)動(dòng):詳細(xì)解析LLM的評(píng)估指標(biāo)

譯文
開發(fā) 前端
本文探討了NLP中的各種評(píng)估指標(biāo)和支持框架,研究了它們?cè)诿總€(gè)文本應(yīng)用程序任務(wù)中的實(shí)際相關(guān)性和含義;認(rèn)識(shí)到評(píng)估在塑造語言模型開發(fā)中的關(guān)鍵作用,不斷完善方法并采用新興的范式至關(guān)重要;了解用于應(yīng)用程序類型的正確評(píng)估指標(biāo),并了解能夠大規(guī)模支持它們的框架,對(duì)于開發(fā)大規(guī)模NLP系統(tǒng)的成功至關(guān)重要。

譯者 | 李睿

審校 | 重樓

在自然語言處理(NLP)的動(dòng)態(tài)環(huán)境中,大型語言模型(LM)性能的評(píng)估是衡量其在各種下游應(yīng)用程序中的有效性的關(guān)鍵因素。不同的應(yīng)用程序需要與其目標(biāo)一致的不同性能指標(biāo)。本文將詳細(xì)介紹各種LLM評(píng)估指標(biāo),探索它們?nèi)绾螒?yīng)用于實(shí)際場(chǎng)景。

從傳統(tǒng)的摘要任務(wù)到更細(xì)致的場(chǎng)景評(píng)估,了解用于評(píng)估LLM熟練程度的不斷發(fā)展的方法,揭示了它們的優(yōu)勢(shì)、局限性以及在推動(dòng)NLP研究和應(yīng)用方面的實(shí)際意義。以下是一些常見的文本應(yīng)用程序任務(wù)和相應(yīng)的評(píng)估指標(biāo)/框架。

1.文本摘要

文本摘要是一種自然語言處理(NLP)任務(wù),旨在將給定文本文檔的內(nèi)容縮減/提煉成更短的版本,同時(shí)保留原始文本的最重要信息和整體含義。文本摘要可以使用提取或抽象技術(shù)來執(zhí)行。評(píng)估這類系統(tǒng)的一些指標(biāo)/框架包括:

(1)SUPERT:無監(jiān)督的多文檔摘要評(píng)價(jià)與生成。它通過評(píng)估摘要與偽參考摘要(使用場(chǎng)景化嵌入和軟令牌對(duì)齊技術(shù),從源文檔中選擇突出的句子)的語義相似性來評(píng)估摘要的質(zhì)量。

(2)BLANC:它采用一種客觀的、可重復(fù)的、完全自動(dòng)化的方法來評(píng)估摘要的功能性能。它通過評(píng)估預(yù)訓(xùn)練的LLM在對(duì)文檔文本執(zhí)行語言理解任務(wù)時(shí)訪問文檔摘要所獲得的性能提升來實(shí)現(xiàn)這一點(diǎn)。

(3)FactCC:它使用一種弱監(jiān)督的、基于模型的方法來驗(yàn)證事實(shí)的一致性,并識(shí)別源文檔和生成摘要之間的沖突。

如下是BLANC指標(biāo)基本用法的示例代碼。

Python

1 >>> from blanc import BlancHelp, BlancTune
2 >>> document = "Jack drove his minivan to the bazaar to purchase milk and honey for his large family."
3 >>> summary = "Jack bought milk and honey."
4 >>> blanc_help = BlancHelp()
5 >>> blanc_tune = BlancTune(finetune_mask_evenly=False, show_progress_bar=False)
6 >>> blanc_help.eval_once(document, summary)
7 0.2222222222222222
8 >>> blanc_tune.eval_once(document, summary)
9 0.3333333333333333

如下是SUPERT指標(biāo)的基本用法示例代碼。

Python

1 from ref_free_metrics.supert import Supert
2 from utils.data_reader import CorpusReader
3
4 # read docs and summaries
5 reader = CorpusReader('data/topic_1')
6 source_docs = reader()
7 summaries = reader.readSummaries() 
8
9 # compute the Supert scores
10 supert = Supert(source_docs) 
11 scores = supert(summaries)

2.重疊文本相似性

基于重疊的文本相似性指標(biāo)通過評(píng)估共享單詞、短語或n-gram的存在和頻率來量化兩個(gè)文本片段之間的相似性。這些方法簡單直接并且計(jì)算效率高,但可能無法準(zhǔn)確捕獲語義相似性,特別是在處理包含同義詞、釋義或不同單詞形式的文本時(shí)。評(píng)估這類系統(tǒng)的一些指標(biāo)/框架包括:

(1)BLEU (Bilingual Evaluation Understudy):這是一種廣泛使用的基于準(zhǔn)確性的指標(biāo)標(biāo)準(zhǔn),通過將機(jī)器翻譯的文本與人類翻譯的文本進(jìn)行比較來評(píng)估其質(zhì)量。BLEU根據(jù)參考譯文對(duì)個(gè)別翻譯片段進(jìn)行評(píng)分,并將其平均化,以評(píng)估整體質(zhì)量,重點(diǎn)是對(duì)應(yīng)性,而不是可理解性或語法正確性。

(2)ROUGE (Recall-Oriented Understudy for Gisting Evaluation):它側(cè)重于通過將摘要或生成文本與一個(gè)或多個(gè)參考文本進(jìn)行比較來評(píng)估摘要或生成文本的質(zhì)量。ROUGE測(cè)量生成文本和參考文本之間n-gram (n個(gè)項(xiàng)目的連續(xù)序列,通常是單詞)的重疊。ROUGE包括多種變體,例如ROUGE-N(考慮n-gram重疊),ROUGE-L(測(cè)量生成文本和參考文本之間的最長公共子序列)和ROUGE- (考慮加權(quán)重疊)。

(3)METEOR (Metric for Evaluation of Translation with Explicit Ordering):這是機(jī)器翻譯領(lǐng)域中另一個(gè)廣泛使用的評(píng)估指標(biāo)。與ROUGE和BLEU主要關(guān)注n-gram重疊不同,METEOR結(jié)合了額外的語言特征,例如詞根提取、同義詞和詞序來評(píng)估翻譯文本的質(zhì)量。它計(jì)算精度和召回率的調(diào)和平均值,賦予兩者同等的權(quán)重。METEOR還包括對(duì)詞序差異和未對(duì)齊單詞的懲罰,以鼓勵(lì)保持參考翻譯的順序和內(nèi)容的翻譯。

Python

1
2 >>> predictions = ["hello there general kenobi", "foo bar foobar"]
3 >>> references = [
4 ...     ["hello there general kenobi", "hello there !"],
5 ...     ["foo bar foobar"]
6 ... ]
7 >>> bleu = evaluate.load("bleu")
8 >>> results = bleu.compute(predictions=predictions, references=references)
9 >>> print(results)
10 {'bleu': 1.0, 'precisions': [1.0, 1.0, 1.0, 1.0], 'brevity_penalty': 1.0, 'length_ratio': 1.1666666666666667, 'translation_length': 7, 'reference_length': 6}
11

Huggingface的BLEU指標(biāo)的基本用法示例代碼。

Python

1 >>> rouge = evaluate.load('rouge')
2 >>> predictions = ["hello goodbye", "ankh morpork"]
3 >>> references = ["goodbye", "general kenobi"]
4 >>> results = rouge.compute(predictions=predictions,
5 ...                         references=references,
6 ...                         use_aggregator=False)
7 >>> print(list(results.keys()))
8 ['rouge1', 'rouge2', 'rougeL', 'rougeLsum']
9 >>> print(results["rouge1"])
10 [0.5, 0.0]

從Huggingface的ROUGE指標(biāo)的基本用法的樣本代碼。

3.語義文本相似性

語義文本相似性捕獲兩段文本的基本語義或含義,而不僅僅是它們的結(jié)構(gòu)重疊。使用自然語言處理(NLP)和機(jī)器學(xué)習(xí)技術(shù),語義文本相似性方法將單詞、短語或整個(gè)文本段落表示為高維語義空間中的密集、連續(xù)向量。評(píng)估這類系統(tǒng)的一些指標(biāo)/框架包括:

(1)BERTScore:它利用預(yù)訓(xùn)練的BERT(來自Transformers的雙向編碼器表示)模型來計(jì)算句子或文本段落之間的相似性得分。它基于BERT獲得的場(chǎng)景嵌入來計(jì)算相似度,BERT通過考慮每個(gè)詞的周圍場(chǎng)景來捕獲語義信息,從而對(duì)語言生成任務(wù)提供更細(xì)致的評(píng)估。它已經(jīng)被證明與人類對(duì)文本質(zhì)量的判斷有很好的相關(guān)性。使用合適的BERT模型變得至關(guān)重要,因?yàn)樗鼤?huì)影響存儲(chǔ)空間和分?jǐn)?shù)的準(zhǔn)確性。

(2)MoverScore:它通過計(jì)算使用最優(yōu)傳輸算法將一個(gè)段落轉(zhuǎn)換為另一個(gè)段落的最小成本來測(cè)量兩個(gè)文本段落之間的語義相似性。它基于分布語義,重點(diǎn)是對(duì)齊段落之間單詞的分布。通過同時(shí)考慮文本的內(nèi)容和結(jié)構(gòu),MoverScore提供了一種強(qiáng)大的語義相似性指標(biāo),這種指標(biāo)對(duì)詞序或詞匯選擇等表面差異不太敏感。

Python

1 from evaluate import load
2 bertscore = load("bertscore")
3 predictions = ["hello world", "general kenobi"]
4 references = ["hello world", "general kenobi"]
5 results = bertscore.compute(predictions=predictions, references=references, model_type="distilbert-base-uncased")
6 print(results)
7 {'precision': [1.0, 1.0], 'recall': [1.0, 1.0], 'f1': [1.0, 1.0], 'hashcode': 'distilbert-base-uncased_L5_no-idf_version=0.3.10(hug_trans=4.10.3)'}
8
Huggingface的BERTScore指標(biāo)的基本用法示例代碼。

4. RAG(檢索-增強(qiáng)-生成)

RAG是一種創(chuàng)新的自然語言處理方法,它結(jié)合了基于檢索和基于生成的模型的優(yōu)勢(shì)。在RAG中,使用大規(guī)模預(yù)訓(xùn)練的檢索器模型從知識(shí)源(例如大型文本語料庫或知識(shí)圖)中檢索相關(guān)場(chǎng)景或段落。然后,這些檢索到的段落被用作生成模型(例如語言模型或Transformer)的輸入或指導(dǎo),以產(chǎn)生連貫和場(chǎng)景相關(guān)的文本輸出。用于評(píng)估這種系統(tǒng)的一些指標(biāo)/框架包括:

(1)RAGAs:RAGAs旨在創(chuàng)建一個(gè)開放標(biāo)準(zhǔn),為開發(fā)人員提供工具和技術(shù),以便在他們的RAG應(yīng)用程序中利用持續(xù)學(xué)習(xí)。RAG允許開發(fā)人員綜合地生成不同的測(cè)試數(shù)據(jù)集來評(píng)估應(yīng)用程序。它還允許LLM輔助的評(píng)估指標(biāo)客觀地評(píng)估應(yīng)用程序的性能。從本質(zhì)上來說,RAGAs為單獨(dú)評(píng)估RAG管道的每個(gè)組件提供了量身定制的指標(biāo)(例如,生成——可信度和答案相關(guān)性,檢索——場(chǎng)景精度和召回率)。

a.忠實(shí)性:這個(gè)指標(biāo)衡量的是在給定場(chǎng)景生成的答案的事實(shí)一致性。它是從答案和檢索到的場(chǎng)景計(jì)算出來的。答案被縮放到(0,1)的范圍。越高越好。

b.答案相關(guān)性:這個(gè)指標(biāo)側(cè)重于評(píng)估生成的答案與給定提示的相關(guān)性。越是不完整或包含冗余信息的答案,得分越低,得分越高表示相關(guān)性越好。

c.場(chǎng)景召回:場(chǎng)景召回評(píng)估檢索結(jié)果與注釋答案一致的程度,被視為基本事實(shí)。

d.場(chǎng)景精度:場(chǎng)景精度這個(gè)指標(biāo)用于評(píng)估場(chǎng)景中出現(xiàn)的所有與基本事實(shí)相關(guān)的項(xiàng)目是否排名更高。在理想情況下,所有相關(guān)的塊都必須出現(xiàn)在最高級(jí)別。

e.場(chǎng)景相關(guān)性:這一指標(biāo)評(píng)估檢索場(chǎng)景的相關(guān)性。根據(jù)問題和場(chǎng)景計(jì)算,這些值在(0,1)的范圍內(nèi),值越大表示相關(guān)性越好。

f.場(chǎng)景實(shí)體召回:它是從ground_truth中召回實(shí)體比例的指標(biāo)。這個(gè)指標(biāo)在基于事實(shí)的用例中很有用,例如旅游服務(wù)臺(tái)、歷史QA等。

g.答案語義相似度:答案語義相似度的概念涉及對(duì)生成的答案與基本事實(shí)之間的語義相似度的評(píng)估。

h.答案正確性:對(duì)答案正確性的評(píng)估包括衡量生成答案與基本事實(shí)相比較的準(zhǔn)確性。

(2)ARES:一種用于檢索增強(qiáng)生成系統(tǒng)的自動(dòng)評(píng)估框架

這一自動(dòng)化過程將合成數(shù)據(jù)生成與經(jīng)過微調(diào)的分類器相結(jié)合,以有效地評(píng)估場(chǎng)景相關(guān)性、答案忠實(shí)性和答案相關(guān)性,從而最大限度地減少對(duì)大量人工注釋的需求。ARES采用綜合查詢生成和精度性能迭代(PPI),提供具有統(tǒng)計(jì)置信度的準(zhǔn)確評(píng)估。 

 Python

1 from datasets import Dataset 
2 import os
3 from ragas import evaluate
4 from ragas.metrics import faithfulness, answer_correctness
5
6 os.environ["OPENAI_API_KEY"] = "your-openai-key"
7
8 data_samples = {
9    'question': ['When was the first super bowl?', 'Who won the most super bowls?'],
10    'answer': ['The first superbowl was held on Jan 15, 1967', 'The most super bowls have been won by The New England Patriots'],
11    'contexts' : [['The First AFL–NFL World Championship Game was an American football game played on January 15, 1967, at the Los Angeles Memorial Coliseum in Los Angeles,'], 
12    ['The Green Bay Packers...Green Bay, Wisconsin.','The Packers compete...Football Conference']],
13    'ground_truth': ['The first superbowl was held on January 15, 1967', 'The New England Patriots have won the Super Bowl a record six times']
14 }
15
16 dataset = Dataset.from_dict(data_samples)
17
18 score = evaluate(dataset,metrics=[faithfulness,answer_correctness])
19 score.to_pandas()
RAG忠誠度的例子。
Python 
1 from ares import ARES
2
3 ues_idp_config = {
4    "in_domain_prompts_dataset": "nq_few_shot_prompt_for_judge_scoring.tsv",
5    "unlabeled_evaluation_set": "nq_unlabeled_output.tsv", 
6    "model_choice" : "gpt-3.5-turbo-0125"
7 } 
8
9 ares = ARES(ues_idp=ues_idp_config)
10 results = ares.ues_idp()
11 print(results)
12 # {'Context Relevance Scores': [Score], 'Answer Faithfulness Scores': [Score], 'Answer Relevance Scores': [

使用ARES檢索GPT3.5的UES/IDP分?jǐn)?shù)的示例。

5. QA(問答)

這項(xiàng)任務(wù)涉及設(shè)計(jì)算法和模型,以自動(dòng)生成用自然語言提出的問題的答案。該任務(wù)通常包括處理問題,理解其語義,然后在給定的場(chǎng)景或知識(shí)庫中搜索,以找到可以直接回答該問題的相關(guān)信息。它的復(fù)雜性可能從簡單的基于事實(shí)的問題到需要推理和更復(fù)雜的場(chǎng)景。

評(píng)估這類系統(tǒng)的一些指標(biāo)/框架包括:

(1)QAEval:QAEval是一種基于問答的指標(biāo),用于估計(jì)摘要的內(nèi)容質(zhì)量。它從參考摘要中生成QA對(duì),然后使用QA模型根據(jù)候選摘要回答問題。最終分?jǐn)?shù)是答對(duì)問題的部分。

(2)QAFactEval:改進(jìn)的基于QA的總結(jié)事實(shí)一致性評(píng)估。它建立在QAEval的基礎(chǔ)上,具有問題一致性過濾和改進(jìn)的答案重疊指標(biāo),與之前基于SummaC事實(shí)一致性基準(zhǔn)的QA指標(biāo)相比,平均提高了14%。

(3)QuestEval:這是一個(gè)NLG指標(biāo),用于評(píng)估兩個(gè)不同的輸入是否包含相同的信息?;趩栴}生成和回答的指標(biāo)可以處理多模式和多語言輸入。與ROUGE或BERTScore等既定指標(biāo)相比,QuestEval不需要任何事實(shí)真相的參考。

Python

1 from qafacteval import QAFactEval
2 kwargs = {"cuda_device": 0, "use_lerc_quip": True, \
3        "verbose": True, "generation_batch_size": 32, \
4        "answering_batch_size": 32, "lerc_batch_size": 8}
5
6 model_folder = "" # path to models downloaded with download_models.sh
7 metric = QAFactEval(
8    lerc_quip_path=f"{model_folder}/quip-512-mocha",
9    generation_model_path=f"{model_folder}/generation/model.tar.gz",
10    answering_model_dir=f"{model_folder}/answering",
11    lerc_model_path=f"{model_folder}/lerc/model.tar.gz",
12lerc_pretrained_model_path=f"{model_folder}/lerc/pretraining.tar.gz",
13    **kwargs
14 )
15
16 results = metric.score_batch_qafacteval(["This is a source document"], [["This is a summary."]], return_qa_pairs=True)
17 score = results[0][0]['qa-eval']['lerc_quip']
18

QAFactEval的示例。

6. NER(命名實(shí)體識(shí)別)

NER是一種自然語言處理(NLP)任務(wù),涉及識(shí)別和分類文本主體中的命名實(shí)體。命名實(shí)體是指按名稱提及的特定實(shí)體,例如人員、組織、地點(diǎn)、日期、數(shù)值表達(dá)式等。

(1)InterpretEval:以NER和CWS任務(wù)為例,為NER任務(wù)定義了8個(gè)屬性,為CWS任務(wù)定義了7個(gè)屬性。通過分類,即把他們的整體表現(xiàn)分成不同的類別。這可以通過將測(cè)試實(shí)體集劃分為不同的測(cè)試實(shí)體子集(關(guān)于跨度和句子級(jí)屬性)或測(cè)試令牌(關(guān)于令牌級(jí)屬性)來實(shí)現(xiàn)。最后通過統(tǒng)計(jì)指標(biāo)來衡量每個(gè)桶的性能。

DeepEval:開源LLM的評(píng)估框架

DeepEval是最好的、易于使用的開源LLM評(píng)估框架之一。它結(jié)合了基于上面討論的各種指標(biāo)評(píng)估LLM輸出的最新研究,其中使用LLM和在機(jī)器上本地運(yùn)行的各種其他NLP模型進(jìn)行評(píng)估。

Python

1 from deepeval import evaluate
2 from deepeval.metrics import SummarizationMetric
3 from deepeval.test_case import LLMTestCase
4 ...
5
6 test_case = LLMTestCase(input=input, actual_output=actual_output)
7 metric = SummarizationMetric(
8    threshold=0.5,
9    model="gpt-4",
10    assessment_questions=[
11        "Is the coverage score based on a percentage of 'yes' answers?",
12        "Does the score ensure the summary's accuracy with the source?",
13        "Does a higher score mean a more comprehensive summary?"
14    ]
15 )
16
17 metric.measure(test_case)
18 print(metric.score)
19 print(metric.reason)
20
21 # or evaluate test cases in bulk
22 evaluate([test_case], [metric])

來自DeepEval的樣本摘要指標(biāo)。

結(jié)論

本文探討了NLP中的各種評(píng)估指標(biāo)和支持框架,研究了它們?cè)诿總€(gè)文本應(yīng)用程序任務(wù)中的實(shí)際相關(guān)性和含義;認(rèn)識(shí)到評(píng)估在塑造語言模型開發(fā)中的關(guān)鍵作用,不斷完善方法并采用新興的范式至關(guān)重要;了解用于應(yīng)用程序類型的正確評(píng)估指標(biāo),并了解能夠大規(guī)模支持它們的框架,對(duì)于開發(fā)大規(guī)模NLP系統(tǒng)的成功至關(guān)重要。

原文標(biāo)題:Application Task Driven: LLM Evaluation Metrics in Detail,作者:Sapan Patel

鏈接:https://dzone.com/articles/llm-evaluation-metrics-in-detail-based-on-text-app

責(zé)任編輯:武曉燕 來源: 51CTO
相關(guān)推薦

2024-09-06 10:46:04

2024-03-07 09:15:57

2009-09-27 17:23:16

Hibernate應(yīng)用

2011-06-09 09:12:12

QT symbian

2024-10-16 08:23:15

大型語言模型LLM機(jī)器學(xué)習(xí)

2010-12-06 15:23:43

2010-02-24 13:25:22

Python線程應(yīng)用程

2009-10-10 13:56:44

IIS應(yīng)用程序VB開發(fā)

2024-11-08 09:53:01

2020-04-16 10:53:56

應(yīng)用程序統(tǒng)一通信即服務(wù)UCaaS

2009-12-21 15:48:29

WCF應(yīng)用程序

2010-03-02 14:24:00

Android應(yīng)用程序

2011-09-01 10:01:35

PhoneGap應(yīng)用程序GoodDay

2021-12-06 07:47:36

Linux 驅(qū)動(dòng)程序Linux 系統(tǒng)

2023-12-12 13:49:35

LLMAIChatGPT

2021-10-26 15:13:39

Solitude隱私安全工具

2021-04-08 08:06:55

SAP應(yīng)用程序攻擊

2024-07-02 09:00:00

2011-08-12 14:54:45

iPhone委托

2024-04-11 14:12:53

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)