swift微调款框架使用自定义数据集进行通义千问1.5的微调

请问目前swift微调款框架支持python使用自定义数据集进行通义千问1.5的微调么?

展开
收起
宸术 2024-03-25 17:02:25 312 分享 版权
阿里云 AI 助理回答

目前,Swift微调框架支持通过Python使用自定义数据集对通义千问1.5进行微调。以下是详细说明和操作指导:

1. 模型支持情况

根据知识库资料,通义千问1.5系列(如qwen1.5-7b-chatqwen1.5-14b-chat等)支持多种微调方式,包括SFT(有监督微调)。这表明,通义千问1.5的开源版本可以通过微调框架进行定制化训练。

2. Swift微调框架的支持

Swift微调框架是阿里云提供的高效工具,允许用户通过Python接口加载自定义数据集,并对支持的模型进行微调。通义千问1.5作为开源模型,明确列在支持的模型列表中。因此,您可以使用Swift框架完成以下任务: - 加载自定义数据集。 - 配置微调参数(如学习率、批次大小等)。 - 启动微调任务。

3. 操作步骤

以下是基于Swift微调框架的操作流程:

(1)准备自定义数据集

  • 数据集格式需符合要求,通常为JSON或CSV格式。
  • 数据集应包含输入(input)和目标输出(output)字段,用于有监督微调。

(2)安装Swift微调框架

确保已安装Swift微调框架及相关依赖:

pip install swift

(3)加载模型与数据集

使用Python代码加载通义千问1.5模型及自定义数据集:

from swift import Swift, SFTTrainer

# 指定模型名称
model_id = "qwen1.5-7b-chat"

# 加载自定义数据集
train_dataset = load_dataset("path_to_your_dataset", split="train")
eval_dataset = load_dataset("path_to_your_dataset", split="validation")

# 初始化微调器
trainer = SFTTrainer(
    model_id=model_id,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    max_length=2048,  # 根据模型支持的最大token长度设置
    batch_size=16,
    learning_rate=1.6e-5
)

# 启动微调
trainer.train()

(4)配置超参数

根据知识库推荐的超参数设置,您可以调整以下关键参数: - batch_size:建议值为16。 - learning_rate:推荐值为1.6e-5。 - n_epochs:根据数据量大小选择循环次数(数据量小于10,000时建议3~5次,大于10,000时建议1~2次)。

(5)启动微调任务

运行上述代码后,Swift框架将自动执行微调任务,并生成优化后的模型。

4. 注意事项

  • 数据集长度限制:通义千问1.5的开源版本最大支持2,048个token。如果单条数据超过此长度,可能会被截断或丢弃。
  • 全参训练优先:如果您的硬件资源允许,建议优先选择全参训练(sft),因为其效果优于高效训练(efficient_sft)。
  • 验证集划分:建议将数据集按80%(训练集)和20%(验证集)的比例随机拆分,以确保模型评测的准确性。

5. 总结

综上所述,Swift微调框架完全支持通过Python使用自定义数据集对通义千问1.5进行微调。您只需按照上述步骤准备数据、配置参数并启动任务即可完成微调。如有进一步需求,请参考相关文档或联系技术支持。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

还有其他疑问?
咨询AI助理