EasyEdit2:浙江大学团队开发的实时LLM编辑导向框架
EasyEdit2是什么?
EasyEdit2是浙江大学团队开发的易于使用的LLM编辑导向框架,与 EasyEdit 不同,它能在推理时实时导向大语言模型,通过可插拔导向向量实现测试时控制、无需训练,具备可调节性和可组合性,可应用于安全、情感、个性等多种场景。其架构包含数据集、方法、向量库和评估模块四个核心组件,使用时按准备训练数据、生成导向向量、应用到模型、验证结果四个步骤操作。
功能特点
实时控制:EasyEdit2 通过可插拔的操控向量,在模型推理阶段实现实时、无需训练的控制。
即插即用:用户无需修改模型权重,即可无缝应用或移除操控方法。
易用性:用户无需深厚技术背景,仅需一个示例,即可有效引导和调整模型响应。
可调节性与组合性:用户可以精确调整干预强度和方向,并结合多种操控技术,实现细粒度控制。
多样化应用场景:支持多种测试时干预功能,涵盖安全性、情感倾向、个性特征、推理模式、事实准确性及语言特性等方面。
核心模块
操控向量生成器(Steering Vector Generator):自动生成操控向量,用于影响模型行为。
操控向量应用器(Steering Vector Applier):将生成的操控向量应用到模型中,以实现对模型行为的调整。
应用场景
安全性:抵御越狱攻击、减少社会偏见、降低隐私泄露风险。
情感倾向:控制模型输出的情感从消极转向积极。
个性特征:定制模型的个性。
推理模式:干预推理过程,防止过度思考。
事实准确性:更新模型知识,保持其知识的时效性。
语言特性:定制语言风格以满足特定需求。
使用方法
准备训练数据,如定义训练数据集和生成数据集。
使用BaseVectorGenerator生成导向向量。
通过BaseVectorApplier将向量应用到模型,并生成导向后的输出。
验证导向后的模型输出结果,使用完后可重置模型。
常见问题
问:EasyEdit2 与 EasyEdit 的主要区别是什么?
答:EasyEdit 通过更新内部参数或引入额外参数实现知识编辑,而 EasyEdit2 能在推理时实时导向大语言模型,且无需重新训练,通过可插拔导向向量实现多种控制功能。
问:EasyEdit2 如何实现对大语言模型的多场景应用?
答:EasyEdit2 利用其可调节性和可组合性,通过控制干预强度和组合多种导向技术,针对不同场景需求对模型进行调整。例如在安全场景加强安全性,在情感场景调整模型情感等。
问:EasyEdit2 使用过程中涉及哪些核心类和配置文件?
答:使用过程中涉及BaseVectorGenerator和BaseVectorApplier这两个核心类,分别用于生成导向向量和应用向量;还涉及配置文件,如使用OmegaConf.load('./hparams/Steer/config.yaml')加载配置。
相关链接
项目主页:https://zjunlp.github.io/project/EasyEdit2
GitHub仓库:https://github.com/zjunlp/EasyEdit
arXiv:https://arxiv.org/abs/2504.15133
Hugging Face:https://huggingface.co/papers/2504.15133