为 Amazon Nova 2 上的 CPT 准备数据
Amazon Nova 2 上的 CPT 对原始文本进行训练,以帮助模型获得关于特定领域、术语和写作模式的更深入的知识。本页介绍为 Amazon Nova 2 模型准备 CPT 训练数据的数据格式、支持的功能、限制条件和最佳实践。
提示
要在开始训练作业之前验证您的数据集格式,请参阅 验证工具。
数据格式
CPT 训练数据集和验证数据集必须是 JSONL 格式的文件,其中每行都是一个 JSON 对象,包含一个带字符串值的 text 字段。文本条目应包含代表目标领域的自然流畅的高质量内容。
必需。包含本示例训练内容的字符串。
{"text": "training content"}
注意
使用数据混合时,首个作业请设置 max_steps=2。这有助于在集群中为数据访问生成优化配置,并确保所有数据混合均可用。
示例输入
下面展示了一个包含多个文本样本的基本 CPT JSONL 数据集:
{"text": "AWS stands for Amazon Web Services"} {"text": "Amazon SageMaker is a fully managed machine learning service"} {"text": "Amazon Bedrock is a fully managed service for foundation models"}
支持的功能
下表汇总了 Amazon Nova 2 上的 CPT 的特征支持情况。
| 功能 | Amazon Nova 2 上的 CPT |
|---|---|
| 文本理解 | 在 Nova 2.0 Lite 上受支持。请参阅通用理解/文本理解。 |
| 图像理解 | 不支持 |
| 视频理解 | 不支持 |
| 文档理解 | 不支持 |
| 工具调用 | 不支持 |
| 推理 | 不支持 |
通用理解/文本理解
本部分总结了为 Amazon Nova 2 训练数据准备 CPT 的一般限制条件和最佳实践。
约束:
| 约束 | 说明 |
|---|---|
| 数据集格式 | JSONL 格式(每行一个 JSON 对象),带有 text 字符串字段。 |
| 支持的模态 | 仅文本 |
| 建议的数据量 | 数十亿个特定领域内容的词元,以获得最佳效果。 |
最佳实践:
使用自然流畅的高质量内容,以代表您的目标领域。
训练数据质量是决定持续预训练能否成功的最关键因素。CPT 数据通常被描述为“未标注”数据,但数据的结构、格式与呈现方式,直接决定模型能否习得业务应用场景所需的知识与能力。
CPT 结束后,建议运行额外的指令微调(SFT 或 RFT),以便模型能够利用新获得的知识来完成有用的任务。
示例输入
{"text": "AWS stands for Amazon Web Services"} {"text": "Amazon SageMaker is a fully managed machine learning service"} {"text": "Amazon Bedrock is a fully managed service for foundation models"}
为 CPT 准备结构化的业务数据集
多数企业都拥有丰富的结构化数据资源,包括产品目录、用户档案、交易日志、表单提交记录、API 调用信息及运营元数据等。乍看之下,这类数据与标准预训练中常用的非结构化 Web 文本差异显著。
若要让模型从结构化业务数据中高效学习,需充分考量下游任务,并合理设计数据呈现方式,引导模型学习正确的预测关联。
要充分发挥持续预训练的潜力,需考虑以下几点:
模型在推理阶段需执行的任务
原始数据中包含的信息
如何对数据进行结构化处理,使模型能够正确提取并运用信息
将结构化数据直接用于训练,无法让模型掌握相关推理能力。需主动调整数据的呈现方式,引导模型的学习方向。
文献中的 CPT 结构化数据
CPT 能够将领域事实注入模型,但在输入或任务发生变化时,模型往往难以有效检索和运用这些事实。对照实验表明,若预训练阶段未采用多样化数据增强,模型会以僵化方式记忆事实信息,即便后续开展指令微调,也依然难以提取利用。相关研究建议在训练初期就注入类指令信号。对于半结构化数据,随机序列化及其他增强手段可降低架构过拟合,因此 CPT 应与指令类任务交替进行,而非先执行 CPT 再开展 IFT。金融领域相关研究进一步发现,相较于分步执行配方,在批次层面混合 CPT 与指令数据,可提升泛化能力并减少知识遗忘。Qwen 技术报告也得出一致结论:将高质量指令数据融入预训练本身,可使模型在学习新领域知识的同时,增强上下文学习能力并保持指令遵循能力。
对半结构化语料库实施数据增强是关键手段。合成图感知 CPT 可将小规模领域数据集扩展为实体关联语料库,显式学习实体关系与复合结构,并在推理阶段结合检索能力使用。在金融领域,CPT 与指令数据混合训练的效果优于分步流程;同时,利用通用数据平衡领域数据可减轻模型通用能力的退化。大规模领域 CPT 也能保留较广泛的通用能力,甚至可通过模型融合进行取舍,但研究仍表明指令微调是必不可少的后续步骤,这进一步印证了在 CPT 阶段引入指令信号的重要价值。
通过随机化和乱序注入多样性
一种能帮助模型从结构化及半结构化数据集中高效学习的通用策略,是打乱数据集中字段的顺序,甚至随机丢弃部分键值。
打乱字段顺序可迫使模型去理解每个值的具体含义,而非依赖其出现位置,并学习所有字段间的关联关系。例如,以 Amazon 商店上架的某款电子游戏数据为例,当“标题”“平台”“价格”“品相”“版本”等字段以不同顺序排列时,模型无法再依赖“第三个字段是平台”这类位置信息,而必须将标签与对应值绑定,进而掌握各属性间的双向关联:标题 ⇄ 平台、平台 ⇄ 价格、品相 ⇄ 价格。如此一来,模型便能实现诸多实用推理,比如根据游戏名称和观察到的价格推断可能的平台,或依据标题与平台估算合理的价格区间。
在序列化过程中随机丢弃键值,其作用类似于特征丢弃:可防止模型对任一单个字段产生共适应现象,进而迫使模型从剩余的有效信息中还原缺失内容。若“平台”字段缺失,模型需从标题字符串或兼容性文本中提取平台相关信息;若“价格”字段被隐藏,模型则需结合平台、版本及品相信息进行综合推断。这不仅建立了双向对称性(A→B 与 B→A),增强了对杂乱真实世界列表的稳健性,还能在字段缺失、重命名或顺序调整时保持结构不变性。
下面以购物场景示例具体说明。对同一商品采用多种序列化方式,例如“标题:《艾尔登法环》| 平台:PlayStation 5 | 品相:二手如新 | 价格:34.99 美元”,以及另一种排列形式“价格:34.99 美元 | 标题:《艾尔登法环》| 品相:二手如新 | 平台:PlayStation 5”;在部分训练轮次中,可删除“平台”字段,但在描述中保留“兼容 PS5”的相关表述。同时训练互补性目标,比如根据 {标题、价格} 推断平台,以及根据 {标题、平台} 确定价格区间。由于字段的顺序甚至存在与否均会随机变化,模型唯一稳定的学习策略,就是掌握各属性之间的真实关联,而非机械记忆固定模板。
数据的呈现方式至关重要
LLM 通过从已看到的内容中预测下一个词元来学习。训练期间显示的字段和事件的顺序决定了模型能够学习到什么。如果训练格式与实际任务相匹配,损失就会落在确切的决策词元上。如果字段没有结构地随意堆叠,模型会学习捷径或记忆热门内容,这导致模型在需要从多个选项中做出选择时失败。
先展示情境,再展示选项,最后展示决策。如果模型还需要学习结果或解释,则将其放在决策之后。
为 CPT 打包样本
什么是打包?
打包是指将多个完整样本填入训练数据中的每个序列窗口,使窗口内充满有效词元,而非填充符。
为什么这非常重要
训练时,设置最大上下文长度(例如 8,192 个词元)。批次格式为 [批次大小 × 上下文长度]。如果某个训练样本长度不足上下文长度,剩余位置将用填充符补齐。即使在损失计算中对填充部分进行掩码处理,这些填充内容仍会参与注意力机制与 MLP 内核运算,从而消耗算力却不产生任何学习信号。
如何打包
打包多个样本时,可使用 [DOC] 分隔符将多个训练样本拼接(注意 [DOC] 前后各保留一个空格),使拼接后的总长度在所需的上下文长度内。
打包后的文档示例如下:
{"text": "training sample 1 [DOC] training sample 2 [DOC] training sample 3"}