指令微调侧重于教模型如何遵循指令,使用各种示例,而域适应旨在赋予模型特定知识、术语和风格习惯,这些内容与某个特定行业(如医学、法律、金融或软件工程)紧密相关。成功很大程度上取决于向模型提供数据,这些数据能准确反映目标应用场景特有的语言环境和操作背景。与强调多样性的通用指令数据集不同,域适应数据集必须优先考虑相关性和代表性。核心要求是获取一个文本语料库,能够代表目标应用场景。这些数据有多种作用:让模型接触专业词汇、缩略语和行话;使其熟悉常见的句子结构和语篇模式;并间接使其了解该应用场景中普遍存在的事物、关系和普遍内容。特定应用场景数据类型有效的域适应通常涉及两种主要类型的数据:通用行业语料库: 这包含大量代表目标行业(或应用场景)的无标签文本。例如,公司内部文档、技术手册、行业特定网站、研究论文(如针对科学主题的arXiv论文)、法律案件文件或财务报告。使用这些数据的主要目的是将模型的内部表示和生成概率向目标行业(或应用场景)的数据分布调整。这有助于模型在相关主题上听起来更专业,并更好地理解上下文。任务专用行业数据: 如果目标不仅是通用行业知识,还包括在该行业内执行特定任务(例如,总结医学研究论文、回答法律合同问题、生成特定代码模式),您将需要与指令微调数据集类似的标注示例,但要使用特定行业的内容。这可能涉及基于内部文档的问答对、行业文本摘要或与该特定应用场景相关的分类任务。digraph G { rankdir=LR; node [shape=box, style=rounded, fontname="sans-serif", color="#495057", fillcolor="#e9ecef", style="filled,rounded"]; edge [color="#495057"]; subgraph cluster_domain_data { label = "域适应数据"; bgcolor="#f8f9fa"; color="#adb5bd"; fontname="sans-serif"; general_corpus [label="通用行业语料库\n(无标签文本)", fillcolor="#a5d8ff"]; task_specific [label="任务专用示例\n(标注数据)", fillcolor="#b2f2bb"]; } subgraph cluster_goals { label = "适应目标"; bgcolor="#f8f9fa"; color="#adb5bd"; fontname="sans-serif"; node [shape=ellipse, fillcolor="#ffec99"]; style [label="风格与术语"]; knowledge [label="行业知识"]; tasks [label="特定任务"]; } general_corpus -> style; general_corpus -> knowledge; task_specific -> tasks; task_specific -> knowledge; }域适应中使用的数据类型及其对模型专业化的典型贡献。通用语料库主要影响风格和知识,而任务专用示例则直接针对该行业内的任务表现。获取行业数据识别和收集合适的行业数据可能是一项艰巨的任务:内部资源: 组织通常在内部维基、文档库、代码库、客户支持日志、电子邮件和数据库中拥有大量行业特定数据。运用这些数据通常在相关性方面是理想的,但需要谨慎处理隐私、安全和数据治理问题。可能需要预处理以删除敏感信息并适当组织数据。公共数据集: 根据具体行业,可能存在公开可用的数据集。来源包括政府开放数据门户、学术资料库(如用于生物医学文献的 PubMed Central、用于财务申报的 SEC EDGAR)、法律数据库,或由研究人员或机构整理的专业合集。其质量和相关性仍需仔细评估。网络抓取: 对行业特定论坛、网站、博客和新闻来源进行定向网络抓取可以获得有价值的文本数据。这需要技术专业知识,并遵守道德准则和网站的服务条款 (robots.txt)。通常需要大量清理和过滤。合作与数据许可: 有时,获取数据需要与其他组织达成协议,或从商业供应商处许可专业数据集。合成数据生成: 尽管更高级,有时可以使用现有强大的大型语言模型(或通过迭代方法,使用正在微调的模型本身)来生成合成的行业文本或任务示例,特别是在有高质量种子数据的情况下。这需要仔细验证,以避免传播偏见或不准确性。数量与质量考量需要多少数据?没有唯一答案。这取决于几个因素:行业差异: 目标行业与模型的原始预训练数据有多大差异?将一个通用网页文本模型适应于高度专业的法律术语,比将其适应于技术博客文章需要更多数据。任务复杂度: 简单的风格适应可能比掌握该行业内复杂的推理任务需要更少的数据。微调方法: 全量微调通常受益于更大的数据集,相比参数高效微调(PEFT)方法,如LoRA,后者有时可以用较小、高质量的数据集取得良好效果。期望性能: 达到顶尖性能通常需要更大、更全面的数据集。质量通常胜过数量。 包含高度相关、干净、有代表性文本的较小数据集通常比包含不相关或嘈杂信息的庞大数据集更有效。重要的质量方面包括:相关性: 数据是否准确反映了感兴趣的特定子行业、术语和任务?错误子行业的数据(例如,目标是放射学报告却使用通用医学文本)可能有害。清洁度: 数据是否没有大量噪音、格式错误、重复或不相关的模板内容?文本清理、标准化和去重等预处理步骤很重要。代表性: 数据是否涵盖了目标应用中预期的各种主题、风格和复杂性?一个只关注入门材料的数据集无法为模型处理高级内容做好准备。对齐性: 数据是否与期望的模型行为一致?例如,如果为了适应正式的科学写作,应避免在行业语料库中包含非正式的博客文章。准备域适应数据需要清晰了解目标行业和微调过程的具体目标。这涉及策略性地获取、仔细选择,并且通常需要大量预处理,以确保模型有效学习预期的知识和行为。不匹配或低质量的数据是导致适应效果不理想的常见原因。