将合成数据融入您的预训练流程是一项投入。像任何投入一样,您需要衡量其回报。仅仅增加更多数据,即使是合成数据,也无法保证模型表现更好。本节说明了如何量化合成数据对预训练结果的影响,帮助您判断所生成的数据集是否确实提升了您大型语言模型的基本能力。建立稳固的基线在衡量改进之前,您需要一个清晰的起点。最根本的步骤是仅使用您可用的真实数据训练一个基线模型。此模型作为您的对照组。您基线模型的主要指标包括:困惑度:在未使用的文本集上计算,困惑度衡量模型预测文本样本的程度。较低的困惑度通常表示更好的语言理解能力。损失曲线:追踪训练和验证损失。这有助于了解仅在真实数据上的学习动态。下游任务表现:即使在预训练阶段,在各种下游基准任务(例如 GLUE、SuperGLUE,或如果您的预训练有特定目标,则使用特定方面的基准)上进行评估,可以显示模型的通用能力。彻底记录这些基线指标。它们是衡量所有合成数据增强模型的标准。比较评估策略建立基线后,您现在可以引入使用合成数据训练的模型。一种常见方法是 A/B 测试框架:模型 A (基线):仅使用真实数据训练。模型 B (真实 + 合成):使用真实数据和您生成的合成数据的混合进行训练。模型 C (仅合成 - 可选):完全使用合成数据训练。这有助于独立地了解合成数据本身的特性和偏差,但对于预训练增强而言,模型 B 通常是主要关注点。核心思想是保持这些模型的所有其他超参数(模型架构、优化器、学习率调度、训练步数/轮次)一致,以隔离数据的影响。内在指标内在指标直接评估模型在语言建模任务上的表现,不考虑下游应用。测试集上的困惑度:这是一项重要测试。使用合成数据进行预训练后,模型对未见数据的泛化能力是否更好?模型 B 在高质量、多样化的测试集上与模型 A 相比,困惑度下降是一个积极信号。如果困惑度在合成测试集上有所改善但在其他测试集上有所下降,请务必小心;这可能表示模型对您的合成数据特性过度拟合。训练动态:比较模型 A 和模型 B 的损失曲线。包含合成数据是否导致更快收敛?它是否在验证集(由真实数据组成)上实现更低的最终损失值?外部指标:下游任务表现预训练模型质量的真正检验通常是其在下游任务上进行微调时的表现。即使没有完全微调,对基准任务进行零样本或少样本评估也能提供非常有用的信息。标准基准:使用 GLUE、SuperGLUE 等套件,或与您大型语言模型预期通用能力相关的其他基准。比较模型 B 与模型 A 的分数(例如,准确率、F1 分数)。{"layout": {"title": "预训练影响:真实数据 vs. 真实+合成数据", "xaxis": {"title": "模型配置"}, "yaxis": {"title": "分数(GLUE 平均)"}, "yaxis2": {"title": "困惑度(越低越好)", "overlaying": "y", "side": "right", "showgrid": false}, "barmode": "group"}, "data": [{"type": "bar", "name": "GLUE 平均分数", "x": ["模型 A (真实数据)", "模型 B (真实+合成)"], "y": [75.2, 78.5], "marker": {"color": "#228be6"}}, {"type": "bar", "name": "困惑度", "x": ["模型 A (真实数据)", "模型 B (真实+合成)"], "y": [15.5, 14.8], "yaxis": "y2", "marker": {"color": "#fab005"}}]}该图表显示了一种情况,其中模型 B,通过真实数据和合成数据的组合进行预训练,在 GLUE 任务上取得了更高的平均分数,并在未使用的真实数据集上具有更低的困惑度,与仅使用真实数据训练的模型 A 相比。零样本和少样本能力:预训练旨在赋予模型广泛的知识和推理能力。测试模型 A 和 B 在没有或只有极少示例的新任务上的表现。模型 B 在这些设置中的改进表明合成数据有助于形成更具泛化能力的表示。分析具体贡献您的合成数据在设计时可能考虑了特定目标。请相应地调整您的评估。领域特定预训练:如果您生成合成数据是为了提高在特定方面(例如,法律文本、医学研究)的表现,您的评估必须包含针对该方面任务和困惑度测试。如果合成数据有效,此处的改进应更明显。指令遵循:如果您的预训练语料库包含合成生成的指令-响应对(如“为预训练阶段生成指令式数据”中所述),请评估模型遵循新颖、未见指令的能力。这可以通过自定义评估套件或通过观察专门用于指令遵循的基准上的表现来完成。知识注入:如果创建合成数据是为了注入特定事实或知识,请设计探针或问答任务,以验证模型是否已吸收这些信息,而不仅仅是记住模式。定性分析:数字背后指标提供定量视角,但定性分析能更深入地了解使用合成数据训练的模型的行为。输出连贯性和流畅性:使用各种提示从模型 A 和模型 B 生成文本样本。模型 B 的输出是否表现出更好的连贯性、语法和自然度?事实性和减少幻觉:如果您的合成数据被设计为事实性的,请检查模型 B 是否比模型 A 更不容易生成不正确或无意义的信息(幻觉),尤其是在合成数据涵盖的主题上。生成内容的丰富性:合成数据是否鼓励更多样化的输出,或者是否无意中导致更多重复或程式化的文本?偏见评估:仔细检查合成数据生成过程是否引入或放大了不良偏见。比较模型 A 和 B 的输出,看其在不同人口群体或主题上的公平性。这是迈向负责任人工智能的重要一步。资源考量与效率合成数据的优势必须与成本相权衡。训练时间和计算成本:使用额外合成数据进行预训练需要多长时间?计算开销(GPU 小时、存储)是多少?投资回报:在困惑度、下游任务或定性方面观察到的改进是否足够显著,以证明在生成和训练合成数据上所花费资源的合理性?对主要指标的 2% 改进对某些应用而言可能很重要,而 0.1% 的提升可能无法证明训练成本翻倍的合理性。长期影响和模型稳定性考虑长期影响:知识保留:确保添加合成数据不会导致模型“遗忘”或在从真实数据中学到的方面表现变差。这有时被称为灾难性遗忘,尽管在预训练增强中比在顺序微调中更不常见。扩展效应:如果您计划扩展合成数据生成,请监测益处是否按比例增长,或者是否遇到边际收益递减。此外,如果合成数据与真实数据的比例变得过高,请警惕模型性能下降的迹象,这可能导致模型学习生成过程的“人工产物”,而非真实潜在模式。这将在第 6 章中进一步说明。迭代改进评估不是一次性步骤。利用这些发现反馈到您的合成数据生成策略中。哪种类型的合成数据带来了最显著的提升?是否存在某些生成技术,其输出与模型表现不佳或不良行为相关联?如何改进您的合成数据的质量、多样性或相关性,以用于下一轮预训练?通过系统地衡量合成数据的影响,您可以做出明智的决定,改进您的生成技术,并最终构建出能力更强、更可靠的大型语言模型。目标不仅仅是创建更多数据,而是创建有效的数据,这些数据能明显提升模型的预训练表现。