跟着蚂蚁走,它们知道路:用 ACO-ToT 增强 LLM 推理能力

利用群体智能和思维树优化解锁高级 AI 推理能力

Salvatore Raieli

                                                                作者使用 AI 生成的图片

“我发现,如果你仔细观察这个美丽的世界,总能在下面找到红蚂蚁。”——大卫·林奇

大语言模型(LLMs)展现出了极大的能力,模仿了一些通常与人类相关的技能,比如解决数学问题或写出看似富有创意的文本。这一点在多个基准测试的持续进展中得到了证明。然而,这并不意味着它们不会产生错误或计算效率低下。特别是在需要战略规划、探索或计算的应用中,这些限制尤为明显。

为了尝试解决这些模型的局限性,人们提出了一些基于认知科学原理的技术。例如,思维链(Chain-of-Thought, CoT)试图让模型推理出中间步骤,而不是直接给出答案。这种方法也成为了最近深度推理模型的基础。然而,普通的 CoT 只评估解决问题的一种方法,而人类会探索多种潜在的解决方案。因此,思维树(Tree-of-Thought, ToT)或思维图(Graph-of-Thought, GoT)等技术超越了 CoT 的线性进程,探索不同的想法。但这些方法的缺点是,它们的计算成本会随着中间步骤的增加而增长。

如何在优化过程的同时探索不同的解决路径?我们能否在不牺牲性能的情况下高效地探索不同的推理路径?

在本文中,我们探讨了这个问题,以及一些研究人员如何从蚂蚁的运动中找到解决方案。

人工智能正在改变我们的世界,塑造我们的生活和工作方式。理解它的运作方式及其影响从未如此重要。如果你想要简单、清晰地理解复杂的 AI 话题,你来对地方了。点击关注或免费订阅,以获取我最新的故事和见解。

在这篇新发表的论文中,研究者提出将蚁群优化(Ant Colony Optimization, ACO)应用到 LLMs 中,以优化推理空间。ACO 是一种受自然启发的元启发式算法,常用于解决优化问题,特别是像旅行商问题(TSP)这样的组合优化问题。它模仿了真实蚂蚁的觅食行为,蚂蚁利用信息素找到从巢穴到食物源的最短路径。

该过程可以总结为四个步骤:

  1. 蚂蚁最初随机移动,在探索环境的同时留下信息素路径。

  2. 当蚂蚁找到食物后,它会返回巢穴,同时在路径上加强信息素,使其他蚂蚁更倾向于选择信息素浓度较高的路径。

  3. 但信息素会随时间蒸发,防止系统收敛到次优解,并促使蚂蚁继续探索。

  4. 蚂蚁基于概率选择路径,概率由信息素的强度决定。信息素越强,蚂蚁选择该路径的可能性就越大。

从数学上讲,这可以表示为一个图,其中蚂蚁从节点 i 选择路径 j 的概率如下:

其中 Pij 是从 i 到 j 的路径选择概率,τij 是边 (i, j) 上信息素的强度,η 是距离的缩放系数(1/距离),N 是节点数。我们可以通过 α 来定义信息素的影响,通过 β 来控制距离的影响。

在每次迭代后,信息素水平根据以下公式更新:

其中 ρ 是蒸发率,m 是蚂蚁的数量,Δτijk 是蚂蚁 k 添加的信息素数量。

该算法鲁棒、灵活,并符合人脑的某些原理,比如赫布学习(Hebbian learning)。赫布学习是一种神经科学原理,指的是当神经元反复被激活时,它们之间的突触连接会变得更强(通常用一句话概括:“一起触发的神经元,会连接在一起”)。文章作者认为,这种原理可以与思维树(ToT)等方法结合。

“我们提出 ACO 引导的思维树(ACO-ToT),这是一种新算法,它结合了 ToT 的探索能力和 ACO 的集体智能,以发现最优的推理路径。”——来源

在这里,我们可以想象“蚂蚁”就是我们的 LLMs,它们在搜索高质量的思维(食物)。图从问题 x 开始,生成思维树 T(每个节点代表一个推理状态,每条边代表从一个思维到另一个思维的过渡)。

有多个 LLMs(类似于 ACO 中的多个蚂蚁)在我们的图中穿梭。这里,这些 LLMs 是经过不同推理能力微调的模型,提供不同的专业知识。在每个时间步 t,我们的蚂蚁(LLM)从一个思维跳到另一个思维,并释放信息素:

如何评估是否找到了食物?

每条路径 P 是一系列思维(思维链),我们评估其质量 Q(P):

