为了账号安全,请及时绑定邮箱和手机立即绑定

大型语言模型网关入门:开发者的AI模型接口指南

探索利用 LLM Gateway 集成 AI 模型的关键技术和最佳实践,参考我们的开发者指南。

作者:Grig Duta,Qwak: Qwak

随着像ChatGPT、Gemini和Anthropic的Claude这样的大型语言模型(LLM)迅速崛起,我们看到越来越多的LLM应用程序开始进入市场。如今,像Hugging Face这样的平台已经托管了超过16,000个LLM,推动了这一领域的创新,简化了应用程序与模型之间的集成。

其中一个创新是AI/LLM网关技术,它借鉴了传统软件开发网关的概念,但专门针对LLM集成进行了调整。尽管这不是一个全新的概念,但LLM网关正逐渐成为将LLM融入应用和服务的基础工具,提供标准化调用、检查和评估这些模型交互的功能,这些功能让整个过程更加规范。

本文将介绍LLM网关的概念,探讨其功能、优势及总体架构。我们还将看看一些开源工具和资源,你可以利用这些工具来构建自己的LLM网关,以更轻松地将这些模型无缝集成到你的项目中。

理解大规模语言模型的网关

LLM 或 AI 服务网关正在演变为一种基础组件,用于将精细调校或大型基础模型集成到各种应用中。这些网关简化了与不同 LLM 提供者的交互,简化合规流程,并提供一系列工具来优化 LLM 调用的性能和可靠性。

想象一家公司将其应用程序集成各种AI和LLM服务。该公司使用多家供应商,如OpenAI、Bedrock以及在自有数据上进行微调的开源模型。每个服务都有自己独特的API,需要单独的实现和管理。

在这个场景中,每当公司需要调用一个大型语言模型时,开发团队需要为每个提供商的API编写和维护特定的代码。这不仅增加了代码库的复杂性,同时导致了API密钥和凭证分散的问题,使得权限管理和安全确保变得困难。

此外,没有统一的网关,追踪成本和使用情况变得相当麻烦。每个服务的计费方式和使用模式可能不同,这使得控制成本和预测预算的需求变得困难。

合规性也是一个问题。由于数据通过各种API流动,实施一致的数据匿名化和保护措施需要很大的努力,并且可能导致错误。公司需要确保每个交互都符合相关的数据保护法规,这会增加开发的负担。

另外,缺乏统一的网关意味着公司错失了宝贵的工具,这些工具能够提升其LLM(大型语言模型)交互的性能和可靠性。例如,没有集中的请求缓存机制,自动重试功能也无法实现。跨所有提供商监控和记录请求则不得不在应用程序基础架构层来做。

总体而言,没有AI/LLM网关的情况下运行会导致一个分散的系统,在这种系统中,安全、符合规定的维护变得更难以维持,成本管理也缺乏成本控制措施,开发过程也变得更不高效。下图显示了这种分散的情况,突出了API密钥的分散情况、缺乏成本控制措施以及权限管理不到位。

在使用AI/LLM网关之前,先集成LLM

LLM Gateway 的主要特点

随着越来越多的团队开始构建由大型语言模型(LLM)驱动的应用程序,很明显,高效管理这些交互对于取得成功至关重要。AI服务网关正逐渐成为一种流行解决方案,那么,这些网关到底能做什么呢?让我们来看看典型的LLM网关的一些关键功能,并看看它们在实际应用中是如何发挥作用的。

1. 统一 API

提供一个单一且一致的接口。想象一下一个客服聊天机器人,它可以根据查询的复杂性在不同的大型语言模型供应商之间切换。有了统一的API,开发人员可以使用相同的代码结构调用任何大型语言模型,只需更改一个参数来指定要使用的模型。这能节省时间并简化代码库。

2. 认证与授权

