Trainer

一般来说,Transformer的Trainer的使用是LLM训练(SFT)的第一步,通过书写Trainer为核心的训练代码,可以基本了解整个SFT流程。

取出一段数据,他通常是一个字典结构,我们选择OpenR1-Math作为用作示例:

{
    "problem":"",
    "solution":"",
    "answer":"180",
    "problem_type":"Algebra",
    "question_type":"math-word-problem",
    "source":"olympiads",
    "uuid":"1d57f4b3-c516-5522-91cc-a60dd91f6f66",
    "is_reasoning_complete":[
      true,
      true
    ],
    "generations":[
      "",
      ""
    ],
    "correctness_math_verify":[
      true,
      true
    ],
    "correctness_llama":null,
    "finish_reasons":null,
    "correctness_count":2,
    "messages":[
      {
        "content":"",
        "role":"user"
      },
      {
        "content":"",
        "role":"assistant"
      }
    ],
    "annotated_generations":[
      "",
      ""
    ]
  }

其中我们关注如下几个点,分别是problem,generations,annotated_generations。后续这几者会相对经常被使用。

训练的时候我们组织文本数据为如下格式。