其中 C(P) 是语义一致性(通过嵌入计算两个思维的余弦相似度),L(P) 用于惩罚过长的路径(基于路径长度的负对数),M(P) 是专家模型评分(多个 LLM 的评分),w1, w2, w3 是平衡这些项的权重。

在这个阶段,∆τ k ij = Q(Pk),信息素水平根据以下公式更新:

算法会持续迭代,直到达到最大迭代次数(T)或找到足够多的不同路径。此时,我们根据图中信息素最高的路径选出最佳路径。这个路径可以由中央 LLM πc 用于生成最终答案。显然,最好让中央 LLM 规模更大,而小型 LLMs 作为蚂蚁。



对于作者在理论层面的结论:

• ACO 只要选择合适的信息素更新规则和蒸发率,就可以收敛到最优解。若成功,模型会达到全局最优,同时避免局部最优。

• ACO 的探索与利用平衡由信息素动态决定。可以通过 α(信息素权重,影响利用)和 β(探索权重)控制。此外,蒸发率也影响平衡,高蒸发率促进探索,低蒸发率促进利用。

• ACO 的计算复杂度是多项式级别,随蚂蚁数量和问题规模增长。在 ACO-ToT 中,每只蚂蚁在 t 次迭代中探索 N 个思维,中间调用 LLM 总次数为 ANt。每只蚂蚁都是一个独立的 LLM,因此需要专门的计算资源(即便是 6 个也能并行处理)。

在实验中,作者使用 Llama-70B 训练了 5 个不同领域的专家模型作为蚂蚁,并在 GSM8K、ARC-Challenge 和 MATH 数据集上进行测试。ACO-ToT 在所有基准测试中表现优越,通常在 6-8 轮迭代内收敛(复杂问题 10-12 轮)。

ACO-ToT 是一种新颖的算法,它通过结合蚁群优化(ACO)与思维树(ToT)框架来增强 LLM 的推理能力。受赫布学习(Hebbian Learning)启发,该方法利用经过微调的 LLM “蚂蚁” 来探索推理路径,并通过信息素强化有效的路径。一个混合专家(Mixture-of-Experts)评分函数用于评估解决方案,从而优化复杂问题的求解。实验表明,ACO-ToT 优于现有方法,突出了生物启发搜索在 LLM 推理中的潜力。

这种快速收敛在特征性的性能曲线上表现出来:在前 3–4 次迭代中性能迅速提高,随后进入渐近稳定状态,这表明该方法能够高效地探索推理空间。——来源

该系统之所以高效,是因为它在第一轮迭代中就已经趋近收敛。路径长度不会过长,平均为 4 步,对于最困难的 MATH 问题,平均为 6 步。

消融实验中的其他发现:

• 性能在 5 个专家时趋于饱和,表明不需要更多的专家。

• 在所有三个任务中,最优的探索与利用平衡参数分别为 α = 1.0 和 β = 2.0。

• 这种平衡导致较大的树结构,从而提供更多的推理路径。

• 具有更多样化的专家比同质专家能得到更好的结果。

ACO-ToT 是一种新颖的算法,它通过结合蚁群优化(ACO)与思维树(ToT)框架来增强 LLM 的推理能力。受赫布学习(Hebbian Learning)启发,该方法利用经过微调的 LLM “蚂蚁” 来探索推理路径,并通过信息素强化有效的路径。一个混合专家(Mixture-of-Experts)评分函数用于评估解决方案,从而优化复杂问题的求解。实验表明,ACO-ToT 优于现有方法,突出了生物启发搜索在 LLM 推理中的潜力。

这项研究有趣之处在于,它结合了搜索算法和提示技术(ToT),并以受神经科学启发的方式完成。尽管该方法计算昂贵,但它展示了一种无需强化学习即可平衡探索与利用的方式,并表明异质专家组合优于同质专家。未来可能需要自动调整参数或测试不同搜索算法。

然而,该方法仍然成本高昂,因为需要运行多个 LLM 专家,对于某些应用而言,这可能是不可行的。此外,参数是手动选择的,未来可以实现自动化。不同的搜索算法也可以在未来进行测试,或者可以使用不同的模型作为专家。

