大模型应用
在真实用户数据稀缺时,用维度组合生成多样化合成测试输入来评估…
当你需要为 LLM 流水线引导评估数据集、真实数据稀疏或想针对特定失败假设做压力测试时,用维度-元组法生成多样化合成测试输入。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在真实用户数据稀缺时,用维度组合生成多样通用
解决思路
- 先定位流水线可能失败的区域:询问用户已知的易失败点、查看现有用户反馈,或从已有 trace 中形成假设;维度必须针对预期失败,而非任意变化。
- 定义维度(Step 1):维度是应用特有的变化轴,按预期失败点选择。格式为 `Dimension: [名称] — [捕捉什么]`,并列出 `Values: [值_a, 值_b, ...]`。先从 3 个维度开始,只有在初始 trace 揭示新失败轴时才增加。
- 与用户一起起草 20 个元组(Step 2):元组是维度值的一种组合,定义一个具体测试用例。向用户展示 20 个草稿元组并迭代,直到用户确认这些元组反映真实场景;用户领域知识在此至关重要。
- 用 LLM 生成更多元组(Step 3):使用提示词 `Generate 10 random combinations of ({dim1}, {dim2}, {dim3}) for a {your application description}.`,并列出各维度的描述与可能值,要求输出格式为 `({dim1}, {dim2}, {dim3})`,避免重复、跨维度变化取值。
- 把每个元组转换为自然语言查询(Step 4):用单独的提示词,不要与元组生成合并。提示词中给出应用描述、各维度取值、要求写一个真实用户可能输入的查询,并附上一个手写示例。
- 过滤质量(Step 5):审查生成的查询,当措辞生硬或不真实、内容与元组意图不符、查询彼此过于相似时丢弃并重新生成。可选:用 LLM 按 1-5 分评估真实感,低于 3 分丢弃。
- 将查询跑过完整流水线(Step 6):执行所有查询,捕获完整 trace,包括输入、所有中间步骤、工具调用、检索文档、最终输出。目标约 100 条高质量、多样化的 trace(达到饱和的粗略启发式,具体数量取决于系统复杂度)。
- 采样真实用户数据时使用分层采样:1) 识别高方差维度——通读查询,找出长度、主题、复杂度、是否含约束等差异;2) 打标签——小集合与用户一起打,大集合用 K-means 对查询嵌入聚类;3) 从每组采样,确保覆盖各类查询而非只覆盖最常见类型。
- 当同时有真实和合成数据时,用合成数据填补代表性不足的查询类型缺口。
适用边界 · 注意事项
- 已有 100+ 条有代表性的真实 trace 时(应改用分层采样)。
- 任务是收集生产日志时。
- 没有人能判断合成 trace 是否真实时(应改用真实数据)。
- 用于复杂领域特定内容(法律文书、医疗记录)时,LLM 会遗漏结构性细微差别。
- 用于低资源语言或方言时,LLM 生成的样本不真实。