RAG / LLM App / Full-stack

2025

角色: RAG 方案设计、数据流程设计、评估体系定义、幻觉分析

MedRAFT Medical RAG QA System

一个将知识库构建、证据检索、教师监督数据生成、RAFT 风格训练与多维评估串联起来的医疗 RAG 系统,用于更稳健的中文问答。

影响: 把课程项目整理成一个完整的产品型 RAG 案例,明确了高风险领域中需要的证据流、回答结构、置信度设计与评估维度。

MedRAFT 工作流图,展示知识导入、检索、教师监督、RAFT 训练与评估流程。
MedRAFT 评估设计图,展示证据支持、回答结构与幻觉检查。
评估层把检索质量、回答完整性和幻觉风险拆开衡量,而不是压缩成一个总分。

概览

MedRAFT 是一个中文医疗问答项目,我把它整理成更产品化的 RAG 工作流来展示:先构建知识库,再检索证据、生成监督答案、微调学生模型,并评估最终输出是否真正有依据、是否足够安全可复核。

问题

医疗问答是高风险生成场景:一个流畅的回答仍然可能缺乏依据、不完整或误导用户。单纯依赖 LLM 生成并不够,系统需要检索证据、带干扰项的训练机制,以及检查答案是否被证据支持的评估流程。

解决方案

我把项目设计成“证据优先”的工作流:先给出检索到的证据,再生成回答;教师输出定义目标结构;评估则显式检查支持质量、回答质量和幻觉模式。相比单纯聊天式医疗 demo,这样的系统更可辩护。

架构

系统流程包括文档导入、文本标准化、文本分块、基于 embedding 的检索、教师模型答案生成、干扰项构建、提示词格式化、参数高效微调、对比推理、检索评估和幻觉分析。

核心功能

  • 中文医疗文档导入与标准化
  • 用于医疗问答证据 grounding 的向量检索
  • 教师监督样本构建
  • 带干扰项增强的 RAFT 风格训练实例
  • 基于 Qwen2.5-7B 的 LoRA/QLoRA 微调
  • 覆盖检索质量、回答质量和幻觉分析的评估流程

技术栈

  • Python
  • Hugging Face
  • PEFT/LoRA
  • Vector Store

实现细节

  • 构建了 1,199 条教师监督样本和 1,195 条干扰项增强实例,用于训练与对比。
  • 使用 LoRA/QLoRA 微调 Qwen2.5-7B,研究参数高效领域适配在中文医疗问答中的作用。
  • 搭建了可复用脚本,用于数据标准化、提示词格式化、对比推理、检索质量分析和幻觉检查。
  • 项目重点放在证据保真度上,而不是只追求医疗风格回答的语言流畅度。
  • 将检索质量和生成质量分开分析,使弱证据和弱生成可以被独立诊断。

挑战

  • 中文医疗术语会产生语义相近但临床含义不同的片段,使朴素检索存在风险。
  • 干扰项有助于提升训练鲁棒性,但也需要谨慎设计提示词和标签,避免模型被错误上下文干扰。
  • 微调后的输出可能更流畅,但仍然需要进行证据级别的幻觉检查。

收获

  • 在医疗 RAG 中,数据集构建和评估设计与模型选择同样重要。
  • RAFT 风格学习让我更深入理解检索上下文、干扰项和监督答案在领域问答中的相互作用。
  • 负责任的医疗问答界面应该表达不确定性、证据范围和未支持内容,而不是只输出自信答案。
MedRAFT Medical RAG QA System | 吴锋