针对特定的场景,LLM优化方法有三类:Prompt Engineering、RAG、Fine-tuning
不论使用那种方式优化,我们都需要在完成优化后,评估优化的效果,这个效果不能只人为的感觉(做不过来,也不科学),那如何做自动化评分呢?
下面以最常见的问答、对话系统的优化任务为例来展开介绍几种简单的自动化评分方法。
Exact Match (EM)
Exact Match (EM) 衡量模型生成的答案与标准答案是否完全一致。
具体来说,如果模型的回答与标准答案在内容、顺序、拼写等方面完全相同,则视为Exact Match;否则,视为不匹配。
计算方式
公式:EM = (模型生成的正确完全匹配答案数 / 总问题数) * 100
如果模型生成的答案完全等于标准答案,则EM为1(或100%);否则为0。
评估示例
问题:苹果的创始人是谁?
标准答案:史蒂夫·乔布斯
模型回答 1:史蒂夫·乔布斯 —— EM = 1
模型回答 2:乔布斯 —— EM = 0
特点
严格性:EM是一种非常严格的评估指标,即使模型的回答非常接近标准答案,但如果有细微的差别(如标点符号、同义词、拼写等),也不会被认为是匹配。
适用场景:EM适用于精确答案的任务,它强调严格的一致性,是一种二元指标(完全匹配或不匹配)。它适合答案较短且需要绝对正确的场景。
F1 Score
F1 Score 综合了 Precision(精确率) 和 Recall(召回率)。它更适合在答案中存在部分匹配的场景。例如,如果模型生成的答案覆盖了部分正确内容,但并不完全一致,F1 Score 仍然能够反映出模型的性能。
计算方式
- Precision(精确率):模型生成的正确词数 / 模型生成的总词数
- Recall(召回率):模型生成的正确词数 / 标准答案的总词数
- F1 Score 是精确率和召回率的调和平均值,计算公式为:
F1=2× \frac{Precision×Recall}{Precision+Recall}
评估示例
问题:苹果的创始人是谁?
标准答案:史蒂夫·乔布斯
模型回答 1:史蒂夫·乔布斯 —— Precision = 1,Recall = 1,F1 = 1
模型回答 2:乔布斯 —— Precision = 1,Recall = 0.5,F1 ≈ 0.67
模型回答 3:史蒂夫 —— Precision = 0.5,Recall = 0.5,F1 = 0.5
特点
灵活性:F1 Score 相对EM更为灵活,能够反映出部分匹配的情况。
如果模型的回答包含了一部分正确答案,它不会被直接判为不匹配,而是通过权衡精确率和召回率来给出合理的评分。
适用场景:F1 Score适用于生成式问答任务,特别是在答案长度较长且模型生成答案可能不完全精确的情况下。
对话场景下的评估维度
上面两种评估方式适合做问答系统,问答系统对发散性要求不高,但是如果是对话系统,则需要考虑更多维度:
在对话系统中,Coherence(连贯性)、Fluency(流畅性)、Diversity(多样性) 是常用的三个质量评估维度。它们从不同角度评价生成的对话是否合乎逻辑、表达自然、具有变化,具体介绍如下:
Coherence(连贯性)
连贯性指的是对话生成的内容是否在逻辑上合理、前后文是否连贯。
连贯性良好的对话生成内容应与之前的对话上下文相一致,并且能够保持逻辑关系。
评估方法
可以使用预训练模型(如BERT、GPT)来生成对话嵌入,然后计算每个回复与上下文的语义相似度。如果相似度较高,则连贯性较强。
示例
Coherence(连贯性) 强调逻辑性和与上下文的关联。
连贯的对话:
用户:天气怎么样?
模型:今天晴天,很适合户外活动。
不连贯的对话:
用户:天气怎么样?
模型:我喜欢吃苹果。
Fluency(流畅性)
流畅性指的是生成的对话内容是否符合自然语言的表达习惯,是否语法正确,是否有逻辑上的突兀或语句不通顺的问题。
流畅的对话应当像人类正常的语言表达一样,容易理解,句子结构顺畅。
评估方法
使用语法检查器或语言模型对生成文本进行分析,查看语法错误、拼写错误或不连贯的表达。
示例
Fluency(流畅性) 关注语言表达的自然程度、语法正确性和句子结构的通顺。
流畅的对话:我今天早上去公园散步了,感觉空气特别清新。
不流畅的对话:早上公园了散步空气很新鲜。
Diversity(多样性)
多样性指的是模型生成的对话内容是否具有足够的变化,避免重复、单调的回答。
多样性通常用于衡量对话系统的创新性、灵活性,以及其能否生成不同内容的能力。
评估方法
去重率:计算模型生成的对话中重复回答的比例。重复较少则说明多样性较好。
Distinct-n 指标:统计生成对话中不同n-gram(如2-gram或3-gram)的比例,不同n-gram出现得越多,多样性越高。
示例:
Diversity(多样性) 则着眼于对话生成内容的丰富性和多样化。
高多样性:
用户:你喜欢看什么电影?
模型:我喜欢科幻片,尤其是《星际穿越》。不过最近我也在看一些经典的黑白电影。
低多样性:
用户:你喜欢看什么电影?
模型:我喜欢电影。
用户:你喜欢做什么?
模型:我喜欢电影。
通过在对话生成中优化上面这三个维度,能够提升对话系统的交互体验,使其更接近人类的表达方式。
总结
对于问答系统,要强调答案的正确性,在评估时,通常会同时使用EM和F1 Score这两个指标,以便全面了解模型的性能:EM可以衡量精确匹配的能力,而F1 Score则可以衡量模型在部分匹配情境下的表现。
对于对话系统,则强调交互体验,使其更接近人类的表达方式。通过优化 Coherence(连贯性)、Fluency(流畅性)、Diversity(多样性)这三个维度,能够显著提升对话的自然性和互动质量。
另外虽然自动化评分很重要,但有时人类评估仍然不可或缺。可以让人类评估员根据具体的维度(如生成文本的相关性、流畅度、准确性等)对模型的输出进行打分。这通常作为自动化评分的补充。