随着多种商业大型语言模型(LLM)流行,企业将人工智能(AI)整合到工作流程的有了新的要求。无论是在用户界面/用户体验(UI/UX)设计、后端开发还是数据分析领域,LLM和生成式人工智能(GenAI)的应用都已成为企业保持竞争力的关键。AI 技术的快速发展也带来了在同一项目中使用多个 LLM 的需求,可能是大家为了更好的比较它们的性能、调用成本,或者是为了在开发和生产阶段能够更加灵活切换不同的模型。
因此,像OpenAI、Anthropic、Google、Meta和Mistral这些在LLM开发领域处于领先地位的公司,为用户和开发者提供了适用于各种应用场景的API。但是要集成和管理来自不同供应商的多种LLM并不是一件简单的事情。这时,LLM网关或者说AI网关的概念应运而生,为LLM的采用和使用提供了一个统一且简化的解决方案。
一、什么是 LLM网关 / AI网关 ?
LLM网关/ AI网关 是一种中间件,主要负责将用户应用程序与各种LLM服务提供商相连接。LLM 网关不仅简化了集成流程,还提供了一个统一的接口让用户能够轻松访问和管理不同的大语言模型。
简单来说,LLM网关/ AI网关 的功能类似于一个服务中介,它能接收用户应用程序的请求,并对这些请求进行处理或批量操作,然后将它们发送到用户选择的AI 大模型服务提供商。当大模型处理完毕后,网关就有会收集响应,如果有需要,还会对响应进行进一步处理;最后将结果返回给最初的请求者。
这个系统不仅简化了应用程序与多个大模型(LLM)之间的通信,而且还集成了管理请求、优化性能和保障安全等多项任务,所有这些都在一个平台内完成。
LLM网关/ AI网关的核心职责是处理请求和响应,确保应用程序与选定的LLM之间能够顺畅交流。它在一个用户界面或软件开发工具包(SDK)中提供了增强安全性、成本管理和性能优化等功能。从根本上说,LLM网关/ AI网关简化了与多个LLM进行复杂交互的过程。
举个例子,如果你管理一个客户服务部门,想要利用大模型 A、B和C来帮助回答客户的问题。如果没有LLM网关/ AI网关,你就需要分别与这三个大模型 (LLM)建立连接,同时还需要单独设置提示管理、成本监控等外部服务。你的团队必须学会如何使用每一种服务,记住不同的密码,以及掌握向每个大模型发送请求的不同方法。此外,建立和维护这些与不同组件的连接既繁琐又耗时。
图:无LLM网关 / AI网关情况下的工作流
使用LLM网关 / AI网关,你可以一次性为所有三个大模型——A、B和C建立连接。这样,无论LLM使用的是内部还是外部API,都不成问题。
LLM网关 / AI网关的设计非常灵活,它能够同时处理内部的 LLM(比如Llama、Falcon或者公司内部微调的模型)和外部的API(比如OpenAI、Google或AWS Bedrock)。网关为你管理这些LLM服务的连接,大大简化了集成流程。这样一来,你的团队只需要熟悉一个系统,使用一套密码或凭证,就可以通过网关发送所有的请求。所有的请求和响应都通过网关进行路由,这样做的好处是,将来如果需要添加更多的LLM或者新功能,过程将会变得更加简单和直接。
简而言之,网关通过以下方式承担了繁重的工作:
- 通过智能路由为每个提示选择最佳的LLM。不仅如此,你还可以编写条件语句,将特定类型的请求路由到特定的LLM。例如,如果你请求LLM“撰写一篇论文草稿”,那么你可以将其路由到GPT-4o。与研究相关的请求可以路由到Perplexity,与编码相关的请求可以路由到Claude Sonnet 3.5,与推理相关的请求可以路由到OpenAI的O1。
- 跟踪成本。
- 确保客户数据的安全。
- 帮助系统运行得更快。
比较火热的一些国内外LLM 网关/ AI 网关:
APIPark:APIPark是一款国人开发的开源免费 AI网关项目,支持100多种AI模型接入,并提供Prompt 与AI封装成API功能,可搭建自己专属的API开放门户,拥有丰富的API管理功能,适合需要自定义和多样化AI应用的团队。
Cloudflare的AI Gateway:Cloudflare AI Gateway专注于模型的安全保护和性能优化,集成了加密、访问控制和负载均衡等功能,适合高流量和对安全要求高的场景,并具有全球化布局。
Portkey:Portkey是一款开源的AI网关平台,支持灵活的本地或云端部署,注重治理和模型解释性,帮助企业落实负责任的AI应用并提供对决策过程的透明性。
MLFlow Deployment Server:如果您的工作流依赖MLflow,那么MLFlow Deployment Server可以无缝集成到现有基础设施中,便于管理、部署和追踪MLflow模型。
LiteLLM:LiteLLM是针对资源有限的边缘设备设计的轻量化AI网关,支持实时推理和远程感知等低延迟、低硬件要求的应用场景。
Wealthsimple LLM Gateway:该网关提供一系列预训练语言模型,适合文本生成、摘要和翻译任务的简便集成,专为开发者或企业提供简单、高效的语言模型接入方式
二、LLM网关 / AI网关的关键功能
在本节中,我们来讨论一些关键功能,并详细展开它们各自提供的优势。
1)统一API
LLM网关 / AI网关最重要的优势之一是其提供统一API的能力。统一API是一种接口,允许你在一个共同的界面中访问来自不同服务提供商的各种LLM。
图:比较上面的OpenAI API和下面的Anthropic API
如上图可见,我们可以看到OpenAI和Anthropic的API调用略有不同。但是无论如何它们调用并不相似。同样,来自不同提供商的API,包括开源提供商,它们的编写和调用方式也各不相同。有了LLM网关 / AI网关,这些调用API的差异可以被统一和概括。这意味着用户不必在切换LLM时导航到其他地方。他们可以从一个单一的地方访问LLM。
统一API还允许用户维护相同的代码库,将各种LLM无缝集成到他们的应用程序中。同时,它还保持了整体的一致性。
统一API允许开发人员访问来自不同提供商的广泛LLM,而无需明确理解每个提供商特定API的复杂性。本质上,这些API简化了开发过程,降低了学习曲线,并加速了LLM集成到应用程序中。
2)集中式密钥管理
我们知道每个LLM提供商都提供了一个API密钥,通过它我们可以访问LLM及其功能。如果我们正在安全地使用5个不同的LLM,管理API密钥可能会很具挑战性,因为API端点会有所不同。我们不想在每次工作新内容、进行A/B测试不同版本的应用程序,甚至更新现有应用程序时都复制粘贴API密钥。
LLM网关 / AI网关通过提供一个集中的系统来管理这些密钥来解决这一挑战。
图:管理多个API的示例
例如,在上图中,你可以看到liteLLM如何允许你使用环境变量设置API密钥。一旦存储了所需的API变量,你就可以使用单一的函数调用来调用不同的 LLM。例如,你可以使用以下脚本来调用chatGPT 和 Claude-2:
completion(model="gpt-3.5-turbo", messages=[{ "content": "what's the weather in SF","role": "user"}])
completion(model="claude-2", messages=[{ "content": "what's the weather in SF","role": "user"}])
这样确保了更好的安全性并简化了密钥管理。
3)认证和归属
在多个用户需要访问LLM以满足各种需求的场景中,拥有一个认证和使用跟踪的机制至关重要。例如,在一家计算神经科学初创公司中,有多个团队——数学家、神经科学家、人工智能/机器学习工程师、人事人员等。假设每个团队都需要LLM来协助他们的工作。在这种情况下,网关可以帮助他们实施基于角色的访问控制,确保每个团队都能安全地访问LLM。例如:
- 神经科学家可以使用LLM来审查文献并总结它们以生成假设并了解最新的实验。
- 人工智能/机器学习工程师可以使用LLM作为代码助手来开发新模型。
- 人力资源人员可以使用LLM来起草电子邮件、管理资源、审查简历等。
LLM网关 / AI网关确保每个团队都配备了必要的数据,并且没有信息从其他团队泄露。 同样,网关记录并归属于每个团队或个人的LLM使用情况。例如,如果数学家使用LLM生成数学模型,那么网关将记录提示和令牌使用情况,并将这些归属于数学团队。同样,它也会对其他团队做同样的处理。
因此,LLM网关 / AI网关提供了安全的API密钥存储和管理。网关还提供了集中的密钥管理;通过保护根密钥并为每个开发者或产品分配独特的密钥来实现这一点,以确保可追溯性。
图:TrueFoundry管理不同用户认证的流程图
LLM网关 / AI网关提供了针对每个用户和每个模型的认证与归属功能。这不仅确保了访问的安全性,还使得LLM使用情况的跟踪更为精确。
4)动态模型部署
对于企业来说,能够高效地部署、扩展和管理各种LLM模型是至关重要的。LLM网关中的动态模型部署功能使得模型能够:
- 根据实际需求自动进行加载、部署和扩展。
- 根据不同任务的具体要求来选择,比如为文本摘要、编程或数据分析等任务选择不同的模型。
- 动态地进行定制(例如,进行提示工程或轻量级的参数调整,如LoRA或前缀调优)以满足用户的特定需求。
- 在不同的计算资源上部署,根据每个任务的计算需求来优化性能、成本或速度。
举个例子,假设一位神经科学家正在使用大模型LLM对最新的神经科学论文进行文本摘要,而人工智能/机器学习团队则需要LLM来帮助设计一个新的神经网络模型。在这种情况下,两个团队可以根据各自的需求动态部署模型。如果神经科学家的任务计算需求较低,系统可以将资源优先分配给计算需求更高的人工智能/机器学习工程师的任务。当这两个任务完成后,网关可以关闭或缩减这些模型,以节省资源成本。
5)请求/响应处理
LLM网关 / AI网关在本质上扮演着中间人的角色,负责高效地处理来自应用程序的请求和响应。其主要完成两项核心任务:
- 接收来自用户或团队的请求。
- 向团队提供恰当的响应。
下面,我们来详细了解一下请求和响应处理过程中的中间步骤:
- 请求提交:当用户向LLM网关提交请求时,网关会核实提交请求的人是谁。在这个阶段,网关通过一个认证机制来识别用户身份。
- 路由处理:一旦认证机制确认无误,网关就会决定哪个LLM来处理这个任务,包括将请求引导到合适的预处理技术。
- 预处理:接着,请求会经过预处理和格式化,然后才发送到模型。比如,如果查询内容很长,网关会将其拆分成小块,再逐一发送给模型。
- 模型处理:经过处理的请求发送到模型后,会收到相应的响应,然后进行后处理。小块的内容会被整合、格式化,准备好进行发送。
- 响应交付:最后,一旦响应满足了用户的需求,它就会被发送出去。
图:请求/响应处理流程图
在多个团队协作处理不同任务的场景中,网关可能会根据紧急程度和业务目标来优先处理任务。此外,频繁使用的请求或查询会被缓存,以减少处理时间。
6)流量路由
在使用多个LLM实例或提供商的情况下,LLM网关可以智能地路由流量,以确保最佳性能和成本效率。这可能涉及根据工作负载、可用性或成本等因素,将请求导向最合适的LLM。
例如,假设你正在使用OpenAI的o1和Claude Sonnet 3.5来构建一个网站项目。现在,o1和Sonnet 3.5都有有限的响应或输出生成能力。一旦你用完了响应,o1的情况下有一个为期一周的恢复期,而Sonnet大约需要2小时。所以这里的想法是在不超过响应限制的情况下,有效地使用这两个模型。当你在LLM网关中注册这两个模型时,你可以智能地在这两个模型之间切换。这使你能够高效地利用可用的响应。
LLM网关的架构,特别是在分布式环境中部署时,在实现这种动态路由中起着至关重要的作用。
7)安全与合规
确保由LLM处理的数据的安全性和隐私保护非常重要。LLM网关可以执行安全策略,加密敏感信息,并管理访问控制以保护数据。它可以遵守相关的法规,如GDPR或HIPAA。它们作为安全层,增加了处理敏感数据时的额外保护级别。
8)模型和云中立性
许多LLM网关被设计成模型和云中立的。这意味着它们可以与不同的LLM提供商一起使用,并部署在不同的云环境中。这为组织提供了灵活性,使他们能够根据自己的需求选择最佳的LLM和部署策略
三、实施LLM网关/AI网关的优势
使用LLM网关/AI网关可以简化开发流程、提升安全性和增强整体性能,带来显著的优势。下面我们详细探讨这些优势。
1)简化开发与维护
LLM网关/AI网关提供了一个集成多个语言模型的统一接口,省去了处理不同供应商不同API的麻烦。所有LLM都可以通过单一接口访问,这使得尝试不同的想法变得更加容易。这也降低了开发人员的复杂性,使他们能够专注于构建功能,而不是LLM集成的细节。
开发人员可以调整模型特定的参数,比如温度、种子、最大令牌等,来为不同用户或团队开发特定任务的模型。LLM网关也通过不同模型加速了开发过程。
此外,在尝试不同模型或因成本和性能问题更换供应商时,网关简化了这一过程。这允许在不重写应用程序代码或整个代码库的情况下进行更改。这种灵活性也扩展到了API密钥的集中管理,减少了敏感数据的暴露,并使得在不同应用程序间进行无缝更新。在维护或添加新功能时,这大大减少了开发时间。
2)提高安全性和合规性
我们之前没有详细讨论安全性,但这里将稍微讨论一下作为优势之一。安全性和监管合规性至关重要,因为当用户与网关交互时,会共享一些信息作为请求。这些信息可能包含敏感和私密数据。这些信息必须被加密,并且必须谨慎处理。
LLM网关充当集中检查点,管理所有LLM交互的认证、访问控制和速率限制。这种设置在您的AI应用程序中强制执行一致的安全协议。
对于医疗保健或金融等受监管行业的企业,LLM网关可以配备额外的安全层,如个人身份信息(PII)检测和审计日志记录,确保符合GDPR或HIPAA等法规。此外,组织可以控制哪些模型或供应商处理特定查询,确保敏感任务仅由受信任、安全的端点处理。
3)增强性能和成本效率
通过智能路由和缓存机制,LLM网关可以显著提高应用程序性能,同时优化成本。缓存常见查询减少了延迟和对LLM供应商的API调用数量。这不仅增强了用户体验,也降低了运营成本。
智能路由可以根据各种因素选择最合适的模型,这些因素可能是查询类型、成本和性能要求。这确保了速度和支出之间的平衡。
智能路由还促进了负载均衡。跨多个模型或供应商的负载均衡确保资源被有效利用,防止在更简单的查询可以由资源密集度较低的模型处理时过度使用成本高昂的LLM。
4)提高服务可靠性
使用LLM网关的另一个核心优势是提高服务可靠性。通过自动重试、故障转移机制和断路器,网关确保特定LLM供应商的临时服务中断或性能问题不会停止您的整个应用程序。这使您的AI应用程序更能抵抗中断。
网关还可以对响应实施质量检查,过滤掉错误或不完整的输出,并确保只有相关和高质量的响应被传回您的应用程序。
5)简化调试
调试复杂的AI驱动系统可能是一个繁琐的任务,但LLM网关通过集中日志记录和监控简化了这一点。开发者可以完全了解所有LLM交互,包括请求和响应负载、错误率、延迟和使用趋势。像请求跟踪这样的高级功能允许开发者跟踪请求在整个系统中的整个旅程,实时定位问题。
这也有效,因为用户和团队对他们向LLM提出的请求进行了归属。这种简化的调试过程加快了故障排除速度,最小化了停机时间,确保您的系统保持运行和高效。
6)更好的成本可见性和使用监控
LLM网关经常被忽视的优势之一是它们提供的成本和使用的综合洞察。通过作为所有LLM交互的集中枢纽,网关提供了详细的令牌使用报告,使组织能够跟踪不同模型和供应商的AI支出。
有了内置的仪表板,团队可以识别使用和成本的模式,揭示优化机会。例如,某些工作流程可能消耗了不成比例的资源,促使切换到更具成本效益的模型。这种可见性水平有助于财务和工程团队就预算和有效扩展AI系统做出明智的决策。
四、LLM网关/ AI网关的架构概述
在我们了解LLM网关如何工作之前,让我们先了解LLM代理,这将帮助您更好地理解网关是什么以及它的工作原理。那么什么是LLM代理呢?
LLM代理
LLM代理是连接客户端和LLM服务提供商(如网关)的服务器。你可以认为网关是带有额外功能的代理的升级版本。两者的核心思想是它们平衡负载和流量路由。
代理最擅长路由请求、负载均衡和管理用户与LLM之间的通信。它们还帮助抽象细节,意味着用户不一定知道哪个模型正在处理他们的请求。此外,它们提供了对流量流的基本控制。
那么代理的用途是什么?
事实证明,你不需要代理或中介来向LLM发送请求并从中获得响应。你可以不使用任何代理或中介直接使用任何LLM API来完成工作。但你使用代理或中介的原因是为了在主要LLM因网络问题不工作时,或者当你超过配额限制时,有灵活性地随时更换LLM提供商。
图:无代理的API工作流
在这种情况下,如果网络恢复或等待期满或配额用尽,你可能需要迅速切换到另一个可用的LLM。这时,LLM代理就能帮到你。它接收用户的请求,并将它们发送到通过API提供的所需LLM。
图:代理的工作流程
代理服务存在一个问题:它在接收客户端或用户的请求以及LLM的响应时可能会形成瓶颈。当有多个客户端参与时,这个瓶颈问题会变得更加严重,这时就涉及到路由、安全、认证、归属等问题。
为了应对这个瓶颈,你可以使用可以容器化的代理。这样,就可以根据单个或多个客户端的请求和响应流量,创建多个配置相同的代理副本,实现流量的路由和扩展。
图:具有相似配置的代理容器化以实现可扩展性
例如,上图中可以看到代理服务器被封装在容器中。这些容器部署在Kubernetes集群中,可以根据客户端和请求的负载自动进行扩缩,利用自动负载均衡器。负载均衡器根据特定的策略运作。一旦满足了策略中设定的条件,代理服务器就可以进行水平扩展。
这种根据实际需求对代理服务器进行扩缩的方法,可以有效地从所需的LLM获取响应。
虽然LLM代理是管理与LLM交互的有用工具,但对于需要高级功能、可扩展性和与其他系统集成的复杂用例,它们可能还不够。相比之下,LLM网关提供了一个更为全面的解决方案,因为它们是集中化的。例如,LLM网关提供了一个中心化的接入点,可以访问多个模型,并增加了预处理和监控等额外功能。网关还提供治理、可扩展性和定制化等高级服务,使它们更加全面。
简而言之,代理主要负责流量管理,而网关则整合了模型、云和存储API,并提供了更广泛的控制能力。
LLM网关/AI网关的标准架构组件
接下来,我们将探讨LLM网关/AI网关的架构。请注意,我们会回顾前面部分提到的一些内容。但这次我们将从应用的角度来学习这些它们是如何实际运作的。同时,LLM网关/AI网关作为代理的进阶版本,提供了对LLM交互的集中式控制、路由和管理功能。
图:LLM网关/AI网关的架构
LLM网关/AI网关的具体架构可能会因实现方式而异,但一个典型的架构通常包含以下组成部分:
- 用户界面和软件开发工具包(UI+SDK):用户界面和软件开发工具包让用户和开发者能够与LLM网关/AI网关进行交互。SDK提供了一套工具,可以编程方式集成网关的特性,而UI则简化了平台功能的使用,包括管理LLM查询、设置和分析等。
- API网关:API网关或称为统一API层,是网关的核心部分。它在前端(UI/SDK)和多个基于云的LLM服务(例如Azure、AWS Bedrock、Google Cloud)之间进行通信抽象。它提供了一个统一的接口来访问不同的LLM,确保在不同服务提供商间切换时无需更改客户端代码,且操作无缝。这一层还负责处理路由、负载均衡和跨多个LLM服务提供商的请求分发。
- 第三方服务交互:第三方服务可能包括你想要添加的任何额外功能,比如提示管理工具。通过网关,你可以轻松集成你选择的工具。这些服务可以直接通过SDK或RESTful请求与LLM服务提供商进行交互。
- 安全性:为了确保只有授权用户能够与系统交互或访问敏感数据,网关提供了基于角色的访问控制。此外,API网关还负责保护客户端、网关和第三方LLM服务之间的通信安全。
- 审查:审查功能让你能够追踪在网关上执行的所有操作,包括LLM查询、配置变更和安全事件。这种审计确保了对内部政策或外部法规的遵守和问责。
- 单点登录(SSO):SSO模块允许用户使用一套凭证登录系统,减少操作摩擦,提高安全性。这个特性在需要与身份提供商集成的企业环境中尤为重要。
- 密钥管理:密钥管理功能负责安全地存储和访问敏感信息,比如API密钥、令牌和其他访问LLM服务所需的凭证。它确保这些密钥被加密,并且只有授权的服务和用户才能访问,从而降低数据泄露的风险。值得一提的是,所有的安全管理和处理都在代理层面进行。
LLM网关/AI网关如何融入更广泛的LLM生态系统
LLM网关/AI网关关作为一个中介,使得将多个LLM无缝集成到应用程序中成为可能。它们提供了一个集中的解决方案来管理LLM交互,允许企业在不进行大规模代码更改的情况下访问不同的模型。与直接使用API或简单的LLM代理相比,网关增加了负载均衡、安全性和故障转移等关键特性,这对于大规模部署至关重要。
在更广泛的生态系统中,网关增强了可扩展性和灵活性,使得LLM能够被更多行业应用所接受。
部署选项:容器化和基于云的架构
谈到部署LLM网关时,灵活性是一个关键考量因素。部署可以根据基础设施、流量需求和运营目标进行定制。
图:在各种云基础设施中部署LLM网关的架构
以下是两种常见的部署方式概述:
- 容器化:利用Docker和Kubernetes等容器技术,LLM网关能够被部署和水平扩展。在这种配置下,可以快速启动多个网关容器实例来应对流量高峰。例如,Kubernetes能够确保LLM网关根据需求自动扩展,高效管理资源。这在需要实时将成千上万的请求路由到不同LLM的高流量场景中尤为重要。此外,容器化还支持轻松更新和回滚,确保部署过程中的停机时间尽可能短。
- 基于云的架构:另外,企业也可以选择在AWS、Azure或Google Cloud等云平台上部署LLM网关,通常也是以容器的形式。在这种配置下,云服务提供商负责自动扩展、冗余和安全性等关键基础设施管理,而容器编排平台如Kubernetes则负责网关的顺利部署和扩展。这些平台提供了无服务器计算和负载均衡等内置功能,简化了大规模管理和性能优化。云平台还提供了包括加密和合规管理在内的集成安全措施,确保企业数据的安全。这为企业数据安全增加了额外的保护层。
每种部署方式都有其独特的优势。容器化提供了对基础设施更精细的控制,适合那些需要高度定制网关的特定场景。而基于云的架构则减少了基础设施管理的复杂性,更适合那些寻求可扩展、易于管理解决方案的公司。
写在最后
LLM网关/AI网关在AI和语言模型集成的快速发展中扮演着至关重要的角色。它们为企业和开发者在处理多个LLM时提供了全面的解决方案。
以下是主要收获点:
- 简化集成:LLM网关提供统一API,允许通过单一界面访问不同供应商提供的各种LLM。
- 增强安全性和合规性:通过集中认证、访问控制和数据处理,网关显著提升了安全措施,并帮助维护法规合规性。
- 优化性能和成本效率:通过智能路由、缓存和负载均衡,网关在提升应用性能的同时优化了运营成本。
LLM网关的实施带来了以下好处:
- 简化了开发和维护流程;
- 通过故障转移机制提高了服务的可靠性;
- 通过集中日志和监控简化了调试过程;
- 提供了更好的成本和使用模式的可见性。
从架构角度来看,LLM网关在LLM代理的基础上增加了更高级的功能,如路由、安全性和分析能力。它们通常由统一API层、安全模块和第三方服务集成等组件构成。
LLM网关/AI网关的部署选项灵活多样,容器化和基于云的架构是主要的选择。这些选项允许根据组织的具体需求和基础设施偏好进行扩展和定制。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。