管理对LLM服务的访问权限,确保只有授权的用户或应用程序可以发起请求。它还处理与多个LLM提供商进行身份验证的复杂性。例如,一家大公司开发了供不同部门使用的LLM驱动的内部工具。LLM网关可以实现基于角色的访问控制,允许HR部门的简历筛选工具访问某些模型,而客户服务聊天机器人可以访问另一组模型。网关处理每个提供商的身份验证,简化了这些复杂性,让应用无需理会这些细节。

另外,网关还可以实现如下功能:

  • 管理API密钥的存储和轮换:存储和轮换不同大型语言模型提供商的API密钥。
  • 速率限制:通过限制用户或应用程序在一定时间内可以发出的请求数量来防止滥用。
  • 审计日志:详细记录谁在什么时间出于什么原因访问了什么内容,这对于需要遵守严格规定的行业特别有用。
3. 缓存技术

缓存常见问题的答案,以减少API调用次数,加快响应速度。例如,一个电影推荐系统这样的系统会经常收到关于热门电影的请求。通过缓存这些常见请求的答案,网关可以立即响应重复请求,无需再次调用API,从而降低成本,同时提供更快的响应来提升用户体验。

4. 使用情况跟踪与分析

监控和报告LLM的使用情况、成本以及性能指标。一家同时进行多个AI项目的公司可以利用网关提供的分析功能来追踪哪些项目使用量最多,哪些LLM在特定任务上的表现最好,以及成本如何在不同团队或应用程序间分配。这些数据有助于明智地做出资源分配和模型选择的决策。

5. 自定义的预处理和后处理

允许在向大型语言模型发送请求前添加自定义逻辑,并在收到响应后处理。例如,法律文件分析工具可能需要在发送文本前移除敏感信息,并在收到回复后重新插入。网关可以自动处理这些步骤,确保符合数据保护法规,同时不会使主应用程序逻辑变得复杂。

6. 负载均衡

将请求分发到多个实例或服务商,以优化性能和资源使用。例如,在高峰期,一个网关可能每分钟会收到数千次请求,这些请求是针对一个流行的AI语法检查工具。网关内的负载均衡器会将这些请求分发到多个LLM实例或甚至是不同的服务商,确保没有单个节点过载并保持快速响应。

7. 监控和日志

提供详细的日志记录、请求追踪和调试工具,帮助开发人员识别并解决与LLM交互时遇到的问题。开发团队在使用LLM开发一个复杂的金融分析工具时,发现了一些LLM输出的不一致。利用网关提供的调试功能,他们可以:

  • 查看每个请求和响应的详细日志信息,包括时间戳、使用的模型版本以及任何预处理或后处理步骤。
  • 使用请求跟踪来追踪特定查询通过网关的全部路径,包括它是如何被路由的、哪个大模型处理了它,以及每一步花了多长时间。
  • 查看发送给大模型的确切提示,包括网关所做的任何修改。

在集成AI接口后使用的大型语言模型应用程序

使用LLM网关的好处

我们已经了解了AI服务网关的关键特性,但它们实际上是如何为你的应用和团队带来价值的呢?在这一部分,我们来谈谈,当你通过LLM网关调用LLM时,每个特点是如何给你带来一个或多个好处的。

简化开发与维护

使用一个LLM网关可以显著改善你的开发流程,并减少你集成AI应用程序的维护负担。通过将不同LLM API的复杂性抽象出来,开发人员可以专注于构建功能,而不是纠缠于集成细节。网关提供了一个统一的接口,这意味着你可以根据需要在不同的LLM提供商或模型之间轻松切换,而无需重写应用程序代码。这种灵活性在你想要尝试新模型或因成本或性能原因需要更换提供商时特别有用。此外,集中管理API密钥和配置可以减少代码库中泄露敏感信息的风险,并简化对多个应用程序或服务的更新。

特征存储平台的示意图
注:此链接指向特征存储平台的介绍页面。

更安全且符合规范

