Skip to content

Commit

Permalink
参数组提交
Browse files Browse the repository at this point in the history
  • Loading branch information
ccathy7 committed Mar 26, 2024
1 parent 6ad5ab1 commit a62dddb
Show file tree
Hide file tree
Showing 11 changed files with 84 additions and 4 deletions.
53 changes: 53 additions & 0 deletions docs/zh/docs/dtx/fine-tuning-experiment.md
Original file line number Diff line number Diff line change
@@ -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)
Binary file added docs/zh/docs/dtx/images/add-task.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/zh/docs/dtx/images/delete-parameter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/zh/docs/dtx/images/edit-parameter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/zh/docs/dtx/images/namespace.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 30 additions & 4 deletions docs/zh/docs/dtx/population-of-parameters.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# 参数组

在微调模型之前,可以先设置一些参数组,不同的微调类型对应不同的的参数组。

参数组(Hyperparameter Group)代表一组超参的集合。在大语言模型的微调过程中,
可以根据需要设置很多不同的超参,如 Scheduler、Optimizer、LearningRate、Epochs、BlockSize、BatchSize 等,本文的参数组就是各种超参的组合。

## 创建参数组

1. 点击右上角 **创建** 按钮。
Expand All @@ -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**
Expand All @@ -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

删除操作不可逆,请谨慎操作。
1 change: 1 addition & 0 deletions docs/zh/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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/

0 comments on commit a62dddb

Please sign in to comment.