今年整个 IT 界、甚至科技界最火爆的技术就是 AI 大模型了,没有之一。
以 OpenAI 的 GPT 为代表、国内外一众大模型跟进,形成了百模齐奔的态势。围绕着大模型,各项周边的应用也在快速发展。在 2023 年年底的云栖大会上,论坛标题带有“大模型”的搜索一下,有三十个之多。搞技术的同学朋友一聊天,不提大模型,都没得可聊了。
笔者从事 GIS 开发多年,现在在阿里云-政企事业部-解决方案研发部,从事“空间数据中台”的研发。原本对 AI 技术尤其是 NLP 自然语言处理领域了解有限,但机缘巧合,也了解和学习了一些与大模型相关的知识和应用。在 AI 大模型时代已经来临的当下,对 GIS 与大模型可能能碰撞出的火花,做一点自己的分享。
首先还是阐述我对大模型重要性的认识。无论是从 IT 角度、还是从科技发展角度、甚至从人类演化角度,大模型的出现都是划时代的。
从 IT 角度,有人把大模型类比为带动移动互联网的智能手机;也有人把大模型类比为互联网,甚至能和发明计算机的意义比肩。
从科技发展角度,大模型已经具备了能替代人的部分脑力劳动,那么它的重要性甚至就可以与蒸汽机、或者与电动机的重要性比肩了。
从人类演化角度来说,在语言出现之前,物种对环境的适应只能通过基因突变和自然选择来演化,时间是以十万年为起点的;有了语言,知识和经验可以面对面的交流和传递,物种代际之间就能传递知识和经验;有了文字和纸张,知识和经验可以记录下来,传播到远方和未来;有了互联网和搜索引擎,知识和经验可以即时、廉价的传播到全世界,人人都可以从知识的海洋中通过关键词挖掘自己想要的信息。
现在有了大模型,能把全球浩瀚的知识海洋转化为模型的亿万个参数,人人就有了一个无所不知、不知疲倦的超级老师在身边,可随时随地的获取知识,解疑答惑。这时,人的时间精力就可以放到知识的联系和创新突破上,而不用再受限于未知的知识领域,整体的效率提升不是一星半点。从这个意义上讲,未来人类会分为两种:用大模型的,和不用大模型的。而到具体的行业和应用系统层面,也是如此,没有运用到大模型能力就注定会被淘汰。所有行业与产品,都值得且必须用AI大模型再做一遍。
那么,在 GIS(地理信息系统)领域,如何能发挥 AI 大模型的威力呢?我综合这几个月的所学、所思、所见和所做,总结为以下几个方面。
一.遥感影像的识别和提取
首先想到的就是对遥感影像数据的识别和提取。这个能力很早就广泛的运用了卷积神经网络(CNN),并取得了不错的效果。
在以“Transformer”网络架构为核心的大模型技术出现后,已经有不少基于(或者叠加)Transformer结构来优化遥感影像的识别和提取。典型的代表有:视觉Transformer(Vision Transformer, ViT) 和 Swin Transformer 等。
图片来源:https://arxiv.org/pdf/2010.11929.pdf
比较多的研究表明:在训练数据和算力足够的情况下,采用了 Transformer 的遥感影像识别和提取的效果,能优于只基于 CNN 的效果。
这部分工作,现在已经支持的厂商包括:商汤、航天宏图、达摩院 AIEarth 和超图软件等。
这个领域另一个很惊艳的技术是以 SAM 和 SEEM 为代表图片切割,以 CLIP 和 BLIP 为代表的图片和文字关联的多模态技术。SAM 和 SEEM 是无需再训练,或者只提供一个或少量样本,实现对图片的万物分割。CLIP 和 BLIP 则是在统一框架内实现对文字和图片的编码,这样就能以文索图,做到对图片的语义检索。这两者背后都是以 Transformer 为核心的大模型技术。
图片来源:https://github.com/facebookresearch/segment-anything
图片切割技术也已经得到了较多广泛的应用,典型的如达摩院 AIEarth 的 AIE-SEG 万物提取,通过一个样本,就可识别和分割其他遥感影像中同类型的物体。
当然,基于 Transformer,也有研究在做基于 3D 点云的识别和切割,不再累述。
二.生成式大模型
对文字生成图片这样的生成式大模型,背后的技术是扩散模型。由于扩散模型并非采用 Transformer 结构,参数量往往也没有达到大语言模型动辄以“十亿”为起点的规模。因此从狭义上,扩散模型算不上“大模型”的范畴。由于扩散模型和 GPT 一样,是生成式模型,和传统的 GAN(对抗神经网络)不同,从广义上讲,也可归属到当前这股 AI 大模型的浪潮。
对生成式大模型而言,已经看到有城市规划单位在生成建筑设计和城市规划效果图,不过这个属于规划行业应用,和典型的 GIS 关联并不紧密。
图片来源:https://yunqi.aliyun.com/2023/subforum/YQ-C-761332
在地图配图上,超图桌面几年前就实现选择某个图片来给地图做配图风格。但这个其实是图片的主颜色分析,而非 AI 生成地图。这个领域与生成式大模型的结合,可以探索的方向是:GIS 软件生成的地图到打印前图片的转换,即输入地图配置,自动生成美化后的、面向不同领域和风格的图片。
还有一个和三维 GIS 关联很密切的 AI 技术进展,就是神经辐射场(NeuralRadiance Fields,简称 NeRF)。NeRF 是一种计算机视觉技术,用于生成高质量的三维重建模型。对比与传统的 SFM+MVS 技术来构建倾斜摄影三维模型,NeRF 技术能直接输出各个视角的图片,真实感好,且不会出现空洞,对于设定飞行路线后的视频制作效果很好;但本身不能直接输出三维模型,虽然可以通过后续算法得到三维模型,但几何精度的提升,较大依赖采集图像的高重叠率,要达到 GIS 应用的要求还任重而道远。谷歌和阿里达摩院都在开展 NeRF 技术的研究。
视频为云谷园区的 NeRF 重建
对于最火热的大语言模型的应用,对于任何软件和应用系统,都会有一个使用助手的需要。把该软件的专业知识和使用文档等,输入到大语言模型中。用户在使用过程中,在需要一个不知道如何操作的功能时,自然就会有这个需求,不再累述。
三.基于大模型的空间计算自动编排
还有一个和 GIS 紧密相关,也是笔者最近在尝试的,就是空间计算的 AI 自动编排。
GIS 面临的空间数据类型多样,基于不同类型的空间数据又有各种各样的空间计算。为了让不会写代码的人更好的运用 GIS 能力解决业务问题,ArcGIS、超图等 GIS 软件,都有一个空间算子的编排工具。ArcGIS 中叫做 Model Builder,超图中为地理处理建模。阿里云的 DataQ 空间数据中台也有类似的能力。
举例而言,GIS 软件都会有:buffer(求缓冲区)、overlay(叠加分析)和 area(求面积)等空间分析的算子,输入数据,就能得到对应的结果。当有用户需要做一个业务分析,如在要规划一条铁路,需要计算规划中的铁路所占用的耕地面积,那么用户可以在空间算子的界面中拖入需要的上述三个算子,用线连接起来,再设定好铁路数据、缓冲区半径和耕地数据,执行之后就能得到需要的结果。
对于这类较为简单的任务,熟悉 GIS 中的空间算子和业务要求的人员,可以在很短的时间内完成上述工作。后续还可以设定的不同数据作为输入,就能重复使用。
但若业务更加复杂,且 GIS 算子库往往有几十乃至几百个个的情况下,对于不够熟悉 GIS 算子能力的业务而非技术人员而言,即便拖拖拽拽,也会耗费大量时间精力,且还有可能由于找不到相应的算子而犯愁。
举个例子,任务指令为“修一条铁路,宽度为 50 米,需要分组统计所占用周边坡度小于 10 度、海拔小于 100 米、所属地区的耕地面积,并汇总到所属地区,从大到小的顺序进行排序”。若不仔细琢磨,要在几分钟内完成下面的计算编排,对人来说确实要求就非常高了。
由于 GIS 的领域知识都是通用的“世界知识”,对于训练良好的大语言模型而言,在业务人员把业务要求转换为 GIS 的任务指令后,大语言模型是能够理解其要求,并把任务指令转换为对算子的调用逻辑。
这里需要指出的是,由于不同 GIS 引擎所支持的算子不同,我们还应把当前系统可以调用的空间算子描述和任务指令同时提供给大语言模型,这样大语言模型就能根据任务指令,返回对空间算子调用的 JSON 描述。最后系统再根据这个 JSON 描述,来实现对空间算子的实际执行。这样,业务人员只需要给出任务指令,在极短时间内就能得到自己需要的算子编排结果,可以大大提升工作效率。整个逻辑图如下。
当然,这是一个简单的过程描述,深入下去还有不少需要解决的问题。
如:当算子较多时,如果不加选择,一股脑把所有算子的描述都输给大语言模型,则很容易出现 token 超量的问题。这就需要先把所有算子的名字和最简单的描述随同任务指令给大语言模型,让大语言模型做一次初筛,然后再把筛选出来的算子给大语言模型进行算子编排。
再如:对于较为复杂的任务,大语言模型不一定能完全准确的领会任务指令的意图,从而给出存在瑕疵的结果。这时,就需要程序能自动识别出典型错误,或者提供多轮对话的方式,由人来指出问题,从而提示大语言模型可以根据用户反馈修正结果。
对于防止大语言模型“不够聪明”的最后办法就是系统只给出算子编排的结果,但不立即执行,由使用者检查编排的结果,对存在的问题进行手动调整。这样对使用者的要求就提高了,但也有实际的价值,因为人能通过大语言模型返回的结果直观了解到基本的思路,加速从任务到算子调用编排的过程。
还有就是大语言模型能编排的并非只有空间算子,同时也能实现对非空间算子的编排,用户也能自行扩展算子及其描述,系统会一并纳入并提供给大语言模型进行编排。
有了这个初步想法,心动不如行动。笔者按照上述思路做了一个初步的 demo,欢迎感兴趣的同学联系交流。
demo 的核心在于构造提示词给大语言模型,并检查大语言模型返回的 json 结果,以及把 json 结果转换为算子 DAG 编排进行执行。可运行的算子目前只提供了少量空间算子和统计排序等非空间算子,但具备算子的可扩展能力。同时还提供了对大语言模型的扩展,目前提供了 GPT4、ChatGPT、通义千问、文心一言、清华智谱和code llama 等。
从目前来看,GPT4 的表现最优,可一次性或最多一到两次纠错的情况下,就能完成上面十余个算子编排的复杂任务;更复杂的任务编排还有待进一步验证。ChatGPT和升级到 2.0 的通义千问也能在若干次纠错的情况下完成上述复杂任务的编排。
当然,目前所做的仅仅只是一个简单的 demo,要在一个产品中提供成熟稳定的能力,还有大量的工作需要后续开展。我们也会继续努力,争取早日在后续正式产品中输出。
另外,既然大模型能做算子的自动编排,那自然也能直接输出 SQL,包括带“ST_”的空间 SQL。阿里云 DataQV5 版本的“数据洞察”模块中即将提供自然语言生成通用SQL 能力,敬请期待。
以上总总,仅是笔者的有限认知,随着 AI 大模型技术的发展,大模型和 GIS、和数据智能的结合一定会爆发出更多的应用点。让我们拭目以待,一起拥抱 AI 大模型!
如何学习大模型 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 的正确特征了。