生成模型网关就像你LLM交互的安全检查点,确保交互的安全性。它提供一层保护,处理身份验证、速率限制和访问控制。所有这些功能都在同一个地方统一处理。这种集中化的方法使你在所有LLM集成中更容易实施和执行一致的安全策略。对于处理敏感数据或在受监管行业中运营的公司而言,LLM网关可能是一个真正的游戏规则改变者。它允许你执行数据过滤、PII检测和审计日志,帮助你满足合规要求,同时不会增加开发团队的额外负担。网关还可以帮助你控制哪些模型或提供商用于特定任务,确保敏感查询只由批准的安全端点处理。

性能更好,更省钱

LLM网关可以显著提升应用程序性能,同时控制成本。通过实现缓存机制,网关可以存储并重用常见查询的响应,从而减少延迟和API调用。这不仅改善了用户体验,还可以减少使用LLM提供商服务的费用。负载均衡功能可以帮助你在多个模型或提供商之间分配请求,从而优化性能和降低成本。一些生成模型网关还提供智能路由功能,可以根据查询类型、所需响应时间或成本限制自动选择最合适的模型。

更可靠的服务

可靠性是集成第三方服务时的一个关键关注点,而LLM网关有助于直接应对这一挑战。通过提供自动重试、故障转移机制和断路器等功能,网关可以妥善处理LLM提供商的临时故障或性能下降。这意味着即使某个特定的模型或服务提供商出现问题,您的应用程序仍可以继续运行。此外,网关还可以对响应实施质量检查,确保传递回您的应用程序的输出有效且有意义。

更轻松的调试。

解决AI驱动应用的问题可能很复杂,但通过使用大型语言模型网关可以显著简化这一过程。通过集中的日志记录和监控,网关提供了一个统一的监控视图。这意味着你可以轻松追踪请求和响应数据、延迟、错误率以及跨模型和提供商的使用模式。一些网关还提供高级功能,如请求跟踪,允许你跟踪一个请求穿越整个系统,包括触发的所有LLM调用。这种级别的可观测性对于诊断性能问题或意外行为非常有价值。此外,拥有所有LLM交互的一致接口使得更容易重现和隔离问题,加快了调试过程并减少了停机时间。

更好地查看成本和使用状况

一个常常被忽视的好处是,它能提高你对AI成本和使用模式的可见性。通过集中所有大规模语言模型网关的交互,网关就成了收集和汇总使用数据的自然节点。这意味着你可以轻松跟踪和分析你在AI上的花费。许多网关提供了内置的仪表盘或报告工具,可以清晰地展示你的使用模式趋势,帮助你识别节省成本的机会或潜在的优化空间。例如,你可能会发现某些查询类型消耗了不成比例的预算,这可能会促使你优化这些特定的工作流程或切换到更经济的模型来完成这些任务。这种级别的洞察对于财务和工程团队合作更好地管理AI预算特别有价值。此外,拥有详细的使用记录可以帮助你在与这些提供商谈判合同或规划未来AI能力的扩展时做出更明智的决定。

来源链接

LLM/AI网关架构:请求流程

AI网关的架构可以从简单到复杂,具体取决于需求。最基础的形式就是一个SDK(软件开发工具包),它提供一个统一的接口,用于访问不同提供商的多个LLM或模型,每个模型都有其特定的需求或请求格式。

随着我们添加更多功能,我们可以引入一个密钥管理方案,使网关能够为各种LLM提供商处理认证凭证,而不让API调用者直接接触到这些凭证。这可以由一个认证机制来补充,增加一层安全保护,确保只有授权实体才能访问LLM网关。

如果你想在网关级别追踪请求,你可以实现一个请求日志模块(例如 request logging module)来捕获每个请求的输入和输出信息。这些数据可以存储在易于读取的格式中,比如数据库或日志文件,以便进行查询和分析。为了避免请求处理时的性能瓶颈,你可以考虑使用像 Kafka 这样的流处理或队列服务来异步处理日志信息。

