Teaching Nemotron Greek: Mining a Corpus, Adapting Retrieval, and Grounding Generation for Modern Greek across Specialist Domains
Ayoub Kirouane, Christos Petrocheilos
eess.AS, cs.AI, cs.CL
2026-08-06
把 Nemotron 整条搬到希腊语:免调参 BM25 打败所有现成多语言向量模型(含 8B),微调 1B 把 nDCG@10 从 0.362 拉到 0.835,换到通用领域又被 BM25 反超。
现代希腊语从 NVIDIA 的 Nemotron 检索模型支持语言列表里缺席,也从主流多语言检索基准里缺席:BEIR 只收英文,MIRACL 把希腊语排除在外。这意味着这些向量模型既没在希腊语上训练过,也没在希腊语上被测过。可希腊的法律、能源、金融、临床文档,恰恰是 RAG(检索增强生成)最该服务的那类又长又满是术语的文本。
生产里的 RAG 栈有个通行做法:上多语言向量模型,扔掉 BM25。这篇问的就是,对一种在模型和标尺两边都分布外的语言,这么干会发生什么。
作者把 Nemotron 检索栈整条搬来适配现代希腊语,横跨能源、法律、金融、医学四个专业领域加一个通用底座。几个关键工程决定值得一说。
建语料这一步几乎是一半的工作量。原始 407,053 条(查询,文档)对,清洗后剩 65,773 条。两个被数据逼出来的发现:一是几乎不存在商用规模的原生希腊语指令数据,有用规模必须靠翻译;二是希腊语文档块很长(正样本中位 1,196 字符,约 1,034 token),检索工具最常用的 maxlen=512 会默默截断 87% 的训练对,所以两个模型都按 4,096 训练。
查询是合成的,但合成方式比「合成了」更要紧。裸跑的指令模型只会写短关键词查询,跟真实用户那种又长又正式、盯着某个决定编号或日期要答案的问法差很远。他们拿真实生产查询做 few-shot 做风格对齐,把重排对 BM25 的提升从 +0.040 翻到 +0.081 nDCG@10。
负样本是质量杠杆。重排器只从对比里学,所以负样本质量决定梯度好坏。他们用 Qwen3-Embedding-8B 给每个查询在自己领域池里取 cosine 近邻窗口挖难负样本(跳过最像的正样本、丢掉接近重复的),每条查询约留 6 个。用 BM25 挖负样本反而更差,让 BM25 当强检索器的那套词法信号,并不能让它当个好负样本矿工。
检索侧用对比学习全参微调 Nemotron-3-Embed-1B(InfoNCE 损失)。重排侧是逐点的 cross-encoder。阅读侧用 LoRA 微调 Nemotron-3-Nano-30B-A3B 这个 MoE(3B 激活参数)模型,可微参数仅 439M,占 1.37%。为评估,他们造了 HERA,4,946 条希腊语维基百科长检索基准,刻意放进 25% 不可答项和 23% 多跳项。
最扎眼的结论出人意料:在五个专业领域上,一个免调参的 BM25 词法基线,把所有现成多语言向量模型都打败了,包括 8B 的那个。BM25 拿 0.757 nDCG@10,Qwen3-Embedding-8B 拿 0.680,没动过的 Nemotron 只有 0.362。放大也不救命:同一个 Qwen3 家族,8B 和 4B 只差 −0.004,缩到 0.6B 也只掉 0.070,整条家族在 13 倍参数跨度上都压在 BM25 下面。缺的不是容量,是对这门语言的曝光。
微调 1B 向量模型后,nDCG@10 从 0.362 拉到 0.835,每个领域至少 +0.42。
| 方法 | nDCG@10 | 备注 |
| BM25(免调参) | 0.757 | 打败所有现成向量模型 |
| Qwen3-Embedding-8B(现成) | 0.680 | 放大不救命 |
| Nemotron-1B(未微调) | 0.362 | 希腊语上近乎不可用 |
| Nemotron-1B(微调后) | 0.835 | 域内反超 BM25 |
这场胜利换到领域外就翻车。在 HERA 的检索轨(4,946 条查询、30 万篇通用希腊语维基百科)上,微调学到的语言能力迁移过去了(比没动过的底座高 +0.399),可对 BM25 的优势没跟着迁移:BM25 反过来压过微调模型 +0.081,域内的排序整个反转。作者给的正解很务实,别替换 BM25,把它和向量模型用 RRF(倒数排名融合)拼起来。融合在域内比强的那一边再 +0.013,在域外 +0.027,两种场景都赢。结论就是跑两个。
重排器那块有个方法论警示。现成 cross-encoder 在第一次评估里,贡献和「不重排」统计上没区别(−0.006,p=0.52),微调后才值 +0.047。不跟「不重排」这个地板比对,你根本看不出来一个重排器到底有没有用。
阅读侧,LoRA 微调 30B-A3B 后,被判定正确的答案从 29.4% 升到 66.9%,忠实度(答案是否都有上下文支撑)从 25.2% 升到 84.5%,涨了 3.4 倍。端到端把两段都换掉,nDCG@10 从 0.559 升到 0.848,Recall@10 从 0.624 升到 0.955,也就是说原来约 38% 的查询,答案压根没进上下文。
给做 RAG 的人,最直接的提醒:先量你的词法基线,再决定要不要换更贵的向量模型。在这片专业希腊语上,扔掉 BM25 换现成多语言向量模型,等于把检索做差了。放大模型选错了轴,要补的是语言曝光。换到通用希腊语,排序又反过来,所以别赌一边,把两者融合才是稳的。
方法论上,这篇示范了两件事。一是评估重排器必须对着「不重排」地板比,光比重排器 A 和 B 看不出该不该上重排;二是结果要复跑,他们自己就有两个结论在第二次更大评估里没站住。这种「仪器怎么骗了我们」的诚实,在 RAG 评测泥潭里很稀缺。
边界要讲清楚:优势是域内的,专业领域适用。把它当成「微调就通吃希腊语」会失望。
所有检索数字都在合成查询上测的,而合成查询会复述出处段落的词汇,系统性偏简单,所以这些数字是各系统间排序的上界,高估了生产里的提升。作者自己测了真实生产流量,对 BM25 的优势只剩约 +0.04,不到合成集 +0.080 的一半。
阅读侧的数字是单次运行的点估计,没有置信区间,且评判模型跟生成 HERA 题目的模型同族,存在 LLM-as-judge 的家族偏好问题,被判定正确率是上界。
拒答(给不可答题说不)只从 1.2% 升到 30.5%,还是不及格,微调后的阅读器仍会硬答大多数不可答题。代价侧,英文 MMLU 掉了 0.098、arc-challenge 掉了 0.094,有遗忘。HERA 的查询也是 LLM 生成的,跟金标准段落共享词汇,两个基准都偏袒 BM25 的绝对水位。
另外没跑零回放(不掺英文回放)的对照组,所以希腊语那部分提升没法干净归因;检索训练语料也没开源,结果能对发布模型复现,但没法从头重训。