干货分享!如何评估大模型LLMs的输出质量?评估方法大盘点!
AI大模型_学习君 2024-10-24 10:01:02 阅读 65
导读
ChatGPT之后各种功能各异的大模型层出不穷,如何评估大语言模型的输出质量是至关重要的,因为这直接关系到用户体验。为此,本文为大家全面整理了大语言模型输出质量的评估方法。
引言
大型语言模型(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*(精度*召回率)/(精度+召回率) 具体代码如下所示:
<code>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")
输入结果为:
「单词级指标优缺点」 上面输出结果第二个生成的答案在准确率、召回率和F1分数方面的得分高于第一个答案,这并不是预期结果。这是因为它与参考答案有更多的一元组重叠,例如“best”和“quality”等词。这是一个单词级指标可能达不到要求的示例。它们很方便,因为它们易于解释,并且实现快速且廉价,但在比较两段文本时,它们可能无法捕获整体含义和准确性。
总结
本文探讨了评估LLM输出结果的一些技术,从人工评估到自动化评估。其中:一方面,自动化评估的时间成本效率更高,在某些情况下是非常实用的选择,例如在早期原型设计阶段。另一方面,人工评估仍然是获得模型应用准确性和实用性最强评估标准。每种评估方法都有其优点以及潜在缺陷,这个也要根据具体任务具体分析。
如何学习大模型
现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。
我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。
一、AGI大模型系统学习路线
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。
二、AI大模型视频教程
三、AI大模型各大学习书籍
四、AI大模型各大场景实战案例
五、结束语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。
再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。
因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。