软件功能管理后台

模型管理和微调

模型管理和微调

模型管理

  1. 模型接入及上下线

模型接入流程说明:

  1. 选择服务提供方

descript

目前服务提供方分为两类:

  • 在线模型服务接口,例如 OpenAI、Azure OpenAI、Deepseek、智谱、百度千帆、通义千问、讯飞星火、Minimax、Anthropic。
  • 本地模型推理框架,例如 Ollama、vllm、xinference、llamacpp。
  1. 填写服务提供方名称及相关参数

服务提供方名称支持自定义,方便多实例部署时进行区分。

e.g. 通过 Ollama 部署了多个 qwen2 72B 实例时,可通过自定义命名 Ollama_1、Ollama_2进行区分

对于在线模型服务接口,参数一般需要填写 Base URL 和 API Key;对于本地模型推理框架,一般填写本地模型 URL 即可。

descript

  1. 【非必须】设置单日调用次数上限

支持对某一服务提供方设置单日最大调用次数

descript

  1. 添加模型
  • 填写模型名称(参考各模型厂商 model list)
  • 选择模型类型(目前支持 LLM、embedding、rerank)

descript

  1. 模型上下线
  • 添加好的模型默认处于上线状态
  • 可手动调整为下线,下线后的模型无法被调用

descript

现在添加模型操作时,一些模型接口格式会预置好一些模型,如OpenAI/Azure OpenAI,通义千问,DeepSeek等

  1. 系统模型设置
  1. 知识库模型
  • 默认 embedding 模型:创建知识库时的默认模型。
  • 溯源模型:用于知识库问答时的溯源分词。
  • 文档总结模型:将文档总结为一个标题并合并到分块后的 chunk 中,增强 RAG 效果。
  • QA 知识库相似问模型:用于生成相似问题。

descript

  1. 助手模型
  • 助手推理模型:
    • 助手的执行模式(function call 还是 react)

    • 是否流式输出

    • 知识库检索最大字符数(建议根据模型最大上下文长度调整)

    • 检索后是否重排(单文档问答场景建议开启)。

  • 助手画像自动优化模型:用于助手画像自动优化和相关配置选择。

descript

  1. 工作台模型
  • 工作台向量检索模型:用于在工作台中执行 RAG (Retrieval-Augmented Generation) 时的默认向量检索或 embedding 模型。
  • AI对话任务执行模型:
    • 模型:指定用于执行和处理AI对话任务的核心语言模型。

    • 执行模式:制定AI对话调用工具的方式,包含ReAct / Function Call

  • 语音转文字 (ASR) 模型:用于将工作台等中的语音输入实时转换为文字的模型。
  • 文字转语音 (TTS) 模型:用于将模型的文字输出合成为语音并播放的模型。

descript

  1. 工作流模型

工作流默认模型:用于在执行工作流(Workflow)任务时,默认调用的语言模型。

descript

  1. 评测模型

指定评测功能功能使用的模型。

descript

模型微调

监督微调(Supervised Fine-Tuning),以下简称微调,是一种常用于深度学习中的模型优化技术。在监督式微调中,使用一个已经训练好的深度学习模型(称为预训练模型)作为初始状态,然后在目标任务的训练集上进行微调,使得模型能够更好地适应目标任务。

在教学智脑中, 点击左侧导航栏的[模型]进入模型模块, 随后单击[模型微调]子标签可以进入Finetune模块。在该模块中可以进行微调任务管理与任务新建.

descript

  1. 注册FT服务

使用该功能前,需先注册FT服务。

点击【服务管理】按钮,在弹窗中点击【创建】按钮新增一个服务,填写FT服务地址进行服务注册。

descript

FT服务注册完成后,即可创建微调任务。

  1. 创建微调训练任务

单击[创建训练任务]则跳转创建新任务界面, 须填写如下表单信息以创建新微调任务:

descript

  • FT服务: 选择FT服务。
    • [GPU资源使用情况],此处会对部署有FT服务的机器的资源使用情况进行展示, 以帮助用户判断该任务应当创建于哪个GPU卡上.

descript

  • 基准模型: 该微调任务基于哪个基准模型(Base Model)进行训练;
  • Finetune模型名称: 自定义该Finetune模型的名称.
  • 数据集: 该Finetune任务基于哪个数据集进行训练;
    • 预置数据集: 平台预先配置好的若干数据集, 支持用户直接使用或下载查看.

    • 个人数据集: 支持用户上传个人数据集, 并在[下载示例文件]配备了示例文件以供参考格式.

    • 自定义样本数: 可选项, 打开后可以对自定义不同数据集中参与训练的样本数. 不勾选该项则均默认1000.

  • 训练方法: 当前支持全量微调, Freeze微调, Lora微调三种训练方法.
  • 参数配置: 不同参数, 对应含义, 推荐取值(默认值)与取值范围已给出.
    参数 含义 类型 推荐取值(默认值) 取值范围 gpus 训练占用的显卡号,多张卡用英文逗号分隔,例如0,1,2,3 string 0~N-1(N为该机器GPU卡的数量) val_ratio 验证集占比,如果取值大于0,每个epoch结束后会在验证集上算loss float 0.1 0.0~1.0 per_device_train_batch_size 批处理大小(BatchSize)表示在每次训练迭代中使用的样本数。较大的批处理大小可以加速训练,但可能会导致显存过大; int 1 1,2,4,8,16(2的整数倍) learning_rate 学习率(LearningRate)是在梯度下降的过程中更新权重时的超参数,过高会导致模型难以收敛,过低则会导致模型收敛速度过慢; float 0.00005 0.0~1.0 num_train_epochs 迭代次数(epoch),控制训练过程中的迭代轮数;可以根据loss曲线图判断模型是否收敛,如果loss还在下降没有平稳,可以进一步加大epoch int 3 >0 max_seq_len 指定最大的序列长度(默认为8192),输入+ 输出的长度不超过8192,否则会截断处理; int 8192 跟大模型相关,看基准大模型支持的最长token数 cpu_load 是否将部分参数和优化器load到cpu上(默认不开启,显存不够的时候可以开启),开启之后会占用内存,详细的数据可以参考资源消耗相关说明文档 bool False

