← 返回 2026-08-07

给 Nemotron 教希腊语:跨专业领域的语料挖掘、检索适配与事实锚定生成 Teaching Nemotron Greek: Mining a Corpus, Adapting Retrieval, and Grounding Generation for Modern Greek across Specialist Domains

Ayoub Kirouane, Christos Petrocheilos 📅 2026-08-05 👍 30 2026-08-11 18:30
BM25 LoRA RAG评估基准 多语言检索 嵌入模型微调 希腊语NLP 检索增强生成

端到端适配 Nemotron 到希腊语专业域,1B 嵌入微调+LoRA 读者大幅超越通用多语言栈。

前置知识

BM25 词法检索

BM25 是一类无学习参数的稀疏检索算法,对查询与文档共现的词项按 IDF 加权、并用文档频率与文档长度做归一化打分,公式形如 $\sum_{t \in q} \mathrm{IDF}(t) \cdot \frac{f_{t,d}(k_1+1)}{f_{t,d}+k_1(1-b+b|d|/\bar{|d|})}$,本文取 $k_1=1.2, b=0.75$。它对词形变化丰富的语言很敏感,因此本文用了希腊语感知的 NFD 归一化与 final-sigma 折叠。

本文最反直觉的结论就是 BM25 在希腊语专业域里压过所有现成多语言稠密嵌入器,理解 BM25 才能理解为什么「先量基线、再上模型」是论文的核心方法论。

稠密检索与 InfoNCE 对比学习

稠密检索把查询与文档各自编码成向量、用余弦相似度排序。训练常用 InfoNCE 损失 $\mathcal{L}_{\mathrm{emb}}=-\frac{1}{B}\sum_{i=1}^{B}\log\frac{e^{s(q_i,p_i^+)/\tau}}{\sum_{d\in\mathcal{C}_i}e^{s(q_i,d)/\tau}}$,其中分母包含批次内正例与每条查询 $7B$ 个挖掘的困难负例,质量由逻辑批次而非显存决定。

本文用 InfoNCE 全参微调 1B 嵌入器,并用 GradCache 把逻辑批次顶到 256、序列长 4096,是检索阶段所有提升的来源。

两阶段检索与 Cross-encoder 重排

两阶段检索先用便宜的双塔嵌入器召回 top-k,再用更贵但更准的 cross-encoder 把(查询, 候选文档)拼成一对一起编码、输出单一相关性 logit $\hat{y}=\sigma(f(q,d))$,用二元交叉熵 $\mathcal{L}_{\mathrm{rr}}=-\frac{1}{|\mathcal{P}|}\sum[y\log\hat{y}+(1-y)\log(1-\hat{y})]$ 训练。它能看到查询与文档的联合表示,是双塔做不到的。

论文最重要的方法论贡献之一是「先量 no-rerank 地板,再评重排器」——否则无法判断一个看似合理的重排器到底有没有用。

Reciprocal Rank Fusion (RRF)

RRF 把多个检索系统的排名而非分数融合:$\mathrm{RRF}(d)=\sum_i w_i/(k+r_i(d))$,本文取 $k=60$、各系统 top-100、等权。它不需要校准分数尺度,因此特别适合把词法 BM25 与稠密嵌入这两类完全不同的打分结合起来。

论文的最终工程建议不是「稠密打败词法」而是「两个都跑、用 RRF 融合」,因为两者失败方式不同、组合在两种 regime 下都优于更强的那个。

LoRA 低秩适配

LoRA 冻结原始权重、只在选定线性层旁注入低秩矩阵 $W + BA$($B\in\mathbb{R}^{d\times r}, A\in\mathbb{R}^{r\times d}$),用极小可训练参数量实现任务适配。本文 rank 16、$\alpha=32$、dropout 0.05,作用于 attention、MLP 与 Mamba 的 in_proj,可训练 439M 参数(仅 1.37%)。

论文一个关键工程教训是「在 Mamba-Transformer 混合栈上只适配 attention 反而比不适配还差」,理解 LoRA 才能看懂为什么要把所有线性层都纳入。

nDCG@10 与配对 bootstrap

nDCG@10 对前 10 名的命中按 $1/\log_2(i+1)$ 折扣累加再归一化,$\mathrm{nDCG}@k\in[0,1]$。配对 bootstrap 对系统 $A,B$ 在同一查询上做差 $\hat{\Delta}_b=\frac{1}{|Q_b|}\sum_{q\in Q_b}(s_A(q)-s_B(q))$,重采样 $B=10{,}000$ 次取 2.5/97.5 分位作 95% 置信区间,能消除单查询难度方差、把区间压到 $[+0.072,+0.089]$ 这样紧。

