Skip to content

发起微调任务

本节将指导您如何在 GenStudio 上快速完成⼀个模型微调任务。

微调任务的简要流程如下:

支持微调的模型

GenStudio ⽀持对以下预置模型进⾏微调:

  • ⼤语⾔模型:chatglm3-6b-base
  • ⼤语⾔模型:llama-2-7b-chat

微调的基础模型的能力决定了微调后的模型在语言、理解、推理等多方面的基础能力的基准线。

各模型介绍可参考模型列表,或访问智算云控制台模型广场

准备⼯作

开始之前,请确保您已经完成以下准备⼯作:

  1. 已确认用于微调的基础模型,您将在微调任务的创建页面选择。

  2. 已确认微调方式,微调任务现已支持如下微调方式:

    • 全量微调:指在训练过程中对模型所有参数进行更新,将花更多的资源和时间进行训练,适合需要让模型学会全新知识与方法论场景。
    • LoRA:LoRA 是一种训练过程中,对权重矩阵进行低秩分解,且只更新低秩部分的参数的低成本更高效训练方式。
  3. 准备⽤于微调的业务数据集。数据集应符合以下要求:

    • 格式为 jsonl ⽂件。微调服务当前仅支持 1个单独的数据集 jsonl 文件。
    • 可以公开访问的 URL 地址。微调服务当前仅支持从第三方的来源导入,
    • 其他格式问题可参考平台提供的⽰例数据集。

创建微调任务

访问智算云控制台的创建微调服务页面,可创建微调服务。

alt text

进入创建页面后,请根据页面提示,完成以下配置。

  • 训练配置

    名称描述
    基础模型决定了微调后的模型在语言、理解、推理等多方面的能力基准线。参见支持微调的模型
    微调方式支持全量微调、LoRA。参见准备工作中的介绍。微调方式影响可配置的微调参数。

    平台会为您提供默认的预置参数,您可根据您的需求调整相关配置。

    • Epoch:迭代轮次,指的是训练时将整个训练数据集完整地学习一次的重复次数,迭代轮数越多,训练时间越长。可以根据数据规模适当调整Epoch大小。
    • Learning rate:学习率,控制梯度下降的过程中更新权重时的速度,影响模型在训练过程中的收敛速度。

    以下是 LoRA 方式下的专有参数:

    • LoRA Rank:LoRA参数中权重矩阵的秩,秩越大时可训练参数越多。越低则代表可训练的参数越少,显存和速度的优化效果更好, 但有可能会损失训练效果。
    • LoRA Alpha:影响LoRA的缩放系数(lora_alpha/lora_rank)
    • LoRA Dropout:需停掉一部分神经元,来避免过拟合的系数。

    NOTE

    • 每个模型可支持的微调方式可能存在差异。
    • 为了保障您的微调任务可顺利运行,请确保您了解每个参数的意义和调整后的影响再按需调整。
  • 数据集配置

    名称描述
    训练集填写业务数据集的 URL 地址。

    数据集 URL 示例:

    • 从魔搭社区导入,如:https://www.modelscope.cn/api/v1/datasets/发布组织/数据集名称/repo?Revision=master&FilePath=文件名.jsonl
    • 从公网可读的对象存储导入,如从阿里云的对象存储对外暴露的 URL,例如 https://BucketName.Endpoint/ObjectName.jsonl
    • 若您暂时没有可用于微调的数据集,可使用我们的 demo 数据集 进行微调任务的体验。

    TIP

    我们无法获取您的私有数据集,因此需要保障您所填写的地址为公共读权限。您可在您所使用的云存储的桶内的文件进行权限配置。我们支持导入从主流云厂商的对象存储来源,如阿里云、百度云、腾讯云、华为云、天翼云、AWS、Azure 等,若您所使用的存储并不在以上范围内,请联系我们的商务:pre-sales@infini-ai.com 开通验证。

  • 资源配置

    名称描述
    资源来源默认使用共享资源池。
    芯片类型部分模型可用多种芯片类型完成微调任务,同一模型不同芯片类型可能会对应不同的训练单价,您可根据预算平衡选择。

    NOTE

    受限于资源可用性,暂时下线摩尔线程芯片。如有需求,请联系无问芯穹商务。

  • 基本信息

    名称描述
    名称微调任务名称,最多 64 个字符,支持中英文数字以及- _。
    描述(可选)上限 400 字符。

根据模型参数量,所需部署时间可能有差异。您可能需要定期查看部署进度。

查看微调进度

  1. 在智算云控制台的模型微调页面可以看到所有已创建的微调任务列表。
  2. 点击任务名称或详情按钮,可进⼊任务详情⻚。
  3. 在任务详情⻚可以看到:
    • 任务的基本信息如名称、状态、创建时间等
    • 实时更新的训练统计如已训练时⻓、剩余时⻓、Token ⽤量等
    • 微调过程中的 Loss 等评估指标的变化趋势图
    • 微调过程中的事件⽇志

微调最佳实践

为了获得更好的微调效果,我们建议您:

  • 选择与任务相关的⾼质量数据集。数据集的质量直接影响微调的效果。
  • 确保数据集的格式符合 GenStudio 的要求。可参考 GenStudio 提供的⽰例数据集。
  • 微调样本数不宜过少。建议⾄少包含100个样本。
  • 根据数据集⼤⼩和质量,适当调整训练参数如Epoch、Learning rate等。
    • 数据集较⼩时,可减⼩ Learning rate,增⼤ Epoch
    • 数据集较⼤时,可增⼤ Learning rate,减⼩ Epoch
  • 根据任务需求,选择合适的微调⽅式。
  • 任务相对简单时,优先选择参数⾼效微调如LoRA,训练速度更快,资源消耗更少。
  • 任务复杂度⾼时,可选择全参数微调,效果可能更好,但训练时间和算⼒成本更⾼。
  • 合理设置验证集⽐例。验证集过⼩可能⽆法准确评估模型表现,过⼤则会减少训练样本数量。

部署微调模型

当微调任务完成后,会⽣成⼀个定制化的微调模型。GenStudio 支持将微调任务结果部署为线上模型服务。模型部署完成后,GenStudio 会像管理预置模型⼀样,将微调模型加⼊模型列表中,提供 API调⽤和 Web UI交互界⾯,⽅便您快速集成到业务中。详见部署模型服务

常⻅问题

Q:为什么我上传的数据集⽆法使⽤?

A:请检查数据集是否符合以下要求:

  • 为jsonl格式⽂件,每⾏为⼀个 JSON 对象,表⽰⼀个训练样本。您可参考 GenStudio 提供的数据集⽰例,了解数据集的格式要求。
  • 数据集⽂件可通过公⽹ URL 直接访问,不需要单独的鉴权。如使⽤ OSS 等对象存储,需要给⽂件开启公共读权限。

如仍有疑问,请联系我们获得进⼀步技术⽀持。

后续步骤

GenStudio 支持将微调后的模型部署为在线服务,并通过 OpenAI 兼容 API 进行调用。详见模型部署服务