Home

Awesome

<div align="center"> <img src="assets/cvalues.png" width="80%"> </div>

面向中文大模型价值观的评估与对齐研究

<div align="center"> <a href="https://modelscope.cn/datasets/damo/CValues-Comparison/summary"><img src="assets/dataset.svg" alt="Dataset ModelScope"></a> <a href="http://xdp-expriment.oss-cn-zhangjiakou.aliyuncs.com/shanqi.xgh/release_github/CValues.pdf"><img src="assets/Paper-PDF-orange.svg"></a> <a href="https://arxiv.org/abs/2307.09705"><img src="assets/Paper-Arxiv-orange.svg" ></a> <a href="https://hits.seeyoufarm.com"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FX-PLUG%2FCValues&count_bg=%23C83DA6&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false"/></a> </div>

简介

随着Large Language Models(LLMs)的快速发展,越来越多的人开始担心它们可能带来风险。因此,围绕大模型的“安全与对齐”方向得到了极大的关注。本文和大家分享一些我们在这个方向的工作。

目录

评估方向

开源数据

我们在论文《CVALUES: Measuring the Values of Chinese Large Language Models from Safety to Responsibility》,提出基于safety和responsibility两个评价准则来综合评估中文大模型的价值观表现。论文涉及到6份数据集

实际开源数据汇总

数据集名称数据地址数据量数据说明
CValues-Responsibility-Prompts链接0.6k给AI的100瓶毒药」项目中专家提出的问题
CValues-Responsibility-MC链接1.7k基于上面CValues-Responsibility-Prompts和正负回复构造的多项选择题,用于自动评估。其中"difficulty_level"="easy"是使用chatgpt改写得到负例,难度中等;"difficulty_level"="hard"是专家不认可的回复作为负例,难度更大
100PoisonMpts链接0.9k给AI的100瓶毒药」项目中中专家提出的问题、专家自己撰写的回答或认可的大模型答案
CValues-Comparison链接145kCValues论文中构建的数据集,具体构建方法可以详见论文附录

数据集CValues-Comparison补充说明

  1. 数据说明

    1. 我们基于自己训练reward排序模型和ChatGPT改写等方式把回复分为三种类型:拒绝&正向建议 (safe and reponsibility) > 拒绝为主(safe) > 风险回复(unsafe),那么同一个prompt下,不同类型的回复可以组合成不同难度的正负例样本

      1. pos: 拒绝为主,neg: 风险回复
      2. pos: 拒绝&正向建议,neg: 风险回复
      3. pos: 拒绝&正向建议,neg: 拒绝为主
    2. 我们划分了训练集(116k)和测试集(29k),两个集合的prompt是不相交的。

  2. 使用建议

    1. 正例可以用来SFT增强模型的安全性
    2. 正反例可以用来训练和评估reward模型
    3. 正反例可以用来构造多项选择题,用于自动化评估模型安全性表现
  3. 免责说明:数据集中有大量非安全和风险回复,都是模型生成或改写得到,不代表我们的任何观点。

评测脚本

评测脚本在code目录下,

Step-1. 使用大模型预测数据集CValues-Responsibility-MC 链接 结果,jsonl文件新增一个response字段

Step-2. 运行cvalues_eval.py脚本

python cvalues_eval.py --input_file "./data/cvalues_responsibility_mc_eval_from_chatgpt.jsonl" --evaluator "chatgpt"

说明

  1. 输入文件,示例见./data/cvalues_responsibility_mc_eval_from_chatgpt.jsonl,必须包含字段response即模型生成结果、字段label即正确标签
  2. 注意选择对应的evaluator,目前支持["chatgpt", "chatglm", "moss", "ziya", "chinese_alpaca-7b", "chinese_alpaca-13b"]

Step-3. 运行cvalues_eval_after_manual.py脚本(可选的)

python cvalues_eval_after_manual.py -f "xxx.xlsx"

说明

  1. 有些模型的输出无法正常解析,需要手动标注上一步中excel文件中的pred
  2. pred列,支持的选项是["回复1", "回复2", "Other", "Refuse", Need_Check"]
    1. "Other",是模型做出除"回复1"和"回复2"之外的选择,比如都很好或都很差
    2. "Refuse",是模型拒绝做出选择

对齐方向

给AI的100瓶毒药」项目,我们获得了专家对大模型的评分打标和反馈意见,专家研讨会上多个领域专家的重要观点被总结成了“专家原则”,我们探索了基于专家原则来指导大模型对齐价值观的研究,蛮有意思的探索,具体内容详见我们技术报告《基于专家原则的大模型自我对齐研究》链接

我们基于开源的100PoisonMpts数据集,先self-instruct出更多问题,然后使用专家原则得到对齐专家价值的SFT数据,训练模型后,最终比较有效的提升大模型的价值表现,且具备不错的泛化性。(注意:下面实验过程中,只使用专家提出的问题和专家原则,不使用专家答案)

模型设置

Model Name模型名称解释
ChatPLUG_initial原始的ChatPLUG模型
ChatPLUG_100Poison经过专家原则治理后的ChatPLUG模型

评价标准:对模型生成的Response进行评分

评测数据集

  1. 原100PoisonMpts采样的部分数据作为测试集A
  2. 收集的泛化数据集作为测试集B,评估泛化性

expt

定量分析

  1. 在原100PoisonMpts测试集和额外测试集上,使用专家原则的对齐方法都能够大幅提升模型效果。
  2. 如果按照评分A和B的比例来看,在原专家测试集上A+B比例从(61.9%)提升至(79.8%),提升了(17.9%);而在额外测试集上A+B的比例从(57.5%)提升至(86.3%),提升了(28.8%)

相关链接

引用

如果我们的工作对你有帮助,可以考虑给我们的仓库点个star & 引用我们的论文。

@misc{xu2023cvalues,
      title={CValues: Measuring the Values of Chinese Large Language Models from Safety to Responsibility}, 
      author={Guohai Xu and Jiayi Liu and Ming Yan and Haotian Xu and Jinghui Si and Zhuoran Zhou and Peng Yi and Xing Gao and Jitao Sang and Rong Zhang and Ji Zhang and Chao Peng and Fei Huang and Jingren Zhou},
      year={2023},
      eprint={2307.09705},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}
@misc{tian2023chatplug,
        title={ChatPLUG: Open-Domain Generative Dialogue System with Internet-Augmented Instruction Tuning for Digital Human}, 
        author={Junfeng Tian and Hehong Chen and Guohai Xu and Ming Yan and Xing Gao and Jianhai Zhang and Chenliang Li and Jiayi Liu and Wenshen Xu and Haiyang Xu and Qi Qian and Wei Wang and Qinghao Ye and Jiejing Zhang and Ji Zhang and Fei Huang and Jingren Zhou},
        year={2023},
        eprint={2304.07849},
        archivePrefix={arXiv},
        primaryClass={cs.CL}
  }