领域数据在蒸馏NLU模型中胜过教师知识
在自然语言理解任务中,仅使用任务特定数据训练的学生模型性能优于使用包含通用数据的混合数据训练的模型。
知识蒸馏与传输集选择
知识蒸馏是一种流行的模型压缩技术,可将大型机器学习模型压缩至适合语音助手等低延迟应用的规模。在蒸馏过程中,轻量级模型(称为学生)通过特定数据集(传输集)学习模仿源模型(称为教师)。传输集的选择对产生高质量学生模型至关重要,但如何选择尚不明确。
在自然语言理解(NLU)应用中,教师模型通常基于通用语料库进行预训练,这与微调使用的任务特定语料库存在差异。这引发了一个关键问题:学生模型应该通过通用语料库蒸馏以学习高质量教师预测,还是应该使用与微调更匹配的任务特定语料库?
实验设计与发现
在某会议发表的研究中,通过实验证明:仅使用任务特定数据蒸馏的模型在目标任务上表现优于使用混合数据蒸馏的模型。这表明基于目标领域数据的蒸馏比单纯依赖教师知识能提供更好性能。
研究同时确认,即使使用混合数据蒸馏也有益处,学生模型性能仍优于从头训练的同等规模模型。还探索了在教师模型预训练后但微调前进行蒸馏的方案(仅对学生模型微调),发现通过更耗时的策略——在蒸馏前使教师模型适配传输集——能产生最佳学生模型。
蒸馏数据配置
实验采用多语言教师模型蒸馏多语言学生模型,使用三种混合比例的通用数据和任务特定数据:
- 比例1:纯通用数据(基线)
- 比例2:7:3的通用与任务特定数据(模拟低资源场景)
- 比例3:纯任务特定数据
通用数据通常是与任何特定任务无关的公开未标注数据,通过掩码语言建模等自监督学习方式训练。任务特定数据则是针对任务标注的数据,研究重点探索了领域分类(DC)和联合意图分类与命名实体识别(ICNER)两个下游任务。
评估与结果
模型在两种测试集(test和tail_test)和四种语言(德语、法语、意大利语和西班牙语)上评估。tail_test包含出现频率≤3的数据点子集,用于衡量模型对训练中罕见数据的泛化能力。
所有实验和基线模型参数数量相同。通过添加DC或ICNER解码器评估性能:DC任务以F1分数相对于基线的变化作为改进指标,ICNER任务以语义错误率(SemER)相对于基线的变化作为改进指标。
结果显示:
- 在DC任务中,传输集包含任务特定数据时性能全面提升,纯任务特定数据带来最大改进
- 在ICNER任务中,仅使用任务特定数据蒸馏的编码器改进更显著
方法创新
研究比较了两种基线模型和四种实验模型:
- 通用蒸馏基线:仅使用通用数据蒸馏(比例1)
- 直接预训练基线:使用通用数据从头预训练并在任务特定数据上微调
- 两种直接使用比例2和比例3数据集蒸馏的学生编码器
- 两种先对教师模型进行百万步任务特定数据微调后再蒸馏的编码器
这种设计使得能够基准测试教师模型对目标任务的适配程度。