此时,LLM网关成为一个独立的部署,需要集成日志记录和监控工具以便监控性能并促进高效调试。

由于 LLM 网关充当了请求的 LLM 路由,因此包含一个可以将请求分配到多个 LLM 提供商之间的负载均衡系统是有益的,这样你就可以根据需要在不同的提供商之间切换。我们很快会进一步探讨不同的路由机制。

为了优化成本,特别是考虑到大型语言模型/大型功能模型的潜在费用,你可以考虑加入一个缓存模块。然而,值得注意的是,请求可能会很长且类型多样,可能需要大量的内存来支持缓存。

考虑到大型语言模型(LLM)的能力,也值得考虑在向LLM发送请求之前进行数据过滤,或者至少剔除个人可识别信息(即PII)。此外,你可能还想实现一个能够检测并减轻由LLM生成的潜在错误或不合理输出的评估函数。

随着LLM网关变得越来越复杂,它可以演变成一个更复杂的系统,能够评估和管理请求、提示和LLM本身。它甚至可以作为一个提示管理器,帮助部署,在不中断当前操作的情况下动态加载新的提示。

记住,你选择的特定架构和组件将取决于你的具体需求以及你期望从LLM网关获得的所需功能。

LLM / AI 接口架构

让我们通过一个真实的例子来演示一个酒店业聊天机器人(LLM 应用)如何向 LLM/LFM 请求旅行建议,以及请求在网关中的流转过程。

  1. 请求接收:用户通过网页界面或消息平台与聊天机器人互动,提供旅行偏好并寻求推荐。聊天机器人的前端UI捕获这些输入并通过SDK或API将其发送到后端。
  2. 认证与预处理:网关首先使用认证机制(如API密钥或令牌)验证聊天机器人的凭据。然后,它预处理请求,确保其符合所需格式和标准。这可能涉及初步的数据清理,以移除任何明显的个人身份信息(PII)。
  3. 数据保护:为了进一步保护用户隐私,网关采用加密、令牌化和数据屏蔽等技术对请求中剩余的PII进行匿名处理。这一步强化了对数据保护法规的遵守,并维护了用户的信任。
  4. 路由决策:网关决定使用哪个LLM/LFM供应商来处理请求。此决定可以基于各种路由策略等等。
  • 用户偏好设置:当聊天机器人调用网关时指定了特定的LLM/LFM提供商,网关将根据要求指定的提供商来转发请求。
  • 动态负载均衡:网关根据实时的提供商可用性、响应时间和负载情况,将请求分发到多个LLM/LFM提供商。
  • 故障转移机制:如果主LLM/LFM提供商出现故障或不可用,网关会自动将请求转向备用提供商,确保服务不会中断。

5. 转发和处理请求:一旦路由决策作出,网关会将请求转发到选定的LLM/LFM提供商。提供商处理请求后,如下根据用户的偏好和其训练得到的知识生成旅行建议。

6. 幻觉管控:在响应发送回聊天机器人之前,网关系统会执行检查以验证推荐的准确性和一致性。这可能包括与可信来源进行核实,应用规则验证,或利用其他技术来防止潜在错误或误传信息(即“幻觉”)在大型语言模型(LLM)/大型功能模型(LFM)的输出中。

7. 后处理和缓存:响应验证之后,网关执行必要的后处理步骤,例如移除剩余的个人身份信息或调整输出格式以更好地展示。可选地,网关还可以缓存响应,以提高类似未来请求的响应速度。

8. 响应流式传输和交付:为了增强用户体验,网关实时将旅行建议流式传输回聊天机器人,一旦这些建议可用时。当整个响应处理完成后,网关将最终的旅行建议发送给聊天机器人,标志着请求过程的结束。

在整个请求旅程中,LLM/AI网关(以下简称“网关”)作为中介,处理身份验证、数据保护、路由、数据校验和后期处理任务。

开源工具:搭建您的LLM接口

在搭建LLM网关时,使用开源工具能帮助简化流程并提升实现效果,这里有一些建议的最佳选择。

