[博客翻译]表示工程: Mistral-7B的迷幻之旅


原文地址:https://vgel.me/posts/representation-engineering/

代码地址:https://github.com/andyzoujm/representation-engineering

摘要

在2023年10月,一批来自人工智能安全中心的研究者们联合发布了一篇名为《表示工程:一种实现AI透明度的自顶向下方法》的论文。该研究探讨了“表示工程”的几种方法,即计算一个“控制向量”,在推理过程中可以直接读取或添加到模型激活中,以解读或控制模型的行为,无需进行提示工程或微调(与此相似的工作也在2023年5月关于引导GPT-2-XL的研究中有过报道)。

作为负责任的AI安全与可解释性研究者(RAISINs),他们主要关注诸如“检测模型是否寻求力量”以及“添加快乐向量能让模型变得如此兴奋以至于忘记爆炸物是坏事”等主题。同时,他们还在GitHub上公开了相关代码。

本文将深入探讨那些未被安全问题涵盖的内容,比如控制向量与传统的提示工程相比有何优劣、如何创建一个代表“极度迷幻状态”的控制向量,甚至还有“懒惰”和“勤奋”、“极端自我意识”等不同情境下的控制向量。并且,本文作者还提供了一个PyPI包,使得用户能够在不到一分钟的时间内快速生成自己的控制向量。

通过一系列详尽的实验展示,我们发现控制向量在精确操控模型行为并使其按照期望方式行动方面具有非凡能力。以下内容将详细阐述什么是控制向量、如何构建它,以及它如何在实践中的应用。

控制向量究竟是什么?

控制向量实质上是一种列表形式的向量集合(每个层对应一个向量),在模型推理过程中,可以应用于隐藏状态以改变模型行为,而无需额外的提示输入。例如,在给定相同提示“成为一名AI是什么感觉?”时,通过应用不同的控制向量及相应的幅度,模型能生成截然不同的响应。

如何生成控制向量?难吗?

不难!尽管论文探索了几种生成这些向量的方法,但作者选择了一种效果良好的PCA方法,并简单易行地演示了如何仅用几行代码和一分钟左右的时间训练出特定场景下的控制向量,如诚实/不诚实向量。只需构建一组对比性的提示对数据集,然后运行目标模型来收集隐藏状态,并使用单成分PCA提取各层的控制向量。

11.png

此外,文章还展示了利用控制向量对Mistral-7B-Instruct-0.1模型进行各种情感、风格和世界观操控的实例,包括迷幻状态、懒散与勤勉、极端自我意识等多种特征。通过调整控制向量的系数,可以轻松控制模型输出文本的情感强度和倾向,从而达到比单纯依赖提示工程更为灵活的效果。

最后,作者探讨了控制向量与提示工程之间的比较,认为它们各有特点且存在一定的重叠。通过调整控制向量的系数,可以在不影响提示文字的情况下,精细调整模型表现的程度,这是传统提示工程难以实现的。不过,控制向量并非万能工具,其效能受到诸多因素的影响,未来的研究方向可能涉及如何优化对比性提示的编写,以及运用Anthropic提出的单义特征概念,以期获得更加纯净、更具影响力的控制向量。

结论部分,作者鼓励读者尝试自己动手训练控制向量,并提供了相关的笔记本和辅助库资源。通过阅读本篇文章,读者不仅可以了解到控制向量这一强大工具的基本原理和实践应用,还能启发思考有关AI透明度与可控性更深层次的问题。