大语言模型 llama-factory 通常不推荐只用 LoRA 做新词库预热 embedding

可以,但通常不推荐只用 LoRA 做新词库预热,原因如下:


核心问题:新词库 + LoRA 的冲突

问题 解释
LoRA 不训练嵌入层 LoRA 只改注意力层,不碰 token embedding
新 token 嵌入仍是随机值 模型"认识"新词,但不知道这些词什么意思
后续训练效果差 模型无法正确理解和生成化学分子序列

两种可行方案

方案 A:嵌入层预热 + LoRA 微调(推荐)

复制代码
阶段1(当前): 只训练 embedding 层
  ↓ 用 full finetuning,但只开 embedding 和 lm_head
阶段2: LoRA 微调任务
  ↓ 冻结基础权重,用 LoRA 训练下游任务

修改命令(只训嵌入层):

bash 复制代码
llamafactory-cli train \
    --model_name_or_path /path/to/deepseek-r1-32b \
    --tokenizer_name_or_path ./incremental_deepseek_druggpt_tokenizer-v2 \
    --dataset zinc20_stage1 \
    --template deepseek \
    --finetuning_type full \
    --freeze_trainable_layers all \        # 冻结所有层
    --trainable_modules embed_tokens,lm_head \  # 只训练嵌入和输出头
    --output_dir ./output/stage1_warmup \
    ...

方案 B:纯 LoRA(需特殊处理)

如果必须用 LoRA,需要手动初始化新 token 嵌入:

python 复制代码
# 伪代码:在 LoRA 训练前,先用小学习率预热 embedding
# 1. 加载模型和扩展后的 tokenizer
# 2. 新 token 用类似 token 的嵌入做均值初始化
# 3. 冻结基础权重,只训 embedding 几百步
# 4. 然后正常 LoRA 训练

缺点:需要改代码,不如方案 A 干净。


对比总结

方案 显存需求 复杂度 效果
Full FT(当前命令) 很高(80GB+) ⭐⭐⭐ 最好
只训 embedding + LoRA 中等 ⭐⭐⭐ 推荐
纯 LoRA(无预热) ⭐⭐ 可能差
纯 LoRA + 手动预热 ⭐⭐⭐ 可行但麻烦

建议

如果你的显存不够跑 Full FT:

  1. 阶段 1 :用 --freeze_trainable_layers all + --trainable_modules embed_tokens,lm_head 只预热嵌入层(显存需求降低 60%+)
  2. 阶段 2:加载预热后的模型,改用 LoRA 做任务微调

需要我帮你写阶段 2 的 LoRA 命令吗?

相关推荐
海兰4 小时前
【文字三国志:第一篇】天命重构,大语言模型(LLM)动态生成文言风格的叙事文本的文字游戏
人工智能·游戏·语言模型
yuanyuan2o26 小时前
模型预训练:Hugging Face Transformers 基础
算法·ai·语言模型·自然语言处理·nlp·深度优先
星辰AI8 小时前
多模态记忆:让 AI Agent 记忆各种类型的信息
人工智能·ai·语言模型
瑶总迷弟8 小时前
使用 mis-tei 在昇腾310P上部署 bge-m3模型
pytorch·python·华为·语言模型·自然语言处理·cnn·unix
海兰9 小时前
【文字三国志:第六篇】天命重构,UI组件设计细节
人工智能·ui·语言模型·小程序
风萧萧199910 小时前
基于Java实现文档章节结构智能提取方案
语言模型
YueJoy.AI10 小时前
创业公司如何实现持续增长
人工智能·ai·语言模型
冰西瓜60010 小时前
深度学习的数学原理(四十一)—— KV Cache
人工智能·深度学习
我爱cope12 小时前
【Agent智能体13 | 工具使用-什么是工具?】
人工智能·语言模型·职场和发展