成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

應用程序任務驅動:詳細解析LLM的評估指標 原創

發布于 2024-6-24 11:09
瀏覽
0收藏

譯者 | 李睿

審校 | 重樓

在自然語言處理(NLP)的動態環境中,大型語言模型(LM)性能的評估是衡量其在各種下游應用程序中的有效性的關鍵因素。不同的應用程序需要與其目標一致的不同性能指標。本文將詳細介紹各種LLM評估指標,探索它們如何應用于實際場景。

從傳統的摘要任務到更細致的場景評估,了解用于評估LLM熟練程度的不斷發展的方法,揭示了它們的優勢、局限性以及在推動NLP研究和應用方面的實際意義。以下是一些常見的文本應用程序任務和相應的評估指標/框架。

1.文本摘要

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

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

(2)BLANC:它采用一種客觀的、可重復的、完全自動化的方法來評估摘要的功能性能。它通過評估預訓練的LLM在對文檔文本執行語言理解任務時訪問文檔摘要所獲得的性能提升來實現這一點。

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

如下是BLANC指標基本用法的示例代碼。

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指標的基本用法示例代碼。

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.重疊文本相似性

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

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

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

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

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指標的基本用法示例代碼。

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指標的基本用法的樣本代碼。

3.語義文本相似性

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

(1)BERTScore:它利用預訓練的BERT(來自Transformers的雙向編碼器表示)模型來計算句子或文本段落之間的相似性得分。它基于BERT獲得的場景嵌入來計算相似度,BERT通過考慮每個詞的周圍場景來捕獲語義信息,從而對語言生成任務提供更細致的評估。它已經被證明與人類對文本質量的判斷有很好的相關性。使用合適的BERT模型變得至關重要,因為它會影響存儲空間和分數的準確性。

(2)MoverScore:它通過計算使用最優傳輸算法將一個段落轉換為另一個段落的最小成本來測量兩個文本段落之間的語義相似性。它基于分布語義,重點是對齊段落之間單詞的分布。通過同時考慮文本的內容和結構,MoverScore提供了一種強大的語義相似性指標,這種指標對詞序或詞匯選擇等表面差異不太敏感。

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指標的基本用法示例代碼。

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

RAG是一種創新的自然語言處理方法,它結合了基于檢索和基于生成的模型的優勢。在RAG中,使用大規模預訓練的檢索器模型從知識源(例如大型文本語料庫或知識圖)中檢索相關場景或段落。然后,這些檢索到的段落被用作生成模型(例如語言模型或Transformer)的輸入或指導,以產生連貫和場景相關的文本輸出。用于評估這種系統的一些指標/框架包括:

(1)RAGAs:RAGAs旨在創建一個開放標準,為開發人員提供工具和技術,以便在他們的RAG應用程序中利用持續學習。RAG允許開發人員綜合地生成不同的測試數據集來評估應用程序。它還允許LLM輔助的評估指標客觀地評估應用程序的性能。從本質上來說,RAGAs為單獨評估RAG管道的每個組件提供了量身定制的指標(例如,生成——可信度和答案相關性,檢索——場景精度和召回率)。

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

b.答案相關性:這個指標側重于評估生成的答案與給定提示的相關性。越是不完整或包含冗余信息的答案,得分越低,得分越高表示相關性越好。

c.場景召回:場景召回評估檢索結果與注釋答案一致的程度,被視為基本事實。

d.場景精度:場景精度這個指標用于評估場景中出現的所有與基本事實相關的項目是否排名更高。在理想情況下,所有相關的塊都必須出現在最高級別。

e.場景相關性:這一指標評估檢索場景的相關性。根據問題和場景計算,這些值在(0,1)的范圍內,值越大表示相關性越好。

f.場景實體召回:它是從ground_truth中召回實體比例的指標。這個指標在基于事實的用例中很有用,例如旅游服務臺、歷史QA等。

g.答案語義相似度:答案語義相似度的概念涉及對生成的答案與基本事實之間的語義相似度的評估。

h.答案正確性:對答案正確性的評估包括衡量生成答案與基本事實相比較的準確性。

(2)ARES:一種用于檢索增強生成系統的自動評估框架

這一自動化過程將合成數據生成與經過微調的分類器相結合,以有效地評估場景相關性、答案忠實性和答案相關性,從而最大限度地減少對大量人工注釋的需求。ARES采用綜合查詢生成和精度性能迭代(PPI),提供具有統計置信度的準確評估。 

 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分數的示例。

5. QA(問答)

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

評估這類系統的一些指標/框架包括:

(1)QAEval:QAEval是一種基于問答的指標,用于估計摘要的內容質量。它從參考摘要中生成QA對,然后使用QA模型根據候選摘要回答問題。最終分數是答對問題的部分。

(2)QAFactEval:改進的基于QA的總結事實一致性評估。它建立在QAEval的基礎上,具有問題一致性過濾和改進的答案重疊指標,與之前基于SummaC事實一致性基準的QA指標相比,平均提高了14%。

(3)QuestEval:這是一個NLG指標,用于評估兩個不同的輸入是否包含相同的信息。基于問題生成和回答的指標可以處理多模式和多語言輸入。與ROUGE或BERTScore等既定指標相比,QuestEval不需要任何事實真相的參考。

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(命名實體識別)

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

(1)InterpretEval:以NER和CWS任務為例,為NER任務定義了8個屬性,為CWS任務定義了7個屬性。通過分類,即把他們的整體表現分成不同的類別。這可以通過將測試實體集劃分為不同的測試實體子集(關于跨度和句子級屬性)或測試令牌(關于令牌級屬性)來實現。最后通過統計指標來衡量每個桶的性能。

DeepEval:開源LLM的評估框架

DeepEval是最好的、易于使用的開源LLM評估框架之一。它結合了基于上面討論的各種指標評估LLM輸出的最新研究,其中使用LLM和在機器上本地運行的各種其他NLP模型進行評估。

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的樣本摘要指標。

結論

本文探討了NLP中的各種評估指標和支持框架,研究了它們在每個文本應用程序任務中的實際相關性和含義;認識到評估在塑造語言模型開發中的關鍵作用,不斷完善方法并采用新興的范式至關重要;了解用于應用程序類型的正確評估指標,并了解能夠大規模支持它們的框架,對于開發大規模NLP系統的成功至關重要。

原文標題:Application Task Driven: LLM Evaluation Metrics in Detail,作者:Sapan Patel

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

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 91秦先生艺校小琴 | 亚洲视频区 | 中文字幕一区二区三区四区五区 | 在线国产一区 | 日韩一区不卡 | 国产精品免费大片 | 成人福利在线 | 国产高清一区二区 | av免费网址 | 中文字幕av亚洲精品一部二部 | 国产精品99久久久久久www | 日本国产一区二区 | 日韩a | 午夜在线小视频 | 久久91av| 国产精产国品一二三产区视频 | 99精品久久久国产一区二区三 | 国产区视频在线观看 | 丁香久久 | 黄色日本片 | 中文字字幕在线中文乱码范文 | 久久99视频 | 欧美日韩网站 | 99综合 | 射欧美| 最近中文字幕在线视频1 | 成人一区av | 国产精品一级在线观看 | 国产精品国产精品国产专区不片 | 婷婷激情五月网 | 日韩在线中文字幕 | 免费在线观看av片 | 亚洲免费视频一区 | 国产综合久久久久久鬼色 | 成人精品免费视频 | 99在线资源 | 美女久久 | 亚洲视频三 | 久久99精品久久久久蜜桃tv | 99久久婷婷国产综合精品电影 | 狠狠做深爱婷婷综合一区 |