GPT系列模型微调数据格式及复杂数据集适配问题咨询
GPT系列模型微调数据格式问题解答
一、多维度DataFrame适配说明
- OpenAI的微调接口只支持固定的
prompt和completion列名,不认可Prompt_a、Completion_a这类自定义多列格式。如果你的DataFrame包含多组问答列,需要先将数据规整为标准两列结构:把所有类Prompt内容统一归集到prompt列,对应的类Completion内容归集到completion列,确保每一行对应一组完整的问答样本。 - Python处理示例:
import pandas as pd # 示例多列数据集 df = pd.DataFrame({ 'Prompt_a': ['用户问题1', '用户问题2'], 'Completion_a': ['模型回答1', '模型回答2'], 'Prompt_b': ['用户问题3', '用户问题4'], 'Completion_b': ['模型回答3', '模型回答4'] }) # 转换为标准格式 df_group1 = df[['Prompt_a', 'Completion_a']].rename(columns={'Prompt_a': 'prompt', 'Completion_a': 'completion'}) df_group2 = df[['Prompt_b', 'Completion_b']].rename(columns={'Prompt_b': 'prompt', 'Completion_b': 'completion'}) final_fine_tune_df = pd.concat([df_group1, df_group2], ignore_index=True)
二、长上下文文本处理规则
- 长上下文文本无需拆分,直接按
'文本内容/@>'格式传入即可,但要注意单条prompt+completion的总token数不能超过对应模型的上下文限制(比如gpt-3.5-turbo-instruct为4096 tokens,gpt-4基础版为8192 tokens)。如果超出限制,必须拆分内容,保证每组问答对的总token数在模型允许范围内。 - 需严格遵循格式细节:
completion字段必须以空格开头,结尾添加指定分隔符/@>;prompt字段结尾同样要加/@>,用于明确区分输入与模型输出边界。
官方核心规则翻译
微调数据必须采用JSONL格式,每一行是包含
prompt和completion键的JSON对象。
prompt:输入的指令或问题,结尾必须添加自定义分隔符(如/@>),用于标记输入结束。completion:期望模型生成的输出,必须以空格开头,结尾添加相同分隔符,避免模型生成冗余内容。
内容的提问来源于stack exchange,提问作者Jan M.
相关产品推荐
相关产品推荐

