本文档旨在提供在自然语言处理(尤其是大型语言模型,LLM)场景下准备三类数据集(知识库数据集、微调数据集、预训练数据集)的规范指导。主要内容涵盖各类数据集的定义与适用场景、数据格式要求、数据构成比例建议、数据清洗与质量控制规范、特殊结构数据(如提示词/指令)处理方法、不同行业场景的数据构建要点,以及安全合规方面的建议。本规范可用于内部数据构建指导,也可对外发布参考,以中文为主(夹带适量英文术语)。下面将按照各要点详细阐述。
一、数据集类别定义与适用场景
为确保数据准备针对性,首先明确三类数据集的概念和应用场景:
1.1 知识库数据集
定义: 知识库数据集是用于存储结构化或非结构化知识的语料库,供模型在问答或推理时检索事实依据。例如企业内部文档库、知识图谱或常见问答对等。其数据通常包含明确的知识点,可以是结构化的知识三元组、FAQ问答对,或百科/维基类的文本条目等。
适用场景: 在需要模型具备领域事实知识或进行检索式问答的场景下使用。例如,将知识库数据集用于构建聊天机器人咨询系统,使模型回答金融知识、医疗常识等专业问答;或在大型语言模型外接检索工具时,知识库数据提供可信内容来源。知识库数据集可作为模型的外部“长时记忆”,提高答案的准确性和可靠性。
1.2 微调数据集
定义: 微调数据集是用于监督微调(Fine-tuning)预训练模型的高质量任务数据。通常包含配对的输入-输出实例(如指令→回答、问题→解析、对话上下文→响应等),用以专门定制或对齐模型行为。微调数据带有明确的目标输出(标签),可以是单轮指令及回答对,也可以是多轮对话记录。通过微调数据集训练,可在保持原始模型通用能力的同时,强化模型在特定领域或任务上的性能。
适用场景: 当需要模型适应特定任务、领域风格或对话格式时使用微调数据集。例如,在医疗问答场景下用医生问诊对话数据微调模型,使其掌握医疗问答的专业语气;在法律助手场景下用法律咨询问答数据微调模型,确保回答遵循法律依据;或进行指令对齐(Instruction Tuning),通过带有人类偏好的问答对训练模型提高有益性和安全性。微调还适用于多语言本地化(将模型适配到其他语言)以及语气风格调整等场景。
1.3 预训练数据集
定义: 预训练数据集是用于训练基础模型的大规模无监督语料集合。内容通常为海量的纯文本(可能多语言、多领域混合),不要求明确标签或答案,通过自监督目标(如下一个词预测)学习语言模式和常识知识。预训练数据集规模庞大,覆盖广泛主题,以赋予模型通用的语言理解和生成能力。
适用场景: 预训练数据集用于训练或持续预训练大型语言模型的底座。例如,从零训练一个新的LLM时,需要爬取互联网开放文本、书籍、百科、论坛对话等组成训练语料;抑或在已有大模型基础上追加预训练语料,以融入最新知识或领域文本。预训练数据集决定了模型的基础知识广度和表述能力,对模型最终性能影响深远。
二、数据格式与结构要求
不同类型的数据集在存储格式和内部结构上有所差异,应根据用途选择恰当的格式并保证结构一致。常见的数据组织形式如下:
数据集类型 | 常见格式 | 结构示例 |
---|---|---|
知识库数据集 | JSON、CSV、TXT 等 (结构化三元组或问答对) |
知识三元组格式: 每行为{ "subject": 实体, "predicate": 关系, "object": 实体/属性 } ,例如:{"subject": "乔治·华盛顿", "predicate": "曾任", "object": "美国总统"} 表示一条知识;**问答对格式:**每行为 { "问题": "...","答案": "..." } ,例如:{"问题": "首任美国总统是谁?", "答案": "乔治·华盛顿"} 。 |
微调数据集 | JSON(首选)、CSV、Markdown 等 (指令-响应或对话) |
指令-响应格式: 每行为 JSON 对象,包含{"instruction": 提示指令, "response": 模型期望回答, "context": 可选上下文} 。例如:{"instruction": "将句子翻译成英文: 我爱你", "response": "I love you."} ;**多轮对话格式:**使用数组表示消息序列,如: {"dialog": [ {"role": "system","content": "你是翻译助手。"}, {"role": "user","content": "你好"}, {"role": "assistant","content": "Hello"} ] } ,清晰标注角色和内容。 |
预训练数据集 | 文本文件(.txt)、JSON 行、CSV 等 (纯文本语料) |
**纯文本格式:**每行为一个独立文本段落或文档。例如TXT文件中每行是一句话或一段话。 **JSON行格式:**每行为 { "text": "..."}, 仅包含文本字段,大段文本可以包括文章、多句话。(预训练语料通常不需要标签,保持原始文本内容即可。) |
以上是常见结构,需注意:无论采用何种格式,整个数据集应保持统一的字段和结构,便于后续解析和加载。例如,微调数据统一为instruction
/response
字段,就不要混用其他命名;多轮对话应固定使用同样的角色标识(如user
/assistant
/system
)。在格式选择上,JSON 方便存储结构化信息且易扩展字段,因而广泛用于知识库和微调数据;纯文本则多用于预训练语料。必要时可提供数据字典说明各字段含义,以确保理解一致。
数据集构成与比例建议
高质量的AI数据集往往来源多样。合理规划各类数据在数据集中的占比,有助于模型平衡学习不同技能和知识。以下从语言、领域、质量、集划分等方面给出构成比例建议:
-
语言组成比例:针对中英双语的大模型训练,应设定合适的中英文语料配比。一方面,模型需以中文为主保证本地语言能力;另一方面也通常引入一定比例的英文数据以丰富表达和知识来源。例如,可采用中文:英文 ≈ 7:3的比例构建预训练语料,使模型主要精通中文同时具备英文理解。研究指出英文数据质量高且丰富,英文比例不宜过低,不少中文LLM甚至采用中英接近1:1的预料配比(余量用于代码等)。微调阶段如侧重中文应用,可提高中文数据占比,但仍建议保留适当英文指令/样本,防止模型遗忘英文能力。
-
行业/领域覆盖比例:数据集中应涵盖多种主题领域,避免单一来源占据过多比重,从而提升模型的通用性和减少偏见。对于通用大模型预训练,可考虑在总语料中分配不同领域的份额,例如新闻、百科、社交对话、文学、科技论文各占一定比例;甚至细分技能类别(如某开源方案将通用文本约50%、数学推理25%、代码17%、多语种8%)。如果目标是训练专用领域模型,则应让该领域数据占主要部分(如 ≥70%),同时保留一定比例的一般领域数据(≤30%)以维持基础语言能力和常识。微调数据亦类似:针对金融聊天机器人微调,可用大部分金融领域对话,辅以小部分其他领域对话以保持模型风格多样性。
-
高质量与噪声数据比例:尽量保证绝大多数(>90%)为高质量数据。高质量指内容准确、语言规范、结构清晰的数据。可以容忍少量 (<10%) 噪声或低质数据用于扩充覆盖面,但必须严格筛选,避免模型过度学习错误信息。实践中,应优先采用权威来源(如维基百科、官方文件)和经过人工审核的语料,占据主要比例;对于爬虫抓取的原始数据,需清洗过滤后方可加入。宁缺毋滥,高质量小规模数据往往比大量噪声数据效果更好。特别是在微调阶段,应杜绝错误标注或不恰当响应的数据进入训练集,因为哪怕极少异常也可能对模型行为产生较大影响。
-
训练集与验证集划分:合理划分训练和验证数据集,以便评估模型性能和防止过拟合。常规按8:2或9:1比例将数据集切分为训练集和验证集(如90%数据用于训练,10%用于验证)。对于超大规模预训练语料,可采用留出5%\~10%的数据作为验证集,用于计算困惑度等指标跟踪训练进展。验证集应与训练集分布一致且不重复。若有充足数据,亦可划出约5%作为测试集做最终评估。需要注意确保划分随机且覆盖各类数据分布,使评测结果具有代表性。
上述比例应根据具体项目需求灵活调整,但总体策略是:语言上兼顾主要与次要语种,领域上广覆盖或突出重点,高质量数据为主,保留验证集监控模型。通过平衡数据构成,模型既能学到核心任务所需知识,又不至于偏科或过拟合。
数据配比建议汇总:
方面 建议配比/策略 语言(中:英) 中文为主,适当配以英文。例如 7:3 比例;确保英文比例不至过低。 领域覆盖 通用模型覆盖多行业、多类型语料,各领域相对均衡;专用模型领域数据≥70%,其他≤30%。 质量 vs 噪声 高质量数据尽量占 >90%;少量噪声数据 (<10%) 可酌情加入但需严格过滤。 训练:验证划分 常用 8:2 或 9:1 划分训练/验证集;大语料留出5\~10%作验证集监控模型效果。
数据清洗与质量控制规范
数据准备的一般流程包括:数据获取 → 数据清洗 → 质量控制 → 格式标准化 → 数据扩增等步骤。高质量的数据集需要经过严格的清洗和质控,以确保模型学习到的输入输出准确、规范且一致。以下是数据清洗和质量控制的主要要求:
-
数据清洗(消除杂质):对原始采集的数据进行清理,解决常见脏数据问题,包括:移除或匿名化任何个人身份敏感信息(PII,如姓名、身份证号、电话);纠正明显的拼写错误和语法错误;剔除文本中的HTML标签、特殊符号以及其他与内容无关的噪音字符;过滤掉广告、垃圾文本等无关内容。通过上述清洗,保证语料内容干净、专注于有用信息。
-
重复和冲突处理:检测并删除重复的或近似重复的样本,避免模型因重复数据而产生偏差。常用做法是对文本生成哈希指纹比对去重,或采用模糊匹配找出近似重复。对于知识库三元组数据,需确保无重复事实录入;对于问答对,避免同一问句出现多个不同版本答案。清洗时还应剔除自相矛盾的数据(例如知识库中相互矛盾的条目、标注错误的样本)以维持数据集内部一致性。
-
一致性与完整性检查:确保数据集中标签和格式的一致。如果数据有分类标签或答案标注,需检查所有条目是否遵循统一规范,例如同一类别命名是否相同,标注标准是否前后一致。多人工标注的数据应进行一致性验证,如计算不同标注者之间一致率,发现分歧及时调整或剔除异常样本。此外,检查每条数据是否信息完整(如问答对都有问题和答案字段,三元组都包含主体-关系-客体三要素)。统一和完整的数据格式能减少模型学习混乱,提高训练收敛效果。
-
对话和上下文质量:对于多轮对话形式的数据,特别关注上下文的连贯性和响应的相关性,避免不连贯的对话流。建议在清洗时确保对话前后一致、逻辑合理,去除上下文不匹配或牛头不对马嘴的轮次。必要时可人工审阅对话流程,调整或移除不良对话样本。良好的对话数据应能体现真实交流逻辑,使模型学习到正确的多轮互动模式。
-
质量抽检与统计分析:在完成清洗初步版本后,进行数据质量的评估控制。提到可采用随机抽样人工检查部分数据,核实清洗效果和质量;进行统计分析查看数据长度分布、常见词频等是否异常,以发现可能的问题;还可用一小部分数据进行试运行微调,观察模型输出以评估数据是否存在偏差。通过这些质控手段,进一步完善数据集。在数据制作的整个流程中,应坚持迭代**“清洗→质检→再清洗”**的循环,不断提高数据集质量。
-
标准化与格式统一:最后,对清洗后的数据进行格式标准化处理,确保所有数据条目遵循统一的模板和编码规范(如统一的JSON字段顺序、统一的换行和转义规则等)。这一步可以借助工具(例如 LlamaFactory 等)批量转换格式。标准化的格式能减少训练时解析错误,并保证不同来源的数据在语义上对齐。例如,对于指令微调数据,可统一转换成类似 Alpaca 格式(简单 Instruction→Response 对)或 ShareGPT 格式(多角色对话)。选择何种标准主要视具体模型需求:Alpaca格式结构简单,适合基本指令微调;ShareGPT格式支持更复杂的角色设定和多轮对话。无论何种格式,一旦选定应贯穿始终,不要混杂多种格式,以免模型混淆。
经过上述严格的数据清洗与质量控制,所得的数据集应当是内容准确、格式统一、无冗余冲突的高质量语料,为模型训练打下坚实基础。
特殊结构数据的处理方法
在大型语言模型的数据集中,经常会出现带特殊结构的样本,例如带有提示词(prompt)的指令数据、包含系统角色说明的多轮对话,以及附加的上下文信息等。处理这些特殊结构时,需要仔细设计数据表示方式,确保模型正确理解各部分语义。以下给出常见情况的处理规范:
-
指令与回答对:对于指令-响应类型的微调数据,建议显式区分指令(或问题)和期望模型输出。在数据格式上,可通过不同字段存储,如上文所述使用
instruction
和response
字段分别保存提示和答案。此外,如果指令需要特定背景,可以增加context
字段存储额外上下文信息。存储时避免将指令和回答混在一个字符串,应分隔清楚(例如不用同一文本域包含问答的连续拼接,而是结构化存储)。这样模型训练时能够明确定义输入和输出段落。 -
系统角色指令:在对话数据集中,经常在对话开头包含系统角色设定或背景说明(System Prompt),指示模型扮演某种身份或遵循某些原则。处理这类数据时,可在数据格式中增加一个system角色。例如在JSON对话列表中,第一个消息设为
{"role": "system", "content": "...系统提示内容..."}
。系统指令作为特殊上下文只出现一次,引导后续对话,不属于用户或助手的一般消息。确保在预处理时保留系统指令的位置,不要将其与普通对话轮次混淆或遗失。对于有系统指令的数据,可统一在格式中包含该字段,即使有些样本没有系统提示也放一个空的占位,以保证格式一致。 -
对话上下文:多轮对话数据需要模型考虑上下文,因此在存储时要按顺序保存每轮对话。通常采用数组或连续行表示对话历史,并标注每句的说话人(例如 user/assistant)。处理这类数据时要注意:对话数组应完整记录从第一轮到最后一轮的交互,不要遗漏关键轮次;标注角色时保持一致的命名(不能一会儿用“用户”、一会儿用“User”混用大小写或中英),建议直接使用
user
和assistant
等通用英文标识以方便模型训练识别。对于超长对话,可根据模型上下文长度限制,在数据准备时截断或分段存储,避免超过模型能处理的长度。不要打乱对话顺序,确保每条数据内部的对话是逻辑连贯的真实顺序。 -
提示符模板:有时会使用统一的提示模板将问题和上下文包装起来喂给模型,例如
"基于以下背景回答问题:\n[背景]...\n问题: ...\n答案:"
的形式。在数据集中保存此类样本时,要决定是预先组成完整提示串存储,还是分别存储背景、问题,由训练代码组装。如果选择前者,需保证模板一致、占位符格式固定;选择后者,则在数据中用独立字段存背景和问题,并在训练时读取拼接。两种方式各有利弊:直接存完整提示使数据所见即所得,但缺少结构标签;分字段存储更灵活可组合,但增加训练前处理步骤。制定规范时应统一采用一种,以免混乱。同样,对于多语言的提示,还应确保模板中的指引语言与内容语言匹配,不要出现模板和内容语言不符的情况。 -
特殊标记处理:某些数据可能包含特殊的控制标记或转义序列(如用于表示填空位置、序列分隔符的标记)。处理此类数据时,需要决定是否保留、去除或替换这些标记。例如,一些对话数据以
<|user|>
、<|assistant|>
标记角色,在清洗标准化时可以将其替换为统一的结构化字段表示;又如有的知识库文本包含引用标记[n]
,可以选择保留以供模型学习引用格式,或去除以简化文本。总的原则是:确保模型需要的标记被保留且一致, 模型不需要的标记尽量在预处理时去掉,防止干扰训练。可以建立特殊标记清单,在数据清洗阶段统一处理这些符号。
通过以上方法处理提示词、系统说明、上下文等特殊结构,可以让模型在训练时准确区分指令、上下文和应答的边界,从而正确地学习在不同部分应该扮演的角色。这对于构建对话式LLM和基于提示的任务非常关键。
行业场景数据构建要点
不同应用领域对数据集构建有各自的关注点。在准备金融、医疗、教育、电商、法律等行业场景的数据时,需要结合领域特征进行针对性的取舍和规范。以下列举各行业数据集构建的要点示例:
-
金融领域:金融行业的数据应体现专业性和时效性。构建金融对话或问答数据集时,可收集财经新闻、股票报告、银行FAQ等作为知识来源,确保涵盖金融术语和最新政策法规。数据中涉及数值和货币的信息要格式统一(如金额单位、百分比格式),训练模型准确理解和表达财务数据。注意隐私合规,避免包含个人账户信息等敏感内容。金融数据往往比较正式,但在客服场景对话中也要体现礼貌服务的语气,这些细节可在微调数据中予以体现。
-
医疗领域:医疗数据集要求高度准确和审慎。应主要采用权威医学资料(如教科书段落、医学百科、疾病诊断问答)构建知识库,确保信息科学可靠。对话微调数据可来源于医生问诊对话或医疗咨询,但必须脱敏(隐去病人姓名等PII)且避免具体诊疗建议而更侧重科普性质,以免不当医疗建议。数据应包含常见症状、药物名称、诊断术语等专业词汇,模型需学习正确的医学表达。同时,严格过滤涉及偏方、迷信疗法或不符合医学指南的内容,保证模型不会学到有害医疗信息。医疗数据还应遵守隐私法规(如HIPAA),确保所有患者相关信息已匿名处理。
-
教育领域:教育场景的数据集可包括课本知识点讲解、练习问答、作文批改示例、导师和学生对话等。构建时关注数据内容的年龄适宜性和准确性:针对中小学的内容应通俗易懂、避免超纲;高等教育内容则注重深度和专业性。可以准备不同难度级别的问题答案对,让模型学会根据学生水平调整回答。数据中若包含对学生错误回答的反馈,应体现出耐心鼓励和正确引导的语气。教育领域还涉及多学科知识,因此数据应涵盖语文、数学、历史、科学等各科示例,防止模型在某一学科过于薄弱。确保内容健康向上,过滤任何不良或可能误导学生的素材。
-
电商领域:电商数据集主要用于训练模型在购物、客服等场景下的对话和分析能力。可收集商品描述、用户评价、客服聊天记录、常见问题等数据。构建要点包括:商品信息需结构清晰(如标题、规格参数、价格等字段)以供模型学习提取要点;用户评价数据可用于训练模型进行情感分析或推荐,但应去除脏话、人身攻击等内容。客服对话数据应体现礼貌用语和问题解决流程,如包含问候、询问订单号、解决方案提议等完整流程,使模型学会专业客服沟通。注意保护用户隐私,聊天记录中如有用户姓名、地址等要做脱敏处理。跨境电商场景则可包含一定比例外文商品QA,让模型习惯多语言商品咨询。
-
法律领域:法律数据集应来源于正式法律文本和专业法律问答。知识库部分可采用法律法规条文、判例摘要、合同范本等,确保措辞严谨规范。微调对话数据可收集法律咨询场景,例如律师与客户的问答,但需确保回答基于公开法律知识而非具体法律建议,避免违法“提供法律意见”。数据构建要特别注意法律专业术语的一致使用,如法条引用格式、案由描述等,模型需通过数据学习严谨表达。法律领域的数据常包含大量引用(例如《民法典》第X条),应在格式上标明这些引用以训练模型正确识别使用。出于保密要求,凡涉及尚未公开的案件信息、当事人隐私的内容不得包含在数据集中。模型输出法律信息需绝对准确,因此训练数据中任何可能的错误法条或过时法规都必须剔除,保证知识库和问答的现行有效性。
以上行业示例只是指导性原则。在实践中,应根据具体应用调整数据集构建策略。例如,一个医疗教学助手模型的数据可能同时涉及医疗和教育两方面要求,需要综合平衡。关键是在数据准备阶段充分考虑领域特征和使用场景需求,以“定制化”高质量数据来指导模型学习该领域的正确知识和风格。
安全与合规性建议
数据安全与合规是AI数据集准备中不可忽视的重要环节。无论是内部训练还是对外发布,均应确保数据不含违法违规或敏感信息,并符合法律及道德规范。以下是安全合规方面的建议:
-
隐私保护:严格遵循隐私法规(如GDPR等)的要求处理数据。在数据集中不得出现个人敏感信息,包括真实姓名、身份证号、电话号码、地址、社交账号等。如数据来源于用户对话或社交平台,必须对涉及的个人信息进行匿名化/脱敏处理。例如,用统一符号或假名替换真实姓名,用模糊地址替换具体住址等。确保任何公开的数据集都无法还原出个人身份。对于涉及医疗、金融等隐私敏感领域的数据,更要加强筛查,避免泄露用户隐私。内部使用的数据也应遵循最小必要原则,不存储多余的个人信息。
-
涉政及敏感内容过滤:建立内容过滤规则,排除政治敏感、不良信息和违规内容的样本。特别是在中国语境下,应过滤任何违反法律法规或政策导向的语料,例如涉国家机密、颠覆政权、民族宗教极端等内容。对于暴力、色情、仇恨言论等各类敏感内容,也应事先从数据中过滤或标注,以避免模型学习和输出这些不当信息。可以借助关键词匹配、分类器识别等技术检测敏感内容,对高风险样本进行人工复核。最终的数据集中保留的应是健康、合法、正面的信息。对外发布的数据集更要审慎自查,确保零违禁内容出现。
-
版权和数据来源合规:注意数据来源的版权问题,确保有权限使用。优先采用开源许可或公共领域的数据,例如维基百科文本(遵循其CC BY-SA协议)、开放获取论文等。爬取网络数据时,遵守目标网站的robots协议和使用条款,不收集受版权保护且禁止机器学习用途的内容。整理数据集准备对外发布时,要为数据来源做好版权声明或许可说明,避免侵犯第三方知识产权。如果数据包含用户生成内容(UGC),需验证其发布平台的许可政策,必要时对数据进行二次筛选或征得授权。合规使用数据不仅是法律要求,也能避免模型因训练非法数据而潜在产生法律风险。
-
道德与偏见审查:从数据层面预防模型产生有害偏见或歧视性言论。审查数据集中是否存在种族、性别、宗教、地域等方面的偏见语言,及时剔除或平衡这类样本。例如,如果收集到的对话数据包含性别刻板印象,应增加多样化的示例或直接移除成问题内容。对于可能引发危险行为的描述(如自杀、自残、暴力指引),也应在数据中标记或删除,以免模型模仿输出。道德审查可以结合人工和自动工具,人工重点复核自动筛查出的疑似不良内容。目标是让训练语料在价值观上尽量中立客观,或符合预期的道德准则导向。
-
安全提示与纠错数据:为提高模型最终输出的安全性,可在微调数据集中加入安全指引相关的数据。例如加入一些“当用户请求违规内容时助手如何礼貌拒绝”的对话示例,或加入标准的纠错示范(当用户提供错误信息时模型应如何回应纠正)。这些数据可以教会模型在涉及安全/合规话题时正确回应。安全提示类数据在比例上不需很多,但建议有一定代表性覆盖(如包含处理侮辱、暴力、隐私请求等多种场景)。同时确保此类数据本身措辞得当,不会二次引入不良信息。
总之,安全与合规性需要贯穿数据准备的始终。在数据收集、清洗、审核各阶段都应设置相应的检查点,发现问题立即处理。对于高风险内容,宁可牺牲数据量也绝不能姑息。另外,要随时关注最新的法律法规和行业规范调整数据策略。通过严格的安全合规把关,我们才能既获得高质量的数据,又避免法律和道德风险,为模型的可靠应用保驾护航。