定性错误分类学:幻觉、格式违规与过度拒答
Agent 辅助工程检查
前置要求
第 71 天定量评测指标与错误分析基本准则。
学习目标
将大语言模型的失效输出精确归类至 4 类错误分类学体系(内在/外在幻觉、结构格式违规、安全过度拒绝、推理链断裂)并定位根因。
操作指引
1. 学习 Ji et al.(2023)NLG 幻觉分类体系:严格区分“内在幻觉”(Intrinsic,直接违背 Prompt 给定的上下文事实或前提条件)与“外在幻觉”(Extrinsic,生成无法依据输入事实验证、凭空捏造的陈述)。
2. 形式化定义格式违规(Format Violations):JSON 语法损坏、缺少指定字段、Markdown 标记符泄露(如要求纯 JSON 字符串却包裹 ```json 代码块)以及 Token 长度截断。
3. 分析安全性过度拒答(Röttger et al. 2023 XSTest):安全分类对齐导致模型误判良性但包含敏感词汇的问题(如拒答“如何在 Linux 中杀死一个进程”)。
4. 辨析逻辑推理断裂:算术计算偏差、前提混淆与循环论证。
5. 建立归因排查决策树:区分错误源于预训练知识盲区、指令微调偏置、还是解码采样随机性。
自主演练与记录
编写 Python 错误分类器 categorize_failure(output_record),接收模型生成结果与上下文,自动将其打标至对应分类学桶,并输出针对性的工程修复建议。
按顺序检查拒答定型短语、JSON 语法解析有效性、上下文前提冲突标志与外在捏造标志。
import json
def categorize_failure(record):
text = record['generation'].lower()
refusal_cues = ['cannot fulfill', 'as an ai', 'i am unable to', 'against my safety policies']
if any(cue in text for cue in refusal_cues):
return {'category': 'safety_over_refusal', 'intervention': 'Curate benign negative contrast pairs in SFT / relax safety trigger threshold'}
if record.get('expected_schema'):
try:
parsed = json.loads(record['generation'].strip())
for req_key in record['expected_schema'].get('required', []):
if req_key not in parsed:
return {'category': 'formatting_violation', 'intervention': 'Add schema grammar constraints or JSON-mode logit masking'}
except json.JSONDecodeError:
return {'category': 'formatting_violation', 'intervention': 'Enforce strict JSON grammar during decoding / add raw JSON demonstrations'}
context = record.get('context', '').lower()
if context and record.get('conflict_flag'):
return {'category': 'intrinsic_hallucination', 'intervention': 'Ground prompt with strict source citation constraint / adjust attention mask'}
elif record.get('unverifiable_flag'):
return {'category': 'extrinsic_hallucination', 'intervention': 'Integrate retrieval-augmented generation (RAG) or calibration refusal'}
return {'category': 'reasoning_breakdown', 'intervention': 'Incorporate Chain-of-Thought demonstrations / self-consistency decoding'}
熟练将各类复杂错误归纳至 4 大分类学维度,并给出明确可落地的工程归因改进方案。
权威源资源与权利证明
Survey of Hallucination in Natural Language Generation
对应章节 / 时间戳: Section 2.1 Categorization (intrinsic and extrinsic hallucination)
验证版本与日期: ACM Computing Surveys 2023 / arXiv:2202.03629v4 (Verified: 2026-10-30)
Primary taxonomy of hallucinations in NLG, formalizing the critical distinction between intrinsic hallucinations (contradicting source input context) and extrinsic hallucinations (asserting unverifiable external facts).
Natural language generation, factuality evaluation, intrinsic vs extrinsic hallucination.
The intrinsic/extrinsic taxonomy, fact-verification prompt protocols, and error attribution workflows are completely developed in lesson modules.
对比候选资源与选型分析 (2)
Focuses on abstractive summarization faithfulness; Ji et al. provides the overarching taxonomy across dialogue, QA, and generation.
Follow-up survey on LLMs; Ji et al. sets out the taxonomy distinctions utilized across evaluation literature.
XSTest: A Test Suite for Identifying Exaggerated Safety Behaviors in Large Language Models
对应章节 / 时间戳: Section 4.4 Results on Unsafe Prompts and Appendix D Details on Automated Evaluation
验证版本与日期: NAACL 2024 / arXiv:2308.01263v2 (Verified: 2026-10-30)
Groundbreaking benchmark identifying exaggerated safety behaviors and false-positive refusals, formalizing test suites that contrast real unsafe prompts against benign prompts with sensitive lexical overlap.
Safety alignment, refusal classifiers, false-positive safety evaluation.
The 10 refusal prompt categories, refusal detection regex/heuristics, and over-refusal error quantification are implemented in lesson exercises.
对比候选资源与选型分析 (2)
Shows that zero-shot chain-of-thought increases biased and toxic outputs on harmful prompts; XSTest provides an explicit, quantitative evaluation dataset for measuring unnecessary refusal rates.
Safety fine-tuning methodology; XSTest isolates the diagnostic metric for detecting exaggerated refusal side effects.