LLM Steering 的回归:DeepSeek-V4-Flash 与对“智能”调控的追求
长期以来,影响大语言模型 (LLM) 的主要方式一直是“正门”:提示词 (prompting) 和微调 (fine-tuning)。然而,一种被称为“steering”(转向/引导)的技术——即在推理过程中直接操纵模型的内部激活值——正重新受到关注。这一转变很大程度上是由强大的开源权重模型和专门的推理引擎的出现所驱动的,这些工具允许工程师对模型进行实时的“脑部手术”。
最近的关注点集中在 DeepSeek-V4-Flash 以及像 DwarfStar 4 这样的项目上,后者是专门为该模型设计的 llama.cpp 精简版。由于 steering 需要访问模型的内部权重和激活值,这在历史上一直是大型 AI 实验室或学术研究人员的领域。随着能够与前沿智能体级编码能力相媲美的本地模型的出现,steering 对更广泛的开发者来说变得切实可行了。
Steering 如何工作:操纵内部状态
其核心在于,steering 是从模型的内部大脑状态中提取特定概念的过程,并在生成过程中增强与该概念相关的数值激活值。
朴素方法:激活差分 (Activation Differencing)
一种简单的方法涉及向模型输入两次一组提示词:一次是正常输入,一次是带有修饰符的输入(例如,“回答要简洁”)。通过从修改后的激活矩阵中减去正常提示词的激活矩阵,研究人员可以分离出“steering vector”(转向向量)。随后,可以将此向量添加到任何后续提示词的激活值中,从而在无需在提示词中明确要求的情况下诱导相同的行为。
高级方法:稀疏自编码器 (Sparse Autoencoders)
更先进的技术(如 Anthropic 使用的技术)涉及训练第二个模型来提取“特征 (features)”——即始终一起出现的行为模式。这些特征随后被映射回单个概念。虽然计算成本更高,但这种方法比简单的差分法能捕捉到更深层、更细微的模式。
Steering 的实际效用
虽然提示词对于简单任务通常已经足够,但 steering 提供了几个理论和实践上的优势:
绕过模型拒绝 (Bypassing Model Refusals)
steering 最强大的应用之一是“abliteration”(消除/去屏蔽)或去审查。正如社区讨论中所指出的,许多模型的拒绝行为都与单个向量相关。通过识别并“削弱”这个向量,有可能动态地移除拒绝行为。
Antirez,DwarfStar 4 的创建者,指出这种运行时 (runtime) 方法优于直接修改 GGUF 文件(模型权重)。在运行时应用 steering 允许进行“手术式”的应用——例如,仅在模型“思考”后应用,或者仅当拒绝能量超过一定阈值时应用——从而最大限度地减少对模型通用能力的损害。
超越提示词
有人认为提示词是有局限性的,因为它只能从现有的训练数据中进行“模式挖掘”。相反,steering 允许直接调整模型的内部状态。这为 LLM 的“控制面板”打开了大门,用户可以调整关于简洁性、严谨性或速度的滑块,而无需进行提示词工程的试错。
怀疑论者的观点:Steering 仅仅是一种“作弊码”吗?
尽管令人兴奋,但 steering 的广泛采用仍面临重大障碍:
- 智能悖论: 我们能找到代表“智能”的 steering vector 吗?像智能这样复杂的概念很可能与模型的整个权重集是共存的。试图通过 steering 来引导智能,可能只是在描述训练更聪明模型的另一种方式。
- 数据压缩极限: 针对复杂知识(例如,“对特定代码库的知识”)进行 steering 的想法是雄心勃勃的。这类复杂的概念可能需要完整的微调,而非简单的激活增强。
- 提示词效率: 对于大多数用户来说,在提示词中添加“请简洁”比计算并应用一个 steering vector 要快得多,也更高效。
结论:模型控制的未来
目前,steering 处于一个“中产阶级”地位:对于那些可以直接重新训练模型的实验室来说,它太初级了;而对于普通的 API 用户来说,它又太技术化了。然而,随着开源权重模型变得越来越强大,以及像 DwarfStar 4 这样的工具使内部激活值的访问变得民主化,格局可能会发生变化。
如果社区能够为热门模型构建一个可增强特征的“库”,我们可能会走向这样一个未来:LLM 不仅仅是通过提示词来引导,而是像乐器一样被实时调音,以适应开发者工作流的具体需求。