kaist-ai/Multifaceted-Collection-small
收藏数据集卡片:Multifaceted Collection Small
数据集概述
Multifaceted Collection Small 是一个适合监督微调的训练数据集子集,包含65k条独特的指令,每条指令伴随一个指示不同偏好的系统消息和相应的响应。每个指令仅包含一个输入-输出对,使其大小仅为完整训练数据集的三分之一。
- 许可证:Creative Commons Attribution 4.0
- 相关数据集:
- 训练模型:Janus 7B
数据集结构
数据实例
以下是数据集中的一个示例实例:
json
{
"main_source": "OpenHermesPreferences",
"original_source": "glaive-code-assist",
"preference_set": [
{
"description": "This preference highlights a desire for answers to be straightforward and direct, eliminating unnecessary details that could distract from the core information.",
"dimension": "style",
"preference": "concise and focused",
"subdimension": "vividness"
},
{
"description": "The preference suggests that while the user has a foundational knowledge of Python, they may not be familiar with more advanced concepts like hash functions.",
"dimension": "background_knowledge",
"preference": "assumes basic understanding of Python",
"subdimension": "basic"
},
{
"description": "The emphasis is on delivering a solution that not only addresses the question directly but does so in a manner that can be readily used or adapted in practical scenarios.",
"dimension": "informativeness",
"preference": "provides implementable solution",
"subdimension": "practicality"
},
{
"description": "Recognizing that not all users are well-versed in complex programming terminologies, this preference ensures that the language model avoids or simplifies advanced jargon.",
"dimension": "harmlessness",
"preference": "avoids advanced jargon without explanation",
"subdimension": "sensitivity"
}
],
"system": "You are a Python mentor, focusing on building a solid foundation while transitioning beginners into intermediate enthusiasts.",
"prompt": "What is the code for creating a hash function in Python that takes a string as input and returns a fixed size integer output?",
"output": "Creating a hash function in Python that takes a string as input and returns a fixed-size integer output can be straightforward, thanks to Pythons built-in hash() function."
}
数据字段
main_source(str):指令的源数据集original_source(str):根据源数据集的指令原始来源preference_set(List[Dict[str, str]]):构成系统消息基础的偏好集。每个偏好集包含四个高级别维度(风格、背景知识、信息量和无害性)中的一个偏好,按维度、子维度和特定偏好(关键词和描述)的顺序指定。system(str):详细说明遵循个人多方面偏好的目标的系统消息。这是从preference_set中的description合成的。prompt(str):指示特定任务的指令output(str):最佳遵循系统消息和指令的黄金标准响应,由gpt-4-0125-preview生成
数据集创建
策划理由
MultifacetedCollection 数据集旨在解决现有对齐数据集的局限性,通过捕捉跨多个维度的细粒度偏好。我们将偏好概念化为一个详细描述理想响应应具备的质量的文本。我们确定了模型反映人类偏好多样性的两个关键要求:
- R1: 多面性:个人偏好是多面的,涵盖适用性、复杂性、可变性和伦理等方面。为了表示这种多样性,我们采用了一种从一般维度分支到特定子维度和偏好的层次偏好增强策略。
- R2: 显式性:为了帮助模型学习偏好响应和拒绝响应之间的细微差别,我们通过详细的系统消息在输入中明确偏好。
数据收集和处理
1. 指令采样
我们从五个高质量偏好数据集中选择指令:
- Nectar
- OpenHermesPreferences
- UltraFeedback-binarized-clean
- Chatbot Arena Conversations
- Domain-Specific Preference dataset (DSP)
我们移除完全重复的指令,并使用正则表达式模式过滤掉带有预先存在的系统消息的指令,最终得到65k条指令。
2. 偏好集生成
我们最初确定了四个主要响应偏好维度:风格、背景知识、信息量和无害性。然后定义了一个包含每个维度一个偏好的偏好集。
- 种子偏好创建:我们(作者) brainstorm 了18个子维度和107个偏好。
- 偏好集生成:对于每个65k指令,我们使用
gpt-4-0125-preview生成3个不同任务对齐的偏好集。
3. 系统消息和黄金响应生成
我们使用GPT-4 Turbo将每个偏好集转换为系统消息,每个指令生成三个系统消息。再次使用GPT-4 Turbo为每个系统消息制作黄金标准的多方面响应。



