结合标题可知,这篇文章的重点是使用LLM求解机器人的路径规划问题。路径规划在日常生活中普遍存在且有多种形式:
-
规划2个地点之间的路径:比如周末要与朋友前往一家新店聚餐,往往需要借助地图APP提前规划好路线;
-
规划多个地点之间的路径:比较具有代表性的是旅行商问题(简称TSP)。如下图所示,TSP问题是指一个旅行商需要依次访问N个城市,启程之前旅行商需要规划好路径且需要满足【每个城市只访问1次&最终回到起点】的要求。此外,为了降低成本,旅行商致力于构建出1条总里程最短的路径;
对于机器人领域,以TSP为代表的多节点路径规划问题非常重要。在过往的工作中,求解TSP以及变种问题通常需要数学建模(实际需求 => 数学模型)、编写代码、调用求解器等多个环节。然而,近期以GPT-4为代表的LLM在求解优化问题上展现出了潜力,因此今天分享的这篇文章尝试探讨LLM求解TSP及变种问题的能力(大致流程如下图所示,简称word2routes)。
为了进行全面的分析,word2routes这篇文章首先设计了80个路径规划问题(涉及8类细分问题且覆盖了single-robot、multi-robot场景),然后通过实验探讨了不同求解框架、在prompt中引入不同的先验知识对LLM求解TSP问题的影响。实验发现引入self-debugging以及self-verification机制有助于提升问题求解的成功率但没有降低可行解跟最优解的gap。此外,作者们还发现在prompt中引入相关问题的数学公式能降低gap但同时也会降低求解成功率,而引入伪代码或者相关的学术文章对不同问题的求解没有较为一致的影响。接下来,本文将从具体方案以及实验这2方面介绍下word2routes。
一、具体方案
如上图所示,word2routes设计了3类方案:
-
single-attempt:最简单的方案 (右图中的step1),输入是问题的文本描述,输出是问题的解;
-
self-debugging:在single-attempt基础上引入了反馈机制 (右图中的step2)。当代码执行有误时,错误信息会被反馈给LLM。接着,LLM会根据错误信息对代码进行调整 & 重新走代码执行流程;
-
self-debugging&self-verification:在self-debugging基础上引入了基于单测的结果校验机制,其出发点在于处理代码能正常跑但产出的解不符合约束的情况。为了进行校验,引入了step3&step4。其中,step3使用LLM从文本描述中总结出约束信息,而step4则基于约束信息构建单测&校验代码执行结果的正确性;
二、实验
-
评估集:总共设计了80个问题,涉及8类TSP及变种问题,
-
针对single robot:TSP、BTSP(单条路线最大距离最小化)、k-TSP(仅需要访问k个城市)、GTSP(对于每个城市簇,只需要访问1个城市);
-
针对multiple robots:m-TSP(多个旅行商)、MinMax m-TSP(多个旅行商&单个旅行商最大距离最小化)、MD m-TSP(多个旅行商&多个出发城市)、CVRP;
-
评估指标:产出可行解的成功率;可行解跟最优解的gap(越小越好);执行时间;消耗费用;
-
相关分析:
-
3个方案的效果对比:
-
成功率:整体的排序是self-debugging&self-verification(71.5%) > self-debugging(55.5%) > single-attempt(28%)。对于不同的问题,引入self-debugging均有正向收益。然而,self-verification机制在GTSP以及MinMax m-TSP上有负向效果,作者发现主要原因在于self-verification在某些时候会将正确的结果判断为错误;
-
跟最优解的gap:整体的排序是single-attempt(34.48%) > self-debugging(37.17%) > self-debugging&self-verification(38.65%) 。此外,在部分问题上,引入self-debugging/self-verification会有明显的负向作用;
-
self-verification模块的有效性:反馈信息的质量有待改善;
-
False Negative:将正确结果判断为错误的概率 => 75 / 249 (30.12%);
-
False Positive:将错误结果判断为正确的概率 => 6 / 40 (15%);
-
针对不同规模的问题:扩大问题的规模,模型的求解效果通常也会变差。
-
GPT-4 Turbo求解过程:构建的代码中,60.1%是启发式算法,38.9%是精确算法;
-
分析在prompt中引入不同先验知识的效果:引入相关问题的数学公式能降低gap但同时也会降低求解成功率,而引入伪代码或者相关的学术文章对不同问题的求解没有较为一致的影响(模型的求解对伪代码和学术文章比较敏感);
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。