全文几乎所有「显著/不可分」判断都来自这套配对 bootstrap,是判断每个结论到底有多硬的统一标尺。

研究动机

现代希腊语既不在 NVIDIA Nemotron 检索模型的官方支持语言列表里,也不在 BEIR 与 MIRACL 这两个塑造领域认知的多语言检索基准里——也就是说,对一种在模型与标尺两端都分布外的语言,整个社区根本没量过它的检索能力。然而希腊语的法律判决、能源法案、金融披露、临床病历恰好是 RAG 最该服务的长篇、术语密集文本。生产 RAG 栈普遍信任「稠密检索已取代词法」这一信念,直接丢掉 BM25、只配一个现成多语言嵌入器;作者在 5 个专业域上发现这恰恰让检索变差:BM25 拿 0.757,Qwen3-Embedding-8B 只有 0.680,未适配的 Nemotron 1B 仅 0.362。更麻烦的是数据侧:根本不存在商用许可、人写的希腊语指令数据,Aya 集合里机器翻译的希腊语有数百万行、人工标注的只有几百行;而检索工具默认的 max_len=512 会「静默」截断 87% 的训练对,因为希腊文档块普遍很长(正例中位 1,196 字符)。任何试图在 512 上复现的人都会得到「方法不奏效」的错误结论。

本文的目标是把 Nemotron 家族端到端适配到现代希腊语,并对「每个阶段到底买到了什么」做可量化的诚实测量。具体可衡量目标包括:(1)从 407,053 条原始四元组清洗出 65,773 条跨 5 个域(能源/法律/金融/医学/通用基础)的检索对;(2)把 1B 嵌入器的宏平均 nDCG@10 从 0.362 抬到 0.835 以上,且每个域至少 +0.42;(3)让原本贡献不稳定(甚至 −0.006、不可区分于零)的 cross-encoder 重排器在适配后稳定为正(目标 +0.047);(4)把 30B-A3B 的 MoE 阅读器用 LoRA 微调,让判定的回答正确率从 29.4% 提到 66.9%、且忠实度从 25.2% 提到 84.5%;(5)构建一个希腊语 RAG 基准 HERA,使以上所有声明可证伪。

与已有工作不同的是,已有希腊语工作(Meltemi-7B、Llama-Krikri-8B、GR-NLP-TOOLKIT)都瞄准通用生成,不碰检索与有依据的阅读;希腊语阅读评估只有 Belebele、XQuAD 这类翻译来的单段资源,没有任何带多段上下文、挖掘干扰项、引用目标、不可答项的基准。本文的独特切入有三:第一,它不假设稠密>词法,而是用「参数轴固定、换一种语言重做 BEIR 的 BM25 结论」来量词法到底多强;第二,它把「无重排地板」与「配对 bootstrap」当作一等公民,专门用来揭穿自己仪器撒的谎(论文列出四种);第三,它明确区分「语言能力」(适配后能跨域迁移)与「域适配」(不迁移),并两边都报——这种诚实区分在多语言适配工作里很罕见。

核心方法

整体思路像「先把一条产线的每一段都拆下来单独标定,再拼回去量整条线」。直觉上:希腊语的问题是「没见过」而非「不够大」,所以作者不做架构创新,而是把现成的 Nemotron-3-Embed-1B、cross-encoder、Nemotron-3-Nano-30B-A3B 三个组件,配上自建的数据与基准,逐一暴露给希腊语。技术路线分四段:(1)语料挖掘——从 407,053 条原始四元组重组成 65,773 条干净记录,87.1% 希腊语 + 12.9% 英语保留(希腊技术/法律写作里希腊英混杂普遍);(2)检索训练——用合成查询、kNN 域内困难负例挖掘、InfoNCE 全参微调 1B 嵌入器,再加 pointwise cross-encoder;(3)阅读器监督——用自研的 Sophea-Titan-1(27B)只在金段上答、答不出就转成弃答例,造 40,000 条带引用与弃答的样本;(4)评估——建 HERA 基准,所有数字带配对 bootstrap 95% 置信区间,并设「无重排地板」对照。

