分享

干货分享!如何评估 大型语言模型(LLMs)的输出质量?评估方法大盘点!

 天承办公室 2023-10-12 发布于北京

更多干货,第一时间送达

引言

 大型语言模型(LLM)展现出了杰出的性能,并为我们提供了新的解题思路。但在实际应用过程中,如何评估大型语言模型的输出质量对于我们来说也至关重要。因为大模型的输出是概率性的---这意味着同样的Prompt产生的结果都有可能不同,大模型评估能够衡量模型输出的质量水平,能够确保用户的体验。为此,今天给大家整理了一些LLMs输出结果的评估方法

一、用户反馈

评估的黄金标准(Gold Standard)是收集真实的用户反馈。即:如果想要深入了解应用程序的质量与实用性,最佳方法是收集真实用户的反馈。除此之外,其它的评估方法都是从侧面反映出模型的质量水平。收集用户反馈的具体策略可以有不同的形式,例如:

  • 「显式反馈」:通过相关功能来收集用户反馈,例如:对于模型的输出结果,如果觉得好就点个赞,如果觉得不好就点个差;亦或者对输出进行打分评级,特别好9分以上,好8分以上,较好7分以上,一般6分以上,差6分以下等。

  • 「隐式反馈」:通过用户行为分析,例如:对于模型的输出结果并不关心则视为负面结果,对于模型的输出结果停留的时间较长则视为正面结果等。

 通过以上两种规则方式,随着越来越多的用户开始使用该模型应用程序,就会收集到很多用户关于该模型的使用数据,根据该数据来分析模型的输出效果,从而不断地改进模型效果。但该方法也存在一定滞后性。因为只有当模型上线对客且用户使用一段时间之后,这些数据才能够收集到。为此,在模型应用上线对客之前我们还需要对其进行评估测试,这就需要下面的这几个方法。

二、人工评估

 上线对客之前,评估大模型应用输出水平的最佳选择是:让标注人员在预部署阶段评估大模型应用的输出。典型的评估方法是构建测试数据集,根据测试数据集进行模型评估。图片 让我们看一个简单的问答案例。即:根据用户评论,来回答有关华为耳机产品相关问题,如下所示。目标是对大模型输出结果进行评级。

用户评论:华为耳机pro是一款特别优秀的耳机,音质特别好,可以听到音乐的每个细节。
问题:为什么华为耳机pro是一款好耳机?

这里假如模型给出的响应结果是:

因为音频体验超级棒。

当遇到此类情况时,有多种方法可以对此响应进行评估,例如:案例对比、评分、A/B测试等,具体如下。

2.1 案例对比

评估人员将模型的输出结果与理想案例结果进行对比。拿上面的示例来说,理想的结果可能是:因为音频体验无与伦比。基于该结果标注人员对此做出判断。但这种方法需要事先构建基本事实。

 鉴于没有两个用例完全相同,这意味着必须为每个提示和模型应用构建基本事实案例。此外,基本事实的质量直接影响评估结果——如果构建不正确,可能会产生误导性的结果。

2.2 评分

评估人员对模型输出结果进行打分来评估结果的好坏(例如0到10之间的评级),由于该种情况没有基本事实案例参考,所以评估人员需要自行对输出质量做出判断。

 评估分数可以是单个分数,也可以是一组分数,可以是宽泛的,也可以是细粒度的,具体情况具体分析。例如,创意写作任务可能需要对不同的输出特征进行更细粒度的评分,例如流畅性、趣味性和简洁性。

 评估标准可以是按等级划分的分数,也可以是对标志的检查。例如,摘要任务可能需要检查输出的一致性,并且不会生成实际文档中不存在的内容。特定任务可能需要检查特定的规则,例如俳句中的音节数。

2.3 A/B测试

根据模型应用获得一对模型输出结果,并要求评估人员评估出最好的答案。这对于比较不同时间点、不同配置参数(prompt、超参数等)的模型质量非常有用。例如,让评估人员比较下面两个模型输出结果的最优答案:

1、因为音频体验超级棒。
2、因为麦克风品质特别好。

 对于我们来说,上面两个回答最好的应该是第一个(因为音频体验超级棒),因为它的回答最准确,第二个回答(因为麦克风品质特别好)主要讲述了麦克风的质量而不是耳机的音质。

