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