当前位置: 首页 > news >正文

大模型训练语料(通俗易懂) 第一篇

本系列文章我们把数据从 [ 来源分散、格式各异、重复冗余、质量参差 ] 一步步打磨为[ 能用、合规、去冗、优质 ] 的训练语料,并串起可审计、可复现的产线流程。


一、 来源与许可

而训练语料也是如此,将数据的来源,版权许可、原文进行存入数据库,才能在模型训练结果评估时引用可追溯信息。

1.1 具体步骤:

  1. 标注数据来源:网页、书籍、代码仓库、对话/工单、产品手册、FAQ、合成数据等。
  2. 明确许可(license):是否允许采集的数据进行训练、商用。
  3. 记录原数据来源信息并落表,便于后续溯源。

示例:

```
{
"doc_id": "policy_2025_10_001233",
"source": "web",
"url": "https://example.com/x",
"license": "CC-BY-4.3",
"collected_at": "2025-10-07T12:30:00+08:00",
}
```


 二、原始清洗

不同来源的数据,数据格式不同,是无法统一处理的。因此必须先统一格式,再进行后续处理。系统内的数据在入库前进行了“ 字符与格式规范 ”的归一化处理。

2.1 推荐规则:

  • 编码与 Unicode:统一使用 UTF-8 编码格式;全角→半角(A→A,123→123)。
  • 空白与换行:`\r\n/\r → \n`;连续空白折叠;引号/括号对齐。
  • 大小写:非代码可小写化;代码与标识符保留,确保代码块完整性,避免语义被改。
  • 噪音剔除:移除乱码、抓取错误、过短/过长段、海量重复标点或广告页。
  • 分隔符/标点统一:统一引号(中文直角/英文直引号归一)、省略号、破折号;保证 JSON/代码相关的 { } [ ] : , " 不被误替换。

前后对比:

处理前: ABC123¥ 2025年10月7日 访问https://xx.com?a=1&utm_source=... 
处理后: ABC123¥ 2025年10月7日 访问https://xx.com?a=1&utm_source=... 

分析:

处理前,字母ABC是全角英文字符(可以直观的看到字符之间的间距),而数字123是半角字符。因此需要统一字符格式,这里统一为半角字符。


三、去重与近重复

顾名思义,删去数据中重复的信息,留下有效、且不重复的数据。在系统中的数据中采用混合去重策略,在减少重复文字的同时识别语义上的相似性。

比较对象:基于自身数据样本比对。

3.1 混合策略:

  1. 精确去重(哈希):文档/段落都进行哈希,若哈希值完全一致的信息直接剔除其中一条。

  2. 相似度去重:

        · 近重复(MinHash)+LSH 筛选:判断高度相似但不完全相同的文本。

补充:

  1. 在相似度去重中,可选择其中的一种方式对比相似度,再进行去重处理。
  2. MinHash + LSH 筛选:

    1. 首先将文本A、B分别切分为 n 个小片(shingles)。

    2. 再拿 k 个哈希函数,同时对 A和B的n 个小片进行哈希函数,得到每个小片的k个哈希值,然后取每个小片的最小哈希值拼成 “长签名”。

    3. LSH筛选:把长签名切成几段(band),比较A和B的某段是否相同,相同就将这对文本段标记为候选相似对,进行计算Jaccard确认相似度。

在下列表中,呈现的就是MinHash+LSH结合的输出结果。k=32代表的是32个哈希函数,B=8代表的是Band(段)=8段,R=4指的是每个段中包含的数值个数为4。

很明显在第3段中,A与B的数值完全一致,那么就需要进一步计算Jaccard确认相似度。

3.2 答疑:

混合去重的原因:

  • 入库前去重,避免在千万级数据上与历史库逐条比对,防止计算量爆炸、避免系统过载。
  • 杜绝同段内容反复出现,减少模型对同一数据顺序的记忆,训练更稳更泛化

四、质量与合规过滤

数据的质量检测类似于海关安检:把广告、违规内容拦在门外。

