WebAssembly技术从云原生到AI原生的探索

文摘   科技   2024-08-09 12:00   北京  

编者荐语:



AI技术迅猛发展的今天,如何高效、安全地构建和部署AI应用成为了一个关键问题。本文深入浅出地介绍了WebAssembly技术的潜力及应用。文章不仅理论与实践并重,还对未来发展进行了前瞻性分析,为读者提供了全面的技术洞察。无论是技术开发者、架构师,还是对AI技术感兴趣的读者,本文都能提供宝贵的参考和启发


WebAssembly技术从云原生到AI原生的探索
亚信科技(中国)有限公司
摘要本文探讨了WebAssembly技术从云原生到AI原生(Native)时代的演进。文章首先介绍了WebAssembly的基本原理及其在云原生环境中的应用,随后分析了WebAssembly如何成为连接云原生和AI原生的桥梁。文章重点阐述了WebAssembly在AI原生应用中的关键路径,包括AI代理、内容审核、统计、限流、缓存等插件的实现。最后,讨论了当前WebAssembly面临的挑战,如性能优化、安全性和生态系统建设,并对其在AI领域的未来发展进行了展望。

引言

随着人工智能(AI)技术的飞速发展,软件行业正从云原生时代逐步迈向AI原生时代。AI原生旨在将AI技术深度融入软件开发的每个环节,从数据处理、模型训练到推理部署。然而,在这一转变过程中,面临着一系列重大挑战。


•  高成本、高资源:AI应用的使用成本居高不下。无论是硬件投入、能源消耗还是 运维开支,AI模型的训练和推理都需要大量资源。


•  开发与部署复杂度高:AI原生应用的开发和部署复杂度远超传统应用。开发者不仅需要掌握软件开发技能,还需具备数据科学和机器学习的专业知识。


 数据隐私和安全问题:数据隐私和安全问题日益突出。如何在保护敏感信息的同时实现高效的数据处理和模型训练,成为了一个棘手的难题。


•  AI应用落地场景复杂:在国内,大量AI应用在实际落地过程中面临着一系列共性问题。主要包括:如何基于OpenAI的API协议统一对接不同大模型厂商的API?如何对大模型的输出进行敏感词过滤,确保内容安全?如何实现对API调用的有效监控,包括token使用统计和访问限流?如何优化提示词模版,以及如何实现大模型回答的历史缓存等等现实需求。


面对这些挑战,业界一直在寻求创新的解决方案。在此背景下,WebAssembly(简称:Wasm)作为一种轻量级、高性能、跨平台的技术,正逐渐引起人们的关注。虽然Wasm最初主要应用于浏览器环境,但其独特的特性使它有潜力解决AI原生时代面临的一些关键问题。


Wasm提供了出色的性能和细粒度的安全隔离,这对于处理AI工作负载和保护敏感数据至关重要。其跨平台特性可以简化AI应用的部署过程,而模块化和多语言支持的特点则有助于提高AI开发的灵活性和效率。虽然Wasm在AI领域的应用还处于探索阶段,但在解决当前AI问题,展现出了潜力。


本文将探讨Wasm技术如何在AI原生时代发挥作用,以及它如何应对AI应用开发和部署中的各种挑战。分析Wasm的特性并且如何与AI技术相结合,为AI原生时代带来新的可能性。


WebAssembly基本原理与应用
(一)WebAssembly基本原理

WebAssembly(Wasm)的诞生源自前端,是一种为了解决日益复杂的Web前端应用以及有限的JavaScript性能而诞生的技术。它本身并不是一种语言,而是一种字节码标准。Wasm字节码和机器码非常接近,因此可以快速的装载运行。理论上,任何一种语言,包括JavaScript、C、C++、Rust、Go、Java等都可以编译成Wasm字节码并在Wasm虚拟机中执行。不仅可以嵌入浏览器增强Web应用,也可以应用于其他的场景。

图1:WebAssembly基本原理

(二)WebAssembly在云原生中的应用

