🚀 用于偏好优化(DPO)的微调语言模型
本模型是基于直接偏好优化(DPO)对Llama 3.2 - 3B - Instruct进行微调的版本,专门用于奖励建模任务。它采用了内存高效的技术进行优化,包括4位量化、梯度检查点和参数高效微调(PEFT)。该模型适用于需要语言理解、基于指令生成响应以及基于偏好对响应进行排序的任务。
🚀 快速开始
安装依赖
确保安装了torch
、transformers
、unsloth
和其他推理和微调所需的库。
加载预训练模型
你可以使用FastLanguageModel.from_pretrained()
方法,通过指定模型名称和优化设置来加载模型。
微调
使用偏好对数据集,应用PEFT和量化策略(如LoRA、梯度检查点)进行微调。
推理
使用FastLanguageModel.for_inference()
方法实现优化的文本生成,该方法支持流式推理以实现实时输出。
✨ 主要特性
- 文本生成:能够根据指令或提示生成详细且连贯的文本响应。
- 基于偏好的优化:经过微调,可根据用户反馈(选择与拒绝)对响应进行排序。
- 长上下文处理:通过内部RoPE缩放,支持高效处理长达2048个标记的输入。
- 快速推理:针对实时文本生成进行了优化,具备流式处理能力和低延迟响应。
📦 安装指南
确保torch
、transformers
、unsloth
和其他所需库已安装,以便进行推理和微调。
💻 使用示例
基础用法
from FastLanguageModel import FastLanguageModel
model = FastLanguageModel.from_pretrained('model_name', optimization_settings)
高级用法
from FastLanguageModel import FastLanguageModel
from dataset import preference_pairs_dataset
model = FastLanguageModel.from_pretrained('model_name', optimization_settings)
model.fine_tune(preference_pairs_dataset, peft_strategy='LoRA', quantization='4-bit')
inference_model = model.for_inference()
response = inference_model.generate_text('Your instruction or prompt')
📚 详细文档
模型详情
属性 |
详情 |
基础模型 |
unsloth/Llama-3.2-3B-Instruct |
微调目标 |
使用接受和拒绝的响应进行偏好优化(DPO) |
训练框架 |
基于Unsloth构建,集成了Hugging Face Datasets和Transformers |
量化 |
使用4位量化以减少内存使用,适用于低显存设备 |
优化措施 |
包括梯度检查点以提高内存效率和更快的推理速度。使用PEFT方法(如LoRA)进行微调 |
训练数据 |
在包含指令 - 输入 - 响应三元组的Intel/orca_dpo_pairs数据集上进行训练,用于基于偏好的学习 |
预期用途
该模型可应用于各种自然语言处理(NLP)任务,包括:
- 问答:以详细且上下文准确的信息回答用户查询。
- 指令遵循:根据用户定义的任务生成响应。
- 偏好建模:根据训练数据中提供的偏好对不同响应进行排序。
- 文本补全:根据提供的指令补全部分给定的文本。
局限性
- 上下文长度:虽然能够处理长达2048个标记,但极长的文本可能需要额外的优化或截断。
- 精度:模型的4位量化在某些需要高精度的边缘情况下可能会导致轻微的精度损失。
- 数据集偏差:反映了用于偏好对标注的训练数据集中存在的偏差。
性能指标
- 训练损失:1.19
- 训练运行时间:1974.06秒(约32分钟)
- 每秒步数:0.063
- 每秒样本数:0.507
模型版本
- 版本:Unsloth 2025.1.7(补丁版本)
- 训练日期:2025年1月
致谢
该模型使用Unsloth框架进行训练,感谢英特尔和Hugging Face在数据和工具方面的贡献。
笔记本
你可以点击此处访问该模型的实现笔记本。该笔记本提供了微调与部署模型的详细步骤。
🔧 技术细节
- 模型架构:基于Llama 3.2,具有30亿个参数。
- 训练方法:使用直接偏好优化(DPO)进行微调。
- 优化器:使用具有8位精度的AdamW优化器以提高效率。
- 批量大小:有效批量大小为8(每个设备2个,进行4步梯度累积)。
- 训练配置:
- 学习率:5e - 6
- 热身比例:0.1
- 轮数:1
- 最大序列长度:2048个标记
- 混合精度训练:根据硬件支持FP16和BFloat16。
📄 许可证
本模型采用MIT许可证。