Finetune 简介
微调的任务
增量预训练(增量续训)
计算全文的loss
让基座模型学到一些领域内新的知识
指令跟随微调
计算回答部分的loss
模型学会对话模板,根据人类指令进行对话
通常有三个角色
- System 给定一些上下文信息,比如“你是一个安全的 AI 助手”
- User 实际用户,会提出一些问题,比如“世界第一高峰是?“
- Assistant 根据的输入,结合 System 的上下文信息,做出回答,比如“珠穆朗玛峰”
对话模板
微调方式 LoRA & QLoRA
- LoRa: 旁路分支,低秩矩阵,Base 模型只参与Forward,只使用Adapter进行Backward更新参数,只保存Adpter中的参数优化器状态(Base Model 不更新参数,不存在优化器状态,降低显存占用)
- QLoRA:基本同上,4bit 量化Base Model(进一步降低显存)【可以在GPU和CPU之间Offload,这部分是Xtuner的优化】
XTuner
- 对话模式
- 工具类模型对话
- 数据处理流程
- 多数据样本拼接
加速方式、降低显存的方式
- FlashAttention
- DeepSpeed ZeRo