4.1 常见质量信息

  • 重复比:计算n-gram重复率,重复率高的判为低质,得到rep_ratio重复率,减少符号堆砌、关键词刷屏的情况。

  • 语言/领域识别lang(语言)/domain(领域)分类器给出相应的权重;领域外降低权重(为质量计算提供数据)。

  • 分类器过滤:广告/垃圾、NSFW/毒性、仇恨/暴力、低质量机器翻译、事实性差内容。

  • PII/DLP:手机号、地址等敏感信息一律按规则脱敏或删除;黑名单命中直接丢弃或改写。

  • 白名单:允许引用到答案里的字段(如 policy_id/version/chunk_id)。

  • 黑名单:禁止引用的内容。内部机密、越权承诺相关字段。

4.2 名词解释:

  • 重复 n-gram:n 元语法就是由相邻的 n 个 token【词、字、子词、标点都可】组成的片段。


五、结构化与分块

5.1 目标

把长文本切成模型易处理的片段,同时做到不丢语义( 保证一句话的完整性)、不跨文档,为预训练提供一致的最小处理单位chunk。

5.2 信息切分:

  • 按结构/标点切:优先按段落、标题、句号/问号/顿号等切分,避免把一句话截断。

示例:(按标题划分)

{
"doc_id": "DOC-001",
"doc_title": "智能客服系统设计白皮书",
"page": 1,
"chunk_id": "DOC-001_p1_c01",
"pos_in_page": 1,
"type": "title",
"split_strategy": "by-structure",
"content": "第1章 概述"
}

  • 保留文档边界:严格 不跨文档拼接;为每块生成chunk_id,记录文档编码/页码/位置。

  • 指令模板化:统一成<|system|>(系统提示词)、<|user|>(用户提示词)、<|assistant|>(标准答案)三段式,用于放置各类引用信息。示例:(按照提示词结构划分)

{
"doc_id": "DOC-001",
"doc_title": "智能客服系统设计白皮书",
"page": 1,
"chunk_id": "DOC-001_p1_c03",
"pos_in_page": 3,
"type": "prompt_template",
"split_strategy": "template-3part",
"content": "<|system|>\n你是电商服装领域的智能客服助理,需遵循平台政策,引用仅限白名单文档。\n\n<|user|>\n用户问题:{user_query}\n补充数据:{order_info},{policy_snippets}\n\n<|assistant|>\n请在不暴露内部推理的前提下,给出分步可执行方案,并在末尾列出来源编号。"
}

  • 代码块:按函数/类/文件段切分,保留代码块标记<code>……<code/>,作为整体进行处理。

{
"doc_id": "DOC-002",
"doc_title": "算法代码样例",
"page": 3,
"chunk_id": "DOC-002_p3_c02",
"pos_in_page": 2,
"type": "code",
"split_strategy": "by-codeblock",
"content": "<code>\n# 示例:基于N-gram的简单下一词预测伪码\ncontext = tokens[-(n-1):]\ncandidates = vocab\nscores = {w: count((context,w))+k \\ (count(context) + k*|V|) for w in candidates}\nnext_word = argmax(scores)\n</code>"
}

  • 表格:将表格内容转化为结构化文本。示例(表格转成结构化文本)

{
"doc_id": "DOC-001",
"doc_title": "智能客服系统设计白皮书",
"page": 2,
"chunk_id": "DOC-001_p2_c01",
"pos_in_page": 1,
"type": "table->structured",
"split_strategy": "table-to-text",
"content": "表:退换货政策(结构化)\n- 规则[1]: 条件=7天无理由且完好; 结果=可退/可换; 运费=责任方承担\n- 规则[2]: 商家错发/少件; 结果=退货/退款/补发; 运费=商家承担\n- 规则[3]: 物流破损; 结果=理赔流程; 运费=物流承担"
}

最后将文本的处理结果以JSON格式输出,记录字段与对应的值。


六、词表与分词

6.1 目标

训练一套能覆盖你的语域的分词器与词表,并把角色/代码/占位符等“不可拆”的符号标记为 special tokens,保证训练与推理一致。

