每种语言,同样的准确率。
无论您的用户使用日语、中文、西班牙语还是英语,召回质量都完全相同。我们把存储语言与查询语言交叉成 70 组的网格来测量,并公开这个数字:recall@5 95.2%。
多语言混存的库,正是检索质量在无人察觉时下滑的地方:同一个问题,会因为那条记忆用哪种语言写成而得到不同的分数。我们把它当作缺陷而不是局限,并以语言配对的完整网格来测量。
一个存储库,同时容纳三种语言
您无需为存储库指定语言 - 可以自由混用。下例中,同一位用户的记忆同时包含日语、英语和西班牙语,而无论提问用什么语言,每个问题都能找到正确的记忆。这是对线上 API 的一次真实交互:
# one user, three languages stored together mem.add("彼女はコーヒーより紅茶が好き", user_id="alice") # Japanese mem.add("she works at a design studio in Brooklyn", user_id="alice") # English mem.add("A ella le encanta hacer senderismo los sábados", user_id="alice") # Spanish
真实结果 - 每个问题都跨到了另一种语言
"¿Qué bebe ella?" -> 彼女はコーヒーより紅茶が好き "what does she do on weekends?" -> A ella le encanta hacer senderismo los sábados "彼女の仕事は?" -> she works at a design studio in Brooklyn
没有翻译步骤,没有语言检测,没有按语言的配置。记忆与问题按语义而非语言归位 - 只要语义匹配,语言无关紧要。
这里只展示三种语言,纯粹是版面所限 - 并不存在什么“支持语言列表”。同一项在线测试同样通过了中文、Русский 和 العربية 记忆的验证,全部针对生产环境 API 完成。
为什么不能让一种语言胜过另一种
有一条规则凌驾于其他所有调优决定之上:召回质量不得取决于记忆是用哪种语言写的。我们在 70 个语言配对上测量,并在代码评审中强制执行。任何以牺牲一种语言来抬高另一种语言的做法,都不会发布。
LongMemEval 只包含英语,因此无法衡量多语言召回。上面的演示就是您直接对线上 API 验证这一点的方式。