点击蓝字 关注我们
标题
GeoTool-GPT: A Trainable Method for Facilitating Large Language Models to Master GIS Tools GeoTool-GPT:提升大模型调用GIS工具的核心能力及准确度(击左下“阅读原文”可详细阅读)
相关成果
成果团队成员
禹文豪,中国地质大学(武汉)地理与信息工程学院,教授,博士生导师,主要从事地图综合、空间数据挖掘及大模型等研究。(联系邮箱:yuwh@cug.edu.cn;个人网站:http://grzy.cug.edu.cn/yuwenhao/zh_CN/index.htm) 魏铖,硕士研究生,中国地质大学(武汉)地理与信息工程学院,研究方向为GeoAI与自然语言处理 张一帆,博士研究生,中国地质大学(武汉)地理与信息工程学院,研究方向为GeoAI、地图综合与大模型 赵心如,硕士研究生,中国地质大学(武汉)地理与信息工程学院,研究方向为GeoAI与图学习 曾子怡,博士研究生,中国地质大学(武汉)地理与信息工程学院,研究方向为GeoAI与大模型 王芷韵,本科生,中国地质大学(武汉)地理与信息工程学院,研究方向为GeoAI与大模型 林剑锋,骑行数据挖掘团队负责人,美团,研究方向为人工智能及多模态学习 关庆锋,教授,博士生导师,中国地质大学(武汉)地理与信息工程学院,主要从事高性能空间计算、空间计算智能、时空大数据和时空数据挖掘与模拟等研究
成果介绍
内容导读
在MapGPT、GeoGPT等框架中,大模型智能体已证明可对时空数据进行处理、分析与制图。其思路是通过调用专业GIS工具完成时空分析,但通过本团队的实践项目发现,复杂场景应用还需加强大模型智能体的核心能力,即提高对GIS专业工具调用的准确度,特别是当候选的工具数量较多,以及一个任务需组合多个工具才能完成的情况。常规大模型容易产生幻觉或生成错误的工具调用链条。本研究针对以上挑战,提出了一种新型的训练方法及Benchmark数据集,可让大模型调用GIS工具的准确度超越GPT-3.5 和 Gemini-Pro。不同于常规的样本数据,本方法将“工具调用过程”tokenization,形成“工具调用”的训练样本,进而让大模型学会使用GIS工具。
大型语言模型(LLMs)在文本生成和知识问答等自然语言处理任务中表现出色。为了拓展其应用场景,研究者们一直在探索如何让 LLMs 能够有效使用现实世界的工具。尽管已有研究证明将工具纳入 LLMs工作流程具有显著的价值,但这些研究通常依赖于最先进(SOTA)的LLMs,如闭源模型ChatGPT和GPT-4,它们的内部机制不透明。尽管开源 LLMs 在自然语言处理任务中表现优异,但它们在工具使用方面的能力仍然有限。尤其在GIS领域,LLMs 对专业GIS工具使用能力仍处于探索阶段,主要面临两个挑战。首先,LLMs 通常是在来自一般领域的大规模语料库上进行训练,缺乏足够且全面的 GIS 领域数据,限制了其与专业知识的结合,尤其是在理解 GIS 工具功能方面。其次,解决地理空间任务通常需要结合多种 GIS 工具,这增加了任务的复杂性。如图1所示,目前的挑战在于使 LLMs 能够利用 GIS 工具解决地理空间任务。虽然通用领域的 LLMs 可以轻松回答通用问题(前提是训练数据中包含相关知识或信息)(图1a),但地理空间任务通常需要多个 GIS 工具。训练数据中可能缺乏直接的地理信息,导致 LLMs 无法作出响应。因此,让 LLMs 理解每个 GIS 工具的功能并确定适合地理空间任务的工具使用顺序至关重要(图1b)。
图1 通用LLMs与GIS领域LLMs在解决地理空间问题时的差异
自指导策略是一种常用的生成指令跟随样本的方法,旨在通过自生成指令来提升模型的任务执行能力。该方法包含两个主要步骤:指令生成和任务执行。在第一步中,LLMs 根据设计的提示在特定领域内生成任务指令;在第二步中,LLMs 根据生成的指令执行任务,从而产生一组指令跟随数据。与生成一般任务指令跟随数据不同,生成用于使用 GIS 工具的指令跟随数据需要依赖初始数据,即 GIS 工具的文本描述元数据。这些元数据使得 LLMs 能够了解可用于解决 GIS 任务的工具集,并帮助 LLMs 更好地自我指导,生成与使用 GIS 工具相关的指令。因此,我们提出了一个系统化流程来构建特定于 GIS 任务的指令跟随数据,如图 2 所示。
1. 首先,我们整理与 GIS 操作相关的常用工具,形成地理处理工具包,并将其集成组织成层次结构(图 2a)。
2. 然后,利用 GPT-4的功能,我们生成一个指令-响应样本集,该样本集通过精心设计的提示涵盖 GIS 工具的各个概念层面。此步骤旨在帮助 LLMs 理解 GIS 工具的概念差异及其实际应用(图 2b)。
3. 接下来,在集成工具包的基础上,我们指示 GPT-4 探索在执行单个指令时可能涉及的相关工具组合。经过这一探索后,我们引导 GPT-4 根据相关工具的文档生成指令和解决方案(图 2c)。
图 2. 构建特定于 GIS 任务的指令跟随数据的系统流程
地理处理工具包的层次化编译
我们的目标是指导开源 LLMs 理解 GIS 工具的功能和应用,特别是掌握多个互联工具在特定地理空间任务中的顺序使用。因此,工具编译的核心任务是收集这些工具的文档,重点是文本描述,而非程序实现。我们标准化了 172 个基本 GIS 工具的文档,包括工具名称和描述两个基本字段。为了便于大量工具的使用,我们构建了 GIS 工具的层次结构,增强 LLMs 准确调用工具的能力。具体来说,我们将所有工具组织成两个主要工具箱,每个工具箱再分为多个工具集,每个工具集包含执行相似或相关功能的工具。我们还为工具箱和工具集提供了精确的名称和描述,以帮助理解其功能。GIS 工具集成与编译的详细信息见原论文附录 A。
GeoTool:用于增强 LLMs 对 GIS 工具功能和使用方法理解的指令-响应样本集构建
在我们的方法中,指令围绕工具的功能和应用场景展开,响应则根据工具描述的上下文给出适当回复。我们精心设计了提示,引导 GPT-4 生成涉及工具箱、工具集和工具层次结构的指令与响应,如图 3 所示。为增强 GPT-4 对生成指令要求的理解,我们利用其少样本能力,在提示中加入了几个简单示例。随后,我们引导 GPT-4 根据工具文档生成响应,并允许偶尔添加简单的使用示例以辅助理解。同时,我们标准化了 GPT-4 的输出,便于数据提取与聚合。最终,通过设计的提示,GeoTool 中共生成了 1950 个指令-响应对,帮助模型学习工具的使用方法。
图 3. (a) 用于指导 GPT-4 生成 GeoTool(指令和相应的响应)的系统提示,以增强 LLMs 对 GIS 工具的功能和用法的理解;(b) 实际输入提示与系统提示结合形成完整的提示;(c) 基于完整提示生成的示例数据示例。
GeoSolution:用于增强 LLMs GIS 工具使用能力的指令-解决方案样本集构建
为了提高 LLMs 在解决 GIS 任务时的工具使用效率,我们重点生成 GIS 任务的指令和解决方案。具体而言,我们指示 GPT-4 随机从每个工具箱中抽取几个工具集,并将工具名称和描述输入 GPT-4 来理解工具功能。随后,我们采用反向生成方法生成包含多个工具使用的 GIS 任务指令。然而,随机抽取多个工具可能导致无效结果,因为这些工具可能缺乏功能和操作上的连贯性,从而影响指令的生成效率。为了解决这一问题,我们指示 GPT-4 根据工具描述和 GIS 知识探索工具集,寻找能够自然组合成单一指令的工具子集。如图 4 所示,特定提示引导 GPT-4 从工具描述中生成 GIS 任务指令,并通过少量示例确保指令生成符合预期。然后,我们要求 GPT-4 展示相关工具的调用序列,并详细解释每个工具的使用及其顺序应用的原因。我们认为,仅提供工具调用序列可能不足,因此补充了详细解释,解释在解决方案中起到了思路链(CoT)的作用。
图 4. (a) 用于指导 GPT-4 生成 GeoSolution(指令和相应的解决方案)以增强 LLMs 使用 GIS 工具的能力的系统提示;(b) 实际输入提示与系统提示结合形成完整提示;(c) 基于完整提示生成的示例数据示例。
考虑到任务指令和解决方案可能较长,我们限制 GPT-4 每次只生成一个指令-解决方案对,以避免超出输出令牌限制并减少混乱或幻觉的出现。最终,GeoSolution 总共收集了 3645 个精心策划的指令-解决方案对,旨在提升模型在 GIS 工具使用方面的准确度。
从头开始训练一个专门用于 GIS 任务的 LLMs 需要大量的计算资源、时间和基础训练语料库。相比之下,对现有的预训练 LLMs 进行微调是一种更为实用的方案,能够快速将模型引入专业领域。因此,我们选择了开源的 LLaMA-2-7b(70 亿参数)作为微调的基础模型,因为它已证明能够生成与 ChatGPT 和 PaLM 等闭源模型相媲美的响应。
为了提高微调效率,我们采用了轻量级微调策略 LoRA,该策略通过将两个低秩矩阵注入预训练模型进行训练,避免了修改原始模型参数,从而降低了训练成本并提升了性能。在此基础上,我们使用 LoRA 策略在两块 RTX 4090 GPU 上进行微调,从而引入了GIS指令响应增强的LLM,即GeoTool-GPT。GeoTool-GPT 是基于上述的指令响应和指令解决方案样本集开发,微调后,模型能够提供专门针对 GIS 任务的指令解决方案。
我们通过专业人员标注形成了包含 300 条数据的 GIS 任务评估数据集 GeoTask,用于评估 GeoTool-GPT 与通用模型在解决 GIS 任务中的表现。通常,涉及的工具越多,GIS 任务的复杂度越高。为了更全面评估模型,我们根据执行单个命令时调用的工具数量对指令进行分类,并独立评估每个子集的模型输出,计算准确率(即正确解决的指令数与该类别指令总数的比值)。如果模型生成的工具成功解决任务,则视为正确;若工具不足或工具序列存在逻辑缺陷,则为不正确。所有结果由专业人员审查并确保一致性,具体结果见表 1。
案例研究
我们将通过两个案例研究展示 GeoTool-GPT 在处理各种地理空间任务中的表现。具体来说,我们从 GeoTask 中选择了与不同工具调用链对应的指令,展示了 GeoTool-GPT 在应对不同任务要求时的性能。随后,模型生成的任务特定解决方案可以作为工作流,实现高效的地理空间工具执行。此外,这些工作流可为未来构建高级 AI 代理提供基础,从而实现 GIS 软件中工具参数设置和执行的自动化。
我们首先介绍一个空间叠加分析的案例,如图 5 所示。用户要求确定适合房地产开发的区域,主要标准是靠近学校以方便获得教育设施,并避免靠近主要道路以减少噪音污染。此外,选定区域还需要进行数量和面积等统计分析以便进一步评估。
图 5. 该案例研究展示了如何使用三种 GIS 工具解决涉及空间叠加分析的简单 GIS 需求
我们将用户指令输入 GeoTool-GPT,得到了一套解决方案,包括 GIS 工具及其使用顺序。根据方案,首先对学校和道路网络应用缓冲区工具,接着用擦除工具提取符合住房需求标准的候选区域,最后通过汇总统计工具获取所需的统计数据,如候选区域数量和总面积。执行该方案后的结果如图 5 所示,符合用户需求,验证了 GeoTool-GPT 在处理简单 GIS 任务指令中的有效性。
我们还针对一个相对复杂的 GIS 需求给出了指令,该需求涉及四个 GIS 工具的调用,如图 6 所示。具体来说,用户需要找到公司周围最近的垃圾填埋场,并统计五公里半径内的树种数量。首先加载所需的三个数据集:公司位置、周围垃圾填埋场位置和树种分布数据。根据 GeoTool-GPT 的方案,首先使用 Near 工具找出距离公司最近的垃圾填埋场,接着用 Buffer 工具在垃圾填埋场周围创建缓冲区。然后,使用 Clip 工具在缓冲区内提取树木数据,最后用 Frequency 工具统计提取的树木种类和数量。最终结果符合用户需求,验证了 GeoTool-GPT 在解决复杂 GIS 任务中的有效性。
图 6. 该案例研究展示了如何使用四种 GIS 工具解决相对复杂的 GIS 需求
本研究聚焦于增强 LLMs 在 GIS 工具使用上的能力。我们在通用领域的 LLaMA-2-7B 模型基础上微调了 GeoTool-GPT,使其具备专业的 GIS 工具知识,以解决地理空间任务。为支持训练,我们整理了全面的专业数据集,包括指令-响应样本(GeoTool)以增强对 GIS 工具的理解,以及指令-解决方案样本(GeoSolution)提升工具使用能力。此外,我们开发了一个基准数据集(GeoTask)来评估模型在 GIS 工具使用上的表现。训练后,GeoTool-GPT 展示了强大的工具使用能力,能够为多种地理空间任务提供正确解决方案。
GeoTool-GPT 的功能突显了其自动化复杂地理空间工作流程的潜力,显著提高工作效率。尽管桌面 GIS 软件提供了大量工具,但其复杂性和用户与系统之间的差距往往制约了非专家用户的有效使用。GeoTool-GPT 有望填补这一空白,帮助非专业用户更有效地使用 GIS 工具。最终,我们的研究为增强 LLMs 工具使用能力提供了实用方法,也为相关领域的研究者提供了宝贵的数据集,推动了 GIS 应用的进一步创新。
然而,当前模型基于 70 亿参数,训练数据虽全面,但未涵盖所有 GIS 工具和场景。未来研究可以探索更细粒度的数据集和大参数模型的可扩展性,同时结合实时数据和多模态输入(如图像和地图),进一步提升其在动态 GIS 环境中的适用性。