单击[创建]则会完成该训练任务创建, 并自动开始训练.

单击[取消]则会返回模型管理界面.

  1. 经验指导

大概的显存资源要求,真实情况根据微调参数不同会有出入:

descript

算力要求与训练时长

+:--------------+:-------------+:--------+:-----------+:-----------------+:-------------------+:---------------+:-----------------+ | 基础模型 | 微调方式 | batch | epochs | 每条QA对长度 | 微调数据集条数 | GPU卡 | 训练时长 | | | | size | | | | | | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-7B-chat | 全参微调 | 1 | 3 | 1024 | 4495 | 8*3090(24G) | 10:38:20 | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-7B-chat | 全参微调 | 4 | 3 | 1024 | 4495 | 8*3090(24G) | 2:52:58 | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-7B-chat | 全参微调 | 1 | 3 | 1024 | 4495 | 4*3090(24G) | 显存不足 | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-7B-chat | freeze微调 | 1 | 3 | 1024 | 4495 | 4*3090(24G) | 0:41:53 | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-7B-chat | lora微调 | 1 | 3 | 1024 | 4495 | 4*3090(24G) | 0:19:35 | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-14B-chat | 全参微调 | 1 | 3 | 1024 | 4495 | 8*3090(24G) | 显存不足 | | | | | | | | | | | | | | | | | | 需要300-400G显存 | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-14B-chat | freeze微调 | 1 | 3 | 1024 | 4495 | 8*3090(24G) | 待测试 | | | | | | | | | 理论上4卡足够 | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-14B-chat | lora微调 | 1 | 3 | 1024 | 4495 | 4*3090(24G) | 16:41:39 | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-14B-chat | 全参数微调 | 1 | 5 | 2k ~ 4k | 2698 | 4 * | 7:40:26 | | | | | | | | A100(80G) | | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+ | Qwen-72B-chat | lora微调 | 1 | 5 | 2k ~ 4k | 2698 | 4 * | 15:59:30 | | | | | | | | A100(80G) | | +---------------+--------------+---------+------------+------------------+--------------------+----------------+------------------+

  1. 任务管理

界面左侧主体部分用于对Finetune任务进行管理

descript

  • [Finetune任务列表]由"模型名称 | 任务状态 | RT服务 | 创建时间"4个字段构成:

[模型名称]是指用户创建微调任务时填写的Finetune模型名称;

[任务状态]是指该Finetune任务的当前状态;

[RT服务]是指该Finetune任务创建于哪个RT服务上;

[创建时间]是指该Finetune任务创建的时间;

  1. 任务详情

界面右侧主体部分是对选中训练任务的详情展示.

descript

  • [Finetune任务详情]包括以下信息
    • 模型名称: 用户创建时填写的Finetune模型名称;

    • 任务状态: 该Finetune任务的当前状态;

    • 任务ID: 该Finetune任务的当前状态;

    • 基准模型: 该Finetune任务基于哪个基准模型(Base Model)进行训练;

    • 创建时间: 该Finetune任务创建的时间;

    • 运行时长: 该Finetune任务已运行的时长, 从创建到训练成功/训练失败/训练中止的时间;

    • 创建人: 该Finetune任务的创建用户;

    • 数据集: 该Finetune任务基于哪个数据集进行训练;

    • 评估报告: 对该Finetune任务的评估报告, 目前包括bleu-4, rouge-1, rouge-2, rouge-l四项指标以及Loss图的展示.

    • 训练日志: 该Finetune任务的训练日志信息展示.

  • 对于不同状态的Finetune任务, 在详情页面右上角有不同的功能
    • 对于[训练成功]: 支持对Finetune完成的模型进行[发布]或[删除]。

    • 对于[发布成功]: 支持对已发布的模型进行[取消发布]或[删除]. 如果[取消发布], 该任务状态则变为[训练成功].

    • 对于[训练进行中]: 支持对正在训练的Finetune任务进行[中止]. 如果[中止], 该任务状态则变为[训练中止].

    • 对于[训练中止]: 支持对训练中止的Finetune任务进行[删除].

    • 对于[训练失败]: 支持对训练失败的Finetune任务进行[删除].

  1. 筛选/搜索

在任务列表的上方支持根据训练任务状态/RT服务进行筛选, 或根据模型名称进行搜索.

descript

  1. 模型支持

当前支持微调的模型列表如下:

Baichuan2-7B-Chat,

Baichuan2-13B-Chat,

chatglm2-6b,

chatglm3-6b,

internlm-chat-7b-8k

internlm-20b-chat,

Llama-2-7b-chat-hf,

Llama-2-13b-chat-hf

Qwen-7B-Chat,

Qwen-14B-Chat.

How is this guide?