是的,千帆平台目前不支持用户自助上传自定义词表(vocabulary)进行训练。
具体限制说明
1. Post-pretrain 阶段
- 固定词表 :基于选定的基座模型(如 ERNIE、Llama、Baichuan 等)进行增量训练,必须使用模型原有的词表,不可修改
- 不扩词表机制:千帆明确说明"精调过程不会扩词表",即使您的语料中包含大量未登录词(OOV),模型也会用子词(subword)或字符组合来编码,而不会添加新词到词表
2. Pretrain(从头训练)阶段
- 暂不支持自助上传:千帆官方文档指出"目前暂时不支持直接上传自定义词表到平台进行预训练"
- 平台已优化:千帆已对主流开源模型(如 Llama2)做了中文词表扩充和 tokenizer 优化,一般情况下无需自行扩展词表
3. SFT 监督微调阶段
同样基于选定基座模型的固定词表,不支持词表修改。
替代解决方案
如果确实有自定义词表需求(如特殊领域符号、多语言混合、专业缩写等),可考虑:
| 方案 | 操作方式 | 适用场景 |
|---|---|---|
| 本地修改后上传 | 在本地完成词表扩展和继续预训练,再将训练好的模型上传到千帆进行推理或进一步微调 | 有强算力资源,需深度定制 |
| 多轮 Post-pretrain | 如果术语量不大,可通过大量高质量语料让模型充分学习这些术语的上下文表示 | 术语量 < 1万,有充足语料 |
| 特殊字符编码 | 用现有词表的子词组合表示特殊符号(如将"α"编码为"a" + "l" + "p" + "h" + "a") | 符号数量少,可接受长度增加 |
| 联系商务 | 通过百度商务渠道洽谈定制化训练需求 | 企业级大规模定制 |
为什么千帆这样设计?
- 训练稳定性:动态扩词表会破坏已学习的嵌入空间,导致灾难性遗忘
- 推理兼容性:修改词表后,模型与标准推理引擎兼容性变差
- 平台统一性:千帆作为多租户平台,需要保证模型格式标准化
建议
如果您的领域包含大量专业术语:
- 首选方案 :直接准备包含这些术语的高质量纯文本语料(Post-pretrain 格式),让模型通过上下文学习术语语义。实践证明,只要语料充分(建议 10 亿 tokens 以上),模型无需扩词表也能很好地理解和生成专业术语
- 次选方案 :若术语编码效率是关键(如需要极短上下文),建议在本地使用
sentencepiece或transformers训练自定义 tokenizer,完成初步预训练后,再将模型上传到千帆平台进行 SFT 或部署
简单来说:千帆只提供"在固定词表上训练"的服务,如需改词表,需在本地完成。