许可证: mit
许可证链接: https://huggingface.co/microsoft/Phi-3-medium-4k-instruct/resolve/main/LICENSE
语言:
- 多语言
任务标签: 文本生成
标签:
- 自然语言处理
- 代码
推理参数:
温度: 0.7
示例对话:
- 角色: 用户
内容: 你能提供一些香蕉和火龙果的搭配吃法吗?
Phi-3-medium-4k-instruct-abliterated-v3
我的Jupyter“食谱”用于复制该方法可以在这里找到,优化后的库即将推出
Phi-3-abliterated声明
花了我不少时间才搞定这个模型。距离我上次发布Phi-3模型已经有一段时间了。过去我无意中漏掉了模型发布流程中的一个必要环节——幻觉测试。
这个模型已经经过测试,尽管根据我的经验它比原始模型更容易产生幻觉,但总体上与原始模型一样稳定。
现在新的Phi-3模型已经发布,我正在快速完成这个“消融”过程,并尽快发布其他模型。🏇
概述
这是microsoft/Phi-3-medium-4k-instruct的正交化bfloat16 safetensor权重版本,采用了一种基于预览论文/博客文章“LLM中的拒绝行为由单一方向调控”中描述的优化方法生成。我建议你阅读该文章以了解更多。
等等,“消融”?正交化?切除?这是什么?
简而言之:这个模型的某些权重被调整以“抑制”模型表达拒绝的能力。这并不以任何方式保证它不会拒绝你、理解你的请求,它可能仍然会对你进行道德/安全方面的说教等。在其他方面,它与原始的70B指导模型相同,只是最强的拒绝方向被正交化去除了。
更简短的简而言之:这是我能做到的最纯粹的未审查版本——与原始模型相比,在其他任何方面都没有新增或改变的行为。
至于“消融”:这只是对原始论文中使用的“切除”术语的一个有趣的文字游戏,我特别创造了这个词来区分“未审查”的微调模型。
切除(Ablate)+ 彻底消除(obliterated)= Abliterated
无论如何,正交化/切除在这里都是指同一件事,即通过正交化技术将拒绝特征从模型中“切除”。
关于方法的更多细节,以及为什么这很有趣
对我来说,切除(或应用该方法的逆过程,“增强”)似乎非常适合诱导/移除那些你需要在系统提示中花费大量标记来鼓励或阻止的特定特征。
相反,你只需在切除脚本中对空白系统提示应用你的系统提示,并在相同的数据集上正交化,以在最终模型权重中获得期望的行为。
为什么选择这种方法而不是微调?
切除本质上更具针对性,同时执行所需的样本量远少于微调,我认为这是它的主要优势。
此外,它最有价值的方面是尽可能保留了原始模型的知识和训练,同时消除了它在一种非常特定的不良行为上的倾向(在这种情况下,是拒绝用户请求)。
微调仍然非常有用,是广泛行为改变的首选方法;然而,通过切除/增强技术,你可能只需很少的样本就能接近期望的行为。
这也可能是模型优化的一个有用步骤:正交化 -> 微调,或者反过来。
我还没有真正探索这个模型与微调的结合,我鼓励有能力的人尝试一下。
好吧,但为什么是V3?没有V2吗?
嗯,我之前在Cognitive Computations下为Meta-Llama-3-8B发布了一个V2消融模型。
最终发现不值得在更大的模型上尝试V2,我想在浪费计算周期之前优化模型,因为可能甚至不会得到更好的模型。
然而,我对这个最新的方法非常满意,它似乎诱导了更少的幻觉。
因此,为了表明这是一个比8B V2更先进的新方法,我决定效仿微软的做法,将版本号翻倍,因为这是一个“如此”重大的进步(或者借口是这样的,实际上是因为太多遗留但仍在使用中的微软库在操作系统名称中检查“Windows 9”以检测Windows 95/98。)
注意事项
由于该方法还很新,这个模型可能会带有一些有趣的怪癖。我鼓励你试用这个模型,并在社区标签中发布你注意到的任何怪癖,这将帮助我们进一步理解这种正交化的副作用。
如果你能开发出进一步的改进,请分享!这是使用切除的最基本方式,但我相信还有其他尚未探索的可能性。
此外,欢迎以任何方式联系我。我在Cognitive Computations的Discord上,我会关注社区标签,联系我吧!我很乐意看到这种方法以其他方式被使用,并会尽我所能支持任何人。