功能特性
模型微调
1. 模型微调简介
模型微调是一种在已有预训练模型的基础上,通过使用特定任务的数据集进行进一步训练的技术。这种方法允许模型在保持其在大规模数据集上学到的通用知识的同时,适应特定任务的细微差别。使用微调模型,可以获得以下好处:
- 提高性能:微调可以显著提高模型在特定任务上的性能。
- 减少训练时间:相比于从头开始训练模型,微调通常需要较少的训练时间和计算资源。
- 适应特定领域:微调可以帮助模型更好地适应特定领域的数据和任务。
SiliconCloud 平台提供高效的模型微调能力,目前有以下模型支持微调:
-
生图模型已支持:
- black-forest-labs/FLUX.1-dev
-
对话模型已支持:
- Qwen/Qwen2.5-7B-Instruct
- Qwen/Qwen2.5-14B-Instruct
- Qwen/Qwen2.5-32B-Instruct
- Qwen/Qwen2.5-72B-Instruct
- meta-llama/Meta-Llama-3.1-8B-Instruct
最新支持的模型参考模型微调
2. 使用流程
2.1 准备数据
2.2.1 生图模型数据准备
数据集要求如下:
- 数据集应同时包含图片及对应图片的文本描述,在同一个本地文件夹中;
- 每个数据集最多包含
100
张图片及其文本描述; - 支持的图片格式包括:
.jpg
、.jpeg
、.png
、.webp
,建议分辨率为:1024×1024
、1024×768
、768×1024
; - 不符合上述分辨率的图片,在训练时会被缩放、剪裁为上述分辨率;
- 图片描述应保存为与图片同名的
.txt
文件; - 整个数据集不超过
300M
,单个图片描述文件不超过128K
; - 对于
FLUX.1
模型,图片描述信息不超过512
tokens,过长内容会被截断
数据集本地文件夹示例如图:
2.2.2 语言模型数据准备
仅支持 .jsonl
文件,且需符合以下要求:
- 每行是一个独立的
JSON
对象; - 每个对象必须包含键名为
messages
的数组,数组不能为空; messages
中每个元素必须包含role
和content
两个字段;role
只能是system
、user
或assistant
;- 如果有
system
角色消息,必须在数组首位; - 第一条非
system
消息必须是user
角色; user
和assistant
角色的消息应当交替、成对出现,不少于1
对
如下为数据示例:
2.2 新建并配置微调任务
- 选择
对话模型微调
或者生图模型微调
- 填写任务名称
- 选择基础模型
- 上传或选取已上传的训练数据
- 设置验证数据,支持训练集按比例切分(默认 10%),或单独选定验证集
- 配置训练参数
2.3 开始训练
- 点击”开始微调”
- 等待任务完成
- 获取模型标识符
2.4 调用微调模型
2.4.1 生图微调模型调用
- 复制模型标识符
- 通过 /image/generations API 调用生图 LoRA,具体使用方式,参见 API 文档
示例如下:
2.4.2 对话微调模型调用
- 复制模型标识符 在模型微调页复制对应的模型标识符。
- 通过
/chat/completions
API 即可直接调用微调后的模型
下面是基于 OpenAI的chat.completions 接口访问微调后模型的例子:
3. 参数配置详解
- 基础训练参数
参数名 | 说明 | 取值范围 | 建议值 | 使用建议 |
---|---|---|---|---|
Trigger Word | 【仅生图】触发词 | 训练时会被添加到每张图片的描述内容的开头 | ||
Number of Repeats | 【仅生图】单张图片重复训练次数 | |||
Learning Rate | 学习速率 | 0-0.1 | 0.0001 | |
Number of Epochs | 训练轮数 | 1-10 | 3 | |
Batch Size | 批次大小 | 1-32 | 8 | |
Max Tokens | 最大标记数 | 0-4096 | 4096 | 根据实际对话长度需求设置 |
- LoRA参数
参数名 | 说明 | 取值范围 | 建议值 | 使用建议 |
---|---|---|---|---|
LoRA Rank | 矩阵秩 | 1-64 | 8 | |
LoRA Alpha | 缩放因子 | 1-128 | 32 | |
LoRA Dropout | 随机丢弃率 | 0-1.0 | 0.05 |
- 场景化配置方案
对话模型
场景 | Learning Rate | Epochs | Batch Size | LoRA Rank | LoRA Alpha | Dropout |
---|---|---|---|---|---|---|
标准方案 | 0.0001 | 3 | 8 | 8 | 32 | 0.05 |
效果优先 | 0.0001 | 5 | 16 | 16 | 64 | 0.1 |
轻量快速 | 0.0001 | 2 | 8 | 4 | 16 | 0.05 |
4. 基于SiliconCloud微调服务来优化业务实战
之前硅基流动开发了智说新语应用,我们通过提示词工程提供一个复杂的提示词来让大模型生成“金句”风格的描述语句。 现在,我们可通过平台的微调功能来压缩提示词并提升效果,让整个的文本生成风格更统一,速度更快,且进一步优化成本。
4.1 在平台上使用“智说新语”的语料按照上述进行微调。
步骤见模型微调使用流程
详细语料和测试代码见siliconcloud-cookbook
4.2 对比微调前后的效果
使用方式见模型微调调用模型
4.2.1 模型输入
-
微调前: Qwen2.5-7B-Instruct 系统Prompt:
-
Qwen2.5-7B-Instruct+智说新语微调后的Prompt:
4.2.2 模型输出
输入 | Qwen2.5-7B-Instruct 模型 | Qwen2.5-7B-Instruct 微调模型 |
---|---|---|
五道口 | VLG,不过是知识的轻轨与资本的交汇站,文青与土豪在此擦肩而过,孰是求知的信徒,孰是逐利的信徒,全凭幸存者的微笑。 | 知识的殿堂与商业的洪流交织,学人的笔记与商人的谈资齐飞,地名犹在,荣光已非。 |
新时代 | claimed to break旧 mold yet still clings to the stirring rhetoric of progress, like a fashion plate who ignores the evolution of fashion。 | 新时代的号角已吹响,然砥砺前行时,方显初心易失之难。 |
创新 | 看似凤凰涅槃的奇迹,实则多数人不过是换汤不换药的换皮游戏。 | 标新立异本是勇气的象征,却在同质化的社会中成了猎奇的代名词。 |
降维打击 | 所谓降维打击,实则是现代文明中的一种高级愚民术,用高深莫测的科技iscard,让普通人以为自己正生活在理性与进步之中,却不知已在智力与道德的低维空间中遭受碾压。。 | 高维智慧轻而易举地碾压低维凡尘,却不知低维众生早已习于在自己的平庸中寻觅慰藉,哪里还懂得高维打击的意义。 |
基金 | 看似为财富增值保驾护航的金融巨轮,实则多数人不过是随波逐流的浮萍,最终沦为填补市场波动的牺牲品。 | 投资者的白日梦,用钱铺路,却常跌入夜的陷阱。 |
4.2.3 微调总结
- 微调后的输出内容风格更统一,输出效果更稳定可控。
- 微调后整个输入长度大大降低,从原始的553个token,降低至8个token,显著降低了输入tokens长度,速度更快,成本得以进一步优化。