生产环境中AI调用的优化:AI网关高价值应用实践

news/2024/11/15 19:37:04/文章来源:https://www.cnblogs.com/apipark02/p/18548539

随着越来越多的组织将生成式AI引入生产环境,他们面临的挑战已经超出了初步实施的范畴。如果管理不当,扩展性限制、安全漏洞和性能瓶颈可能会阻碍AI应用的推广。实际问题如用户数据的安全性、固定容量限制、成本管理和延迟优化等,需要创新的解决方案。

本文我们深入探讨了一些独特的应用场景和策略,如:语义缓存、提示保护、提示增强和动态负载均衡等等,及如何帮助企业构建具有弹性、安全性和可扩展性的AI驱动应用。通过探索这些具体的案例,希望给正在应用生成式AI大模型的企业组织提供可行的参考。

“Hi” 用例:

对于企业的客户来说,用户与其产品和服务的产生的互动是主要的收入来源。生成式AI(GenAI)已经改变了用户的接入方式和互动通道,并且为企业创造了更快的收入增长、更多忠实用户和更佳的客户体验。

以下是一家全球电信公司的实践案例:该公司开发了一个用于提升客户体验的AI的聊天机器人。

从他们的经验中,我们可以看到,、在很多AI驱动的客户沟通互动中,用户通常会从简单的问候开始,比如“Hi,你好”。

以ChatGPT-4为例,系统的典型回应是“您好,有什么可以帮到您的?Hello! How can I assist you today?” 这类互动看似简单和常见,但对于需要处理大量交互的公司而言,这样的应答成本很快就会积累起来。就算每次“Hi”请求消耗1个token,而AI模型的默认回复需要9个tokens,总的合计每次互动就要10个tokens了。

虽然单次的消耗看起来不是很多,但如果一个企业组织每年处理10亿次这样的请求,成本就会达到92,500美元之多!

虽然礼貌的问候和回应对客户体验至关重要,但这个案例也表现了优化成本存在的巨大潜力。

GPT-4o 的成本

这种情况下,“语义缓存”则成为了一个游戏改变者。由于绝大多数用户发送的初始内容相同,且他接收到的输出内容也相同,所以每次都生成新的回应就没有必要。

通过缓存这些常见的互动内容,企业可以确保每个请求只计算输入token,而输出则从缓存中直接获取。假设缓存命中率达到100%,而且没有过期,这样下来可以将token的调用成本降低到每年仅需$2,500。仅计算输入token的费用——形式相较于重复的、非唯一的互动,就节省了$90,000。

这种方法不仅优化了调用成本,还能将资源重新分配到那些真正为用户创造价值的交互中。

性能优势:

目前,采用生成式AI的企业组织系统通常在互动中存在一定程度的延迟。通过语义缓存来优化性能的形式为提升用户体验是一种高效的形式,也一定程度上推动AI应用的普及。

语义缓存允许像常见的“Hi”请求这样的频繁重复查询,在亚毫秒级的时间内即可返回响应。另外,通过设置相似度评分,像比如 “你好”或“在吗”,这样的轻微变体也可以从缓存中返回。

AI Gateway 可以给出解决方案,将响应添加到缓存中非常简单。

像“帮我转人工客服支持?”或“给我FAQ链接”这样的常见请求都可以通过最少的配置进行缓存,并且由于缓存是基于语义的,AI Gateway会对任何与缓存请求相似的请求返回缓存响应。

这不仅提高了速度和一致性,还减少了资源消耗。对于企业来说,这不仅提升了用户满意度,还带来了显著的成本节省和更高的可扩展性收益。

“Prompt 卫士 ”使用用例

虽然看起来部署生成式AI模型很简单,但企业组织仍然面临不少挑战。例如,企业搭建了一个AI聊天机器人,可能会有一部分用户的查询是恶意的。如果企业允许这些查询传递到大模型里面不仅浪费了资源还可能引入不必要的风险。

通过AI网关即可拦截这些不当的信息,企业的应用就可以避免将这些请求发送到LLM所带来的延迟成本和token费用。例如,可以通过简单的正则表达式模式来标记不当语言或阻止某些关键词,确保这些请求永远不会越过网关。

这种方法不仅降低了运营成本,还提升了应用的安全性和应答效率,从而为用户提供更好的整体体验。

高级 Prompt 保护:

随着应用系统工作负载变得更加复杂,我们也可以预见到有些应用场景是需要过滤的,而不仅仅是简单的字符串匹配或正则表达式规则。例如,检测和清理用户输入中的个人身份信息(PII)就需要更加复杂的处理,这时候高级的Prompt保护就显得尤为重要了。

开发者可以选择不依赖基本的技术,而只是将输入首先发送到本地服务的、经过微调的小型语言模型(SLM)专门用于检测、清理清除敏感数据,然后再将其传递给后台的LLM。

与正则表达式或字符串匹配不同,后者受限于预定义的模式且难以处理上下文,SLM能够动态分析输入,识别出微妙或模糊化的个人身份信息(PII),如姓名、地址或支付信息。

