返回博客

大模型来了,简历解析还需要规则和传统模型吗?

大模型来了,简历解析还需要规则和传统模型吗?

2023 年以后,简历解析领域出现了一个很有诱惑力的方案:把整份简历交给大语言模型,要求它按照 JSON Schema 返回姓名、教育、工作和技能。演示通常很漂亮——不需要训练字段模型,不需要写很多规则,甚至换一种语言也能工作。

但演示回答的是“模型能不能做一次”,生产系统要回答的是另一组问题:一万份文件能否稳定处理?同一字段重复运行是否一致?模型升级后结构会不会漂移?没有证据的字段会返回空值,还是补出一个听起来合理的答案?

我们的结论不是“大模型不能做简历解析”,而是:简历解析本质上是文档恢复、信息抽取、语义归一和数据校验组成的系统工程。大模型增强了其中的语义层,却没有消除其他层。

先把“简历解析”拆成四个不同问题

一份 PDF 最终变成可入库的候选人数据,至少经历四类任务。

  1. 文档恢复:打开 PDF、Word 或图片,识别字符、表格、双栏与阅读顺序。
  2. 事实抽取:找到姓名、电话、日期、公司、岗位和学校,并保持它们之间的归属关系。
  3. 语义归一:把“算法研发”“机器学习工程师”等不同表达映射到岗位或技能体系。
  4. 业务校验:检查时间线、字段类型、枚举值、重复记录和必填约束。

LLM 对第三类问题最有优势,对第二类中的模糊字段也有帮助;但电话号码是否抄对、双栏是否串行、两段经历是否错配,并不会因为模型更会推理就自动消失。

混合式简历解析把版面、确定性字段、语义字段和约束回退分层处理
混合式简历解析把版面、确定性字段、语义字段和约束回退分层处理

研究告诉我们:通用能力不等于遵循字段定义

大模型的信息抽取能力确实在快速进步。2023 年的 UniversalNER 研究利用大模型蒸馏开放域命名实体识别能力,并在 9 个领域、43 个数据集上评估,说明“开放字段”和跨领域抽取不再必须为每个实体类型从零训练模型。

但另一项更值得工程团队重视的研究是 GoLLIE。作者发现,大模型面对信息抽取任务时,不能仅靠字段名理解复杂标注边界;经过“遵循详细标注指南”的训练后,零样本抽取才得到明显改善,消融实验也显示详细指南是关键因素。

这与简历解析非常接近。company 到底指雇主、客户还是项目合作方?end_date 如何表示“至今”?校内实验室经历算教育、项目还是工作?如果团队自己没有清晰定义,大模型只会把歧义以更流畅的方式输出。

所以,接入 LLM 前最重要的资产可能不是提示词,而是一份能让标注员、产品经理和模型得到同样答案的字段规范。

哪些字段适合交给 LLM

可以按“是否依赖语义”和“是否容忍生成”划分。

适合由 LLM 或语义模型增强的任务:

  • 根据职责而非标题判断岗位类别;
  • 从项目描述中识别技能及其使用场景;
  • 归纳工作职责,但要求引用原文证据;
  • 判断一段文本属于教育、工作还是项目模块;
  • 将非标准岗位、专业和技能映射到候选标准项。

更适合确定性方法或专用模型的任务:

  • 电话、邮箱、身份证件号等逐字符字段;
  • 日期解析、格式转换与时间逻辑;
  • PDF 阅读顺序、表格单元格和跨页区域;
  • Schema 校验、枚举检查、去重和必填约束;
  • 必须完全复现原文的公司名、学校名与人名。

这里并不是说 LLM 不能识别电话号码,而是没有必要让一个具有生成自由度、成本更高的模型承担正则表达式和校验器更稳定的工作。

四类错误不能用同一种方式修

团队看到解析错误时,常见反应是换模型或改提示词。但错误可能发生在完全不同的层。

简历解析中的字符、结构、语义和生成错误需要不同修复方法
简历解析中的字符、结构、语义和生成错误需要不同修复方法

字符错误发生在 OCR 或文件转换阶段,例如把 0 识别为 O结构错误是文字都对,但阅读顺序或记录归属错了。语义错误是模型没有正确理解岗位、技能或字段边界。生成错误则是模型在证据不足时补全内容。

如果公司名在 OCR 阶段已经少了一个字,继续优化岗位提示词无济于事;如果模型生成了原文不存在的学历,增加 OCR 样本也解决不了。生产系统需要保留中间结果,才能把错误定位到具体层。

一条可落地的混合链路

我们更建议采用“确定性骨架 + 语义增强”的架构。

文件进入系统后,先完成格式识别、OCR、版面区域和阅读顺序恢复。电话、邮箱、日期等字段由规则或专用模型提取。工作经历则先恢复记录边界,再让语义模型处理岗位归一、技能映射和描述理解。最后所有结果进入统一 Schema 校验,并保存原文位置、抽取方法、模型版本与置信度。

LLM 输出还应遵守几个硬约束:

  • 只允许返回 Schema 中存在的字段;
  • 每个推断字段必须同时返回证据片段或坐标;
  • 找不到证据时返回空值,不能用常识补全;
  • 标准化值与原始值分别保存;
  • 时间、号码和枚举字段经过独立校验;
  • 超时、格式错误或低置信时回退到稳定基线。

这套链路看起来没有“一次提示词完成全部解析”简洁,但它能回答生产系统最重要的问题:错误发生在哪里,以及是否可以安全自动入库。

不要只测一个“整体准确率”

评估至少要按三个维度拆分。

第一是字段维度:姓名、电话、日期、公司、岗位、技能分别计算完全匹配率或 Precision、Recall、F1。第二是文档维度:单栏、双栏、表格、扫描件、语言和来源分别统计。第三是稳定性维度:同一输入重复运行、模型版本升级和提示词变化后,结构是否一致。

对生成式字段还应额外测:无证据时的误填率、引用证据正确率、Schema 合法率和字段级成本。美国国家标准与技术研究院的 生成式 AI 风险管理框架 也将“confabulation(虚构)”列为需要管理的风险。对于招聘数据,流畅但不存在的经历比一个明确的空字段危险得多。

一个更现实的技术决策

如果企业已经有成熟解析链路,不必为了使用大模型推倒重来。可以先挑选传统系统最薄弱、又容易人工核验的一个环节,例如岗位标准化或技能归一,让 LLM 与现有模型并行运行;用固定测试集比较增益、错误类型、延迟与成本,再决定是否扩大范围。

如果从零建设,也不要从“选择哪个大模型”开始,而应先定义字段、证据、错误代价和人工复核规则。模型会不断更新,数据合同与评估体系才是更长期的基础设施。

大模型真正改变简历解析的地方,是让系统有机会理解过去只能靠关键词近似处理的语义;它没有改变的,是生产系统仍然要为每一个字段的正确性负责。

资料来源

返回博客申请试用