用途:将预训练模型适配到新任务、领域、风格、指令、模态或约束。它强调微调并非首选,应先比较提示、检索增强生成(RAG)、特征提取加分类头、小型任务专用模型等方案。
主要能力:
- 选择适配方式:提示/系统指令、RAG、特征提取加头部、部分微调、全量微调、LoRA/适配器/PEFT、QLoRA、偏好调优/RLHF/DPO、蒸馏。各方式有不同适用条件与权衡。
- 数据准备:去重、清洗、过滤不安全或不相关内容、平衡任务、统一标签、保留评估集;指令微调使用与基座模型一致的 schema 和对话模板;分类检查标签定义与标注一致性;嵌入微调挖掘难负例并避免假负例。按实体、时间、来源或文档切分,避免近似重复、提示变体、同文档数据块或生成释义跨越训练/验证/测试边界。
- QLoRA 与 PEFT:基座模型以 4-bit 冻结,训练低秩适配器,节省显存。示例流程包括 BitsAndBytesConfig 初始化 4-bit 基座、prepare_model_for_kbit_training、LoraConfig(r、lora_alpha、target_modules、lora_dropout、bias、task_type)以及 get_peft_model。
- TRL 训练:SFTTrainer 用于监督微调,DPOTrainer 用于直接偏好优化,可在 PEFT 下隐式处理参考模型。
- 嵌入模型微调:使用 SentenceTransformers,构建正例对,结合 MultipleNegativesRankingLoss 训练自定义向量空间。
- 训练稳定性:使用保守学习率、必要时 warmup,监控训练/验证损失、任务指标、生成质量与过拟合;关注格式漂移、冗长度变化、拒答回退、幻觉、工具使用回退与安全问题;梯度裁剪处理不稳定,并确认指令微调标签掩码正确。灾难性遗忘可通过较小学习率、更少轮次、混合领域数据、回放样本、适配器替代全量微调、正则化或多任务平衡缓解。
使用方式:依据资料,技能提供方法选择、数据准备、QLoRA/PEFT 配置、TRL 的 SFTTrainer/DPOTrainer 设置以及 SentenceTransformers 嵌入微调示例。代码示例中未直接执行 trainer.train(),以注释形式保留。
适用场景:适配语言、视觉、多模态或嵌入模型;有限算力下高效微调;构建检索向量空间;偏好对齐;蒸馏出更小模型。
限制:资料未提供具体平台、收费或价格信息;是否需要特定硬件、许可或服务范围暂未提供。输出未展示完整训练循环,实际训练需自行补充相关命令。