WebAssembly(Wasm)作为一种轻量级、跨平台的字节码格式,近年来在云原生环境中得到了广泛的关注和应用,为开发者和企业解决了许多在云原生中的实际问题。

•  高效的隔离和安全性

传统的容器化技术虽然能够提供一定的隔离性,但Wasm通过其沙盒机制,实现了更为细粒度的安全隔离,减少了应用程序之间的相互影响和安全风险。Wasm模块在独立的沙盒环境中运行,即使某个模块被攻击,也不会影响到其他模块和主机系统的安全。


•  出色的性能

Wasm字节码已经接近原生代码的执行速度,这使得在高性能需求的场景下,Wasm成为了理想的选择。特别是在边缘计算和物联网设备等资源有限的环境中,Wasm的高效执行能力可以显著提升应用性能。此外,Wasm的快速启动时间也使其在短生命周期的任务中表现优异。


•  跨平台特性

Wasm的跨平台特性使得它能够在多种环境中运行。无论是在浏览器端还是在服务器端,Wasm都能够无缝地执行相同的代码。这种跨平台能力极大地简化了应用的开发和部署流程,减少了不同平台间的兼容性问题。开发者只需编写一次代码,即可在多种环境中运行,提升了开发效率和降低代码重用率。


•  模块化和可组合性

Wasm的模块化和可组合特性使得它在微服务架构中具有独特的优势。开发者可以使用不同的编程语言编写Wasm模块,并将这些模块组合成完整的应用程序。这种灵活性不仅提高了开发效率,还增强了应用的可维护性和可扩展性。通过Wasm,开发者可以轻松地实现复杂的业务逻辑,并根据需求进行模块的组合和重组。


•  与Kubernetes的集成

Kubernetes作为一个强大的容器编排平台,能够高效地管理和调度Wasm模块,使得Wasm可以在大规模分布式系统中高效运行。通过Kubernetes,开发者可以轻松地部署、扩展和管理Wasm应用,享受到自动化的运维和高可用性的保障。Kubernetes的服务发现、负载均衡和滚动升级等特性,使得Wasm应用在云环境中具有更高的弹性和可靠性。


•  云原生网关

Istio作为一个服务网格,为微服务通信提供了统一的管理和监控能力。将Wasm与Istio集成,可以实现更加精细的流量控制和安全策略。通过Istio的扩展机制,Wasm模块可以作为自定义策略和过滤器,在服务网格中灵活地应用。例如,可以使用Wasm模块实现复杂的请求处理逻辑、安全认证和数据转换等功能,从而增强服务网格的功能和灵活性。


图2:亚信科技积极参与云原生Istio社区生态产品

•  边缘计算中的应用

在边缘计算场景中,Wasm的高效性和轻量级特性使其成为理想的选择。边缘设备通常资源有限,Wasm的快速启动和低内存占用,使其能够在这些设备上高效运行。通过在边缘设备上运行Wasm模块,可以实现低延迟的数据处理和响应,提升用户体验和应用的实时性。


•  支持多种编程语言

Wasm支持多种编程语言,如Rust、Go、C、Python、C++、AssemblyScript等,使得开发者可以选择最适合的语言进行开发。这种多语言支持不仅提高了开发灵活性,还降低了学习成本,使更多的开发者能够快速上手和应用Wasm技术。

(三)WebAssembly从云原生到AI原生的桥梁

图3:从云原生到AI原生

左边是以容器、微服务、声明式API 构成的云原生应用架构,这是当下构建在线应用的主流架构。右边是以大模型、AI Agent、面对自然语言编程构成的 AI 原生应用架构,更大的概念是 AI Infra,采用 GPU 资源进行模型的训练和推理,并以模型和自然语言为核心,驱动业务发展,而承接端侧的流量,不再是一个个微服务,而是一个个 Agent。整体上,基于大模型的 AI 原生应用将越来越多,容器和微服务技术为代表的云原生技术会加速渗透传统业务,并引入更多流量,催生企业新的生命力和想象空间。  


