[博客翻译]表示工程: 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提取各层