全文最重要的不是某个新模型,而是一套「先量基线、再量地板、并报告仪器撒的谎」的测量哲学,由此推出三个反直觉结论。第一,「暴露而非容量」是希腊语检索的瓶颈:在同一现成家族内把参数从 0.6B 翻到 8B(13×),域内 nDCG@10 几乎不变(0.6140 → 0.6801,且 8B 与 4B 差 −0.004 不可分),整个家族都坐在 BM25 下面;而把 1B 模型用 65,773 条希腊语对微调后直接拉到 0.835。第二,「域适配不迁移、但语言能力迁移」:适配后的 1B 在它没训练过的通用希腊语维基上比自己未适配的基座高 +0.399(语言能力迁移),却输给 BM25 +0.081(域适配不迁移)。第三,最终工程建议是 RRF 融合而非二选一:BM25 + 适配 1B 在域外比 BM25 高 +0.027、在域内比稠密高 +0.013,两个 regime 都赢——因为两者失败方式不同。这条「都跑、融合」的结论只有在有地板对照与配对 bootstrap 时才看得见。

方法步骤详情

完整流程七步。(1)语料挖掘:从 407,053 条原始四元组按查询重组清洗,去 positive-wins、按希腊字符比例筛语言、对评估查询去污染、seed 42 切分验证零重叠,得 65,773 条;正例中位 1,196 字符,故两模型均在 max_len=4,096 训练。(2)查询合成:Nemotron-3-Ultra-550B 造通用切片、GLM-5.2 造四域切片,每块约 3 条,三控制——few-shot 对齐真实生产查询语体、严格 grounding(所问细节须在源块、审计命中 97–99%、泄漏近零)、L1–L5 难度梯度。(3)负例挖掘:Qwen3-Embedding-8B 非对称编码,按余弦 kNN 在查询自身域池取窗,跳过最靠前(防假负例)、丢过高相似(防近重复),每查询约 6 负例;query-正例 0.687 vs 负例 0.474。(4)嵌入器:Nemotron-3-Embed-1B 全参 InfoNCE、逻辑批次 256、每查询 7 负例,GradCache 单 GPU 保 4,096 序列。(5)重排器:pointwise cross-encoder 394,579 对(约 11% 正例)二元交叉熵。(6)阅读器:LoRA(rank 16)适配 Nemotron-3-Nano-30B-A3B,40k 带引用弃答例占 246,909 行混合集的 16.2%,余为希腊指令池 + 7.2% 英语回放防遗忘;4 块 B200、batch 32、单 epoch、32.7 小时。(7)评估:建 HERA(4,946 项、25% 不可答、23% 多跳、8–40 段均值 21.2),Qwen3.5-122B 生成、GLM-5.2 验证,所有数字配对 bootstrap 10,000 次取 95% 区间。

技术新颖性

新颖性几乎不在架构——InfoNCE、cross-encoder、LoRA、RRF、Matryoshka 都是现成的。它的新意在四处:(1)测量方法——把 no-rerank 地板与配对 bootstrap 作为强制对照,专门用来发现「看似合理的重排器其实 −0.006、不可分于零」,并主动列出四种「仪器撒谎」(attention-only LoRA 反而更差;MCQ 评分器把希腊字母答案当噪声;缺 prompt 前缀让验证曲线倒着走;分布式 loss 求和而非求平均使有效学习率随 world size 偷偷变化);(2)数据工程细节——「positive-wins」、max_len=4096、87% 截断、87.1/12.9 双语配比,都是 mined corpus 必踩的坑的具名清单;(3)诚实区分语言能力 vs 域适配,并两边都报胜负;(4)HERA 是首个带多段上下文、挖掘干扰项、引用目标、不可答项的希腊语 RAG 基准。和已有希腊语工作(Meltemi、Krikri 只做生成)与已有 RAG 框架(RAGAS、ARES 只给指标不给数据)都不重叠。

单 epoch 训练 loss,两阶段,对比同一 recipe 在 Qwen3-0.6B 上的运行
Figure 3: 单 epoch 训练 loss,两阶段,对比同一 recipe 在 Qwen3-0.6B 上的运行
稠密与词法检索用 RRF 融合
Figure 5: 稠密与词法检索用 RRF 融合
Matryoshka 截断
Figure 6: Matryoshka 截断

实验结果