SLM随后处理输入,实时清除敏感信息,并返回清理后的提示。只有这个经过清除环节的版本才会被转发到LLM进行进一步处理。这种分层处理方式不仅保护了用户数据,还确保AI系统在合规和安全标准内运行,为企业避免了不必要的风险和成本。

Prompt 增强实践

给业务和安全需求增加控制层

随着生成式AI应用的变得越来越复杂,建议企业为AI的负载增加能够实现更加精细化管理的控制层以增强安全性。这个时候,提示工程就变得尤为关键了,因为它允许开发者通过精细调整AI模型来应用户的输入来优化性能和行为。虽然很多开发者更注重为特定用例配置最佳的Prompt,但企业组织通常需要额外的控制层,才能满足其对安全、合规和组织标准要求。

在AI 网关层级对Prompt 增强提供额外的管控,可以让安全部门和业务研发同事们在不修改底层应用代码的情况下,就可以采用预先或后附加的形式对业务的 Prompt 进行配置。例如,安全团队可以强制执行系统级的提示,如:“如果请求涉及法律、医疗或个人身份信息(PII),请回应:抱歉,我无法提供该话题的帮助。请咨询专业人士获取更多信息。"

作为防御深度策略中的关键第一层,辅以 Prompt 保护,AI网关这领域的能力适用于模型可能产生幻觉并违反提示词的场景。同样,业务团队也可以通过提示增强来自定义响应,比如添加多语言翻译或应用敏感内容过滤。通过Prompt 的增强,企业组织可以更加灵活的实施必要的保护措施,并且从整体上确保消息传递的一致性,同时也不限制开发人员在业务应用层面的创新能力。

应对负载均衡

随着这家企业的 AI 聊天机器人AI应用逐渐成熟,现在需要扩展到更多场景负载。那么找到一种高效且安全的方式来管理和优化其跨多个部署的GenAI容量,就是其下一步的关键所在。

例如,像Azure OpenAI这样的平台,就是通过处理吞吐量单元(PTU)来分配和计量容量,每个部署都受到固定配额的限制。这些部署通常与应用程序紧密耦合,当容量耗尽或需要优化性能时,如何在不影响服务的情况下进行调整就是要面临的难点。

管理员可以创建多个端点来管理不同应用、区域或业务单元的容量,但在这些端点之间动态路由流量需要复杂的负载均衡策略。

整体上,从管理容量限制到区域路由,再到短期后端支持,企业需要一个更加灵活、自动化的解决方案,来确保AI基础设施的高可用性、低延迟和无缝扩展。

Token 容量的透明性

建议企业在将AI部署到应用和服务的时候,要注意容量配置的SLA,以便了解扩展限制。例如,微软的就提供了有关容量的透明信息,但并不保证你在需要时容量一定可用。在容量在部署时进行分配,并且只要部署存在就会被保留。然而,当你缩小规模或删除部署就会将该容量释放回主区域,也并不能保证未来扩展或重新部署时会再次可用。

鉴于这种不确定性,你可以实施一个抽象层来将流量路由到任何可用的后端,这样即可减轻与扩展限制相关的风险,来保证调用的灵活性。

在不更改应用层的情况下处理固定 Token 消耗

如果团队的某些应用硬编码了特定的后端LLM端点(例如:acme-gpt4o-01.openai.azure.com),一旦达到 Token 限制,应用就必须重启以切换到其他后端时,可能会导致中断。

这里的一个有效的解决办法是,可以在AI网关层实现动态负载均衡层。让流量能够在容量阈值到达之前自动路由到备用端点,以确保服务不中断,而且无需进行应用层的更改或重启。

这样不但确保了高可用性和无缝扩展,使企业能够有效管理容量,同时保持应用的稳定运行。

跨LLM端点的集中流量管理

从安全角度来看,建议将所有LLM流量路由通过单一的出口点,来进行重要的安全、合规性和运营监控。这样子就可以确保所有交互都被监控、记录起来,符合企业的管理要求。

但是在管理跨多个区域和应用的LLM部署时,强制执行这一点可能会面临很多的问题。为了平衡安全性和灵活性,可以通过AI Gateway实现集中流量管理。

将所有LLM流量通过一个受控的单一出口点进行路由,同时仍允许根据容量或性能优化动态路由到后端部署,确保严格的安全合规性的同时,不牺牲扩展性和优化后端容量的灵活性。

通过区域感知路由来减少用户延迟

如果你有分布式应用,最小化用户延迟则是提升用户体验的关键因素。实现的一种方式是确保根据用户的地理位置将请求路由到最近的后端LLM部署。通过实现区域感知路由,应用可以自动将流量引导到最近的后端LLM端点(例如,欧洲使用acme-gpt4o-02.openai.azure.com,亚洲使用acme-gpt4o-03.openai.azure.com)。

通过管道触发器自动化LLM容量部署

自动化LLM容量的部署对于应对实时需求波动至关重要。例如,你可以配置一个管道,当满足预定义条件(如接近配额限制或流量增加)时,就触发创建具有固定容量的新LLM部署。

