diff --git a/docs/zh/docs/dtx/fine-tuning-experiment.md b/docs/zh/docs/dtx/fine-tuning-experiment.md new file mode 100644 index 0000000..2bd9e4b --- /dev/null +++ b/docs/zh/docs/dtx/fine-tuning-experiment.md @@ -0,0 +1,53 @@ +# 微调实验 + +微调实验是利用 **数据组** 、 **大模型** 、 **参数组** 这三个配置灵活组合,利用底层的多个 GPU 的卡,一次操作,并行完成多次微调,然后基于所有微调模型进行总体的评估,最后在这次实验中,使用相同的评估标准,找出最佳的微调模型作为本次微调实验的推荐的微调模型 + +## 创建微调实验 + +1. 点击右上角 **创建微调实验** 。 + + ![创建微调实验](images/create-fine-tuning-experiment、.png) + +2. 填写实验基本信息: + - 实验名称:由小写字母、数字字符或“-”组成,并且必须以字母或数字字符开头及结尾。 + - 选择评估方式:实验中对模型使用的评分准则。 + - 选择命名空间 + + ![实验基本信息](images/basic-information-of-experiment.png) + +3. 填写微调任务配置: + - 任务名称:由小写字母、数字字符或“-”组成,并且必须以字母或数字字符开头及结尾。 + - 选择算力类型并填写物理卡个数。 + + !!! info + + 当前模型服务仅支持Nvidia的GPU,模型会根据物理卡个数在GPU上进行分布式微调。 + + - 资源配置: + - CPU配额:通常需要使用多核CPU来加速训练和推理过程。具体的 CPU 配额需要根据任务的需求和可用的硬件资源来确定。 + - 内存配置:根据模型的大小和数据集的大小来确定内存需求,并根据需要调整内存配置。 + + 推荐CPU配额和内存配置请求值为 **2** Core,限制值为 **4** Core。 + + !!!note + + 两者的请求值皆不可超过限制值。 + + ![任务配置](images/resource-allocation.png) + + - 选择实验中要使用的 **基础大模型** 、 **数据组** 以及 **参数组** 。 + + 若要设置多个微调任务,可点击左下角 **添加任务** 创建新任务。 + + ![alt text](images/add-task.png) + +4. 点击右下角 **确认** 按钮即可创建微调实验。 + +## 停止或删除微调实验 + +若想停止或删除某个微调实验,可点击右侧 **⋮** 按钮,选择 **停止** 或 **删除** 。 + +!!! note + + 停止及删除操作不可逆,请谨慎操作。 +![停止或删除微调实验](images/delete-fine-tuning-experiment.png) diff --git a/docs/zh/docs/dtx/images/add-task.png b/docs/zh/docs/dtx/images/add-task.png new file mode 100644 index 0000000..29d92bb Binary files /dev/null and b/docs/zh/docs/dtx/images/add-task.png differ diff --git a/docs/zh/docs/dtx/images/basic-information-of-experiment.png b/docs/zh/docs/dtx/images/basic-information-of-experiment.png new file mode 100644 index 0000000..1a9e25f Binary files /dev/null and b/docs/zh/docs/dtx/images/basic-information-of-experiment.png differ diff --git "a/docs/zh/docs/dtx/images/create-fine-tuning-experiment\343\200\201.png" "b/docs/zh/docs/dtx/images/create-fine-tuning-experiment\343\200\201.png" new file mode 100644 index 0000000..8699c99 Binary files /dev/null and "b/docs/zh/docs/dtx/images/create-fine-tuning-experiment\343\200\201.png" differ diff --git a/docs/zh/docs/dtx/images/delete-fine-tuning-experiment.png b/docs/zh/docs/dtx/images/delete-fine-tuning-experiment.png new file mode 100644 index 0000000..e59a3e1 Binary files /dev/null and b/docs/zh/docs/dtx/images/delete-fine-tuning-experiment.png differ diff --git a/docs/zh/docs/dtx/images/delete-parameter.png b/docs/zh/docs/dtx/images/delete-parameter.png new file mode 100644 index 0000000..85621fe Binary files /dev/null and b/docs/zh/docs/dtx/images/delete-parameter.png differ diff --git a/docs/zh/docs/dtx/images/edit-parameter.png b/docs/zh/docs/dtx/images/edit-parameter.png new file mode 100644 index 0000000..f7aafd5 Binary files /dev/null and b/docs/zh/docs/dtx/images/edit-parameter.png differ diff --git a/docs/zh/docs/dtx/images/namespace.png b/docs/zh/docs/dtx/images/namespace.png new file mode 100644 index 0000000..fb9b29e Binary files /dev/null and b/docs/zh/docs/dtx/images/namespace.png differ diff --git a/docs/zh/docs/dtx/images/resource-allocation.png b/docs/zh/docs/dtx/images/resource-allocation.png new file mode 100644 index 0000000..d114fba Binary files /dev/null and b/docs/zh/docs/dtx/images/resource-allocation.png differ diff --git a/docs/zh/docs/dtx/population-of-parameters.md b/docs/zh/docs/dtx/population-of-parameters.md index f311e17..f4ed580 100644 --- a/docs/zh/docs/dtx/population-of-parameters.md +++ b/docs/zh/docs/dtx/population-of-parameters.md @@ -1,5 +1,10 @@ # 参数组 +在微调模型之前,可以先设置一些参数组,不同的微调类型对应不同的的参数组。 + +参数组(Hyperparameter Group)代表一组超参的集合。在大语言模型的微调过程中, +可以根据需要设置很多不同的超参,如 Scheduler、Optimizer、LearningRate、Epochs、BlockSize、BatchSize 等,本文的参数组就是各种超参的组合。 + ## 创建参数组 1. 点击右上角 **创建** 按钮。 @@ -20,7 +25,14 @@ - **cosine** :通过绘制余弦曲线,将 **LearningRate** 逐渐减少到0。 - **linear** :初始 **LearningRate** 为设置值,以直线形式减少到0. - **constant** : **LearningRate** 始终保持不变。 - - Optimizer:训练中使用的优化器类型,可选择 **adamw_torch** 、 **adamw_hf** 、 **sgd** 、 **adafactor** 或 **adagrad** ,默认设置为 **adamw_torch** 。 + - Optimizer:训练中使用的优化器类型,默认设置为 **adamw_torch** 。可选择以下五种: + - **adamw_torch** :是 Adam 优化器的一种变体,它使用了一种称为权重衰减的正则化方法,可以有效地防止过拟合。AdamW_torch 是 PyTorch 中的 AdamW 实现。 + - **adamw_hf** :AdamW_hf 是 Hugging Face Transformers 库中的 AdamW 实现,与 AdamW_torch 相比,它使用了一种不同的权重衰减方法,可以更好地适应自然语言处理任务。 + - **sgd** :是 **随机梯度下降(Stochastic Gradient Descent)** 的缩写,是一种基本的优化器。它每次迭代使用一个样本来更新模型参数,可以快速收敛,但容易陷入局部最优解。 + - **adafactor** :Adafactor是一种自适应学习率优化器,它使用了一种称为自适应二阶矩估计的方法来调整学习率。它可以自适应地调整学习率和权重衰减,适用于大规模训练任务。 + - **adagrad** :Adagrad 是一种自适应学习率优化器,它根据每个参数的历史梯度大小来调整学习率。它适用于稀疏数据集和非平稳目标函数,但可能会导致学习率过小,导致收敛速度慢。 + + 总结来说, **adamw_torch** 和 **adamw_hf** 适用于大多数任务, **sgd** 适用于简单的模型和数据集, **adafactor** 和 **adagrad** 适用于大规模训练任务。 - FP16:选择是否使用16位浮点数进行训练,这可以减少内存占用和加速训练过程,默认为 **False** 。 - LoRA_Alpha:数值越大,LoRA输出对模型的影响越大。若微调数据量较小,建议调大 **alpha** 数值,反之则调小。默认数值为 **32** 。 - LoRA_R:数值越大,LoRA的参数越多。若原始模型表现良好,可将 **r** 设置小一点,反之可以设置大一些。默认设置为 **4** 。 @@ -33,20 +45,34 @@ - WarmupRatio:训练过程中预热的比例,数值范围大多在0到1之间。默认为 **0.1** 。 - WeightDecay:表示模型的正则化程度。数值越小,正则化越低,模型越大可能出现过拟合。默认数值为 **0.0001** 。 - GradAccSteps:权重更新前积累的梯度数目。在硬件条件不变的情况下,该数值越大,可使用的 **BatchSize** 越大。默认值为 **1** 。 - - TrainerType:训练器类型。默认为 **Standard** 。 + - TrainerType:训练器类型。默认为 **Standard** ,指使用标准优化算法进行训练。 ![参数配置](images/parameter-configuration.png) -4. 点击右下角 **确认** 创建参数组。 +4. 点击右下角 **确认** 即可创建参数组供微调实验中使用。 + +下一步:[微调实验](fine-tuning-experiment.md) ## 编辑参数组 -1. 可在左上角筛选 **命名空间** ,选择想要查看参数组的命名空间。 +若希望将已创建的参数组做出调整: + +1. 可在左上角筛选 **命名空间** ,选择想要修改参数组的命名空间。 + + ![命名空间](images/namespace.png) 2. 找到想要查看的参数组,点击右侧的 **⋮** 按钮,选择 **编辑**。 + ![编辑参数组](images/edit-parameter.png) + 3. 即可修改参数组内的所有参数配置。 ## 删除参数组 找到想要删除的参数组,点击右侧的 **⋮** 按钮,选择 **删除**。 + +![删除参数组](images/delete-parameter.png) + +!!! note + + 删除操作不可逆,请谨慎操作。 diff --git a/docs/zh/navigation.yml b/docs/zh/navigation.yml index 32ea560..7d2a102 100644 --- a/docs/zh/navigation.yml +++ b/docs/zh/navigation.yml @@ -37,6 +37,7 @@ nav: - 什么是模型开发: baize/index.md - 模型微调: - 什么是模型微调: dtx/index.md + - 微调实验: dtx/fine-tuning-experiment.md - 参数组: dtx/population-of-parameters.md - 算力容器: https://docs.daocloud.io/kpanda/intro/ - 全局管局: https://docs.daocloud.io/ghippo/intro/ \ No newline at end of file