上周三凌晨两点,我在实验室盯着屏幕上的生成结果发愣。我们训练了三个月的扩散语言模型,在生成“医生”相关的描述时,连续跑了50次实验,结果里78%的医生被描述为男性,22%为女性。更让人不安的是,当提示词包含“护士”时,结果完全颠倒过来——94%的护士被描述为女性。模型没有“偏见”,它只是诚实地反映了训练数据里的世界,而这个世界本身就不公平。数据集的“隐形偏见”比你想象的更隐蔽我们用的那个著名开源数据集,号称“多领域、多语言、经过清洗”。但当你真正深入看数据分布,问题就暴露出来了:# 看看这个数据加载函数,我们当初就这么写的defload_training_samples(batch_size):# 直接从原始文件流式读取,觉得这样“最保真”# 结果呢?数据里的社会偏见原封不动喂给了模型with