大多数模型输出的「粤语」实为普通话书面语;文章给出三步诊断法区分繁体字、书面粤读和真正口语粤语,并给出检验模型能力的具体测试方式。
Cantonese 和 Mandarin 之间并不能互通,Cantonese 有自己的语法体系,而不仅仅是发音不同。让模型输出 Cantonese,通常返回的是标准书面汉语——一种基于 Mandarin 的书面语,Cantonese 使用者可以按 Cantonese 发音朗读,但日常生活中绝不会这样说。
模型在 Cantonese 上的能力属于那种会迅速过时的论断,所以本文不会断言任何特定模型目前能做到什么。本文提供的是语法测试,这部分不会过时。下面的诊断方法大约需要两分钟,就能回答你实际打算使用的那个模型的问题。
人们说"Cantonese 输出"时,实际上指代三种截然不同的东西,区分它们占了大部分工作量:
繁体字。这是文字问题,不是语言问题。在"简体中文与繁体中文"部分有讨论,模型通常能处理。
标准书面汉语,按 Cantonese 朗读。这是香港几乎所有正式书面文本的实际形态:报纸、政府公告、合同。语法和词汇基于 Mandarin;Cantonese 使用者用 Cantonese 发音来读这些字。这通常是模型给你的结果,对很多场景来说这也是正确的输出。
口语体书面 Cantonese。将 Cantonese 语法和词汇写下来,使用一套主要不出现在 Mandarin 书面语中的字符。这出现在香港网络论坛、非正式通讯、漫画、广告文案以及部分字幕中。当人们对前一种答案不满意时,他们想要的就是这个。
只有第三种才是语言能力问题,也只有第三种是困难的。
以下这些替换几乎是全面的:书面 Cantonese 使用左栏的形式,而标准书面汉语使用右栏。如果一段回复中完全没有左栏的任何内容,那它就不是 Cantonese,无论使用什么文字体系。
function Cantonese SWC / Mandarin
------------------------------------------------
"to be" (copula) 係 是
negation 唔 不
"not have" 冇 沒有
genitive / 's 嘅 的
"at, located in" 喺 在
perfective aspect 咗 了
he / she / it 佢 他 / 她 / 它
plural suffix 哋 們
"what" 乜嘢 / 咩 什麼
"this / these" 呢 這
"that / those" 嗰 那
"to eat" 食 吃
"to drink" 飲 喝
"to give" 畀 給
除了词汇替换之外,三个结构特征更难伪造,因此是更好的测试:
双宾语顺序相反。Cantonese 把直接宾语放在间接宾语之前:畀本書我("give book me")。Mandarin 把接受者放在前面:給我一本書。如果一个模型把 畀 替换了 給,但保持了 Mandarin 的词序,那它输出的就是伪装成 Cantonese 的 Mandarin,这是输出失败最常见的方式。
量词可以独立使用。Cantonese 允许 本書 表示"那本书",而 Mandarin 通常需要 這本書 或 一本書。光秃秃的量词携带了定指含义。
句末语气词承载意义。啦、咩、㗎、喎、囉、嘅啫 以及其他语气词编码了语气、示证和礼貌。缺少它们是输出为 Mandarin 结构的最佳标志——只是词汇上点缀了些 Cantonese 词语。
Cantonese 大约有 8500 万使用者,按使用者数量计,它位居世界较大语言之列——与德语相当。但它的书面语料库完全不是这个规模,原因在于社会语言学而非技术层面。
香港和广东所有正式场合的书写都使用标准书面汉语。学校写作教学使用 SWC。报纸、法律文本、官方文件、学术著作和大多数书籍都是 SWC。白话 Cantonese 书面语被限制在按定义属于非正式的语域中,而非正式文本恰恰是精心策划的预训练语料库中最不可能被充分代表的文本。因此,一个拥有 8500 万使用者的语言,贡献的书面语料库规模更像是一个几百万使用者语言的规模。
两个技术后果随之而来。像 嘅、咗、喺、冇 这样的 Cantonese 特有用字超出了获得 tokenizer 合并的频率范围,因此会被碎片化——这是 tokenizer 词表瓶颈的机制。而且香港书面语中使用的一些字符来自香港增补字符集,其在字体和规范化流程中的覆盖参差不齐。Cantonese 有自己的 ISO 639-3 代码 yue,在元数据和 prompt 中使用它是有价值的,因为它消除了"中文"一词带来的歧义。
这需要两分钟,不需要依赖本文的任何断言,就能告诉你任何给定模型的实际表现。
用 Cantonese 请求模型,用书面口语 Cantonese 说"我没有那本书,把它给他",并且不要使用标准书面汉语。
检查否定词。真正的 Cantonese 用 冇 表示"没有"。如果输出是 沒有,那就是 SWC。
检查代词和系动词。找 佢 而不是 他,找 係 而不是 是。
检查双宾语顺序。Cantonese 形式把书放在接受者前面——畀本書佢。如果接受者排在前面,那模型替换了词汇但保持了 Mandarin 句法。
检查句末语气词。在这个语域中,自然的 Cantonese 句子通常带有一个语气词;没有任何语气词的裸陈述句是翻译伪制品。
用一段更长的文字重复测试,大约 300 字。Cantonese 的坚持度通常随着长度增加而衰减,方式和这个系列中其他变体指令一样,通过一个句子的模型未必能维持一个段落。
现实的期待是一个光谱,而非非此即彼。模型通常能在请求时输出繁体字,在明确要求口语体 Cantonese 时通常能输出可识别的 Cantonese 词汇,而在结构特征上最不可靠——词序、光秃秃的量词、语气词——而这恰恰是你根据一个包含大量嵌入 Mandarin 结构文本中的 Cantonese 词汇的语料库所预测的失败顺序。
三个实际应对方法。按名称和代码请求:"用口语体书面 Cantonese(粵語書面語,yue)写作,不要用标准书面汉语"——在这里,命名你不想要的东西比平时更重要,因为 SWC 是需要被取代的默认项。提供几句真正的 Cantonese 作为 few-shot 示例,因为结构特征从示例中学习远比从描述中学习效果好。在输出到达读者之前,用上面的标记检查它,因为失败模式是流畅的,非使用者看不出问题。
对于任何正式场合——服务条款、官方公告、面向香港的文档——繁体字标准书面汉语不是生成 Cantonese 的失败。它是正确的语域,口语体书面 Cantonese 反而是错的。