面向 LLM 的群体优化(PSO、ACO)

Learn + Build~75 minutesPython (stdlib)先修要求: Phase 16 · 09 (Parallel Swarm Networks), Phase 16 · 14 (Consensus and BFT)
仿生优化正在 LLM 领域复兴。LMPSO(arXiv:2504.09247)使用 PSO,其中每个粒子的速度是一个 prompt,由 LLM 生成下一个候选;在结构化序列输出(数学表达式、程序)上效果良好。Model Swarms(arXiv:2410.11163)把每个 LLM 专家视为模型权重流形上的一个 PSO 粒子,在 9 个数据集、仅 200 个实例的条件下,相比 12 个基线取得 13.3% 的平均增益。SwarmPrompt(ICAART 2025)将 PSO 与灰狼算法混合用于 prompt 优化。AMRO-S(arXiv:2603.12933)是受 ACO 启发的信息素专家机制,用于多 Agent LLM 路由——4.7 倍加速、可解释的路由证据、质量门控的异步更新,将推理与学习解耦。本课在 prompt 参数空间上实现 PSO,在 Agent 路由上实现 ACO,并测量这些经典算法为何契合 LLM 时代,以及何时不契合。

问题

你的 prompt 在任务评测上得分为 62%。你想改进它。朴素的做法是无梯度的人工反复调整,可扩展性很差。强化学习需要奖励信号和足够多的 rollout 才能训练。通过 prompt 做反向传播实际上不可能——prompt 是离散字符串,不是可微参数。

经典的仿生优化——PSO 用于连续搜索空间,ACO 用于路径选择——正是为这种情形设计的:无梯度、基于种群、单次评估成本低。把它们与 LLM 结合起来完成无梯度的搜索步骤,你会得到一个出奇实用的优化器。

同样的模式也适用于多 Agent 系统中的 Agent路由。ACO 风格的信息素轨迹记录哪个 Agent 在哪类任务上表现最好,让路由器能利用这条轨迹,同时信息素会衰减,使路由可以被重新发现。

概念

PSO 回顾(Kennedy & Eberhart 1995)

粒子群优化(Particle Swarm Optimization):连续搜索空间中的一个粒子种群。每个粒子有位置 x_i 和速度 v_i。每次迭代:

v_i <- w * v_i + c1 * r1 * (p_best_i - x_i) + c2 * r2 * (g_best - x_i)
x_i <- x_i + v_i
evaluate fitness(x_i)
update p_best_i if improved
update g_best if global best

其中 p_best 是粒子自身的历史最优,g_best 是整个群体的历史最优,w, c1, c2 分别是惯性、认知和社会权重,r1, r2 是随机因子。

在 LLM 输出上应用 PSO —— LMPSO

arXiv:2504.09247 将 PSO 适配到 LLM 生成的结构化输出(数学表达式、程序)。每个粒子是一个候选输出。速度是一段prompt,描述如何把当前输出朝个体最优/全局最优修改。LLM 根据速度 prompt 生成新输出。速度的「惯性」是一段类似「做小幅增量修改」的 prompt。

它在以下情况下效果良好:

  • 输出是结构化的(可解析、可评估)。
  • 适应度是自动的(测试运行、算术求值)。
  • 种群规模小(约 10-30 个粒子),使 LLM 调用总量可控。

当适应度需要人工评审时效果不佳——每次迭代的成本会变得难以承受。

Model Swarms

arXiv:2410.11163 把 PSO 从输出层移到模型层。每个「粒子」是一个专家 LLM(参数)。群体通过无梯度更新把参数朝集体最优移动。报告结果:在 9 个数据集上相比 12 个基线平均增益 13.3%,每次迭代仅用 200 个实例。

关键洞察是,LLM 专家模型本来就位于共享参数流形上的邻近位置(adapter 权重、LoRA 增量)。在这个低维子空间上做 PSO 既便宜又有效。

ACO 回顾(Dorigo 1992)

蚁群优化(Ant Colony Optimization):蚂蚁在图上遍历;每条路径带有信息素轨迹。蚂蚁的移动概率按信息素强度加权。完成任务的蚂蚁会按解的质量沉积信息素。信息素随时间衰减。

AMRO-S —— 用于 Agent 路由的 ACO

arXiv:2603.12933 将 ACO 用于多 Agent 路由。每种任务类型是一个「目的地」;每个 Agent 是一条可能的路线。信息素会强化产出良好输出的路线。关键贡献:

  • 可解释的路由证据。 信息素强度是一个人类可读的信号。
  • 质量门控的异步更新。 只有在质量检查通过后才更新信息素,将推理与学习解耦。
  • 4.7 倍加速,在多 Agent 路由基准上。

质量门控很重要:没有它,快但错的 Agent 会累积信息素,系统会锁定在糟糕的路线上。

何时对 LLM 使用 PSO / ACO

在以下情况使用 PSO:

  • 搜索空间是连续的,或可映射到连续参数(prompt embedding、LoRA 权重、数值生成参数)。
  • 适应度计算便宜且自动。
  • 种群规模可以很小(10-30)。

