AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
内容介绍:
一、AI时代:应用架构演进趋势
二、AI agent框架发展趋势
三、spring AI ALibaba重磅发布
四、生产及可用的方面构建能力
五、参考
本次分享的主题是AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba,由阿里云智能集团云原生微服务技术负责人,Spring AI Alibaba 发起人李艳林分享。
今天的分享由两个部分组成。第一部分是应用架构的发展趋势,第二部分将介绍在AI原生应用架构的最新实验的结果和参考建议。
一、AI时代:应用架构演进趋势
开发者见证了从单体架构的lamp架构到SOAP架构,再到微服务架构、云原生架构。在过去的十几年,已经经历了四代架构的演进,离我们最近的是左边这张图,即原生架构。原生架构的定义是它采用了微服务容器声明式API架构,它是一个云原生架构。在云原生时代,第一个是把单体服务变成微服务架构。按照业务域进行水平拆分,化解业务的复杂度。纵向拆分是做垂直的微服务无状态的改造,把应用中有状态的存储下沉到数据库和OSS一样的对象存储。并让整个应用无状态的放在docker容器中,进行无状态的扩展伸缩。从而把研发效率,即部署效率发挥到极致。尤其是在云的基础设施之上,可以充分压榨云的弹性能力,释放最大的红利。
那么AI原生架构它指的是什么呢?AI云原生架构是基于模型anger的驱动架构,这个架构是一个AI原生的架构。在这个架构中,模型相当于是人的大脑agent,相当于是人的手脚。在agent的智能体中,共有三个架构原则,第一个是API forced,第二个是事件驱动,第三是lops。
为什么提出这三个应用架构原则呢?第一个是在整个AI时代,数据是生产资料模型的生产力,API是新型的生产关系。当有了自己的智能体之后,通过API快速的把模型能力向生态端进行快速的输出。
那么今天做这块最好的是谁呢?OpenAI公司已经做出了一个范式。当ChatGPT3.0快速的迈过拐点之后,OpenAI这家公司通过他的API把它的模型能力通过API的方式快速的开放给了整个社会,并快速的进行了创新,把他自己的整个生态做起来了,并且做成了整个商业的闭环转换。这是为什么?第一个要强调API first,第二个是事件驱动,相信玩过大摩云的同学都能感受到,在整个私域数据向量化的过程,如果每次购现向量化,然后再去更新,是有延迟的。如果采用事件驱动的机制,能把今天向量化知识库的向量化实时性解决。第二个,能解决一个关键问题是如果今天大模型是长链接,大豹纹RT是秒级到分钟级的,这样的话,如果所有的链接都同时连到每个机器上,连接的消耗是非常大的。因此需要事件驱动,提高系统的吞吐量,这是第二个架构原则,即事件驱动。
第三个是AI ops,为什么要讲AI ops呢?因为整个大模型输入的质量,幻觉输入的过程都有不确定性。因此要通过建立的观测体系,监测整个数据的质量,这是第一步。第二个,大贸易行的成功率是不够高的,需要通过全链路的观测体系,快速的定位。从而快速的解决智能体的一些问题,这是agent驱动的三个架构的原则建议。
在这个建议之上,有一个问题是是不是未来都是AI原生的架构?AI原生的架构能不能全部替代原生架构?其实是不可以的,因为原生架构和A原生架构有点像,人的左右脑快慢思考,其中反应快的,比如像遇到热马上就能膝跳反应,并做出决策要躲开。这就有点像原生架构,精准快速做出决策。AI原生架构更像人的左脑推理思考,之后会慢慢的把这个事情做得更精准。因此未来的趋势一定是原生架构加上A架构,是长期并存的一个状态。
在长期并存的架构中,原生架构相对比较平稳,而A原生架构快速演进。A原生架构模型和AI往大模型和整个多模态演进。
二、AI agent框架发展趋势
虽然大模型刚火了两年,但已经经历了三个发展阶段。第一个阶段是2022年的时候,GPT3.0的推出卖出了整个通用人工智能的拐点。在快速使用的过程中,它能力很强。但输入输出的格式,包括它输出的数据幻觉,而幻觉包括上下文,如果不充分,它的回是不精准的。因此在这个时间点,在当时的社区行业中推出了lunch,lunch的框架做了一个比较相对复杂的抽象,化解了模型上的缺陷,这是能力的不足。但随着2023年chat GBT4.0的推出,会发现整个行业中模型的能力大幅提升。而框架棱衬的复杂性抽象有点过于复杂了。因此这个时间点随着ChatGPT拉马3,包括阿里通义2.5的模型开源能力不断的提升。long ten的复杂已经不能满足社区的要求。因此lama社区也推出了lama index,简化整个模型。让应用开发者有更好的开发体验和开发效率。
随着AI的发展,对于中国近一半以上的java开发者有一个选择,而剩下的所有的开发者,可以看到,python的开发者是第二名,31%是剩下的开发者,所有的开发者都准备转用python写代码。还是每个语言选择自己的一套好开发的框架,这是一个关键的选择,这个事情阿里巴巴在早期,即阿里内部的解决方案写了对应的java版的lunch和对应的lama index,并进行了落地。但在整个开源和商业化过程中,当时就只在考虑未来整个AI原生时代,语言选择是什么?当然在过去的原生时代,K8S主流语言是go。所以当时行业里很多人讲,未来云原生时代所有的语言都要用go重写。但随着时代的发展,这个事情没有发生,大部分的应用开发者依然采用了java构建自己的应用代码。因为java的易用性,当然在这个基础上,未来AI原生的架构依然是采用java为主的构建方式。
三、spring AI ALibaba重磅发布
对于java开发者, 40%以上,近一半java开发者带来了今天的福利。今天重磅发布了spring AI ALibaba,让开发者能够一步迈入AI时代,延续spin cloud的注解非常的简单,可以把整个AI应用开发起来。并且这是继2018年开发开源spin cloud阿里巴巴之后又一个重磅发布。在spring AI ALibaba体系中,做了三层抽象。
第一层抽象是基于模型提示词和reg做了基本的模型抽象,是AI最基本的四个模型。在模型上,做了最全面的模型支持。包括阿里的通义模型、拉马、对应的XRDPD,都做了模型上的第一个广泛的知识。
第二个,当大家把模型开发完后,在业务大规模落地的过程中,需要做多个智整体的编排。因此第二层在spring AI的高级阶段,支持了工作流智能体及其配套的工具机,方便大家快速的构建自己的工作流智能体。
第三步围绕spin cloud框架,能否把日常环境的AI开发起来。但是不能生产可用的,这只是万里长征的第一步。如果你要生产可用,要解决几个问题。
首先入口的安全合规问题怎么解,以及流量控制怎么解?今天high Price也发布了行业最强的AI插件,让大家一键的在入口建立安全合规高可用的防线,这是第一步,这也是APF first的第一个架构理念。第二个是开源python not的python java go on的SDK。在整个事件驱动的理念中,把智能体慢请求用事件解耦,用ncos的动态配置的能力,把模型的动态能力、提示词的动态调整能力快速的上线。第三个是上线之后模型的数据质量,包括快速诊断怎么做。今天发布的open time reality的java、python, 都是go版本。这样无论你采用哪种语言,都能够快速的构建大漠一星的观测体系。这是整个三层的架构,即发布的理念。
在这个基础之上,很多开发者会问,是不是今天采用的这套开发框架不是生产可用的,是不是个玩具?我告诉他不是的,因为这套架构体系是经过阿里内部大规模生产验证的。因为大家使用的派以及使用的通义,每一次的调用都会走API网关,即观测体系。所以今天我们诚意满满,不仅把最全的体系开源了,并且还是经过生产验证的体系,欢迎大家试用。如果今天开源可以玩,并且不想自己手动搭建在阿里云上,可以基于阿里的百炼和对应的CAP商业化平台零点free tier几十分钟就能用起来。如果大家想快速的一起交流,我们还建立了一个钉钉群,大家可以扫码加入。这样大家平时就可以关注社区的一些动向,并及时的发送给大家。这是spin cloud阿里巴巴的整体情况。
四、生产及可用的方面构建能力
第一个是生产可用,并且要守住底线,这个底线就是安全合规。因为大模型的能力很强,它不像人一样,它有一个良知体系?即支持体系,确保它是合法合规,相信大家从新闻上都能看到,最近这半年,有两个热点新闻,两个巨大的公司因为回复了不该回复的问题,股价暴跌。那么怎么解决问题呢?所有的请求过了网关之后,会提供一个安全合规的插件,经过安全合规插件的审核,没有问题的才能让他走下去,并且返回的结果是OK的,才能让这个问题呈现给对应的用户,避免合规的底线。第二个问题是相比于云原生架构,AI架构、AI原生架构更容易被攻击,因为GPU第一性能相对比较弱,处理的并发能力比较弱。因此大模型更容易被攻击。我们提供了wap插件和token的流控插件。这样能防止黑客的恶意破坏和薅羊毛,让AI服务最大的发挥企业该发挥的价值,这是我们要守的第一个安全合规的底线。
第二个是如果上线之后,会发现其实对于很多企业,它的业务模型、语言和常见的问题是比较类似的。如果每一次都走大模型的调用,会有慢和成本高的问题,因此提供了缓存和向量数据库的能力,在网关的入口尽可能匹配,快速进行召回,这样就不需要走模型了,并且提高了整个吞吐能力。
第三个是无论是用思域模型还是大模型,它成功率都不是百分之百的,整个行业的水准也就百分之八、九十的成功率。在这种情况下,就需要在网关上做超时重试和一些模型的feel over。这样以便构建一个生产级可用的、默认安全合规高可用的模型。而且这些能力都不需要大家写代码。high开源了整个行业里最多的一个开源插件,开箱即用,简单的配一些配置文件就可以使用,没有任何上手的门槛。而当模型上线之后,为了监测数据生成的质量,和定位线上的问题。如果是传统的一般的定位方式,那么整个reg过程,包括内存的处理过程,很多都是看不到的。因此需要构建一个为AI时代而生的观测体系。为了解决这个问题,发布了open temporary的java版本,本版本和对应的版本。
第一个是可以无侵入的在期间进程内部做详细的调用站的跟踪。
第二点在做观测体系的时候,社区对可观测的社区也在热烈的讨论生成式AI的观测的规范和标准。而开源的这套体系完全符合了社区讨论的最新开源标准。
第三点是基于生成式AI的社区标准,依然有很多企业是无法使用的。因此在此基础上做了更详细的买点和属性的编排。
那么到底做了什么呢?比如每一次大模型的绘画都是多轮交互的,如果单看每一个trace ID,那么是很难分析问题的,只要把session ID和对应的trace ID进行关联,那么多轮绘画从整个绘画的过程中到每一次请求,都可以全链路追踪,以及全链路可见。并且它把请求过程中的reg的详细过程进行了细化。方便大家看到整个检索的过程,以及方便做搜索优化,从而提高观测的质量和Token消耗的情况。这是构建的可观测体系。
当模型上线之后,就进入了一个快速迭代的过程。在这个过程中,需要不断的调整提示词、搜索的相关度和算法。在传统的方式中只需要改一个参数或者改对应的模型算法,就只需要重新发布一下,但这样的消耗是巨大的,而且节奏比较慢。对此我们的做法是把动态的提示词的模板学习率,包括相关度,全部变成配置中心的配置,一个配置下去,毫秒级生效,并实时可见。因此快速的优化了算法,并产生更大的业务价值。第二个问题是每一个AI应用都面临着比较大的安全挑战以及合规的规则,比如你要写死的话,它一定是不可以的。因为这些敏感词是在不断的叠加,当出现问题的时候,怎么快速的把一些敏感词的规则,敏感的信息算法实时的生效。需要把对应的安全合规规则密钥访问,包括算法,全部放在配置中心中。这样就给整个AI体系装上了一个安全的大锁,为大家保驾护航。
当我们真正的守住了底线,快速产生业务价值,那么很多公司就会遇到一个问题?在快速的做模型算法优化的过程中,发布一个新的算法,发现效果反而不如从前了。大家不要以为今天一个算法模型上了,一定比以前还好,不一定的。因此需要对线上的模型进行灰度蓝绿发布,从而观测新的模型算法到底符合不符合预期。如果符合预期,整个灰度权重继续往上调,如果不符合预期,那么就把版本回滚,继续优化算法,调整算法,持续的让整个正循环发生。因此通过market的配置管理,能够大幅的提高agent的灵活性,并加速AI价值的兑现。
最后一个,为什么倡导的事件驱动?因为在做AI开发的过程中,左边是比如一些关键的文档库,知识库的关键信息。右边是向量数据库。如果今天不走事件驱动传统的做法,比如最早期的温暖感库更新完后,每周或者每天定期的往向量数据库做一次人肉的更新。但这样很明显不能满足业务线上实时性的要求。因此,把左边的知识库和右边的向量数据库做了事件的打通,左边任何的数据的更新,右边都能及时的把数据更新到向量数据库,这样数据私域数据更新的时候能够快速的订正,并直接给客户兑现客户价值,这是第一个事件驱动的原因。
第二个原因是什么呢?即大模型的消耗是非常大的,它是一个长连接,大豹纹RT都是秒级到几十分钟级的处请求。比如今年阿里巴巴发明上线了全民舞王。全民舞王是N多客户同时去做纹身视频的操作。如果生成的视频需要两分钟,所有的人都在这并发这个长连接维护,这样对整个系统的消耗是巨大的。因此通过事件解耦,当任务来了之后,丢到今天这个事件的队列中,在后边的GPU处理的过程中,他空闲了就去消息拉自己相关的处理任务。处理完了之后,会发一个事件通知前端,处理完了拉你最新的数据。这样就可以做业务的解耦,提高大模型的并发度,并降低企业的成本。相信通过刚才的讲解,大家能够感受到今天span阿里巴巴能够快速的帮助大家构建AI应用。
五、参考
当年是怎么在过去的一年里思考AI的落地场景的?是技术的选型给我们做的最佳的实践,以及给大家做参考和题干。在AGC出现的时候,第一个考虑的问题是要在什么地方落地,以及什么场景落地。即模型本身,不管是中文还是英文的大模型体系,它的模型的公共数据一定是可以爬的。但是怎么用好私域,对数据基于和我们的业务场景不断的完善飞轮,不断的创造业务价值,这就是核心。因此选择自己场景的时候,就会想是不是大模型的所有场景都可以?不是的。
那么今天的大模型适合处理哪种场景?第一个是容错性低,为什么现今AI自动驾驶很火,为什么现在还没有真正的落地在国内?因为这东西一但出错就会出人命,因此在早期落地一定要找一些容错性相对比较低的。
第二个事情是结构性要强,如果没有一个很好的结构性,比如生成的circle生成代码都是结构性非常强的。他在学习完后,可以很快的进行应用。但如果没有一个很好的结构性,他学完了是比较难以应付,在容错性高和结构性强的场景中,最早因为阿里巴巴的开源是国内第一,然后每年有几百万的流量访问阿里巴巴对应的官网。
在访问的过程中,遇到核心的问题是什么?因为开源本身是非商业化的行为,那么会有有很多的流量客户的问题产生,以及开发者的问题产生。但由于今天人员的投入有限,不能很好的满足开发者的所有问题的实时性响应和正确性。那么就要想能不能构建一个云时代的AI专家。当开发者问题来了的时候,通过AI专家快速的帮开发者低成本的实质性的回答,打造一个新型的社区模式。
基于这个场景,当选型的时候,共有三个技术方向。第一个方向是XPGP3.0刚迈过拐点的时候,当时用了简单的提示词的优化,把角色知识背景灌进去,这有助于提高最后的成功率、正确率。但随着模型的提升,左边提示词的效果就开始弱化了。而且这个东西相对于技术壁垒也不是那么的强。然后我们就在想能不能基于大模型微调自己的小模型,对此进行了试验,即每次微调一次成本,包括实时性,它还是不能满足我们的要求。而且在社区的更新过程中,每天都会有新的内容、新的文章,新的回复产生。这样明显微调的模式也不能满足我们的要求。因此最后选择了reg的模式。
Reg模式的好处是什么呢?第一个是它的构建成本相对比较低。第二个,数据的迭代即更新的速度比较快。第三个能快速的把私域数据进行快速的复用和产生价值。基于这个能力,最后的架构简单给大家看一下。首先采用了阿里云的百炼平台,把对应的知识库全部灌到了百炼中,并做了数据的向量化,即搜索的优化。其次是用整个spring AI ALibaba智能体A框架做搜索的增强。当绘画产生的时候,应先去后边检索top 3的相关度文章。拿到top 3的文章后,第二次再调大模型做数据的压缩,这是提炼提问完了之后通过XR的工具,把服务暴露给前端,让客户进行打分。这到底能不能满足他的要求?如果能满足要求是正确率。如果不能满足要求,通过XR的后台工具进行记录。它不能满足要求回答,并且工程师、开发者会每天看这些数据,进行数据的极其订正,从而让数据飞轮转起来,这是为了今年生产可用,因为在使用的过程中发现有一些同学的测试或者在安全攻击的时候,很快会把token消耗掉。因此在入口做了token的限流的流量防护能力。从而构建了一个高可用的机制。通过整个系统的沉淀,去尝试打造了整个AI行业专家的解决方案,并且给出了最佳实践。它的效果其实也是非常明显的,即整个开源官网的流量提升了20%成本,人肉维护的成本降低了20%,然后正确率达到90%,差评率3%以内。最后整个社区做了一个非常好的升级,流量得到了激增。并且在今天建立了核心的反馈,充分的挖掘了私域数据。通过AI的助手人工建立了反馈的机制,它能够不断的迭代数据,让AI专家的能力持续的提升,帮助我们解决越来越多的问题。这样整个数据飞轮就转起来了,只要模型不断的提升、数据不断的提升,以及算法不断的优化,效果就一定会越来越好。基于这个,最后沉淀了一个AI行业的解决方案。这个解决方案的核心是在IDC每个公司落地的过程中,充分的发挥私域数据挖掘,使私域数据形成正循环。
首先在整个底层,通过high grass AI prog屏蔽开源模型、自建模型和商业模型,提供统一的模型接口。并且在模型AIPC这层建立安全合规容错开始的能力。第二个是基于模型API上要构建在整个云框架构的入口处建立安全合规。在今年,通过reg的能力建立充分挖掘私域数据的能力,在pass层构建反馈机制、数字化运营的体系,让他飞轮运转起来,这就是沉淀的能力。
相信今天spring AI ALibaba能够加速,并且能让ZARA开发者一步迈入AI原生时代。并且希望大家能够一起共建整个spring AI ALibaba,让我们一起加速AI原生应用的发生。