按重要性排。(1)词法压倒现成稠密:5,830 查询上 BM25 0.757、Qwen3-Emb-8B 0.680、4B 0.684、0.6B 0.614,未适配 Nemotron 1B 仅 0.362;13× 参数范围内整家族都坐 BM25 下,8B 与 4B 差 −0.004 不可分——翻倍参数买零。(2)适配 1B:nDCG@10 0.362→0.835,每域至少 +0.42,金融最猛 +0.53(从 0.19 起步);对 BM25 +0.080,CI [+0.072,+0.089]。(3)医学(650 查询/24,812 段):适配 0.6867、R@10 0.8815,BM25 0.6602,+0.027 但 CI [−0.0005,+0.054] 触零,作者不主张优势。(4)跨域迁移(HERA 4,946/300k 维基段):适配 1B 比未适配基座 +0.399(语言能力迁移),却输 BM25 +0.081(域适配不迁移);同家族在域外反成干净单调阶梯 0.527→0.618→0.650,8B 终追平 BM25(+0.0062 不可分)——说明域内扁平是该 corpus 性质。(5)RRF 融合:等权无调参域外 0.6715(比 BM25 +0.027、R@10 0.733→0.782),域内 0.6798(比稠密 +0.013),调参与否不可分。(6)重排器:第一次 750 查询现成 −0.006(p=0.52 等于没重排)、适配 +0.047;第二次 2,580 查询现成也过地板 +0.032 但 5 域 2 正 2 零 1 负、适配 +0.041、Qwen-0.6B +0.061,结论修正为「现成贡献不一致、适配后稳定为正」。(7)端到端两阶段同换:nDCG@10 0.559→0.848(+52%)、R@10 0.624→0.955,答案丢失率 38%→<5%。(8)阅读器:正确率 29.4%→66.9%(CI [27.9,30.9]→[65.3,68.4])、忠实度 25.2%→84.5%(3.4×,远超正确率 2.3×)——基座四分之三回答编造上下文外内容;位置偏置消失(基座 31.9→29.4→26.1 单调退化,适配后早/中位差 0.8);不可答召回 1.2%→30.5% 仍不及格,假弃答 0.4%→3.4% 是唯一基座赢处。(9)Matryoshka:截 512 维仍 0.823(98.5% 质量、仍比 BM25 高 +0.066),128 维下才崩。(10)能力副作用:13 基准希腊 6/8 涨、英语 3/5 跌(MMLU −0.098、arc −0.094),13 项均值 −0.004,回放没防住遗忘。

希腊语维基长检索基准 HERA
Table 1: 希腊语维基长检索基准 HERA
Figure 1 与 Figure 2 背后的数字
Table 2: Figure 1 与 Figure 2 背后的数字
医学:650 查询 / 24,812 段
Table 3: 医学:650 查询 / 24,812 段
域外:HERA 检索轨,4,946 查询 / 300,000 希腊语维基段
Table 4: 域外:HERA 检索轨,4,946 查询 / 300,000 希腊语维基段
十三基准能力扫描(两半混合训练都没瞄准的能力)
Table 7: 十三基准能力扫描(两半混合训练都没瞄准的能力)
希腊语检索,四个域加宏平均,5,830 条 held-out 查询
Figure 1: 希腊语检索,四个域加宏平均,5,830 条 held-out 查询
现成嵌入器家族在 13× 参数范围内的域内表现
Figure 2: 现成嵌入器家族在 13× 参数范围内的域内表现
重排相对无重排地板(虚线)的增益,固定一阶段 top-50,750 查询
Figure 7: 重排相对无重排地板(虚线)的增益,固定一阶段 top-50,750 查询
端到端两阶段检索,两阶段一起换
Figure 9: 端到端两阶段检索,两阶段一起换
在 Table 1 基准上的有依据阅读
Figure 10: 在 Table 1 基准上的有依据阅读
查看结构化数据
任务指标本文基线提升
希腊语域内检索(5,830 查询,宏平均) nDCG@10 0.835(适配 Nemotron-3-Embed-1B) 0.362(未适配基座)/ 0.757(BM25)/ 0.680(Qwen3-Emb-8B) vs 未适配基座 +0.4735(CI 不触零);vs BM25 +0.080,CI [+0.072,+0.089]
医学域检索(650 查询 / 24,812 段) nDCG@10 0.6867(适配 1B),R@10 0.8815 BM25 0.6602 / Qwen3-Emb-8B 0.5936 +0.027,CI [−0.0005,+0.054] 触零,作者不主张优势
跨域检索(HERA 检索轨,4,946 查询 / 300k 维基段) nDCG@10 0.5637(适配 1B)+ BM25 RRF 融合 0.6715 BM25 0.6442 / 未适配基座 0.1651 适配 vs 未适配 +0.399(语言能力迁移);vs BM25 −0.081(输);RRF 融合 vs BM25 +0.027
两阶段检索重排(750 / 2,580 查询) Δ nDCG@10(相对无重排地板) 适配 Nemotron-1B +0.047(小)/ +0.041(大);Qwen-0.6B +0.061(大) 现成 cross-encoder −0.006(小,不可分)/ +0.032(大,但 5 域中 2 正 2 零 1 负) 适配让原本「等于没重排」的重排器稳定为正,约为适配收益的一半
端到端两阶段检索(5 域宏平均) nDCG@10 / Recall@10 0.848 / 0.955(两阶段全换为适配) 0.559 / 0.624(现成栈) +52% 相对;答案丢失率从 38% 降到 <5%
希腊语有依据阅读(HERA,金段上下文) 判定正确率 / 忠实度 66.9% / 84.5%(LoRA 30B-A3B) 29.4% / 25.2%(基座) 正确率 2.3×、忠实度 3.4×;不可答召回 1.2%→30.5%(仍不及格)

