那些潜藏的大模型评估乐趣 张航资深工程师 张航 百度资深工程师 硕士毕业于哈尔滨工业大学计算机科学与技术。多年百度工作经验,在大数据、AI领域经验丰富。现担任AI平台部测试技术负责人,带队25人+团队 01你有我有,众说纷纭,我该相信谁? 目录contents 02谁都说服不了,要么自己上? 03从一个坑跳进另一个坑! 04玩转prompt-典型场景评估! PART 01 •你有我有,众说纷纭,我该相信谁? 模型选型:百模大战 大模型的深渊 选型策略一:价格驱动|信任驱动 明星/⼤⼚ 潜⼒派 •AI⼤⼚•明星效应•明星创始团队,知名度⾼•异军突起 ⾼校/研究院 合作伙伴 •深度合作•场景打标杆•战略投资 •科研氛围数⼀数⼆ 个⼈喜爱 •单纯喜欢 选型策略二:榜单驱动 数据集:饱和、污染、安全隐私? 评测框架:HELM、HEIM/HRS-Bench/OpenCompass/FlagEval/SuperCLUE…评测数据集:MMLU、GSM8K、C-Eval、AGIEval… 选型策略三:PR驱动 •逼近GPT4•颠覆**⾏业•最好的**模型•综合实⼒第⼀•领跑** ⼜该开启新⼀轮的评测了!!! PART 02 •谁都说服不了,要么自己上? 如何启动模型评估 启动模型评估 输入:评测集 执行:评估规则 输出:评估结论 •如何体系化评测潜在大模型能力? •哪种大模型最适合所选业务场景,最适合长线投入? •如何选取适合的数据集衡量大模型能力? 评估集选取 根据应⽤场景裁剪评估框架,选择评估数据集配⽐,设置场景相关的评估指标 大模型能力评估框架 例行集 -⽤作⼤版本的例⾏全⾯评估 •场景全•数量多•耗时久 •通用知识:TriviaQA•学科知识:GAOKAO-2023、C-Eval•语言理解:C3, CMRC,OpenbookQA•…… 模型准入/回归 认知与生成能力 场景专属评测集:结合实际应用场景中的用户使用方法和表达方式设计 -快速验证模型是否进⾏替换升级(快响应、数据少、⾼代表) 指令引擎 创作与改写 In-Context学习 •美食问答•旅行推荐•科学技术•政务问询•…… •各场景抽样数据•Badcase数据集•核⼼业务例⾏case集 评估规则确定 LLM裁判员评估 考察能⼒ •裁判员选取:•原始Base模型:GPT4、EB4、Claude…… •专⽤打分模型:Pandalm/⾃训裁判员模型•评估⽅式:•GSB评估•直观感受评估•扣分制•加分制•综合打分 客观评估 人工评估 •含参考答案、指令遵循•量化指标•规则映射、F1-Score/accuracy/Rouge…… 初标注->⼀轮审核->⼆轮专家审核 专业评估组,所有成员需要经过专业训练⼈员组成:•男⼥⽐例•⽂科/理科分布任务分发:•每位评估⼈员评估的对话数量应⼤体相同•每位评估⼈员分到的对话在难度分布上基本相同•每位评估⼈员独⽴对⾃⼰评估的所有对话进⾏合分 主观评估 •满意度评价(3/5/…百分分制)•量化指标•统⼀:平均分、Goodcase占⽐、可接受度占⽐•多维度加权:内容丰富度、趣味性、互动性…… G O P S全 球 运 维 大 会2 0 2 4 ·深 圳 站 评估规则确定 拿捏评估prompt: 示例你是{{业务场景}}的评测⼈员,请根据相关材料和参考答案对模型输出进⾏准确性、友好性、完整性进⾏打分,分档0、1、2,并提供对应的评分依据…… •指定⻆⾊、任务•描述打分依据,权重⾼的依据重点描述,权重低或者⽆关依据弱化•给出回答示例,利⽤LLM的ICL能⼒(引⼊引导策略:告知badcase规避)•摸清LLM的喜好、偏好。如发现LLM对“友好性”理解⽚⾯,只要有“你好”就认为友好•描述简化,尽量少⽤if else•借⼒开源⼯具,有的已经封装了⼀些功能•灵活运⽤加分、减分制、综合打分•先描述打分依据、再进⾏打分 判定要点:模型回答若不在预期回答中,则算错误,如下例⼦例⼦1:【预期回答】 {参考答案}【模型回答】{模型回答} 打分原因:{{对给模型打低分的原因描述}}…… 评估规则确定 你是⼀位教师。你正在对学⽣回答的答案进⾏批改。以下是问题中的内容,对它的正确答案,以及学⽣的回答:(开始) 评估prompt举例 问题: {{input}}------正确答案: {{ideal}}------学⽣的答案: {{completion}}------ •常规评分•参考⼈⼯答案•不参考答案•升级评分•考察模型返回稳定性•需要模型返回多样性的场景 你的回答需要参考以下json代码格式输出:```json{"modelA": {"justification":"此处阐述对打分规则的理解","score":"此处填写打分结果"}}```让我们⼀步⼀步来思考 你是⼀名裁判,以下需要对⽐多个类GPT系统的答案。每个类GPT系统会重复回答3次,以_1、_2、_3后缀来分别表示。对于最终的打分,取3次回答的最低分作为待评分系统的最终得分。你可以根据scores来进⾏打分,需要你先阐述对打分标准的理解后再给出分数:scores:“2”:{填写对应打分标准}"1":{填写对应打分标准}"0":{填写对应打分标准}你的回答需要参考以下json代码格式输出:---```json{"modelA_1": {"justification": "此处阐述你对打分规则的理解,以及给出最差结果的打分解释","score": "此处填写modelA的3次回答的打分结果的最⼩值"},"modelB_1": {"justification": "此处阐述你对打分规则的理解,以及给出最差结果的打分解释","score": "此处填写modelB的3次回答的打分结果的最⼩值"},"modelC_1": {"justification": "此处阐述你对打分规则的理解,以及给出最差结果的打分解释","score": "此处填写modelC的3次回答的打分结果的最⼩值"}}```---请注意:只输出上述json格式即可,不需要额外的解释---问题:{{Question}}---modelA的3次回答:{{modelA_1}}, {{modelA_2}}, {{modelA_3}}示例 评估规则确定 评估prompt举例 •常规评分•参考⼈⼯答案•不参考答案•升级评分•考察模型返回稳定性•需要模型返回多样性的场景 modelB的3次回答:{{modelB_1}}, {{modelB_2}}, {{modelB_3}}modelC的3次回答:{{modelC_1}}, {{modelC_2}}, {{modelC_3}} PART 03 从一个坑跳进另一个坑!!! 真实评估时,可能遇到的难题及如何解决 数据不够用/分布不均匀-数据增强|提升模型泛化能力 TEMPLATE="""现有背景内容如下:{{背景内容}}请根据以上内容⽣成3个尽可能多样化的指导问题。这些问题可以是关于事实的问题,也可以是对相 关内容的理解和评估。请假设提问时没有相应的冠词可指,所以不要在问题中使⽤指示代词,如“this”或“these”。 Self-QA 针对有⼀点标注经验的⽤户⽣成问答对。⾃动问答⽣成系统,利⽤LLM 请按以下格式⽣成问题并将结果以如下格式封装后输出(其中question-代表问题,options-代表答案选项,A、B、C、D依次代表可能的答案选项,answer-代表对应问题的正确答案):[{'question':...,'options':'options': {'A':...,'B':...,'C':...,'D':...},'answer':...},...,{'question':...,'options':'options': {'A':...,'B':...,'C':...,'D':...},'answer':...}]""" 从给定的内容中抽取信息,⽣成⼀系列问题,并对这些问题给出答案 Self-Instruct 针对有标注经验的⽤户根据上下⽂指令信息,可以被提示⽣成新的指令。这提供了⼀种从⼀⼩部分⼈类编写的指令种⼦数据中扩充指令数据的⽅法。⽤最少的⼈类标记数据诱导指令跟随,⽣成新样本。 示例 数据不够用/分布不均匀-数据增强|提升模型泛化能力 TEMPLATE=“”“请你仔细观察下⾯示例的输⼊和输出,然后⽣成和所给示例类似的同领域的例⼦,给出相应的输⼊和输出。请确保输⼊和输出的格式与示例相同。如果多个示例的输⼊和输出中都共同出现了⼀些固定的词语和格式,你也需要使⽤这些固定词语和格式。示例如下:示例1: Self-QA 输⼊:{{输⼊1}}输出:{{输出1}}示例2:输⼊:{{输⼊2}}输出:{{输出2}}示例3:输⼊:{{输⼊3}}输出:{{输出3}}示例4:""" 针对有⼀点标注经验的⽤户⽣成问答对。⾃动问答⽣成系统,利⽤LLM从给定的内容中抽取信息,⽣成⼀系列问题,并对这些问题给出答案 Self-Instruct 针对有标注经验的⽤户根据上下⽂指令信息,可以被提示⽣成新的指令。 这提供了⼀种从⼀⼩部分⼈类编写的指令种⼦数据中扩充指令数据的⽅法。⽤最少的⼈类标记数据诱导指令跟随,⽣成新样本 输⼊1:已知函数f(x) = x^3-3x + 1,求f(x)的极值点和极值输出1:***输⼊2:1+1=输出2:2输⼊3:3*9输出:27 输⼊:求解⽅程2x-5 = 0输出:⾸先,将⽅程2x-5 = 0变形为2x = 5。然后,两边同时除以2,得到x = 5/2。所以,⽅程2x-5 = 0的解为x = 5/2。 数据不够用-数据增强|PromptTemplate 前提: 任务模板⽣成 俄罗斯宇航员⽡列⾥·波利亚科夫(ValeryPolyakov)在1994年⾄1995年间创下了连续在太空停留时间最⻓的纪录,达到了惊⼈的438天。根据上⾯的内容,我们是否可以得出结论/推断:俄罗斯⼈保持着在太空停留时间最⻓的记录。输出:推断正确/错误 ⼈⼯构建模板,为不同任务⽣成N个prompt模板。也可和few-shot提示⼀起使⽤ 示例1:根据任务类别,⽣成部分模板,替换核⼼指令 前提:俄罗斯宇航员⽡列⾥·波利亚科夫(ValeryPolyakov)在1994年⾄1995年间创下了连续在太空停留时间最⻓的纪录,达到了惊⼈的438天。我们可以推断出以下内容吗?俄罗斯⼈保持着在太空停留时间最⻓的记录。输出:推断正确/错误 俄罗斯宇航员⽡列⾥·波利亚科夫(ValeryPolyakov)在1994年⾄1995年间创下了连续在太空停留时间最⻓的纪录,达到了惊⼈的438天。推断/结论: 俄罗斯⼈保持着在太空停留时间最⻓的记录。输出:推断正确/错误 俄罗斯宇航员⽡列⾥·波利亚科夫(ValeryPolyakov)在1994年⾄1995年间创下了连续在太空停留时间最⻓的纪录,达到了惊⼈的438天。推断: 数据不够用-数据增强/泛化| 您将扮演⼀个专⻔解决⼆元⼀次⽅程的虚拟助⼿,与⽤户进⾏对话。⽤户可能会向您询问关于⼆元⼀次⽅程的问题或者让您解决⼀个具体的问题,您需要给出结构化的解析或者解答。请参考以下示例,并按照格式给出的完成任务。示例1: 问题:请解答这个⼆元⼀次⽅程,⽅程为x + y = 10和x-y = 2。分析:{“equation1”: “x + y = 10”,“equation2”: “x-y = 2”,“solution”: {“x”: 6,“y”: 4}}示例2:问题:我可以通过什么⽅式解决这个⼆元⼀次⽅程,⽅程为2x + 3y = 6与4x + 6y = 8呢?分析:{“equation1”: “2x + 3y = 6”,“equation2”: “4x + 6y = 8”,"solu




