🥬 LettuceDetect 支持多语言:在合成翻译上微调 EuroBERT

社区文章 发布于 2025 年 5 月 19 日

LettuceDetect Multilingual Task Force
扩展 RAG 流水线的幻觉检测到多语言。


🏷️ 总结

  • 我们提出了第一个用于检索增强生成 (RAG) 的多语言幻觉检测框架。
  • 我们将 RAGTruth 数据集 翻译成德语、法语、意大利语、西班牙语、波兰语和中文,同时保留了幻觉注释。
  • 我们微调了 EuroBERT,用于在所有这些语言中进行标记级幻觉检测。
  • 我们的实验表明,EuroBERT 显著优于基于提示的 LLM 判别器(如 GPT-4.1-mini),F1 分数最高可提高 17 分
  • 所有翻译后的数据集、微调模型和翻译脚本均在 MIT 许可下提供。

快速链接

开始使用

安装包

pip install lettucedetect

基于 Transformer 的幻觉检测(德语)

from lettucedetect.models.inference import HallucinationDetector

detector = HallucinationDetector(
    method="transformer",
    model_path="KRLabsOrg/lettucedect-610m-eurobert-de-v1",
    lang="de",
    trust_remote_code=True
)

contexts = [
    "Frankreich ist ein Land in Europa. Die Hauptstadt von Frankreich ist Paris. Die Bevölkerung Frankreichs beträgt 67 Millionen."
]
question = "Was ist die Hauptstadt von Frankreich? Wie groß ist die Bevölkerung Frankreichs?"
answer = "Die Hauptstadt von Frankreich ist Paris. Die Bevölkerung Frankreichs beträgt 69 Millionen."

predictions = detector.predict(context=contexts, question=question, answer=answer, output_format="spans")
print("Predictions:", predictions)

基于 LLM 的幻觉检测(我们的基线)

from lettucedetect.models.inference import HallucinationDetector

detector = HallucinationDetector(method="llm", lang="de")

contexts = [
    "Frankreich ist ein Land in Europa. Die Hauptstadt von Frankreich ist Paris. Die Bevölkerung Frankreichs beträgt 67 Millionen."
]
question = "Was ist die Hauptstadt von Frankreich? Wie hoch ist die Bevölkerung Frankreichs?"
answer = "Die Hauptstadt von Frankreich ist Paris. Die Bevölkerung Frankreichs beträgt 82222 Millionen."

predictions = detector.predict(context=contexts, question=question, answer=answer, output_format="spans")
print("Predictions:", predictions)

背景

LettuceDetect (博客) 是一个轻量级、开源的 RAG 流水线幻觉检测器,它利用 ModernBERT 进行高效的标记级检测。它最初在 RAGTruth 上进行训练,RAGTruth 是一个用于幻觉检测的手动标注的英语数据集。初步研究表明,基于编码器的模型可以优于大型 LLM 判别器,同时速度显著更快且成本效益更高。

尽管取得了这些进展,但许多实际的 RAG 应用是多语言的,由于缺乏非英语内容的专用模型和数据集,跨语言检测幻觉仍然具有挑战性。

我们的方法

为了弥补这一空白,我们创建了 RAGTruth 数据集的多语言版本,并微调了 EuroBERT 以进行跨语言的幻觉检测。为了翻译,我们使用 google/gemma-3-27b-it 和在单个 A100 GPU 上运行的 vllm。此设置支持每次并行翻译约 30 个示例,每个语言翻译过程大约需要 12 小时。

我们的管道工作流程如下:

  1. 注释标记:在英语 RAGTruth 数据中,幻觉回答片段使用 <hal> XML 标签进行标记。
    示例

    <answer>
    The French Revolution started in <hal>1788</hal>.
    </answer>
    
  2. 基于 LLM 的翻译:我们翻译上下文、问题和回答,同时保留所有 <hal> 标签。为了便于翻译,我们合并了重叠的标签。

  3. 提取和验证:我们提取翻译后的内容和注释,保持与原始 RAGTruth 数据相同的格式。

  4. 微调:我们训练 EuroBERT 模型进行标记分类,以识别每种语言中的幻觉内容。

支持的语言

我们的模型支持中文、法语、德语、意大利语、西班牙语和波兰语的幻觉检测。

翻译示例

为了说明我们的方法,这里有一个原始 RAGTruth 数据及其德语翻译的示例:

英语

The first quartile (Q1) splits the lowest 25% of the data, while the second quartile (Q2) splits the data into two equal halves, with the median being the middle value of the lower half. Finally, the third quartile (Q3) splits the <hal>highest 75%</hal> of the data.
  • 短语“highest 75%”是幻觉,因为参考资料正确地说明是“lowest 75% (or highest 25%)”。

德语

Das erste Quartil (Q1) teilt die unteren 25% der Daten, während das zweite Quartil (Q2) die Daten in zwei gleiche Hälften teilt, wobei der Median den Mittelpunkt der unteren Hälfte bildet. Schließlich teilt das dritte Quartil (Q3) die <hal>höchsten 75%</hal> der Daten.

在这里,短语“höchsten 75%”是幻觉,因为参考资料正确地说明是“unteren 75% (oder höchsten 25%)”。

模型架构

我们利用 EuroBERT,这是一个最近发布的 Transformer 模型,它在编码器架构方面取得了显著进展,具有长上下文能力和多语言支持。