MLflow 大型语言模型部署(LLM)(原名 MLflow AI 网关)

MLflow LLM 部署指南 简化了与多个 LLM 提供方的交互。除了支持流行的 SaaS LLM 供应商之外,它还与 MLflow 模型服务进行集成,允许你在自己的基础设施中提供自己的 LLM 或经过微调的基础模型。

  • 统一端点:告别在不同提供商API之间切换的麻烦。MLflow为您提供一个满足所有需求的端点。
  • 简化的集成:只需一次配置,就可以轻松上手。不再需要重复复杂的集成。
  • 安全凭证管理:集中管理您的API密钥。不再需要硬编码密钥或用户自行管理,安全性更高。
  • 一致的API体验:享受所有提供商间统一的API体验,轻松使用REST端点和客户端API。
  • 无缝提供商交换:无需更改代码即可交换提供商。切换提供商、模型或路由时,无需停机。

MLflow 是一个模块化的平台,提供了可以使用 mlflow.evaluate() 调用的 LLM 评估工具模块,您可以使用它来比较不同的模型。它还包含一个提示工程 UI,让您能够迭代提示并使用实验游乐场进行实验。

Langchain(语言链)

Langchain 是一个用于开发大语言模型应用程序的多功能工具,尽管它并不能满足所有 AI 网关的需求。它有一个活跃的社区,不断添加与大语言模型提供商的 API 集成功能。

  • 统一的API:Langchain为所有模型提供统一的API,简化了您的开发过程。
  • 更多工具:它非常适合开发LLM应用,提供诸如简单的请求路由机制和集成多种模型的工具。

虽然Langchain在使基于LLM的应用开发更轻松方面表现出色,但它更适合广泛的应用程序开发,而不是作为一个专门的AI接口。在这个链接中了解更多。

LiteLLM

LiteLLM 是一个开源的LLM和生成AI网关,整合了来自不同供应商的超过100个模型,集成到其API。

  • Python SDK:通过一个简洁的Python SDK与LiteLLM交互。
  • 流式响应:流式传输LLM响应,并将输入和输出日志同步到诸如Langfuse或Supabase等工具。
  • 深入分析功能:获取关于成本、使用量和延迟的深入见解,以流式传输LLM响应。
  • 负载均衡和回退:LiteLLM管理超过100个LLM的负载均衡、回退和支出跟踪,采用OpenAI接口格式。

LiteLLM 还支持企业用户所需的单点登录 (SSO) 等功能,其中一个突出的特点就是它简洁的用户界面,方便管理集成、API 密钥和费用。

最后

让我们花点时间回顾一下我们讨论的内容。我们探讨了LLM网关如何能显著简化将生成式AI集成到应用程序中的过程。通过作为各种LLM提供商的统一接口,它带来了标准化、可扩展性和高效性。

从能够无缝切换不同的大模型(LFM)开始,网关成为你应用所有与AI相关调用的主要接口。从安全角度来看,它还安全存储提供者的密钥,不暴露给个别调用者,并对调用大模型(LLM)的应用进行身份验证和审核。AI服务网关还可以在数据传递给大模型前过滤掉个人身份信息(PII)和其他敏感信息。

我们还讨论了网关如何通过存储并提供请求的可见性来帮助请求分析,这是通过一个可观测性栈来实现的。它可以通过缓存机制来提高响应速度,并通过评估模型在特定的任务或提示上的表现来减少幻觉的出现。

总的来说,LLM网关现在已经成为团队将LLM集成到应用程序中的基本工具,提供了性能、安全性和使用情况及成本的可见性。

如果您正在构建或探索基于LLM的应用,请查看Qwak的LLM平台,这是一个管理式的、领先的LLM网关解决方案,涵盖了我们之前提到的所有优势,包括提示管理、LLM微调基础设施等更多功能。

这篇帖子最初发布在Qwak的博客

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消