View a markdown version of this page

无服务器 AI 的 CI/CD 和自动化 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

无服务器 AI 的 CI/CD 和自动化

在传统的软件开发中,持续集成和部署(由于服务的短暂性、事件驱动性质以及人工智能模型和提示的不稳定行为)CI/CD) enables teams to test and release changes rapidly and safely. In serverless AI systems, CI/CD变得更加重要。

从基础设施(例如 AWS Lambda,Amazon API Gateway 和 Amazon Bedrock 代理)到逻辑(例如提示、RAG 流程和代理工具配置),所有内容都必须经过版本控制和测试。然后,应在不同环境中一致地部署这些组件。

如果不实施 CI/CD 实践,组织将面临以下风险:

  • 由于手动 AWS Identity and Access Management (IAM) 或提示更改,人为错误增加。

  • 模型和基础架构会发生在不同的development/test/production环境中。

  • 测试瓶颈会减缓创新。

  • 未经验证的更新会带来停机或行为变化的风险。

无服务器 AI 中的 CI/CD 功能

CI/CD 在无服务器 AI 中提供了以下功能及其相关优势:

  • 安全提示和代理版本控制-提示和代理配置更改通过审阅、测试和批准流程。

  • 基础设施可重复性 — 基础设施即代码 (IaC) 使用 AWS Cloud Development Kit (AWS CDK) 或 AWS CloudFormation 帮助确保各个阶段的环境相同。

  • 集成测试-部署前运行提示测试、架构验证和安全检查。

  • 自动部署批准 — 使用防护栏进行生产推广,包括手动审查和自动指标。

  • 回滚和审计 — 带标签的版本允许快速回滚和合规性可追溯性。

  • 频繁的低风险更新 — 支持大型语言模型 (LLM) 应用程序的快速迭代周期和即时调整。

无服务器 AI 项目的典型 CI/CD 工作流程

无服务器 AI 项目的综合 CI/CD 管道涉及多个阶段。以下列表概述了典型 CI/CD 工作流程的每个阶段,包括相关的操作和示例工具:

  • 代码和提示提交 — 开发者使用或之类 GitHub 的工具将更新后的 Lambda 函数、 AWS CDK 代码或提示文本推送到 Git。 GitLab

  • B@@ uild and lint-使用诸如 for、for、和自定义提示验证器之类ESLint的 JavaScript工具来验证语法Pythonyamllint、提示格式和架构对齐方式。Black

  • 单元测试和提示回归 — 使用pytest、和自定义夹具运行本地逻辑和单元测试以及黄金提示响应测试。promptfoo

  • IaC 验证 — 使用cdk synth和进行综合 AWS CDK 和 CloudFormationtemplates 验证。cfn–lint

  • 集成测试 — 部署到暂存并使用 AWS CodeBuild 和模拟代理调用完整的工作流程(例如,Amazon S3 上传到 Amazon Bedrock 代理)。

  • 手动或自动批准 — 使用 AWS CodePipeline 或 GitHub 操作门查看模型成本影响和批准清单(例如,即时更改)。

  • 部署到生产环境 — 使用 AWS CodeDeploy、和 AWS SAM 命令行界面 (CLI) 推广堆栈、更新 Amazon Bedrock 代理配置并发布提示。 AWS CDK

  • 部署后烟雾测试 — 使用 Amazon Synthet CloudWatch ics 验证生产代理输出、日志捕获和回滚准备情况,并测试 Lambda。

  • 监控和观察 — 使用 Amazon Bedrock 令牌日志(通过 CloudWatch)和,自动创建控制面板 CloudWatch、成本提醒和代币使用情况监控器。 AWS X-Ray

用于提示和 Amazon Bedrock 代理的 CI/CD

