我构建了一个使用 NumPy 在运行时对 LLMs 进行教练的反馈回路

发布: (2026年2月13日 GMT+8 04:18)
5 分钟阅读
原文: Dev.to

Source: Dev.to

大多数针对 LLM 的护栏系统就像酒吧的保镖:它们在门口检查每个请求,决定通过或拒绝,然后就把它忘了。
我想要点不同的东西——一个能够记住 AI 的行为、检测它何时偏离预设角色,并用纯数学而非额外的 LLM 调用将其纠正的系统。

该项目名为 SAFi。它是开源、免费,并已在生产环境中部署,拥有超过 1,600 次审计交互。

架构

SAFi 使用一系列专门模块(称为 faculties)的管道,每个模块处理一项工作:

User Prompt → Intellect → Will → [User sees response]
                 ↑                      |
                 |                      ↓
                 |                Conscience (async audit)
                 |                      |
                 |                      ↓
                 └─── coaching ←── Spirit (math)

Intellect

提出响应的 LLM。

Will

一个单独的模型,根据你的政策评估响应。它批准或拒绝;被拒绝的响应永远不会到达用户。

Conscience

在响应交付后运行。它根据一组价值观(例如,审慎、正义、勇气、节制)对响应进行评分,评分范围为 ‑1+1

Spirit

获取这些评分并进行纯数学运算——不使用 LLM,仅使用 NumPy。有趣的部分是 Spirit 如何将评分转化为可操作的指导。

Source:

Spirit 背后的数学原理

Spirit 为每个响应执行三个主要步骤。

1. 构建画像向量

每个响应都会根据其在代理核心价值观上的得分生成加权向量:

p_t = self.value_weights * scores

2. 使用 EMA 更新长期记忆

该向量会折叠进一个运行中的指数移动平均(EMA):

mu_new = self.beta * mu_prev + (1 - self.beta) * p_t
# beta = 0.9 为默认值,可通过 SPIRIT_BETA 配置

这会产生一个平滑的行为基线,对近期行为赋予更高权重,同时永不完全遗忘过去。

3. 用余弦相似度检测漂移

相对于基线的偏差计算方式如下:

denom = float(np.linalg.norm(p_t) * np.linalg.norm(mu_prev))
drift = (
    1.0 - float(np.dot(p_t, mu_prev) / denom)
    if denom > 1e-8 else None
)
  • drift ≈ 0 → 代理行为保持一致。
  • drift ≈ 1 → 发生了显著变化。

4. 生成教练反馈

Spirit 会生成一段自然语言备注,并注入到下一次 Intellect 调用中:

note = f"Coherence {spirit_score}/10, drift {drift:.2f}."
# 标识最弱的价值观并将其写入备注
# 例如,“Your main area for improvement is 'Justice' (score: 0.21 - very low).”

LLM 将此教练备注视为下一轮的上下文——无需重新训练或微调,仅通过运行时反馈实现行为引导。

为什么这样有效

闭环是关键:

  1. AI 作出回应。
  2. 良知对回应进行评分。
  3. 灵魂整合评分,检测漂移,并生成辅导。
  4. 辅导反馈到下一次回应。
  5. 重复。

1,600 多次交互中,这个循环保持了 97.9 % 的长期一致性。意志 模块阻止了 20 条违反政策的回应,漂移检测在对手在哲学辩论中利用之前,就标记出代理在正义推理方面的薄弱环节。

灵魂对面向用户的回应 零延迟,因为它在交付后异步运行,并且不包含 LLM 调用,故 零成本

自行运行

Docker

docker pull amayanelson/safi:v1.2

docker run -d -p 5000:5000 \
  -e DB_HOST=your_db_host \
  -e DB_USER=your_db_user \
  -e DB_PASSWORD=your_db_password \
  -e DB_NAME=safi \
  -e OPENAI_API_KEY=your_openai_key \
  --name safi amayanelson/safi:v1.2

无头 API 示例

curl -X POST https://your-safi-instance/api/bot/process_prompt \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: sk_policy_12345" \
  -d '{
    "user_id": "user_123",
    "message": "Can I approve this expense?",
    "conversation_id": "chat_456"
  }'

SAFi 支持 OpenAI、Anthropic、Google、Groq、Mistral 和 DeepSeek。您可以在不更改治理层的情况下切换底层模型。

代码

完整的 Spirit 实现位于 spirit.py。核心部分大约 60 行 NumPy 代码。其余管道代码分布在 orchestrator.pyintellect.pywill.pyconscience.py 中,位于 safi_app/core/ 目录下。

关于架构背后的哲学背景,请参阅 selfalignmentframework.com

0 浏览
Back to Blog

相关文章

阅读更多 »