GoogleShieldGemma:手把手教如何构造sft数据
作者: NLP前沿 来源: NLP前沿
上周分享了模型卡,今天简单分享一下技术报告的论文笔记,文章标题:ShieldGemma: Generative AI Content Moderation Based on Gemma
ShieldGemma模型主要是用来过滤用户输入和LLM生成的输出,识别危害类型,包括色情内容、危险内容、骚扰和仇恨言论这些。
技术报告中主要提到了他们用到的基于LLM的数据筛选流程,利用合成数据技术来减少人工标注工作量。
数据构造流程:
问题定义(Problem Definition) -> query生成(Query Generation) -> respnse生成(Optional Response Generation)-> 数据扩展(Data Expansion)-> 下采样(Data Sub-Sampling) -> 标注(Data Annotation) -> 公平性扩展(Fairness Expansion)
-
问题定义: 确定任务的范围,限定危害类型(如仇恨、危险、色情、骚扰)和query语言。生成对抗性主题/子主题列表,并确定这些主题可能造成的危害。
-
query生成: 使用LLM生成基于不同参数(如危害类型、主题、子主题、用例、地区等)的多样化对抗性提示。
-
respnse生成: 使用另一个LLM根据配置参数(例如是否生成危害的回复)生成response。
-
数据扩展: 利用 self critiquing & generation 框架 (类似Reflexion、Self-refine的策略)扩展原始数据,提高语义/合成多样性。通过提取原始数据中的一批数据,然后请求critic LLM提出改进建议,再由生成LLM生成考虑这些建议的新数据。
-
采样: 在进行人工标注之前,需要进行采样以减少标注工作量,加快迭代速度。使用batch active learning算法,如ClusterMargin,平衡采样过程中的不确定性和多样性。
-
标注: 将数据发送给多个标注者进行打分,然后投票生成最终标签。对于模型response,标注者需要评估模型response是否违反了给定用户输入的策略
-
公平性扩展:扩展不同身份类别(如性别、种族、民族、性取向和宗教)的公平性。包括使用LLM查找相关术语,随机生成同一身份类别中的另一个术语,并用少量样本LLM替换原始术语,同时保持相同的意义和正确的语法。
最后就是sft微调评测了。
ps:最近激情有点衰减,直接把论文笔记复制过来了,所以不详细~
更多AI工具,参考Github-AiBard123,国内AiBard123