在 CI/CD 流程中,Prompt 和 Amazon Bedrock 代理配置需要特殊处理:

  • 在源代码管理中将提示视为版本控制资源(例如,/prompts/v1/agent-support-en.yaml)。

  • 在自动黄金测试用例中包含提示。

  • 使用 IaC 模板部署 Amazon Bedrock 代理配置(包括工具、说明和知识库 URIs)。

  • 仅在以下情况下部署 Amazon Bedrock 代理更新:

    • 提示回归测试通过。

    • 工具权限与 IAM 模板相匹配。

    • 置信度阈值或验证 Lambda 结果符合可接受的标准。

这种方法可以防止静默的即时降级,并确保生产中可重复的生成式 AI 行为。

AgentCore 与 CI/CD 管道集成

Amazon Bedrock 通过引入托管运行时和内存结构来 AgentCore 扩展传统 CI/CD 自动化,用于代理部署、测试和演进。当前的无服务器管道可以自动打包和部署代理代码(例如,通过 AWS CodePipeline AWS CodeBuild、或 AWS CDK)。但是,可以直接 AgentCore 集成到此流程中,以便在部署生命周期中管理代理状态、内存和工具连接器。

AgentCore 与 CI/CD 管道的关键集成点如下:

  • 运行时注册和版本控制 — 每个部署的代理都可以在运行时注册, AgentCore 运行时负责扩展、路由和生命周期编排。这种方法取代了在 CI/CD 工作流程中维护自定义注册表或服务发现逻辑的需求。

  • 内存快照和提升 — 在自动测试期间, AgentCore 可以保留代理内存快照,包括学习的上下文或状态,并通过管道将其与代码工件一起提升。此功能可实现开发、暂存和生产环境之间的上下文连续性。

  • 工具配置管理 — 使用 AgentCore Gateway 工具,团队可以在同一个管道中以声明方式定义与其他 AWS 服务 (例如 Amazon DynamoDB、Amazon S3、Amazon Bedro FMs ck 或 EventBridge亚马逊)的集成点。此配置管理功能有助于提供一致且可审计的访问配置。

  • 用于验证的可观察性挂钩 — AgentCore 公开用于代理执行的内置遥测功能,使 CI/CD 管道能够在部署之前自动验证性能、推理质量和合规性指标。

CodePipeline 部署可能包括以下步骤:

  1. 使用生成新的代理代码 CodeBuild。

  2. 将代理部署到 AgentCore 运行时以供执行。

  3. 运行自动集成测试,使用 AgentCore 内存来持续运行并比较各次运行的状态。

  4. 将成功的版本推广到生产环境,同时更新 AgentCore 注册表以进行发现和编排。

AWS 服务 用于 CI/CD 工具

以下 AWS 服务 支持无服务器 AI 的 CI/CD 实现:

  • AWS CodePipeline为代码、提示和基础架构提供 end-to-end管道功能。

  • AWS CodeBuild运行测试、linting 和验证。

  • AWS CDK以及 HashiCorp Terraform(第三方工具)定义基础架构、代理、权限和工作流程。CloudFormation

  • Amazon S3 存储版本控制的提示文件和代理模板。

  • Amazon Bedrock API 和 CLI 会动态注册提示和代理定义。

  • CloudWatch S@@ ynthetics 执行部署后探测和置信度验证。

  • Lambda @Edge 和 A ma zon EventBridge 会 CI/CD 从受监控的事件(例如漂移和部署失败)中触发。

摘要 CI/CD 和自动化

CI/CD 不仅是一种最佳实践,也是扩展安全可靠的 AI 系统的必要条件。自动化具有敏捷的灵敏度、工具自主性和基础架构的复杂性,可带来以下几个重要好处:

  • 缩短创新周期,降低风险

  • 可管理和可审计的更新

  • 跨团队和地区的稳定环境

  • 逻辑和语言的集成测试

通过 AgentCore 集成到 CI/CD 管道中,代理部署将从代码交付演变为持续的功能交付。在现代无服务器 AI 系统中,推理、内存和状态成为一流的可部署资产。

通过将 DevOps 原理应用于人工智能原生架构,企业可以负责任地、快速、大规模地将人工智能投入生产。