跟着蚂蚁走,它们知道路:用 ACO-ToT 增强 LLM 推理能力的更多相关文章

  1. Follow your hear(跟着心走)

    端午三天的哈尔滨之旅已经over,非常开心真的非常开心.听了刘四风老师的"为爱开讲.我爱这世界"的论坛,尽管.这三天老师讲的不多.可是句句是精华.Follow your heart ...

  2. python 之走坑的道路

    ### python之 继续走函数的坑 上篇文章简单介绍了函数的一些简单的使用,这次继续踩函数的坑1.函数对象 函数其实也可以当做一个参数传给另一个函数,也可以使用赋值的方式来给另一个,而且这两个的内 ...

  3. JQ图片跟着鼠标走

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 走上模拟道路 HDU4891

    http://vjudge.net/contest/view.action?cid=51327#problem/D Description Yoda: May the Force be with yo ...

  5. Altium Designer线如何跟着原件走

  6. 蚂蚁【A001】

    [1005]出自附中练习场,其他编号(1005)[难度A]——————————————————————————————————————————————————————————————————————— ...

  7. 3111: [Zjoi2013]蚂蚁寻路 - BZOJ

    题目描述 Description在一个 n*m 的棋盘上,每个格子有一个权值,初始时,在某个格子的顶点处一只面朝北的蚂蚁,我们只知道它的行走路线是如何转弯,却不知道每次转弯前走了多长.蚂蚁转弯是有一定 ...

  8. bzoj 3111 蚂蚁 动态规划

    题目描述 在一个 n*m 的棋盘上,每个格子有一个权值,初始时,在某个格子的顶点处一只面朝北的蚂蚁,我们只知道它的行走路线是如何转弯,却不知道每次转弯前走了多长. 蚂蚁转弯是有一定特点的,即它的转弯序 ...

  9. 洛谷P3335 [ZJOI2013]蚂蚁寻路

    题目描述 在一个 n*m 的棋盘上,每个格子有一个权值,初始时,在某个格子的顶点处一只面朝北的蚂蚁,我们只知道它的行走路线是如何转弯,却不知道每次转弯前走了多长. 蚂蚁转弯是有一定特点的,即它的转弯序 ...

  10. 蚂蚁运输(ant)

    蚂蚁运输(ant)Time Limit:5000ms Memory Limit:64MB[题目描述] LYK 在观察一些蚂蚁.蚂蚁想要积攒一些货物来过冬.积攒货物的方法是这样的.对于第i只蚂蚁, 它要 ...

随机推荐

  1. Golang基础库之net/http

    Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现. net/http介绍 Go语言内置的net/http包提供了HTTP客户端和服务端的实现. HTTP协议 超文本传输协 ...

  2. 文件监控工具之fileboy

    github:dengsgo/fileboy: fileboy,文件变更监听通知工具,使用 Go 编写.Fileboy, File Change Monitoring Notification Too ...

  3. NOIP 备赛:CF 2E 板刷

    从 \(2024.11.05\) 之前的比赛排着刷. CF2028 E 这道题主要考察的是手玩能力和转移技巧. 给定一棵树,根为 \(1\).爱丽丝的起点位于某个顶点 \(v\) .她想走出洞口,但不 ...

  4. 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(6)

    1.问题描述: 推送通知到手机,怎么配置拉起应用指定的页面? 解决方案: 1.如果点击通知栏打开默认Ability的话, actionType可以设置为0, 同时可以在.clickAction.dat ...

  5. Python 学习记录(3)

    数据 主要是对Pandas相关的数据帧等做处理和一定的可视化 Pandas对数据帧各列的运算 import seaborn as sns import pandas as pd #从Seaborn 当 ...

  6. Linx操作Nginx命令

    在 CentOS 上操作 Nginx 包括安装.启动.停止.重新加载配置等.以下是在 CentOS 上操作 Nginx 的常用命令: 安装 Nginx: sudo yum install nginx ...

  7. Chats 开发指南

    Chats 开发指南 欢迎使用 Chats!在我上一篇博客 https://www.cnblogs.com/sdcb/p/18597030/sdcb-chats-intro 中,我介绍了 Chats ...

  8. 在PlatformIO IDE中对ESP32的CPU主频等进行配置

    前言 rt,有一天开发中需要尽可能发挥ESP32的全部性能,提高主频自然是首选,在Arduino IDE中修改主频很方便,但在PlatformIO IDE中修改主频的方法网上说的却很少,今天就总结一下 ...

  9. Tableau 数值 以万显示

    # Tableau 数字以万显示 0"."0,万

  10. Jackson基本使用教程

    目录 如何将一个Json序列化对象封装成为一个Pojo是实体类对象 如何进行序列化与反序列化 如何将数据进行绑定 如何进行泛型数据绑定 如何使用Jackson树模型(将复杂Json手动映射到类型) 使 ...