局限与改进

作者承认的:阅读器数字是单跑点估计无区间;judge 与 HERA 生成器同属 Qwen3.5 家族(已知的 LLM-as-judge 家族偏好失效模式),故判定正确率是上界;检索数字全在合成查询上量、对生产流量高估约一半(合成查询约 68 字符 vs 真实约 176 字符,域内对 BM25 的 +0.080 在生产约只剩 +0.04,此为未发表的内部观察);医学上对 BM25 的优势 CI 触零;弃答仍差(30.5% 不可答召回是「不及格」)、且假弃答上升;阅读器训练数据偏正式/官方,对话体希腊语不足;13 基准英语明显遗忘(MMLU −0.098),且没跑零回放臂故无法归因。我额外观察到:HERA 与本文训练查询都由 LLM 从金段生成、共享词表,会同时抬高两边的词法匹配分数,BM25 的绝对水平在两边都可能偏宽松——这削弱了「BM25 域内强、域外也强」结论的绝对值(但作者指出这不解释域内外排序的反转)。

独立分析的弱点

(1)合成查询与真实查询的语体差是系统性偏置:合成短(68 字符)、关键词化、词表复刻源段,使所有数字都是「系统间排序」而非「部署上界」。改进:用脱敏生产查询建内部影子基准,给每个公开数配生产折扣系数。(2)judge 与生成器同属 Qwen3.5 家族是已声明未消解的混淆。改进:引不同家族 judge 交叉判定,或训小希腊语 NLI 判别器校忠实度。(3)弃答只从两条罐头字符串取目标、30,903 条答案全只引一块——学不到多文档引用与多样弃答。改进:多样化弃答目标、用多金段造多引用监督。(4)「语言能力迁移但域适配不迁移」意味着通用希腊语仍输 BM25。改进:Matryoshka+RRF 混合栈做生产默认,并对通用语料做轻量 continued-pretrain 让域适配也部分迁移。(5)医学 CI 触零、英语遗忘明显,说明回放配比与训练量不足。改进:扫回放比例明确「保英语 vs 提希腊」的帕累托前沿。

未来方向

作者明确点名的:对 HERA 做有规模、有日志的人工审计(他们说这是「能给这套评估加的最大单项价值」);记录生成器的实际接受率以补上「最弱的一环」;跑零回放臂来归因希腊提升与英语遗忘;量端到端(在检索到的而非金段上下文上跑阅读器)——这是真正反映部署的数。基于成果可延伸的:(1)把「先量基线、再量地板、列仪器撒谎」的测量协议做成可复用工具包,推广到其它低资源多语言(阿拉伯语变体、东南亚语等);(2)探索 RRF 权重的 per-query 自适应(域判别器决定稠密/词法权重);(3)把 Sophea-Titan-1 教师换成更大家族做多教师蒸馏,看阅读器上界能否继续抬;(4)在适配后的嵌入器上做对比学习的数据消融,量化「positive-wins 清洗」与「kNN 域内负例挖掘」各自的贡献。

复现评估

可复现性中等偏上。模型与基准全开源:嵌入器 Sophea-Nemo-Embedding、重排器 Sophea-Nemo-Reranker、阅读器 Sophea-RAG-Nemo3、基准 HERA(CC-BY-SA-4.0)发布在 huggingface.co/KIEFERSA,教师 Sophea-Titan-1 单独发布(Apache-2.0)。但检索训练语料不在发布内——检索结果可用发布的模型+基准复现,却不能从零重训,这是明确缺口。算力:1B 嵌入器用 GradCache 在单 GPU 跑逻辑批次 256、序列 4096;阅读器 LoRA 在 4 块 B200 上单 epoch 32.7 小时,可训练参数 439M(1.37%);复现 HERA 需 Qwen3.5-122B 与 GLM-5.2 访问。难度中等:所有关键超参(rank 16、α 32、dropout 0.05、LR 1e-4、batch 32、RRF k=60、BM25 k1=1.2/b=0.75)都给了,附录给了度量定义、judge prompt、生成配置(关 thinking 否则返空 JSON 这类坑都写);主要不确定性在数据侧(训练语料不公开)与 judge 选择(漂移的 served alias)。