「人类评估的局限性」 它无法有效地扩展。所需要的时间成本明显高于自动化方法。另一个局限性是人类评估是主观的——一个评估者的判断可能与另一个评估者的判断不同。上面的例子相对简单,但在更具挑战性的任务中,对于响应结果的好坏,会有更多的模糊性和解释空间。许多因素都会影响评估者的判断,例如专业知识、风格和偏见,从而影响评估结果。

三、利用LLM评估

替代人工评估的另外一种方法是利用LLM进行结果评估,即:通过Prompt来引导LLMs模拟人工评估过程。上面介绍的人工评估方法(案例对比、评分和A/B测试)都可以利用LLM来实现。

 在下面示例中,使用大模型对相同的问答任务执行A/B测试评估。该模型的任务是在对问题的两个回答中选择最好的答案,输出结果显示回答1是最好的。图片「LLM评估的优缺点」:消除了人工评估的时间成本限制,但它是否能在准确性和质量上超越人类评估尚无定论。它在一项任务上的有效性并不能保证它会推广到其他任务和领域,唯一解决方法是在特定应用程序上测试它。

「LLM评估的挑战」:LLM 生成的评估也面临着与人类评估相同的主观性挑战。许多因素都会影响模型的评估结果,例如模型的整体能力、是否经过专门训练来执行评估、是否存在可能引入偏差的训练数据等等。

四、单词级评估

另一种评估方法在单词/Token级别上比较参考案例和生成结果。目前有多种评估指标可用,例如 BLEU、ROUGE、Perplexity 和 BERTScore。

 让我们看一个ROUGE的例子,它最初是为了评估摘要而创建的。它测量参考文本和生成文本之间匹配的“n-gram”的数量。N-gram是文本中“n”项的连续序列,其中“n”可以是 1、2 等。为了简单起见,我们将使用“n=1”,也称为“一元语法”。例如,在“我爱猫”这句话中,一元词是“I”、“love”和“cats”。图片 根据参考答案“因为音质是最好的”来计算问答任务的n元语法的精确度、召回率和 F1 分数,其中:

  • 精度(Precision):是匹配一元组的数量与生成文本中一元组的数量的比值;
  • 召回率(Recall ):是匹配一元组的数量与参考文本中一元组的数量的比值;
  • F1-score:是根据精确率和召回率计算得出的,公式如下:2*(精度*召回率)/(精度+召回率) 具体代码如下所示:
from collections import Counter

def rouge_1(reference, candidate):
    # Turn into unigrams
    reference_words = reference.split()
    candidate_words = candidate.split()

    # Compute the number of overlapping words
    reference_count = Counter(reference_words)
    candidate_count = Counter(candidate_words)
    overlap = sum(min(candidate_count[w], reference_count[w]) for w in candidate_count)
    
    # Compute precision, recall, and F1 score
    recall = overlap / len(reference_words)
    precision = overlap / len(candidate_words)
    f1 = 2 * (recall * precision) / (recall + precision)

    # Return resuls
    return {'recall': recall, 'precision': precision, 'f1': f1}


for idx,gen_answer in enumerate(gen_answers):
    result = rouge_1(ref_answer, gen_answer)
    print(f'Answer #{idx+1}')
    print(f'Precision: {result['precision']:.2f}')
    print(f'Recall: {result['recall']:.2f}')
    print(f'F1-Score: {result['f1']:.2f}')
    print('\n')

输入结果为:

Answer #1
Precision: 0.50
Recall: 0.33
F1-Score: 0.40

Answer #2
Precision: 0.71
Recall: 0.56
F1-Score: 0.63

「单词级指标优缺点」 上面输出结果第二个生成的答案在准确率、召回率和F1分数方面的得分高于第一个答案,这并不是预期结果。这是因为它与参考答案有更多的一元组重叠,例如“best”和“quality”等词。这是一个单词级指标可能达不到要求的示例。它们很方便,因为它们易于解释,并且实现快速且廉价,但在比较两段文本时,它们可能无法捕获整体含义和准确性。

总结

 本文探讨了评估LLM输出结果的一些技术,从人工评估到自动化评估。其中:一方面,自动化评估的时间成本效率更高,在某些情况下是非常实用的选择,例如在早期原型设计阶段。另一方面,人工评估仍然是获得模型应用准确性和实用性最强评估标准。每种评估方法都有其优点以及潜在缺陷,这个也要根据具体任务具体分析。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多