-
数据集需要有多样性:你应该创建一组多样化的示范对话,这些对话应与你在生产环境中要求模型响应的对话相似。多样性的数据有助于模型的泛化能力。
-
需要有针对目标问题的明确回复:前面说过,在微调之前你应该做过很多提示工程,当各种prompt工程都无法解决某些问题的时候,你应该把这个问题和正确的答案放到微调数据集中来直接提升大模型微调的效果。
-
注意过多拒绝问题:如果数据中60%的助理响应都是“我不能回答这个”,你可能会得到过多的拒绝。简单来说,这是因为模型会根据其在训练数据中看到的内容来学习和做出决策。如果模型在训练数据中经常看到某种响应,它就会认为在实际情境中也应该经常给出这种响应。所以,如果训练数据中有大量的“我不能回答这个”响应,模型在实际使用时也可能过于频繁地给出这种响应,即使实际情况并不需要这么多这样的回答。这就是所谓的“过多的拒绝”。
-
训练示例的完整性:确保你的所有训练示例都包含生成响应所需的所有信息。包括问题和回答都要能比较全面。如果你的指令(问题)很短,如果在希望模型可以学会很短的指令就能回复很好,因此构造了较短的指令,那么在推理时可能很难让模型忽略那些“内置”的指令。
-
训练示例的一致性:如果多人创建了训练数据,模型的性能可能会受到人与人之间的一致性/水平的限制。
-
数据格式:确保你所有的训练示例都采用与推理期望的相同格式。
-
数据数量的迭代:你可以考虑增加训练示例的数量,这有助于模型更好地学习任务,特别是围绕可能的“边缘情况”。
-
需要注意tokens的限制:例如,OpenAI目前GPT-3.5 Turbo每个训练示例限制为4096个tokens。超过此数目的示例将在训练时被截断为前4096个。