WebAssembly作为一种通用的底层技术,其从云原生到AI原生的演进是一个自然而然的过程。在云原生环境中,WebAssembly已经展现出了其卓越的性能、安全性和跨平台能力。随着人工智能技术的快速发展,这些优势恰好能够满足AI原生环境的独特需求,使WebAssembly成为连接云原生和AI原生的理想桥梁。


在保持云原生优势的同时,WebAssembly还能够很好地适应AI原生的特殊需求。首先,AI应用通常需要处理大量数据和复杂计算,WebAssembly的高性能特性可以有效支持这些密集型操作。其次,AI模型的部署和运行需要灵活性和可移植性,WebAssembly的跨平台特性使得AI模型可以在不同环境中无缝运行,从云端到边缘设备。再者,AI应用对安全性有着更高的要求,特别是在处理敏感数据时,WebAssembly的沙箱机制提供了额外的安全保障。


此外,WebAssembly的模块化特性非常适合AI原生环境中的微服务架构和函数即服务(FaaS)模式。开发者可以将不同的AI功能封装为WebAssembly模块,实现灵活的组合和部署。这种方式不仅提高了开发效率,还增强了AI应用的可扩展性和可维护性。


随着WebAssembly技术的不断发展,其在AI领域的应用正变得越来越广泛。从AI模型的推理加速,到边缘计算中的实时AI处理,再到大规模分布式AI系统的构建,WebAssembly都展现出了巨大的潜力。它正在成为连接传统云计算和新兴AI技术的关键纽带,推动着整个软件生态系统向更智能、更高效的方向发展。


WebAssembly助力云原生演进至AI原生的关键路径

随着AI原生的兴起,Wasm在云原生环境中的成功应用为其在AI原生应用中的转型奠定了基础。在AI原生应用中,Wasm的优势同样显著,并能够解决AI应用中面临的许多挑战。


以ChatGPT为代表的AIGC技术为企业生产带来了巨大的变化,并在企业应用开发领域占据一席之地。AI大模型凭借其强大的学习能力,可以帮助人们完成各种复杂的任务,例如帮助开发人员编写与调试代码、研究人员快速了解科研领域、营销人员撰写产品描述、设计人员设计新作品等等。许多企业探索如何降低AI大模型的使用成本。通过网关进行AI大模型的API管理成为了很常规的需求。


OpenAI为例,OpenAIAPI调用并不是基于请求量或者订阅时间来计费,而是基于每个请求的使用量来计费。对于AI大模型来说,模型输入与输出的token数可以比较好的衡量当前模型进行推理任务的复杂度。因此基于token作为请求使用量进行计费是OpenAI-API的标准计费策略。对于不同的模型token的计费标准也不同,越复杂的模型会生成越好的结果,但也会带来更高的计费。OpenAI通过为用户分发API密钥来完成用户的鉴权与收费等功能。


图4:OpenAI产品收费详情


对于组织来说,为每位成员申请AI大模型的访问权限(API-Key)显然是不现实的。分散的API密钥将不利于组织进行API的用量计算、管理与付费,从而增加AI大模型的使用成本。其次,对于组织来说,AI模型的选型、使用频率和成员使用权限、以及向AI大模型暴露哪些数据都是在管理中需要着重关注的功能。


云原生网关基于丰富的插件能力,提供了认证鉴权、请求过滤、流量控制、用量监测和安全防护等功能,能够帮助组织与AI大模型的API交互变得更加安全、可靠和可观察;基于云原生网关提供的认证鉴权能力,组织可以实现通过统一的API密钥进行AI模型的调用量管理和付费,并为团队成员授予不同的AI模型访问权限;基于云原生网关提供的流量控制能力,组织能为不同的模型与用户设置差异化的访问速率限制,有效降低AI模型的使用成本;基于云原生网关提供的请求拦截能力,组织能够有效过滤含敏感信息的访问请求,防护部分内部站点资源不对外暴露,从而有效保障内部数据安全。


图5:云原生网关的AI插件调用流程


在AI场景下,流量有以下三大特征,是区别于其他业务流量的:


•   长连接:由AI场景常见的Websocket和SSE协议决定,长连接的比例很高,要求网关更新配置操作对长连接无影响,不影响业务。


•   高延时:LLM推理的响应延时比普通应用要高出很多,使得AI应用面向恶意攻击很脆弱,容易被构造慢请求进行并发攻击,攻击者的成本低,但服务端的开销很高。


•   大带宽:结合LLM上下文来回传输,以及高延时的特性,AI场景对带宽的消耗远超普通应用,网关如果没有实现较好的流式处理能力和内存回收机制,容易导致内存快速上涨。


通过在边缘设备上部署嵌入WebAssembly模块的云原生网关,以此为切入点,可以实时处理来自客户端的数据并进行AI推理并做成一系列的AI插件工具。


图6:基于WASM的AI插件工具集


1. AI代理插件


当前大模型厂商如雨后春笋般出现诸如:通义千问,OpenAI/AzureOpenAI,月之暗面,百川智能,零一万物,智谱AI,阶跃星辰,文心一言,腾讯混元,DeepSeek,AnthropicClaude,Groq,MiniMax,Ollama。使用Wasm技术在客户端对接多家大模型厂商的API,基于统一的OpenAI的API协议进行调用,可以用统一的协议来屏蔽实现细节,从而为开发者提供便利。

2. AI内容审核插件

大模型通常是通过学习互联网上广泛可用的数据来训练的,它们有可能在过程中学习到并复现有害内容或不良言论,因此,当大模型未经过适当的过滤和监控就生成回应时,它们可能产生包含有害语言、误导信息、歧视性言论甚至是违反法律法规的内容。正是因为这种潜在的风险,大模型中的内容安全就显得异常重要。


可以通过简单的配置,对接相关的数据内容审核系统,为大模型问答的合规性保驾护航,提供多种检测范围,用户可以在控制台进行配置。配置后,如果请求/响应中包含了非法内容,被插件拦截后,会对返回内容进行安全建议的回答。

3. AI统计插件

相比于传统微服务,LLM应用中主要通过token来衡量流量大小,针对此特点,可以基于Wasm构建如路由级、服务级、模型级的token用量观测能力,包括日志、监控以及告警。

4. AI限流插件

在AI场景中,限流的需求不仅限于传统的每秒/每分/每小时/每天请求次数(QPS/QPM/QPH/QPD)的限流能力,还额外扩展到了每分/每小时/每天令牌数(TPM/TPH/TPD)的管理。“T”代表令牌(Token),它是一个用于衡量大型语言模型输入输出量的单位。对于AI应用,相比传统的请求数计量,Token计量更能反应资源或成本占用。



如下图是OpenAI对于不同模型在Tier2这个级别的调用方的限制,大部分AI产品也都有类似的限制:


图7:不同AI产品调用限制


5. AI缓存插件


可以实现将LLM响应进行抽取并缓存的功能,对于向LLMAPI高频请求相同问题的场景可以显著降低响应时延并节省成本。


6. AI提示词模版插件


提示词模版插件用于快速构建固定格式的Prompt,对于特定应用需要限制问题格式的场景会比较有帮助,可以在网关上配置Prompt模版,并基于大模型的能力来提供对应的API。



7. AI请求/响应转换插件


通过配置AI请求/响应转换插件,用户可以不用写代码,直接使用自然语言的方式对网关的请求/响应进行修改。例如测试人员在测试API时,对待测API进行插件配置,将原始请求/响应作为example,来生成进行边界条件测试的请求/响应。大模型很多时候会比人考虑的更全面,更容易测试出一些边界case。



创建路由通过插件转发到http://httpbin.org/xml,该接口会返回xml格式响应,通过插件处理可以得到json格式的响应:



挑战与未来展望
(一)当前挑战

 性能优化:虽然WebAssembly已经提供了接近原生代码的性能,但在某些高性能计算场景中,进一步优化JIT和AOT编译策略仍然是一个挑战。特别是在处理复杂AI模型和大规模数据集时,如何高效地进行编译和优化以提升性能,是需要持续研究和改进的方向。WebAssembly目前在并行计算和多线程支持方面还有提升空间。虽然已经引入了线程支持,但在充分利用多核处理器和GPU加速方面,仍需进一步改进。


  安全性和隔离性:尽管WebAssembly提供了沙盒环境,但在实际应用中,对权限的精细控制仍然是一个复杂的问题。开发者需要更多工具和框架来方便地定义和管理WebAssembly模块的权限,以确保其在复杂系统中的安全性。随着WebAssembly的应用越来越广泛,如何防范恶意代码成为一个重要问题。需要开发更加智能和高效的检测和防护机制,保护系统免受恶意代码的侵害。


  工具链和开发者生态目前,WebAssembly的开发工具链相对较新,仍在不断完善中。开发者需要更强大的调试、性能分析和测试工具,以提高开发效率和代码质量。与传统技术相比,WebAssembly的生态系统还在成长阶段。更多的库、框架和社区支持将有助于吸引更多开发者参与,推动WebAssembly技术的发展和普及。


(二)未来展望

1. WebAssembly在AI原生中的潜力


 广泛的应用场景:WebAssembly的高性能、低资源消耗和跨平台兼容性,使其在AI原生环境中具有巨大的潜力。可以预见,WebAssembly将会在更多的AI应用场景中得到广泛应用,如自动驾驶、智能医疗和个性化推荐等。


 边缘计算的关键技术:随着物联网和边缘计算的发展,WebAssembly将成为边缘AI计算的关键技术。通过在边缘设备上运行AI模型,可以实现更高效的本地数据处理和智能决策,推动边缘计算的普及和应用。


2. 技术发展趋势


 更强大的并行计算支持:未来,WebAssembly将在并行计算和多线程支持方面不断改进,以更好地利用多核处理器和GPU的计算能力,满足大规模AI计算的需求。


 增强的安全机制:WebAssembly的安全机制将进一步加强,提供更细粒度的权限控制和更智能的恶意代码防护,确保系统的安全性和可靠性。


 优化的编译器和运行时:编译器和运行时将继续优化,提高WebAssembly的执行效率和性能,为AI原生应用提供更强大的计算能力。


3. 生态系统的完善和扩展


 丰富的开发工具:未来将会有更多的开发工具和框架支持WebAssembly,从而提升开发效率和代码质量。例如,集成开发环境(IDE)中的调试工具、性能分析工具和测试框架将更加完善和易用。


 更多的库和框架:随着社区的发展,越来越多的库和框架将支持WebAssembly,开发者可以利用现有的资源快速构建和部署AI应用。例如,深度学习框架、数据处理库和分布式计算框架的WebAssembly版本将不断涌现。


 社区和标准化:WebAssembly的开发者社区将继续壮大,通过合作和交流推动技术进步。同时,WebAssembly的标准化进程将进一步加快,提供更加统一和规范的开发和应用标准。


通过不断克服当前的挑战,抓住技术发展的新机遇,WebAssembly将在云原生和AI原生环境中发挥越来越重要的作用。它不仅为构建高效、智能和安全的应用提供了强有力的技术支持,也为未来的技术创新和应用场景开辟了广阔的空间。

参考资料
[1]WebAssembly Documentation.[EB/OL]

[2] 将AI应用于WebAssembly还为时过早吗? [EB/OL]
[3] 亚信科技. AIGC(GPT)赋能通信行业应用白皮书[R],欧阳晔、张亚勤等, 2023.
[4] 软件架构的演进过程[EB/OL],
https://www.cnblogs.com/GumpYan/p/14324150.html, 2021.
[5] AI Agent,为什么是AIGC最后的杀手锏[EB/OL]. 
https://www.huxiu.com/article/2324152.html, 腾讯研究院,2023.
[6] AI能力全面开源,云原生能力再升级[EB/OL].阿里云,2024

亚信科技新技术探索
亚信科技的ICT前沿技术观点与行业洞见。展现亚信新技术与产品行业实践成果。
 最新文章