在构建、训练和评估您的机器学习 (ML) 模型以确保它能够解决所提出的预期业务问题之后,您希望部署该模型以支持业务运营中的决策制定。 支持关键业务功能的模型被部署到实施了模型发布策略的生产环境中。 鉴于 ML 模型的性质,其中数据不断变化,您还希望确保部署的模型仍然与新数据相关,并且在不是这种情况时更新模型。 这包括选择能够最大限度地减少风险和停机时间的部署策略。 这种最佳部署策略应保持模型的高可用性,考虑将劣质模型部署到已投入生产的模型的业务成本,并包含轻松回滚到先前模型版本的功能。 许多这些建议的注意事项和部署模式也包含在 AWS 架构完善的框架——机器学习视角.
除了选择正确的部署策略外,还应使用包括 MLOps 实践的可靠机制来实施该策略。 MLOps 包括将 ML 工作负载集成到发布管理、CI/CD 和操作中的实践,考虑了 ML 项目的独特方面,包括部署和监控模型的注意事项。 适用于 MLOps 的 Amazon SageMaker 提供专门构建的工具来自动化和标准化整个 ML 生命周期的步骤,包括使用高级部署模式部署和管理新模型的功能。
在这篇文章中,我们讨论了如何部署 ML 模型 亚马逊SageMaker 以可重复和自动化的方式,整合 生产变体 和 部署护栏 SageMaker 与 MLOps 解决方案的功能。 我们为您介绍如何将 SageMaker 的 MLOps 工具与 SageMaker 模型部署模式集成,重点关注实时单模型端点。
解决方案概述
我们探索以下模型测试和护栏模式及其与 SageMaker MLOps 工具的集成:
- 模型测试 – 我们在替换当前模型版本之前比较生产中的不同模型版本。 这篇文章比较了以下模型测试能力:
- A / B测试 – 通过 A/B 测试,您可以通过在模型变体之间分配端点流量来比较生产中模型的不同版本。 A/B 测试用于闭环反馈可以直接将模型输出与下游业务指标联系起来的场景。 然后使用此反馈来确定从一种模型更改为另一种模型的统计显着性,帮助您通过现场生产测试选择最佳模型。
- 影子测试 – 通过影子测试,您可以通过并行向生产模型和新模型发送请求来测试生产中模型的新版本。 来自生产模型的预测响应数据被提供给应用程序,而新模型版本预测被存储用于测试但不被提供给生产应用程序。 影子测试用于没有闭环反馈将业务指标映射回模型预测的情况。 在这种情况下,您使用模型质量和运营指标来比较多个模型,而不是对下游业务指标产生任何影响。
- 转移交通 – 在您测试了新版本的模型并对它的性能感到满意之后,下一步就是将流量从当前模型转移到新模型。 这 蓝/绿部署护栏 在 SageMaker 中,您可以通过受控方式轻松地从当前生产模型(蓝色队列)切换到新模型(绿色队列)。 蓝/绿部署避免了模型更新期间的停机,就像您在就地部署场景中所拥有的那样。 为了最大限度地提高模型可用性,截至撰写本文时,蓝/绿部署是 SageMaker 中模型更新的默认选项。 我们在这篇文章中讨论了以下流量转移方法:
- 交通同时转移 – 在绿色车队可用后,100% 的端点流量从蓝色车队转移到绿色车队。 我们用 警报 in 亚马逊CloudWatch 在一定时间内监控您的绿色车队( 烘烤期),如果没有触发警报,则在烘焙期后 SageMaker 会删除蓝色舰队。
- 金丝雀流量转移 – 您的绿色车队首先会接触到较小比例的流量(a 金丝雀) 并使用 CloudWatch 警报在烘焙期间验证任何问题,同时蓝色舰队继续接收大部分端点流量。 验证绿色队列后,所有流量都转移到新队列,然后 SageMaker 删除蓝色队列。
- 蓝色/绿色线性交通转移 护栏 – 您逐步将流量从蓝色车队转移到绿色车队。 然后,在完全替换 Blue 舰队之前,您的模型会在每个步骤中使用 CloudWatch 警报进行烘焙。
这篇文章的重点是描述利用 SageMaker MLOps 功能通过我们列出的部署护栏和建模测试策略执行模型受控部署的架构。 有关这些模式的一般信息,请参阅 使用 Amazon SageMaker 部署护栏利用高级部署策略 和 部署护栏.
使用 SageMaker 部署模型
SageMaker 提供范围广泛的 部署选项 从低延迟和高吞吐量到长时间运行的推理作业不等。 这些选项包括对批处理、实时或 近乎实时的推理. 每个选项都提供不同的高级功能,例如在单个端点上运行多个模型的能力。 但是,如前所述,对于本文,我们仅介绍使用单模型端点的 MLOps 部署模式。 要进一步深入了解用于实时推理的更高级 SageMaker 部署功能,请参阅 Amazon SageMaker 中的模型托管模式,第 2 部分:开始在 SageMaker 上部署实时模型.
要了解使用持续交付 (CD) 管道实施高级部署模式,让我们首先讨论 SageMaker 中的一个关键概念,称为 模型变体.
SageMaker 模型变体
模型变体允许您将模型的多个版本部署到同一端点以测试您的模型。 模型变体部署到单独的实例,因此更新一个变体时不会影响其他变体。 在 SageMaker 中,模型变体被实现为生产和影子变体。
生产变体 允许您对模型的多个版本进行 A/B 测试以比较它们的性能。 在这种情况下,模型的所有版本都会返回对模型请求的响应。 您的端点流量在现有变体之间分配,或者通过流量分配(您为每个变体分配权重),或者通过目标变体(其中某个参数(例如区域或市场)决定应调用哪个模型)。
阴影变体 允许您对模型的新版本进行影子测试。 在这种情况下,您的模型有一个生产变体和一个影子变体并行部署到同一端点。 影子变体从您的端点接收完整(或采样)数据流量。 但是,只有生产变体的预测会被发送回应用程序的用户,影子变体的预测会被记录下来以供分析。 由于影子变体是在与生产变体不同的实例上启动的,因此在此测试中不会对您的生产变体产生性能影响。 使用此选项,您可以测试新模型并最大限度地降低性能不佳模型的风险,并且可以将两个模型的性能与相同的数据进行比较。
SageMaker 部署护栏
护栏是软件开发的重要组成部分。 它们保护您的应用程序并将部署新版本应用程序的风险降至最低。 同样,SageMaker 部署护栏允许您以受控方式从一个模型版本切换到另一个模型版本。 截至 2022 年 XNUMX 月,SageMaker 护栏提供蓝/绿、金丝雀和线性流量转移部署选项的实施。 当与模型变体结合使用时,部署护栏可以应用于模型的生产和影子变体,确保在更新新变体期间不会停机,并根据所选选项控制流量转移。
模型部署的 MLOps 基础
在 ML 模型构建和部署工作流的更广泛背景下,我们希望采用专为 ML 工作流构建的 CI/CD 实践。 与传统的 CI/CD 系统类似,我们希望自动化软件测试、集成测试和生产部署。 但是,我们还需要包括传统软件开发生命周期中不存在的围绕 ML 生命周期的特定操作,例如模型训练、模型实验、模型测试和模型监控。
为了实现这些 ML 特定的功能,在模型部署过程中添加了 MLOps 基础,例如自动化模型测试、部署护栏、多账户部署和自动化模型回滚。 这确保了已经描述的功能允许模型测试并避免模型更新过程中的停机时间。 它还提供了持续改进生产就绪模型所必需的可靠性和可追溯性。 此外,将现有解决方案打包到可重用模板中以及在多账户设置中部署模型等功能可确保帖子中讨论的模型部署模式可扩展到整个组织的多个模型。
下图演示了连接 SageMaker 功能以创建端到端模型构建和部署管道的常见模式。 在此示例中,模型是在 SageMaker 中开发的,使用 SageMaker 处理作业 运行用于为 ML 算法准备数据的数据处理代码。 SageMaker 培训职位 然后用于在处理作业产生的数据上训练 ML 模型。 模型工件和关联的元数据存储在 SageMaker模型注册表 作为训练过程的最后一步。 这是精心策划的 SageMaker管道,这是一种专门为 ML 构建的 CI/CD 服务,可帮助大规模自动化和管理 ML 工作流。
模型获得批准后,将通过 A/B 测试或影子部署在生产中对其进行测试。 在生产中验证模型后,我们使用模型注册表来批准模型,以便使用部署护栏选项之一将其生产部署到 SageMaker 端点。
当模型更新过程完成时, SageMaker模型监视器 持续监控模型性能以了解模型和数据质量的偏差。 此过程针对多个用例自动执行 SageMaker 项目 将基础架构部署映射到多帐户设置的模板,以确保完全的资源隔离和更轻松的成本控制。
单模型端点部署模式
第一次将模型部署到生产环境时,您没有正在运行的模型进行比较,部署的模型将是您的业务应用程序使用的模型。 在生产环境中部署和监控模型后,您可能希望在有新数据可用或检测到模型存在性能差距时定期或按需更新模型。 更新现有模型时,您希望确保新模型的性能优于当前模型,并且可以处理来自业务应用程序的预测请求流量。 在此验证期间,您希望当前模型仍然可用于可能的回滚,以最大限度地降低应用程序停机的风险。
在更广泛的模型开发图景中,模型通常在数据科学开发账户中进行训练。 这包括经常用于模型开发的实验工作流程以及用于生产就绪管道的再培训工作流程。 这些实验的所有元数据都可以使用 Amazon SageMaker实验 在开发过程中。 在将工作流合并到用于生产的管道中后,元数据将通过 SageMaker Pipelines 自动跟踪。 为了在一个地方跟踪可行的生产模型,在实验使模型的性能指标(精度、召回率等)达到生产可接受的水平后,一个 条件步骤 在 SageMaker 管道中允许将模型注册到模型注册表中。
模型注册表允许您通过手动或自动批准流程触发此模型的部署。 此部署在 ML 测试帐户中进行,在该帐户中可以针对新模型版本执行集成测试、单元测试、模型延迟和任何其他模型验证等操作测试。 请注意,A/B 测试和影子测试不是在 ML 测试帐户中执行的,而是在 ML 生产帐户中执行的。
模型通过测试账户中的所有验证后,就可以部署到生产环境中了。 新的批准流程会触发此部署,并且 SageMaker 部署护栏允许根据所选的流量转移模式进行受控发布和透明模型更新流程。
下图说明了此解决方案架构。
交通同时转移
一次性流量转移模式 允许您通过将 100% 的流量从当前模型(蓝色舰队)完全转移到新模型来更新新模型版本(绿色舰队)。 使用此选项,您可以配置一个烘焙期,在此期间您的模型的两个版本仍在运行,如果您的新模型没有按预期运行,您可以快速自动回滚到当前版本。 此选项的缺点是您的所有数据流量都会同时受到影响,因此如果您的模型部署出现问题,那么在部署过程中使用该应用程序的所有用户都会受到影响。 以下架构显示了一次性流量转移选项如何处理模型更新。
通过使用 蓝绿更新策略 设置 ALL_AT_ONCE
. 在您的 MLOps 管道中,在批准新模型部署到 ML 生产账户后,SageMaker 会检查您的模型终端节点是否已存在。 如果是这样, ALL_AT_ONCE
配置会触发遵循架构的端点更新。 您的端点回滚是基于 CloudWatch 警报 由您的端点定义 AutoRollbackConfiguration
,当触发时自动启动模型回滚到您当前的模型版本。
金丝雀流量转移
金丝雀流量转移 模式允许您在将正在运行的模型(蓝色舰队)更新到新版本或回滚新版本之前使用一小部分数据流量测试您的新模型(绿色舰队),具体取决于金丝雀测试的结果。 用于测试新模型的流量部分称为金丝雀,在这个选项中,您的新模型有问题的风险被最小化为金丝雀流量,同时更新时间仍然最小化。
金丝雀部署允许您通过将新模型版本公开给较小的用户组以监控一段时间内的有效性来最大程度地降低实施新模型版本的风险。 缺点是在一段时间内管理多个版本,这允许收集足够有意义的性能指标来确定性能影响。 好处是能够将风险隔离给较小的用户组。
Canary 流量转移可以通过使用 蓝绿更新策略 设置 CANARY
并定义 CanarySize
以确定应将多少端点流量重定向到新模型版本。 与一次性选项类似,在您的 MLOps 管道中,在批准新模型部署到 ML 生产账户后,SageMaker 会检查您的模型端点是否已存在。 如果是这样, CANARY
配置触发遵循下图中概述的体系结构的端点更新。 您的端点回滚是根据您的端点定义的 CloudWatch 警报来控制的 AutoRollbackConfiguration
当触发时自动启动模型回滚到您当前的模型版本。 此处部署的有用警报类型是 500 状态代码和模型延迟; 但是,这些警报设置应根据您的特定业务用例和 ML 技术进行定制。
线性流量转移
在 线性流量转移 模型,您通过逐步增加发送到新模型的数据流量,逐渐将流量从当前模型(蓝色舰队)更改为新模型版本(绿色舰队)。 这样,用于测试新模型版本的流量比例会随着每一步逐渐增加,每一步的烘焙时间确保您的模型仍然可以在新流量下运行。 使用此选项,您可以最大限度地降低部署低性能模型的风险,并逐渐将新模型暴露给更多数据流量。 这种方法的缺点是您的更新时间更长,并且并行运行两个模型的成本增加。
通过定义端点部署配置并将 BlueGreenUpdatePolicy 设置为 LINEAR
并定义 LinearStepSize
以确定在每个步骤中应将多少流量重定向到新模型。 与一次性选项类似,在您的 MLOps 管道中,在批准新模型部署到 ML 生产账户后,SageMaker 会检查您的模型端点是否已存在。 如果是这样, LINEAR
配置会触发端点更新,该更新遵循下图中所示的体系结构。 您的端点回滚是根据您的端点定义的 CloudWatch 警报来控制的 AutoRollbackConfiguration
当触发时自动启动模型回滚到您当前的模型版本。
具有模型生产变体的部署模式
独立于您为应用程序选择的部署模式,您还可以在更新端点或实施其他部署模式(例如影子部署)之前利用生产变体来验证模型性能。 在这种情况下,您希望添加一个手动或自动流程,以在更新端点之前选择要部署的最佳模型。 以下体系结构显示了您的端点流量和响应在影子部署方案中的行为方式。 在这种情况下,每个预测请求都会提交给新模型和已部署模型; 但是,只有当前部署的模型提供对业务应用程序的预测响应,而维护新模型提供的预测仅用于针对当前部署的模型进行性能分析。 在评估模型性能后,可以部署新的模型版本来为业务应用程序服务预测响应流量。
回滚
独立于您为模型部署选择的部署策略,如果您的新模型性能低于当前模型性能,您希望能够回滚到以前的模型版本。 要做到这一点,同时最大限度地减少应用程序的停机时间,您需要保持当前模型与新模型并行运行,直到您确信新模型的性能优于当前模型。
SageMaker 部署护栏允许您设置警报并在模型验证期间自动回滚到以前的模型版本。 验证期结束后,您可能仍需要回滚到以前的模型版本以解决模型更新完成后发现的新问题。 为此,您可以利用 SageMaker 模型注册表来 拒绝和批准的模型 并触发一个 回滚过程.
结论
在本文中,您学习了如何将 SageMaker 端点模型变体和部署护栏与 MLOps 功能相结合,以便为模型开发创建端到端模式。 我们通过 SageMaker 自定义项目为与 SageMaker 管道和模型注册表连接的金丝雀和线性移动部署护栏提供了示例实施。 下一步,尝试调整以下内容 模板 实施您的组织的部署策略。
参考资料
关于作者
迈拉·拉德拉·坦克 是 AWS 的机器学习专家解决方案架构师。 她拥有数据科学背景,在与各行各业的客户一起设计和构建 ML 应用程序方面拥有 9 年的经验。 作为技术主管,她帮助客户通过新兴技术和创新解决方案加速实现业务价值。 在空闲时间,Maira 喜欢旅行,喜欢在温暖的地方与家人共度时光。
克莱埃尔莫 是 AWS 的 AI/ML 专家解决方案架构师。 在材料研究实验室呆了很多小时后,他的化学工程背景很快就被抛在脑后,转而追求他对机器学习的兴趣。 他曾在从能源交易到酒店营销等许多不同行业从事 ML 应用方面的工作。 Clay 特别感兴趣的是将软件开发实践引入 ML,并通过使用这些原则引导客户获得可重复、可扩展的解决方案。 在业余时间,Clay 喜欢滑雪、解魔方、阅读和烹饪。
谢尔比本征桥 是 AWS 的首席人工智能和机器学习专家解决方案架构师。 她从事技术工作已有 24 年,横跨多个行业、技术和角色。 她目前专注于将她的 DevOps 和 ML 背景结合到 MLOps 领域,以帮助客户大规模交付和管理 ML 工作负载。 她在各个技术领域拥有超过 35 项专利,对持续创新和使用数据推动业务成果充满热情。 Shelbee 是 Coursera 实用数据科学专业的联合创始人和讲师。 她还是大数据中的女性 (WiBD) 丹佛分会的联席主任。 在业余时间,她喜欢与家人、朋友和过度活跃的狗共度时光。
赵启云 是 Amazon SageMaker 推理平台团队的高级软件开发工程师。 他是部署护栏和影子部署的首席开发人员,专注于帮助客户以高可用性大规模管理 ML 工作负载和部署。 他还致力于平台架构的演进,以实现快速安全的 ML 作业部署和轻松运行 ML 在线实验。 在业余时间,他喜欢阅读、游戏和旅行。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/mlops-deployment-best-practices-for-real-time-inference-model-serving-endpoints-with-amazon-sagemaker/
- 100
- 2022
- 7
- 9
- a
- 对,能力--
- Able
- 加快
- 可接受
- 根据
- 账号管理
- 基本会计和财务报表
- 成就
- 横过
- 添加
- 增加
- 额外
- 另外
- 高级
- 优点
- 后
- 驳
- AI
- AI / ML
- 报警
- 算法
- 所有类型
- 允许
- 已经
- Amazon
- 亚马逊SageMaker
- 量
- 分析
- 和
- 另一个
- 应用领域
- 应用领域
- 应用的
- 的途径
- 批准
- 批准
- 批准
- 架构
- 围绕
- 方面
- 相关
- 自动化
- 自动化
- 自动
- 可用性
- 可使用
- AWS
- 背部
- 背景
- 基于
- 基础
- 因为
- 成为
- before
- 背后
- 作为
- 得益
- 最佳
- 最佳实践
- 更好
- 之间
- 大
- 大数据运用
- 蓝色
- 瞻
- 广阔
- 更广泛
- 带
- 建立
- 建筑物
- 建
- 商业
- 商业应用
- 被称为
- 能力
- 案件
- 例
- CD
- 一定
- 更改
- 改变
- 章节
- 支票
- 化学
- 选择
- 选择
- 关闭
- 码
- 结合
- 结合
- 结合
- 相当常见
- 比较
- 完成
- 完全
- 概念
- 信心
- 配置
- 已联繫
- 地都
- 考虑
- 注意事项
- 包含
- 上下文
- 不断
- 连续
- 一直
- 控制
- 受控
- 价格
- 成本
- 外壳
- 覆盖
- 创建信息图
- 电流
- 目前
- 习俗
- 合作伙伴
- 定制
- data
- 数据处理
- 数据科学
- 十二月
- 决策
- 默认
- 定义
- 定义
- 交付
- 交货
- 需求
- 演示
- 丹佛
- 根据
- 部署
- 部署
- 部署
- 部署
- 部署
- 描述
- 检测
- 确定
- 发达
- 开发商
- 研发支持
- 不同
- 直接
- 发现
- 讨论
- 讨论
- 分布
- 分布
- 分配
- 不会
- 域
- 域名
- 别
- 缺点
- 停机
- 驾驶
- ,我们将参加
- 每
- 更容易
- 容易
- 效用
- 或
- 新兴经济体的新市场。
- enable
- 端至端
- 端点
- 能源
- 工程师
- 工程师
- 更多
- 确保
- 确保
- 保证
- 环境
- 必要
- 评估
- 评估
- 演变
- 例子
- 现有
- 存在
- 预期
- 体验
- 探索
- 裸露
- 家庭
- 高效率
- 特征
- 反馈
- 数字
- (名字)
- 第一次
- 舰队
- 重点
- 聚焦
- 以下
- 如下
- Foundations
- 骨架
- 自由的
- 朋友
- 止
- ,
- 功能
- 功能
- 进一步
- 赌博
- 差距
- 搜集
- 其他咨询
- 越来越
- 给
- 特定
- 渐渐
- 授予
- 绿色
- 团队
- 处理
- 手柄
- 帮助
- 帮助
- 帮助
- 相关信息
- 高
- 好客
- 托管
- HOURS
- 创新中心
- How To
- 但是
- HTML
- HTTPS
- 影响力故事
- 实施
- 履行
- 实施
- 实施
- 改进
- in
- 包括
- 包括
- 包含
- 成立
- 增加
- 增加
- 增加
- 行业
- 信息
- 基础设施
- 創新
- 创新
- 例
- 代替
- 整合
- 整合
- 积分
- 兴趣
- 介绍
- 隔离
- 问题
- 问题
- IT
- 工作
- 工作机会
- 保持
- 键
- 实验室
- (姓氏)
- 潜伏
- 推出
- 铅
- 知道
- 学习
- Level
- 生命周期
- 已发布
- 生活
- 不再
- 低
- 机
- 机器学习
- 保持
- 管理
- 颠覆性技术
- 管理的
- 手册
- 许多
- 制图
- 市场
- 营销
- 物料
- 生产力
- 有意义的
- 机制
- 提到
- 元数据
- 方法
- 公
- 指标
- 可能
- 最小化
- ML
- 多播
- 时尚
- 模型
- 模型测试
- 模型
- 显示器
- 监控
- 监控
- 显示器
- 更多
- 最先进的
- 多
- 自然
- 必要
- 需求
- 全新
- 下页
- 优惠精选
- 一
- 在线
- 操作
- 运营
- 最佳
- 附加选项
- 附加选项
- 秩序
- 组织
- 其他名称
- 成果
- 概述
- 包
- 并行
- 参数
- 部分
- 通行证
- 情
- 专利
- 模式
- 模式
- 演出
- 性能
- 施行
- 期间
- 图片
- 管道
- 地方
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 可能
- 帖子
- 实用
- 做法
- 平台精度
- 预测
- 预测
- Prepare
- 当下
- 以前
- 先前
- 校长
- 原则
- 市场问题
- 过程
- 处理
- 生成
- 生产
- 项目
- 项目
- 建议
- 保护
- 提供
- 提供
- 提供
- 目的
- 放
- 质量
- 很快
- 范围
- 范围
- 阅读
- 准备
- 真实
- 实时的
- 接收
- 接收
- 建议
- 地区
- 在相关机构注册的
- 注册处
- 定期
- 释放
- 相应
- 可靠性
- 可靠
- 可重复的
- 更换
- 请求
- 要求
- 研究
- 资源
- 响应
- 回报
- 可重复使用
- 风险
- 风险
- 角色
- 滚
- 卷
- 运行
- 运行
- sagemaker
- SageMaker 推理
- SageMaker管道
- 同
- 满意
- 对满意
- 可扩展性
- 可扩展性
- 鳞片
- 脚本
- 情景
- 科学
- 安全
- 选
- 发送
- 前辈
- 分开
- 服务
- 服务
- 服务
- 集
- 设置
- 格局
- 几个
- 阴影
- 影子测试
- 转移
- 转换中
- 应该
- 作品
- 意义
- 类似
- 同样
- 单
- 情况
- 小
- 小
- So
- 软件
- 软件开发
- 方案,
- 解决方案
- 解决
- 解决
- 特别
- 专家
- 具体的
- 花
- 花费
- 开始
- 启动
- 统计
- Status
- 步
- 步骤
- 仍
- 存储
- 策略
- 策略
- 提交
- 这样
- SUPPORT
- Switch 开关
- 产品
- 采取
- 需要
- 目标
- 团队
- 文案
- 技术
- 专业技术
- 模板
- test
- 测试
- 测试
- 其
- 通过
- 吞吐量
- 领带
- 次
- 至
- 工具
- 向
- 可追溯分析仪
- 跟踪时
- 交易
- 传统
- 交通
- 培训
- 熟练
- 产品培训
- 透明
- 旅游
- 触发
- 引发
- 类型
- 一般
- 理解
- 独特
- 单元
- 更新
- 更新
- 最新动态
- 更新
- 使用
- 用例
- 用户
- 利用
- 验证
- 验证
- 验证
- 折扣值
- 变种
- 各个
- 版本
- 通过
- 可行
- 温暖
- 重量
- 什么是
- 什么是
- 这
- 而
- 将
- 中
- 女性
- 工作
- 工作流程
- 合作
- 将
- 写作
- 年
- 完全
- 您一站式解决方案
- 和风网