微调是预训练之后的步骤,但是也可以使用微调过的模型再进行微调。
- 数据集可以是用于自监督学习的没有标签的数据
- 数据集也可以是有标签的数据
- 数据量比预训练时小的多
这里的微调特指生成式任务上的微调。在这种方式中,
- 需要更新整个模型的权重,而不是像其他模型一样只更新部分权重
- 微调的训练目标与预训练时的目标相同,目的是让模型的输出更加一致
- 有许多先进的方法可以减少对模型的更新
关键点
- 明确的任务是模型是否微调成功的关键(是提炼、扩展、还是什么?)
- 明确意味着清晰定义了模型输出的好和坏的标准
微调步骤:
第一种方法:加载基础模型,加载训练集,训练
1 2 3 4 5 |
|
(0)准备数据集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
|
(1)加载数据集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
(2)设置模型,训练配置和tokenizer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
(3)加载基础模型
1 2 3 4 5 6 7 8 9 10 11 |
|
(4)定义推理函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
(5)设置训练参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
|
(6)开始训练
1 2 3 4 5 6 7 8 9 |
|
(7)保存模型
1 2 3 4 5 6 7 8 |
|
(8)测试
1 2 3 4 5 |
|