我问一个AI用阿拉伯语回答,它却甩给我一段中文。换个提示,再试,依然如此。这不是某个模型的偶然抽风,而是一个被系统性忽略的工程黑洞:阿拉伯语,全球超过4亿人使用,但它在互联网训练数据中的占比不到1%。你所用过的每一个大语言模型,说到底都是一个英语模型,阿拉伯语只是被硬挂上去的附件。
我搭建了Fasil——一个让AI用正式阿拉伯语(福斯哈)评估结构化辩论的平台。然后这1%的数据份额,就成了我遇到的最难的工程约束。比战争更难。比停电更难。比零API预算更难。下面是我实际踩到的坑、实测出的数字,以及——很关键——哪些我原本坚信不疑的假设,最后被证明是错的。
![]()
1. 分词器税收:2.2倍,我自己测出来的
阿拉伯语在分词器面前被拆得稀烂。同一个语义的句子,用Qwen2.5的分词器跑一下:英文“The strongest argument wins.”吃掉5个词元(token),阿拉伯文“الحجة الأقوى هي التي تنتصر.”吃掉11个。语义完全对等,成本却是2.2倍。这不是偶然差异,这是阿拉伯语形态上的原罪。阿拉伯语高度屈折,一个词可以同时携带主语、时态、宾语和所属关系。而一个被海量英语数据喂饱的分词器,压根没有高效合并这些形态的规则,于是只能把它们剁成一堆拆开的子词碎片,每一片单独拿出来都毫无意义。
这个2.2倍的乘数效应像利息一样滚进所有环节:有效的上下文窗口被砍掉一半多——同一份辩论记录,吃掉的预算是英语的2.2倍;单位语义的推理成本翻番还不止;小模型的退化速度之快,任何英语基准测试都预测不出来。怎么缓解?无情的提示压缩,以及更关键的一步:把结构性的逻辑从提示词里抽出来,塞进应用代码里。辩论的各个阶段、话轮、评分规则、状态转移,全由Django管着。模型根本不用记住规则,只要求它做一件事:评判。这是低资源语言工程的铁律:每个花在指令上的词元,都是从内容那里抢来的。英语语境下你浪费得起,但在2.2倍的负重下,你浪费不起。
2. 小模型在福斯哈上崩溃,方言反而还行
这条反直觉的发现,吃掉了我最多的时间。小模型处理阿拉伯语口语的能力,明显好于正式阿拉伯语。事后一想其实很明白:口语散落在爬取的社交数据里,而正式阿拉伯语(福斯哈)即便在阿拉伯语语料那个本来就可怜的小切片里,占比也低得可怜。但对一个辩论平台来说,正式阿拉伯语没有商量的余地。那种天真的做法——“就用小模型呗,阿拉伯语不都是阿拉伯语”——刚一接触现实就直接翻车。补救方案是任务拆解:小模型在做“检查”这件事上完全够用,但让它用福斯哈进行“推理”,它就不靠谱。模型大小必须和任务类型相匹配,而且永远不要假设同一个语言的基准分能在不同语域之间平移。
3. 结构化输出:我错了,然后我测了
这部分是我需要公开自我纠正的地方。我的第一反应是:“阿拉伯语会毁掉JSON输出。”我跑了提示,测试了五……(这里数据被截断)。总之,那个一开始坚定的假设,被实测推翻了。低资源语言的工程问题,最怕的不是踩坑,而是把想当然当结论。没有什么比亲手测量后打自己脸,更让人清醒。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.