6.2 分词操作步骤:

  1. 选择分词算法:中文/英文常用 SentencePiece-UnigramBPE进行分词。

  2. 归一化策略对齐

    1. 货币统一¥/元/RMB → CNY 199.00 / 59.00 / 1299.00(可按需要保留两位小数)。
    2. 日期统一2025/10/10 → 2025-10-10
    3. 长 ID:统一用 <ORDER_ID_18> 占位(作为 special token)。
    4. URL:对于数据中出现的URL链接,示例1直接 <URL>;示例2仅保留路径 shop.xxxx.com/help/refund
    5. Emoji😄 → :smile:
    6. 对话结构化:固定三段式 <|system|> / <|user|> / <|assistant|>,并以 <EOT> 结束一轮、<EOS> 作为样本结束标记。
    7. PII/DLP:手机号、地址等以 <PHONE_11> / <ADDR> 表示,训练与输出仅用占位符
    8. special tokens:在 meta 行声明,no_split: true 表示分词与BPE阶段不可拆
  3. 词表版本化:保存词表的版本号信息,训练/推理用同一版本

    6.3 名词解释:

    • BPE/Unigram:两种常用子词分词训练算法。

    • byte_fallback:当等于true时,SentencePiece中遇到未知字符使用其UTF-8编码字节表示。

    • Normalizer:分词前的标准化环节(大小写/全半角等)。

    • 鲁棒性:系统在数据中错误信息、噪音等干扰下,仍能处理正确的能力。


    6.4 答疑:

    数据训练的第二步和第六步都进行“归一化”处理的原因:

    二者各自管辖的领域不同:第二步是数据入库前的归一化,把不同来源的原始文本先统一成同一写法(编码、全角半角……),便于去重、泄漏防护、数据库写入等操作。

    第六步是进入模型前的 tokenizer 归一化,以便后续进行采样配方、训练样本构造、切分与去泄露的操作。

    总结:

    本篇围绕数据产线阐述了如何将杂乱数据变为可训练语料,为后续训练样本集划分、训练目标设定、数据审计等环节打下基础。如果你觉得这篇文章有帮助,不妨点个赞或收藏支持一下!

    未完待续。。。

    http://www.dtcms.com/a/467604.html

    相关文章:

  • idea字体大小设置
  • cms下载官方网站银徽seo
  • 汽车网站策划书百度网站快速收录
  • 杭州seo相关网站大型多媒体网站建设工具
  • 建个网站的流程网站建设维护工作
  • 基于网站开发小程序合肥网页设计就业
  • 【Pycorrector实战】:基于pycorrector进行智能纠错
  • 个人博客网站搭建模板网站托管服务 优帮云
  • php怎么网站开发诸城网站建设开发
  • 呼和浩特做网站的公司福州品牌网站建设公司
  • 时钟门控ICG单元的timing问题
  • 2.8 提示词调优编码实战(三)
  • 不注册公司可以做网站吗做瞹免费视频网站
  • 做淘宝客网站难吗好用的h5制作软件
  • 给公司做网站多钱五金表带厂东莞网站建设
  • 上海做网站设计黑龙江建设厅网站 孙宇
  • 苏州工程网站建设网站建设服务便宜
  • 手机网站空间代发关键词包收录
  • 垫江网站建设无锡公共建设中心网站
  • 广安发展建设集团公司网站培训机构网站开发
  • 建筑建材网站设计费用广州网站建设易企
  • 寻找新一代跨境数据传输解决方案
  • AMD显卡驱动怎么安装 详细教程分享
  • 网站的制作成品电子商务公司的经营范围有哪些
  • 网站微信建设方案三字顺口公司名字
  • 如何免费注册网站平台专业建站公司费用
  • 品牌网站都有哪些建设通查询
  • 网站关键词排名100做展示类网站
  • 深入应用层协议定制:从确定通信内容到选择数据组织方式的完整攻略
  • 苍山做网站网站上做旅游卖家要学什么