RLHF(从人类反馈中进行强化学习)详解(二)
经过上节内容的学习,我们对于RLHF的主要步骤和关键方法都有了一些基础的认知,接下来让我们对于各个部分做进一步的深入学习。在创建偏好数据集的过程中,人工标注是一个费时费力的过程,但是这又是至关重要的一步,在本节内容中,主要使用已有的数据集进行讲解。该代码先载入数据集,将数据集放入字典,然后再构造一个输出字典的函数,方便观察与输出。这个代码的结果展示了数据集中的两个结果,并且要求标注者选择更喜欢的一
·
经过上节内容的学习,我们对于RLHF的主要步骤和关键方法都有了一些基础的认知,接下来让我们对于各个部分做进一步的深入学习。本节为偏好数据集部分。
在创建偏好数据集的过程中,人工标注是一个费时费力的过程,但是这又是至关重要的一步,在本节内容中,主要使用已有的数据集进行讲解。
首先,我们进行数据集的导入
preference_dataset_path='sample_preference.jsonl'
import json
preference data =[]
with open(preference_dataset_path)as f:
for line in f:
preference_data.append(json.loads(line))
sample_1= preference_data[0]
print(sample_1.keys())
sample_1['input_text']
接下来让我们观察一下数据集中的样本
preference_data[2]['input_text'][-50:]
print(f"candidate_0:\n{sample_1.get('candidate_0')}\n")
print(f"candidate_1:\n{sample_1.get('candidate_1')}\n")
这个代码的结果展示了数据集中的两个结果,并且要求标注者选择更喜欢的一个,即为选择。
print(f"choice:{sample_1.get('choice')}")
输出选择的结果
以下以一个选择数据集为例子再把流程讲解一遍
prompt_dataset_path = 'sample_prompt.jsonl'
prompt_data = []
with open(prompt_dataset_path) as f:
for line in f:
prompt_data.append(json.loads(line))
len(prompt_data) #打印长度
#构造一个打印字典的函数
def print_d(d) :
for key, val in d.items():
print(f"key:{key}\nval:{val}\n")
print_d(prompt_data[0])
该代码先载入数据集,将数据集放入字典,然后再构造一个输出字典的函数,方便观察与输出。
以上就是一些基础的偏好数据集载入方法,更具体的我们下节再见。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)