如何为预训练 LLM 添加新 token?

AIGC动态6天前发布 ai-front
185 0 0
如何为预训练 LLM 添加新 token?

 

文章摘要


【关 键 词】 微调LLM分词器云原生嵌入层

在预训练大模型(LLM)的微调过程中,添加新的 token 是提升模型在特定领域表现的关键步骤。这一操作不仅能够帮助模型更好地理解领域特定词汇,还能提高文本生成的效率和准确性。通过引入新 token,模型能够处理词汇表之外的单词,适应多语言扩展,并有效学习自定义格式标记和指令调整。这些改进减少了模型对大量训练数据的依赖,从而在微调效果和计算成本之间找到平衡。

添加新 token 的主要目的是引入领域特定词汇、处理词汇表之外的单词、适应多语言扩展以及引入自定义格式标记。例如,在医学、法律或金融领域,模型需要识别新的术语或技术词汇,而这些词汇在基础模型中可能无法被有效处理。此外,分词算法(如 BPE 或 WordPiece)可能会将某些单词分解为低效的子词,导致语义碎片化。通过添加新 token,模型能够更准确地生成文本,尤其是在处理多语言或特定格式的文本时。

实施这一技术的步骤包括修改分词器、初始化新 token 的嵌入权重、保存并重新加载更新后的分词器和模型,以及使用新 token 对模型进行微调。具体来说,首先需要加载分词器并添加新 token,然后调整模型的嵌入层大小以匹配新的词汇表。接下来,通过计算平均嵌入权重来初始化新 token 的嵌入权重,以确保训练的稳定性。最后,保存更新后的分词器和模型,并在相关数据集上进行微调。

云原生场景下,将添加新 token 的操作集成到 LLM 微调流程中需要考虑多种因素,如微调技术框架和集群规模。根据不同的场景,解决方案可以分为 Pod Level、Node Level 和 Cluster Level 的模型微调。对于 Pod Level 的微调,可以将添加新 token 的任务放入 Pod 的 Init Containers 中,确保其在常规 containers 启动前完成。对于 Node Level 的微调,可以使用分布式微调框架(如 Ray)或通过 Kubernetes Operator 实现流程控制。而 Cluster Level 的微调则需要多集群协作,并实现任务发现能力以串联各种关键任务。

本文不仅详细介绍了如何为预训练 LLM 添加新 token,还探讨了在云原生场景下如何将这一操作集成到微调流程中。通过这一技术,模型能够更有效地适应特定领域的需求,从而提升微调效果。作者张怀龙在云原生与 LLM 技术的交叉领域具有丰富的实践经验,致力于推动云原生场景下的 LLM 推理和微调技术的发展。

原文和模型


【原文链接】 阅读原文 [ 2579字 | 11分钟 ]
【原文作者】 AI前线
【摘要模型】 deepseek-v3
【摘要评分】 ★★★★★

© 版权声明
“绘蛙”

相关文章

“极客训练营”

暂无评论

暂无评论...