EuroBERT 在一个包含 5 万亿个 token 的庞大语料库上进行训练,涵盖 15 种语言,可处理长达 8,192 个 token 的序列。该架构融合了现代创新,包括分组查询注意力、旋转位置嵌入和高级归一化技术。这些特性使其能够实现高计算效率和强大的泛化能力。

对于多语言幻觉检测,我们训练了 210M 和 610M 参数变体,涵盖所有支持的语言。

训练过程

我们基于 EuroBERT 的幻觉检测模型遵循原始 LettuceDetect 的训练方法:

输入处理

  • 用特殊标记连接上下文、问题和答案
  • 为计算效率,将序列长度限制在 4,096 个标记
  • 使用 AutoTokenizer 进行适当的标记化和分段标记

标签分配

  • 遮蔽上下文和问题标记(标签 = -100)
  • 为答案标记分配二进制标签:0(受支持)或 1(幻觉)

模型配置

  • 在 AutoModelForTokenClassification 框架内使用 EuroBERT
  • 仅添加线性分类头,无需额外预训练

训练细节

  • AdamW 优化器(学习率 = 1 × 10⁻⁵,权重衰减 = 0.01)
  • 六个 epoch,批大小为 8
  • 通过 DataCollatorForTokenClassification 进行动态填充
  • 每种语言使用一块 NVIDIA A100 GPU (80GB)

在推理过程中,幻觉概率高于 0.5 的标记被合并成连续的片段,从而精确识别有问题的内容。

结果

我们评估了我们模型在翻译后的 RAGTruth 数据集上的表现,并将其与使用 GPT-4.1-mini 的基于提示的基线进行了比较。该基线通过少样本提示直接识别幻觉片段。

合成多语言结果

语言 模型 准确率 (%) 召回率 (%) F1 (%) GPT-4.1-mini 准确率 (%) GPT-4.1-mini 召回率 (%) GPT-4.1-mini F1 (%) Δ F1 (%)
中文 EuroBERT-210M 75.46 73.38 74.41 43.97 95.55 60.23 +14.18
中文 EuroBERT-610M 78.90 75.72 77.27 43.97 95.55 60.23 +17.04
法语 EuroBERT-210M 58.86 74.34 65.70 46.45 94.91 62.37 +3.33
法语 EuroBERT-610M 67.08 80.38 73.13 46.45 94.91 62.37 +10.76
德语 EuroBERT-210M 66.70 66.70 66.70 44.82 95.02 60.91 +5.79
德语 EuroBERT-610M 77.04 72.96 74.95 44.82 95.02 60.91 +14.04
意大利语 EuroBERT-210M 60.57 72.32 65.93 44.87 95.55 61.06 +4.87
意大利语 EuroBERT-610M 76.67 72.85 74.71 44.87 95.55 61.06 +13.65
西班牙语 EuroBERT-210M 69.48 73.38 71.38 46.56 94.59 62.40 +8.98
西班牙语 EuroBERT-610M 76.32 70.41 73.25 46.56 94.59 62.40 +10.85
波兰语 EuroBERT-210M 63.62 69.57 66.46 42.92 95.76 59.27 +7.19
波兰语 EuroBERT-610M 77.16 69.36 73.05 42.92 95.76 59.27 +13.78

在所有语言中,EuroBERT-610M 模型始终优于 210M 变体和 GPT-4.1-mini 基线。

手动验证(德语)

为了更严格的评估,我们手动审查了 300 个示例,涵盖 RAGTruth 中的所有任务类型(问答、摘要、数据到文本)。在纠正任何注释错误后,我们发现性能依然强劲,验证了我们的翻译方法。

模型 准确率 (%) 召回率 (%) F1 (%)
EuroBERT-210M 68.32 68.32 68.32
EuroBERT-610M 74.47 69.31 71.79
GPT-4.1-mini 44.50 92.08 60.00

一个有趣的模式是:GPT-4.1-mini 显示出高召回率但精度不佳——它识别出大多数幻觉,但产生许多误报,使其在生产环境中可靠性较低。

权衡:模型大小与性能

在选择模型变体时,请考虑以下权衡:

  • EuroBERT-210M – 推理速度大约快 3 倍,内存占用更小,F1 分数低 5-10%。
  • EuroBERT-610M – 在所有语言中具有最高的检测精度,需要更多的计算资源。

主要收获

  • 翻译注释可以有效:在数据不足时,通过翻译保留幻觉标签可以快速创建多语言检测数据集。
  • EuroBERT 是多语言幻觉检测的不错选择:其长上下文能力和高效注意力机制使其成为 RAG 验证的理想选择。
  • 多语言 RAG 的开放框架:所有组件均在 MIT 许可下提供:翻译、训练和推理。

引用

如果您觉得这项工作有用,请按以下方式引用:

@misc{Kovacs:2025,
      title={LettuceDetect: A Hallucination Detection Framework for RAG Applications}, 
      author={Ádám Kovács and Gábor Recski},
      year={2025},
      eprint={2502.17125},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2502.17125}, 
}

参考

[1] Niu et al., 2024, RAGTruth: A Dataset for Hallucination Detection in Retrieval-Augmented Generation

[2] Luna: A Simple and Effective Encoder-Based Model for Hallucination Detection in Retrieval-Augmented Generation

[3] ModernBERT: A Modern BERT Model for Long-Context Processing

[4] Gemma 3

[5] EuroBERT

社区

非常棒的工作 🙌,非常感谢使用 EuroBERT!

注册登录 以评论