设计具有弹性的生成式AI工作负载
关键字: [Amazon Web Services re:Invent 2024, 亚马逊云科技, 生成式AI, Amazon Bedrock, Generative Ai Workloads, Resilience Properties, Fault Isolation, Sufficient Capacity, Correct Output]
导读
弹性在任何工作负载的开发中都扮演着关键角色,生成式AI工作负载也不例外。通过弹性视角设计生成式AI工作负载时,需要考虑一些独特因素。理解并优先考虑弹性对于生成式AI工作负载满足组织的可用性和业务连续性要求至关重要。在本次讨论中,您将了解生成式AI工作负载的不同技术栈,以及应该考虑的相关因素。
演讲精华
以下是小编为您整理的本次演讲的精华。
在技术创新的领域,生成式人工智能的出现为我们带来了前所未有的可能性。利用几行代码或无代码解决方案快速构建原型并实现宏伟想法的能力,吸引了各行业的创新者、企业家和解决问题者。想象一下,能够迅速构建一个能够用多种语言处理查询的客户服务机器人,或者一种辅助早期疾病检测的医学成像工具的潜力。在教育领域,一个能够适应每个学生个人学习风格的人工智能教师可能会彻底改变我们进行个性化教学的方式。这些革命性的概念,曾经需要数月的开发时间,现在只需几天就可以构思和测试,这都要归功于生成式人工智能的简易性和强大功能。
然而,尽管快速原型制作阶段令人兴奋,但演讲者警告说,从有前景的概念验证到健壮的、可投入生产的应用程序的过渡是一个必须谨慎应对的重大挑战。从乌托邦式的原型世界跨越到生产人工智能开发的熔炉,充满了复杂性,可能很快就会消散最初的魔力。
考虑一下设计用于处理多种语言查询的客户服务机器人。在生产环境中,它每天必须面对数百万个查询,其中许多是它未经训练的方言或语境。在保持准确性的同时扩展以满足这种需求,成为了一个艰巨的障碍。同样,用于早期疾病检测的医学成像工具必须处理大量敏感的患者数据,从而引发了关于数据隐私、安全性和合规性的关键问题,更不用说当生命受到威胁时需要近乎完美的准确性。曾经前景光明的自适应人工智能教师,在面对各种学习风格和教育内容的复杂情况时,就会消耗大量计算资源,试图同时为成千上万的学生个性化课程。
可扩展性、数据隐私、准确性、资源管理等挑战,正是生成式人工智能系统真正受到考验的地方。这是一个复杂且有时令人生畏的旅程,但也正是在这里,我们有机会构建可投入生产的人工智能系统,以兑现最初概念验证的承诺。
有趣的是,从概念验证到生产的第一步根本不是技术性的。它是关于确定业务需求。演讲者强调,在设计可靠性时,了解业务需求至关重要,因为可靠性策略必须直接与潜在中断的实际影响相关联。
这个过程始于业务影响分析,在这里量化了故障的潜在影响,包括财务损失(收入损失、投资浪费、法律或合规处罚)和声誉损害(失去信任、负面宣传)。接下来是风险评估,评估不同风险(如模型退化、数据丢失、基础设施故障、API可用性)的可能性和严重程度。这种风险评估有助于确定可靠性工作的优先次序,将重点放在构成最大威胁的领域。
演讲者强调,可靠性不是一个简单的二元概念;它涉及谨慎的权衡。在可靠性措施的成本和复杂性与中断的潜在影响和整体风险容忍度之间寻求平衡至关重要。可靠性不能在真空中构建;它必须植根于组织的现实需求和优先事项。只有这样,才能制定出一种全面的、以风险为导向的方法,真正保护生成式人工智能工作负载的完整性和连续性。
为了说明生成式人工智能堆栈的复杂性,演讲者深入探讨了构成完整解决方案的各个组件。这一探索的基础是Ben Grease和Horowitz的开创性文章“The Emerging Generative AI Application Stack”,该文章具体概述了所涉及的不同功能领域。
模型本身无疑很重要,但它只是众多组件中的一个。在模型组件中,需要做出选择——是通过像Amazon Bedrock这样的完全托管服务(作为API调用)来使用模型,还是通过SageMaker或更DIY的方式在Kubernetes或EC2上自托管。每种选择都有不同的可靠性方面需要考虑。
除了模型之外,还有用于可观察性的组件、用于检测有毒输入和输出的信任和安全防护、以及用于基于检索增强生成(RAG)的问答系统的数据摄取管道和向量数据库。
演讲者强调,虽然这些组件可能并不完全新颖,但它们的组合方式以及它们处理的输入和输出类型都是新的模式,需要仔细考虑。例如,习惯于从Kafka构建数据摄取管道以流式传输数据的数据工程师,可能需要适应摄取半结构化数据(如PDF),而GPU可能成为性能瓶颈。
可观察性被确定为成功运行生产环境中生成式人工智能工作负载的核心能力。演讲者提出了一个可观察性的心智模型,跨多层捕获指标、日志、跟踪和用户反馈。
第一层关注基本的组件级指标,如GPU负载、应用程序服务器上的CPU利用率和模型调用次数。第二层涉及跟踪,这对于了解系统中数据的整体流程和延迟至关重要。第三层是最终用户反馈,因为模型评估是生成式人工智能的关键方面,而人工反馈仍然是黄金标准,尤其是在生产环境中。
第四层深入探讨高级指标,如评估模型利用上下文的效果、事实相关性、简洁性以及数据质量方面(如嵌入漂移)。
在过渡到讨论可靠性属性时,演讲者概述了五个关键支柱:故障隔离、足够的容量、及时的输出、正确的输出和冗余。每一个属性都扮演着至关重要的角色,而它们真正的力量在于它们作为相互关联的支柱协同工作,为生成式人工智能工作负载乃至更广泛的领域奠定了可靠的基础。
故障隔离应对共享命运场景,在这种场景中,损坏和共享依赖关系可能会引发跨越预期故障隔离边界的级联故障。为了缓解这一问题,演讲者建议采用微服务、细胞架构和多账户或多区域部署等架构方法。然而,他们警告说,故障隔离并不总是答案,共享命运也不总是问题。关键是要战略性地了解系统在何处相互关联,预测潜在影响,并实施有针对性的缓解措施,在独立性和通过总体人工智能策略实现的协作之间寻求平衡。
足够的容量暴露了过度负载推动系统超出设计限制时的可扩展性弱点。传统的容量策略(如容量规划和自动扩展)是良好的起点,但演讲者建议将其与人工智能驱动的容量规划、预测性自动扩展和智能资源管理相结合。
他们举例说明,盲目扩展资源可能会导致收益递减,如算法效率低下、I/O瓶颈和模型训练系统中的协调开销。相反,他们提出了模型优化、智能排队、边缘计算、动态模型选择、优雅降级、负载削减以及基于实时系统行为自动调整断路器阈值等策略。目标不仅仅是处理更多负载,而是以智能方式做到这一点,使系统本身不断发展。
及时输出是速度和质量之间的微妙平衡,而高度可变的模型延迟使其更加复杂。多租户负载、模型大小、输入/输出大小和代理的使用等因素都可能显著影响延迟。演讲者建议采用异步处理与流式处理、基于规则和人工智能的混合方法以及语义缓存等技术,来平衡速度和质量。
正确的输出应对可能威胁准确性和可靠性的错误配置和错误。演讲者强调了潜在问题的来源,如代理和工具之间模糊的接口、快速发展的工具包(如Langchain和Streamlit)、Python的大量使用、自托管模型的GPU性能,以及在生成式人工智能团队中整合新角色和人物。
缓解措施包括严格的接口构造、全面的测试、变更管理流程、静态类型检查、资源监控、角色指南、健壮的错误处理、安全数据湖和混沌工程。后者涉及主动向人工智能管道注入受控故障,以发现漏洞、增强可观察性、建立警报机制并完善缓解策略。
冗余着眼于消除整个人工智能管道中的单点故障,从数据保护策略开始。演讲者概述了一种多层方法,包括同区域备份、跨区域备份和复制以及账户级隔离,以防止数据损坏、意外删除和恶意行为。
然而,他们警告了冗余悖论,即为增强弹性而做出的努力,反而会增加复杂性。在不断变化的数据流中保持多个副本的一致性,以及复制高性能GPU集群,都会给资源管理、负载均衡和故障转移机制带来挑战。演讲者强调,需要在消除单点故障和管理冗余努力带来的额外复杂性之间寻求平衡。
在整个会议过程中,演讲者借鉴了真实客户的经验和用例来丰富见解。例如,他们提到一位客户公开承认,在预训练工作期间,每天至少会遇到一些GPU故障。另一位客户最初在使用开源代理框架时遇到了意外行为,这突显了全面测试和明确界面构造的重要性。
演讲者还谈到了组织在尝试检索增强生成(RAG)系统时面临的挑战,多个部门无意中共享了诸如向量数据库、提示库和微调模型等资源。他们举例说明,共享依赖项(如向量数据库)的损坏可能会迅速在整个组织内蔓延,从而瘫痪人力资源、客户服务、法律和产品开发等关键职能。
总之,演讲者提供了一份设计弹性生成式AI工作负载的综合指南,通过结合传统的弹性模式和AI特定的考虑因素来解决独特的挑战。他们强调了与业务影响保持一致、解开整个堆栈、可观察性以及通过针对性策略解决五个弹性属性的重要性。
通过理解概念验证和生产就绪应用程序之间的显著差异、锁定业务需求、探索生成式AI堆栈、拥抱可观察性和加强弹性属性,组织可以驾驭AI开发的熔炉,并实现创新原型的承诺。这个过程复杂而有时令人生畏,但也正是在这里蕴藏着机会,可以构建真正弹性的生成式AI系统,从而革新行业并解决现实世界的挑战。
下面是一些演讲现场的精彩瞬间:
Randy Defoell是亚马逊云科技的一位高级首席架构师,在reInvent2024大会上介绍了构建生成式AI应用程序的弹性最佳实践。
他强调了终端用户反馈和模型评估对于推动生成式AI系统持续改进的重要性。
他强调了根据非功能性需求(如性能、摄取率和可靠性特性)选择合适的向量数据库的重要性,例如OpenSearch、Aurora和MemoryDB等亚马逊云科技服务,同时警告不要将多个工作负载过载到共享的向量数据库中。
他探讨了微服务、细胞架构和多区域部署等架构方法,以实现故障隔离和部门应用程序的弹性。
他揭示了AI模型的智能扩展策略,包括模型优化、智能排队、动态路由、边缘计算、优雅降级、负载削减和自适应断路器。
他强调了保护各种数据资产(包括源数据、中间表示、微调数据、模型工件、基础模型、向量数据库和历史知识)免受数据损坏、意外删除和恶意活动的重要性。
该演讲者强调了理解生成式AI工作负载的架构和组件的重要性,以构建可靠和弹性的系统,这些知识可以在整个组织内共享。
总结
从一个有前景的生成式AI概念验证到一个健壮的生产就绪应用程序的旅程可能是艰巨的,充满了可扩展性、数据隐私、准确性和资源管理等挑战。要成功地完成这一过渡,组织首先必须确定其业务需求,量化潜在故障的影响,并相应地优先考虑弹性工作。
生成式AI堆栈除了模型本身之外,还包括向量数据库、提示库、数据摄取管道和可观察性工具等各种组件。确保故障隔离、足够的容量、及时的输出、正确的输出和冗余对于构建弹性生成式AI工作负载至关重要。像向量数据库这样的共享依赖关系可能导致应用程序之间的级联故障,需要采用微服务或细胞架构等架构方法来隔离故障。
智能扩展生成式AI系统涉及预测自动扩展、模型优化、智能排队和基于负载和请求复杂度的动态模型选择等技术。平衡速度和质量需要异步处理、语义缓存和结合基于规则的系统与AI模型的混合方法等策略。
确保正确的输出涉及通过彻底的测试、变更管理流程和混沌工程来解决潜在的错误配置、bug和意外的代理行为。通过多层备份、跨区域复制和单独的账户复制来保护数据,可以防止数据损坏、意外删除和恶意攻击,同时还要管理冗余悖论带来的额外复杂性。
最终,构建真正弹性的生成式AI应用程序需要全面理解这些系统带来的独特挑战,并将传统的弹性模式与AI特定的考虑因素相结合。通过采用这种整体方法,组织可以释放生成式AI的全部潜力,同时确保其关键任务工作负载的完整性和连续性。
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。做为全球生成式AI前行者,亚马逊云科技正在携手广泛的客户和合作伙伴,缔造可见的商业价值 – 汇集全球40余款大模型,亚马逊云科技为10万家全球企业提供AI及机器学习服务,守护3/4中国企业出海。