一般来说,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。后续这几者会相对经常被使用。
训练的时候我们组织文本数据为如下格式。