GPT-4o微调SFT及强化学习DPO数据集构建

假设,已经标注的训练数据集df包含了提示词、输入和输出三列。

构建微调SFT的数据集代码如下:

python 复制代码
data = []
for x in df.values:
    prompt = x[1]
    user_content = x[2]
    assistant_content = x[3]
    
    data.append({"messages": [{"role": "system", "content": prompt}, {"role": "user", "content": user_content},{"role": "assistant", "content": assistant_content}]})
data[0]

import json

# 将数据写入.jsonl文件
with open('sft_train.jsonl', 'w') as f:
    for item in data:
        json.dump(item, f)
        f.write('\n')  # 每行一个JSON对象

假设,已经标注的强化学习数据集df包含用户输入、首选输出、次选输出三列。

构建强化学习DPO的数据集代码如下:

python 复制代码
dpo_data = []
for x in sft_df.values:
    user_content = x[1]
    preferred_output = x[2]
    non_preferred_output = x[3]
    dpo_data.append({"input": {"messages": [{"role": "user", "content": user_content}],"tools": [], "parallel_tool_calls": True }, "preferred_output": [{"role": "assistant", "content": preferred_output}], "non_preferred_output": [{"role": "assistant", "content": non_preferred_output}]})
dpo_data[0]

import json
with open('dpo_train.jsonl', 'w') as f:
    for item in dpo_data:
        json.dump(item, f)
        f.write('\n')  # 每行一个JSON对象

注意:强化学习DPO通常在微调SFT的模型上进行。

相关推荐
F_D_Z9 天前
DreamDPO:通过直接偏好优化,实现文本到3D的偏好对齐
3d·dpo
阿杰学AI13 天前
AI核心知识46——大语言模型之DPO(简洁且通俗易懂版)
人工智能·ai·语言模型·aigc·ppo·dpo·直接优化偏好
leo030815 天前
【LLM微调】拒绝“假装聪明”:SFTTrainer 中 completion_only_loss 新旧版本用法详解
llm·sft·huggingface·trl
赋范大模型技术社区15 天前
大模型训练的“最后一公里”:为什么强化学习(RL)不可或缺?
大模型·微调·sft·模型训练·rl
缘友一世1 个月前
模型微调DPO算法原理深入学习和理解
算法·模型微调·dpo
山顶夕景1 个月前
【RL-LLM】Self-Rewarding Language Models
llm·强化学习·rl·dpo
沛沛老爹1 个月前
AI入门知识之RAFT方法:基于微调的RAG优化技术详解
人工智能·llm·sft·raft·rag
安如衫2 个月前
【学习笔记更新中】Deeplearning.AI 大语言模型后训练:微调与强化学习导论
人工智能·llm·sft·后训练·deepseek
openHiTLS密码开源社区2 个月前
密码学与人工智能的深度融合:玄知大模型开启安全智能新纪元
人工智能·密码学·gpt-4o·openhitls·玄知大模型·sm4-hctr·密码学大模型
marsggbo2 个月前
LLM 场景下的强化学习技术扫盲
llm·强化学习·ppo·dpo·grpo