今天跟大家分享一篇来自于香港城市大学发表的智能车辆调度方法,该文章提出了一种GPT增强的智能控制强化学习方法, 高效解决了乘客需求以及区域车辆供给之间的不平衡。 具体的,该论文利用多视图交通图来捕捉分层交通状态,并学习考虑个人驾驶行为的动态奖励函数。 同时,提出的框架还进一步集成并使用了自定义损失函数训练的GPT模型,以实现高精度预测并优化现实场景中的调度策略。 提出的框架在两个真实数据集上进行的实验表明,其有效地与驾驶员行为保持一致,同时降低了车辆的空载率。
标题: GARLIC: GPT-Augmented Reinforcement Learning with Intelligent Control for Vehicle Dispatching
论文链接:https://arxiv.org/abs/2408.10286
代码链接:https://github.com/Applied-Machine-Learning-Lab/GARLIC
1 背景与意义
随着城市居民对旅行质量的需求增加,车辆调度能够平衡不同城市区域之间的车辆供给需求, 降低乘客停车等待时间,是在线网约车服务中的重要缓解。 而当前的车辆调度系统面临城市交通动态复杂性的问题,如不可预测的交通状况、 多样的驾驶员行为以及供需模式的波动,这导致了一些地区的乘客打车困难, 而其他地区的司机则无法接到订单,影响了整体城市交通服务质量。 为了解决这些问题,论文提出了一个名为GARLIC (GPT-Augmented Reinforcement Learning with Intelligent Control)的框架, 使用强化学习和GPT模型来改进车辆调度。
2. 挑战
论文还提到传统多智能体强化学习方法在车辆调度中面临的挑战:
-
车辆作为独立代理(agent)只能获得附近的环境状态,难以获取全局的供需视图,如图1(a)所示。 例如图中红色车辆只能感知其周围环境,且感知能力随着距离的增加呈指数下降。 而为了增加车辆的感受野,我们通常需要与其他网联车辆进行多跳通信。
-
车辆的多跳通信会带来通信延迟,如图1(b)所示。该通信时延会对算法实时性造成重大影响且不能被忽视。
-
此外,不同粒度的交通流表现也有所不同,如图1©所示。 例如,宏观层面的交通路网提供了不同区域之间车辆旅行时间的差异, 而微观层面的城市道路可以直接获取路段拥堵情况。 这些信息无法在同一个交通粒度下同时获取。
3. 方法
为应对这些挑战,论文提出了一种称为GARLIC的框架,使用GPT增强的强化学习和智能控制技术来优化车辆调度。 该框架利用多视图图表学习来捕捉分层的交通状态,并学习考虑个体驾驶行为的动态奖励函数,最终通过自定义损失函数训练的GPT模型来实现高精度的调度政策优化。
3.1 分层交通状态表征
由于城市时空数据具有层次特征,且无法使用单一的结构化数据格式直接表示。 例如,十字路口转弯等特征只能从交通环境的微观层面来捕捉, 而平均出行时间则是只能从同一环境的宏观层面来观察的特征。 这些特征在采样频率、维度和单位方面有所不同,需要专门的方法来准确地表示和集成它们。
为了解决这个问题,作者将道路网络呈现为多视图蜂窝图,如图 3(a) 所示。 在该表示中,道路网络被划分为由不同半径的方形六边形组成的网格,每个网格代表一个不同的视图。 在这里,基于六边形的网格确保所有相邻邻居到中心网格的距离一致, 与基于方形网格的方法相比,有利于对不同空间区域进行更精确的建模。 为了构建多视图图,每个网格被视为一个节点,网格中的交通信息被视为节点特征,边连接相邻网格, 如图3(b)所示。
与其他路网建模方法不同,作者针对不同粒度交通图计算不同的交通指标作为图的特征。 微观层面的交通图主要利用车辆轨迹、道路拥堵状况、车辆速度等数据, 这些数据可以直接从车辆的局部环境(半径≤1km)获取。 中观层面的图考虑了交通量、平均交通速度、交叉路口性能和停车可用性等因素, 需要对经过一组特定交通路段1(1公里<半径<5公里)的所有车辆进行分析。 同时,宏观层面的图包含平均出行时间、路网连通性和整体交通状况等特征, 这需要对更广泛的路网范围(半径≥5km)的车辆进行更全面的分析。 这里,作者分别用图卷积算法结合GeoHash方法对不同粒度的交通图进行特征提取。
3.2 动态回报生成
现实场景中车辆调度的有效实施很大程度上受到驾驶行为的影响。 然而,早期的研究往往忽略了驾驶行为的量化, 而是专注于最大限度地减少车辆不平衡或最大化调度优化的效益 。 为此,作者提出了一种动态奖励生成方法,该方法结合了驾驶行为和预期收入。 它通过实时分析车辆轨迹来量化驾驶员遵守驾驶习惯的可能性。 如图2所示,作者采用GRU模块,结合前一时刻的多视图交通图提取的特征以及实时交通费用动态预测车辆的回报。
3.3 GPT增强的调度策略学习
通常,车辆调度可以有效地建模为MARL (Multi-Agent Reinforcement Learning)问题, 也可以重新表述为监督学习任务。 在这种情况下,状态和奖励被视为顺序输入数据,相应的动作序列被视为输出数据。 然而,交通系统的复杂性,需要对错综复杂的交通状态和驾驶行为进行分析,需要先进的推理能力。 最近,GPT模型在处理长序列、上下文相关和结构化数据方面表现出了强大的性能。 因此,作者利用 GPT 增强模型来应对这些挑战,如图2的上半部分所示。
此外,作者设计了一个新颖的损失函数,GeoLoss,旨在让提出的框架更好的识别地理空间中调度的差异,提升模型的表现。
4. 实验验证
4.1 整体表现
作者将提出的GARLIC框架与传统在线/离线强化学习方法(MT,FTPPEDEL,TD3+BC,CQL,DT,RLPD,Latent offline RL,SS-DT), 以及传统车辆调度系统(DGS,A-RTRS)进行比较,如表1所示。
我们可以看到,与其他传统车辆调度系统相比,GARLIC 显着降低了误差, 这主要是由于框架在反向传播和训练过程中采用了更有效的损失函数且准确建模的驾驶行为特征来指导模型。 与在线强化学习方法不同,几乎所有离线强化学习方法(包括提出的方法) 都通过更好地利用离线数据进行有效训练而优于在线方法。 此外,传统的离线强化学习方法(例如 TD3+BC、CQL 和 RLPD) 由于无法在可接受的传输延迟内收集全面的交通信息,因此在较大的杭州数据集上表现不佳。 尽管 DT、潜在离线 RL 和 SSDT 使用类似的堆叠式 Transformer 解码器层作为框架, 但它们没有对调度任务中的驾驶行为进行建模,从而限制了它们的准确性。 当比较表 1 中的空载率指标时,GARLIC名列前茅。然而,GARLIC需要权衡驾驶员的个人驾驶行为习惯。 因此,路线稍长且驾驶员较熟悉的区域更有机会被选择进行车辆调度。 这导致GARLIC在曼哈顿数据集上的空载率略高于SS-DT方法。 然而,当离线数据集的规模变大(杭州数据集)时, GARLIC更容易找到最优调度策略并符合驾驶员驾驶行为的同时实现最佳性能。
4.2 案例分析
作者随机选择了杭州的一辆网约车作为实验对象。 作者使用不同的方法模拟了车辆调度路线,并与地面实况(Origin)进行比较,如图4所示。 作者选择了杭州当地的一个区域进行可视化。 蜂窝网格中不同深浅的红色表示车辆在历史上停留的时间长度。 当该区域没有颜色时,表明该车辆该周没有去过该区域。它代表了驾驶员的个性化驾驶行为。 该车辆目前位于亮蓝色网格中,且预计未来 15 分钟内有 4 个深蓝色区域有叫车需求。 作者用不同颜色的箭头来表示不同模型的计算结果。
图 4
从图4可以看出,相比订单2、3、4,订单1距离车辆出发点更远。 由于订单4位于市中心,因此大多数方法选择该区域作为车辆上车点。 但订单2与车辆出发地之间有直达干道,因此有的方法选择将车辆派送到订单2所在的地方。 GARLIC分析了驾驶员的驾驶行为,发现最适合接载乘客的地点是订单 1 所在的区域。 同时,只有GARLIC计算的结果与实际车辆轨迹一致,这表明了提出的方法的有效性。
结论
本文提出了一种名为 GARLIC 的新颖框架来解决车辆调度问题,同时考虑驾驶员的驾驶行为。 具体来说,它可以分为三个模块,即用于交通状态提取的分层交通状态表示模块、 用于驾驶行为和车费分析的动态奖励生成模块以及用于平衡车辆供应的GPT增强调度策略学习模块和旅客需求。 该模型在多个真实数据集下实现秒级响应,具有优异的性能。 未来,作者还希望结合Kafuka引擎和云边协同技术,进一步优化车辆调度中各节点的信息传输, 实现数百毫秒的快速响应,提高驾驶员的订单接受度和用户的乘坐体验。
如何学习大模型 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 的正确特征了。