经过上节内容的学习,我们对于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])


该代码先载入数据集,将数据集放入字典,然后再构造一个输出字典的函数,方便观察与输出。

以上就是一些基础的偏好数据集载入方法,更具体的我们下节再见。

Logo

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

更多推荐