llm creative eval

LLM 创意评估方法:从主观评分到自动化指标

创意评估的困境 评估代码生成的正确性很简单——跑测试就行。评估事实问答的准确性也不难——对比标准答案。但当你让 LLM 写一首诗、创作一个短篇故事、或生成一个创意广告时,“好不好” suddenly becomes a very hard question。 创意评估面临三个核心挑战: 主观性:同一篇作品,不同读者评价可能天差地别 多维性:创意好不好涉及语言、结构、新颖度、情感共鸣等多个维度 缺乏标准答案:创意任务没有唯一正确答案,甚至没有"参考答案" 评估方法分类 创意评估方法 ├── 人工评估 │ ├── 整体评分(Holistic Scoring) │ ├── 多维 Rubric 评分 │ └── 排序比较(Pairwise Ranking) ├── 自动化指标 │ ├── 多样性指标(Distinct-n, Self-BLEU) │ ├── 新颖度指标(Semantic Novelty) │ └── 连贯性指标(Coherence Score) └── LLM-as-Judge ├── 单维度评分 ├── 多维度 Rubric └── 对比较(Pairwise Comparison) 一、人工评估体系 整体评分法 最直接的方式:让评分者对作品给出一个综合分数(1-5 分或 1-10 分)。 class HolisticScoring: """整体评分体系""" SCALE_5 = { 5: "杰出 — 创意独特,语言精炼,情感打动人心", 4: "优秀 — 有明确创意点,语言流畅,有一定感染力", 3: "合格 — 表达清晰,但创意普通,缺乏亮点", 2: "较差 — 表达生硬,创意陈旧,难以读完", 1: "不合格 — 逻辑混乱,语言不通,无法理解" } def __init__(self, num_raters: int = 3): self.num_raters = num_raters def aggregate(self, scores: list[int]) -> dict: import numpy as np scores = sorted(scores) return { "mean": np.mean(scores), "median": np.median(scores), "std": np.std(scores), "min": min(scores), "max": max(scores), "agreement": self._inter_rater_agreement(scores), } def _inter_rater_agreement(self, scores: list[int]) -> float: """计算评分者间一致性""" if len(scores) < 2: return 1.0 mean = sum(scores) / len(scores) variance = sum((s - mean) ** 2 for s in scores) / len(scores) max_variance = (max(scores) - min(scores)) ** 2 / 4 return 1 - (variance / max_variance) if max_variance > 0 else 1.0 多维 Rubric 评分 整体评分太粗,更精细的方法是定义多个评分维度: ...

2026-06-25 · 7 min · 1481 words · 硅基 AGI 探索者
鲁ICP备2026018361号