一旦创建了新的部署,路由规则可以自动更新,将流量导向新的LLM容量。这种方法很大程度上简化了过程,并降低了容量短缺的风险,无需人工干预就确保应用的连续可用性。

尽管现在AI技术仍处于初期阶段,但越来越多的企业已经将AI 集成到业务和内部管理的系统中来提升效率。在这个过程中,AI网关发挥着重要的作用,帮助企业应对这一些列的挑战。

比较火热的一些国内外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:该网关提供一系列预训练语言模型,适合文本生成、摘要和翻译任务的简便集成,专为开发者或企业提供简单、高效的语言模型接入方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/834200.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MobileViT-v1-所有patch内相对位置相同的token之间计算自注意力

paper def my_self(x: torch.Tensor):通过这段代码 可以把每张图片图片中相对位置相同的若干个tokens放到最后两个维度# [B, C, H, W] -> [B, C, n_h, p_h, n_w, p_w] # n_h是高度方向上可以分多少个patch p_h patch的高度 n_w 宽度方向上可以分多少个patch p_w patch的宽…

27. 使用MySQL之全球化和本地化

1. 字符集和校对顺序 数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此,MySQL需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法。 在讨论多种语言和字符集时,将会遇到以下重要术语:字符集为字母和符号的集合;…

TCP/IP上三层协议

TCP/IP上三层的角色 同一台设备上的进程间通信有多种方式,如管道、消息队列、共享内存、信号等。而不同设备间的进程通信需要网络通信,由于设备具有多样性,因此协商出了一套通用的网络协议。这个网络协议是分层的,每一层都有各自的作用和职责,接下来将依据 “TCP/IP 网络模…

无线部分

AC堆叠(VAC) 配置两台AC设备,使用虚拟化方案组合成1台虚拟AC。 AC1和AC2之间的G 0/3-4端口作为虚拟交换链路。配置AC1为主,AC2为备。主设备 description为AC1,备用设备description为AC2。 AC1 virtual-ac domain 100device 1 device 1 priority 200 device 1 description …

DHCP欺骗

DHCP 欺骗原理DHCP 协议(Dynamic Host Configuration Protocol) 动态主机配置协议:主要给客户机提供 TCP/IP 参数,包括:IP 地址、子网掩码、网关、DNS、租期工作原理应用层协议,基于UDP 主机向服务器 67 号端口发送 DHCP 请求 服务器响应给客户机的 68号端口配置设置DHCP 服…

Redis运行的时候碰到# Creating Server TCP listening socket *:6379: bind: No error

Redis运行的时候碰到# Creating Server TCP listening socket *:6379: bind: No error 解决方案: 1、启动redis客户端:redis-cli.exe。 2、执行关闭命令:输入shutdown3、执行退出命令:exit4、重新启动Redis输入:redis-server.exe redis.windows.conf

https实验

https 实验原理httphttps https = http + SSL/TLS •SSL: Secure Socket Layer 安全套接层 •TLS: Transport Layer Security 传输层安全协议加密方式:PKI(公钥基础设施)使用公钥技术和数字签名来保证信息安全由公钥密码算法、数字证书(Certificate)、CA(Certificate Aut…

手把手教你搭建OpenScenario交通场景(上)

经纬恒润动力学仿真软件ModelBase基于OpenScenario1.0标准,开发内嵌了场景编辑器,可用于对仿真测试过程中的车辆行驶道路模型之外,继续进行周边动态场景的搭建。 OpenScenario是一种专为自动驾驶系统仿真测试设计的场景描述语言,它基于XML格式,旨在提供一个标准化、…

动态规划题单2

第一个题单编辑到后面实在是太卡了,就新开了一个,以后应该也会 \(30\) 题为一个题单。 31.CF1580D Subsequence CF1580D Subsequence 不会笛卡尔树,但是看到题解区的妙妙解法...... 题目的式子非常大便,我们考虑把它翻译成人话: 一个子序列的价值为: \(sum*m - 每两个数及他…

java 反序列化 cc7 复现

java 反序列化 cc7 复现复现环境:common-collections版本<=3.2.1,java版本随意.cc7就是cc6换了一个出口,整体的逻辑没有太大的变化.在Lazymap之前的还那样,我们从如何触发Lazymap的get方法开始看起. AbstractMap 看他的equals方法 public boolean equals(Object o) { if (o…

告别Print,使用IceCream进行高效的Python调试

在Python开发实践中,调试是一个不可或缺的环节。如果采用print()语句来追踪程序执行流程,可能会遇到一个持续出现的异常情况,并且经过多次代码审查问题的根源仍然难以确定,这可能是因为随着终端输出信息的不断增加,这种调试方式的局限性逐渐显现。本文将介绍IceCream库,这…

浏览器

控制台 查看继承的样式 Inherited(继承) from xxx: 继承样式来自于xxx <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><title>Document</title><style>.font {font-size: 12px;}.font2 {fon…