在以下情况使用 ACO:

  • 你面对的是路由或路径选择问题。
  • 决策随时间得到强化(相同任务类型会反复出现)。
  • 你需要可解释的路由决策证据。

在以下情况两者都不要用:

  • 适应度需要人工评审(每次迭代太贵)。
  • 搜索空间是离散组合式的,PSO 覆盖不了(改用遗传算法)。
  • 实时决策需要严格延迟(PSO/ACO 相对单遍启发式收敛太慢)。

仿生方法为何仍然胜出

基于梯度的方法需要可微信号。LLM 输出和路由决策并不容易求导。伪梯度方法(强化学习路由、DPO 式 prompt 调优器)可行,但需要昂贵的训练。

PSO 和 ACO 只需要一个评估器函数。只要你能给候选输出或路由决策打分,就能在该空间上优化。这大大降低了适用门槛。

实际限制

  • 种群预算。 N 个粒子 × T 次迭代 × 每次评估成本。按每次调用约 $0.02 的 LLM 评估计算,20 个粒子、50 次迭代的 PSO 约需 $20。要提前规划。
  • 探索与利用。 信息素衰减率和 PSO 惯性需要权衡;衰减太快 → 忘记解;太慢 → 卡在早期局部最优。
  • 灾难性漂移。 两种算法都可能先收敛再发散——如果适应度景观发生偏移(新的数据分布)。要监控最优适应度的稳定性。
swarm-stigmergy静态版本未包含此交互图

构建它

code/main.py 实现了:

  • LMPSO——在数值 prompt 参数(temperature、top_k 权重)上的 PSO。每个粒子的「LLM 生成」用一个脚本化的适应度函数模拟。运行算法 30 次迭代,展示 g_best 收敛。
  • AMRO_S——ACO 风格的路由。3 个 Agent、4 种任务类型、信息素矩阵、100 个路由任务。打印(任务类型 → Agent 选择)随时间的分布,以展示轨迹的形成。
  • 对比:在同一任务流上比较随机路由与 ACO 路由。测量质量与延迟。

运行:

python3 code/main.py

预期输出:

  • LMPSO:g_best 适应度从随机水平提升到接近最优,历经 30 次迭代。
  • AMRO-S:信息素表在每种任务类型上稳定到正确的 Agent;ACO 路由在质量上比随机路由高约 30-40%,同时降低延迟(重试更少)。

使用它

outputs/skill-swarm-optimizer.md 帮助在 PSO、ACO、遗传算法和基于梯度的优化器之间做选择,用于 LLM / Agent 优化问题。

交付它

  • 从小开始。 10-20 个粒子,20-50 次迭代。只有在收敛曲线显示明显增益时才扩大规模。
  • 每次迭代记录信息素或 g_best。 没有轨迹可看时调试群体优化器十分痛苦。
  • 对更新做质量门控。 尤其对 ACO 路由:快而错的 Agent 绝不能累积信息素。
  • 在分布偏移时重置衰减。 当评估分布变化时,陈旧的信息素已过时;重置或暂时把衰减率加倍。
  • 限制每次迭代成本。 输出每次迭代成本的指标。每次迭代花 $500 却只提升 0.5% 的 PSO 不可交付。

练习

  1. 运行 code/main.py。观察 LMPSO 的收敛。将种群规模改为 5、10、20、50。规模多大时收敛时间饱和?
  2. 实现「灾难性漂移」实验:在第 30 次迭代后改变适应度函数。PSO 适应得有多快?重置 p_best 是否有帮助?
  3. 给 AMRO-S 添加质量门:仅在评估分数 > 0.7 的运行中沉积信息素。这与无门控版本相比如何改变收敛?
  4. 阅读 LMPSO(arXiv:2504.09247)。把论文中「速度即 prompt」映射回你的数值速度。仿真中丢失了什么,又保留了什么?
  5. 阅读 AMRO-S(arXiv:2603.12933)。用异步信息素更新实现解耦的「推理快路径」。在持续负载下这会如何改变系统延迟?

关键术语

术语常见说法真实含义
PSO「粒子群优化」Kennedy-Eberhart 1995。基于种群的无梯度优化器。
ACO「蚁群优化」Dorigo 1992。通过信息素轨迹进行路径/路线优化。
LMPSO「带 LLM 生成的 PSO」arXiv:2504.09247。速度是一段 prompt;LLM 产生候选。
Model Swarms「在专家权重上做 PSO」arXiv:2410.11163。在模型参数子空间上做无梯度更新。
AMRO-S「用于 Agent 路由的 ACO」arXiv:2603.12933。任务类型 × Agent 的信息素矩阵。
p_best / g_best「个体最优 / 全局最优」每个粒子以及整个群体迄今找到的最优解。
信息素「路由记忆」边上的强度;随时间衰减;按质量沉积。
质量门控更新「只从好的运行中学习」信息素沉积以质量检查为条件。
灾难性漂移「分布偏移」适应度景观变化;旧的 p_best 和信息素变得过时。

延伸阅读

示意图共 1 张

swarm-opt diagram
swarm-opt

“Stay hungry, stay foolish.”

— Steve Jobs

esc
↑↓切换↵打开esc关闭