大语言模型 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 命令吗?

相关推荐
code_pgf6 小时前
Qwen2.5-VL 算法解析
人工智能·深度学习·算法·transformer
大模型最新论文速读6 小时前
合成数据的正确打开方式:格式比模型重要,小模型比大模型好用
论文阅读·人工智能·深度学习·机器学习·自然语言处理
菜鸟‍8 小时前
【论文学习】Transformer中的数据流动
深度学习·学习·transformer
昵称小白8 小时前
图像在深度学习里是怎么表示的:像素、通道、tensor、batch(二)
深度学习·batch
阿_旭8 小时前
基于YOLO26深度学习的【辣椒成熟度检测与计数系统】【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·辣椒成熟度检测
高洁018 小时前
大模型在天文科研中的应用:天体数据分析
人工智能·深度学习·数据挖掘·transformer·知识图谱
白羊by8 小时前
Softmax 激活函数详解:从数学原理到应用场景
网络·人工智能·深度学习·算法·损失函数
-cywen-9 小时前
VAE(Variational AutoEncoder)
人工智能·深度学习
Logintern0910 小时前
【大语言模型应用】利用 DuckDuckGo 和 Tavily 搜索引擎
人工智能·搜索引擎·语言模型
路人与大师11 小时前
在天垓150上部署 Llama-2-13B:一次 Iluvatar BI-V150 / CoreX 实战适配记录
llama