在这篇文章中,我们展示了 AWS 上的 Kubeflow (一种特定于 AWS 的 Kubeflow 发行版)以及它通过集成高度优化的、云原生的、企业就绪的 AWS 服务而比开源 Kubeflow 增加的价值。
Kubeflow 是开源机器学习 (ML) 平台,致力于使 Kubernetes 上的 ML 工作流部署变得简单、可移植和可扩展。 Kubeflow 提供了许多组件,包括中央仪表板、多用户 Jupyter 笔记本、Kubeflow Pipelines、KFServing 和 Katib,以及用于 TensorFlow、PyTorch、MXNet 和 XGBoost 的分布式训练运算符,以构建简单、可扩展和可移植的 ML 工作流.
AWS 最近推出了 Kubeflow v1.4 作为其自己的 Kubeflow 发行版(在 AWS 上称为 Kubeflow)的一部分,它简化了数据科学任务,并通过与 AWS 托管服务的集成来帮助构建高度可靠、安全、可移植和可扩展的 ML 系统,同时降低运营开销. 您可以使用这个 Kubeflow 发行版在其之上构建 ML 系统 Amazon Elastic Kubernetes服务 (Amazon EKS) 为各种用例构建、训练、调整和部署 ML 模型,包括计算机视觉、自然语言处理、语音翻译和金融建模。
开源 Kubeflow 的挑战
当您使用开源 Kubeflow 项目时,它将所有 Kubeflow 控制平面和数据平面组件部署在 Kubernetes 工作节点上。 Kubeflow 组件服务部署为 Kubeflow 控制平面的一部分,所有与 Jupyter、模型训练、调优和托管相关的资源部署都部署在 Kubeflow 数据平面上。 Kubeflow 控制平面和数据平面可以运行在相同或不同的 Kubernetes 工作节点上。 本文重点介绍 Kubeflow 控制平面组件,如下图所示。
由于以下原因,此部署模型可能无法提供企业级体验:
- 所有 Kubeflow 控制平面繁重的基础设施组件,包括数据库、存储和身份验证,都部署在 Kubernetes 集群工作节点本身中。 这使得在工作节点发生故障时实现具有持久状态的高可用性 Kubeflow 控制平面设计架构变得具有挑战性。
- Kubeflow 控制平面生成的工件(例如 MySQL 实例、Pod 日志或 MinIO 存储)随着时间的推移而增长,并且需要具有持续监控功能的可调整大小的存储卷来满足不断增长的存储需求。 由于 Kubeflow 控制平面与 Kubeflow 数据平面工作负载共享资源(例如,用于训练作业、管道和部署),正确调整和扩展 Kubernetes 集群和存储卷可能变得具有挑战性,并导致运营成本增加。
- Kubernetes 限制日志文件大小,大多数安装保持最新的 10 MB 限制。 默认情况下,pod 日志在达到此上限后将无法访问。 如果 pod 被驱逐、崩溃、删除或安排在不同的节点上,日志也可能变得无法访问,这可能会影响您的应用程序日志可用性和监控功能。
AWS 上的 Kubeflow
AWS 上的 Kubeflow 提供了使用 Kubeflow 的清晰路径,以及以下 AWS 服务:
- 应用程序负载均衡器 通过 HTTPS 进行安全的外部流量管理
- 亚马逊CloudWatch 用于持久日志管理
- AWS 认知 使用传输层安全 (TLS) 进行用户身份验证
- AWS深度学习容器 用于高度优化的 Jupyter 笔记本服务器映像
- 亚马逊弹性文件系统 (亚马逊 EFS) 或 适用于Lustre的Amazon FSx 用于提高训练性能的简单、可扩展和无服务器文件存储解决方案
- 用于托管 Kubernetes 集群的 Amazon EKS
- 亚马逊关系数据库服务 (Amazon RDS) 用于高度可扩展的管道和元数据存储
- AWS机密管理器 保护访问您的应用程序所需的机密
- 亚马逊简单存储服务 (Amazon S3) 用于易于使用的管道工件存储
这些 AWS 服务与 Kubeflow 的集成(如下图所示)使我们能够将 Kubeflow 控制平面的关键部分与 Kubernetes 分离,从而提供安全、可扩展、弹性和成本优化的设计。
让我们讨论每个服务集成的好处及其围绕安全性、运行 ML 管道和存储的解决方案。
使用 Amazon Cognito 对 Kubeflow 用户进行安全身份验证
AWS 的云安全是重中之重,我们正在投资将 Kubeflow 安全直接集成到 AWS 责任共担安全服务中,例如:
- 用于外部流量管理的应用程序负载均衡器 (ALB)
- AWS证书管理器 (ACM) 支持 TLS
- 服务帐号的 IAM 角色 (IRSA) 用于 Kubernetes Pod 级别的细粒度访问控制
- AWS密钥管理服务 (AWS KMS) 用于数据加密密钥管理
- AWS 盾 用于 DDoS 保护
在本节中,我们将重点介绍 AWS Kubeflow 控制平面与 Amazon Cognito 的集成。 Amazon Cognito 无需管理和维护用于用户身份验证的本机 Dex(由本地 LDAP 支持的开源 OpenID Connect (OIDC) 提供程序)解决方案,并使机密管理更加容易。
您还可以使用 Amazon Cognito 快速轻松地向 Kubeflow UI 添加用户注册、登录和访问控制。 Amazon Cognito 可扩展到数百万用户,并支持通过 SAML 2.0 登录社交身份提供商 (IdP),例如 Facebook、谷歌和亚马逊,以及企业 IdP。 这降低了 Kubeflow 设置的复杂性,使其在操作上精益且更易于操作以实现多用户隔离。
让我们看一下 Amazon Cognito、ALB 和 ACM 与 AWS 上的 Kubeflow 集成的多用户身份验证流程。 作为此集成的一部分,有许多关键组件。 Amazon Cognito 配置为具有身份验证回调的 IdP,该回调配置为在用户身份验证后将请求路由到 Kubeflow。 作为 Kubeflow 设置的一部分,创建了一个 Kubernetes 入口资源来管理到 Istio 网关服务的外部流量。 AWS ALB 入口控制器为该入口预置负载均衡器。 我们用 亚马逊路线53 为注册的域配置公共 DNS 并使用 ACM 创建证书以在负载均衡器上启用 TLS 身份验证。
下图显示了登录到 Amazon Cognito 并被重定向到各自命名空间中的 Kubeflow 的典型用户工作流程。
工作流包含以下步骤:
- 用户向负载均衡器后面托管的 Kubeflow 中央仪表板发送 HTTPS 请求。 Route 53 将 FQDN 解析为 ALB 别名记录。
- 如果 cookie 不存在,负载均衡器会将用户重定向到 Amazon Cognito 授权终端节点,以便 Amazon Cognito 可以对用户进行身份验证。
- 用户通过身份验证后,Amazon Cognito 将用户发送回负载均衡器,并附有授权授权代码。
- 负载均衡器将授权授予代码提供给 Amazon Cognito 令牌终端节点。
- 收到有效的授权授权代码后,Amazon Cognito 会向负载均衡器提供 ID 令牌和访问令牌。
- 在您的负载均衡器成功验证用户身份后,它会将访问令牌发送到 Amazon Cognito 用户信息终端节点并接收用户声明。 负载均衡器签署用户声明并将其添加到 HTTP 标头
x-amzn-oidc-*
采用 JSON Web 令牌 (JWT) 请求格式。 - 来自负载均衡器的请求被发送到 Istio Ingress Gateway 的 pod。
- 使用特使过滤器,Istio Gateway 解码
x-amzn-oidc-data
值,检索电子邮件字段,并添加自定义 HTTP 标头kubeflow-userid
,由 Kubeflow 授权层使用。 - 基于 Istio 资源的访问控制策略应用于传入请求以验证对 Kubeflow Dashboard 的访问。 如果用户无法访问其中任何一个,则会发回错误响应。 如果请求通过验证,则会将其转发到相应的 Kubeflow 服务并提供对 Kubeflow Dashboard 的访问权限
使用 Amazon RDS 和 Amazon S3 保留 Kubeflow 组件元数据和构件存储
AWS 上的 Kubeflow 提供与 亚马逊关系数据库服务 (Amazon RDS) 在 Kubeflow Pipelines 和 AutoML (卡蒂布) 用于持久元数据存储,Kubeflow Pipelines 中的 Amazon S3 用于持久工件存储。 让我们继续更详细地讨论 Kubeflow Pipelines。
Kubeflow Pipelines 是一个用于构建和部署可移植、可扩展的 ML 工作流的平台。 这些工作流程可以帮助使用内置和自定义 Kubeflow 组件自动化复杂的 ML 管道。 Kubeflow Pipelines 包括 Python SDK、一个将 Python 代码转换为静态配置的 DSL 编译器、一个从静态配置运行管道的管道服务,以及一组控制器,用于在完成管道所需的 Kubernetes Pod 中运行容器。
用于管道实验和运行的 Kubeflow Pipelines 元数据存储在 MySQL 中,包括管道包和指标在内的工件存储在 MinIO 中。
如下图所示,AWS 上的 Kubeflow 允许您使用 AWS 托管服务存储以下组件:
- Amazon RDS 中的管道元数据 – Amazon RDS 提供可扩展、高度可用且可靠的多可用区部署架构,具有内置的自动故障转移机制和可调整大小的行业标准关系数据库(如 MySQL)容量。 它可以管理常见的数据库管理任务,而无需提供基础设施或维护软件。
- Amazon S3 中的管道工件 – Amazon S3 提供行业领先的可扩展性、数据可用性、安全性和性能,可用于满足您的需求 合规要求.
这些集成有助于将元数据和工件存储的管理和维护从自行管理的 Kubeflow 转移到 AWS 托管服务,从而更易于设置、操作和扩展。
使用 Amazon EFS 和 Amazon FSx 支持分布式文件系统
Kubeflow 建立在 Kubernetes 之上,Kubernetes 为大规模分布式数据处理提供了基础设施,包括使用具有数百万甚至数十亿参数的深度网络训练和调整大型模型。 为了支持这种分布式数据处理 ML 系统,AWS 上的 Kubeflow 提供了与以下存储服务的集成:
- 亚马逊 EFS – 一个高性能、云原生的分布式文件系统,您可以通过 Amazon EFS CSI 驱动程序. Amazon EFS 提供
ReadWriteMany
访问模式,您现在可以使用它挂载到在 Kubeflow 数据平面中运行的 Pod(Jupyter、模型训练、模型调整)中,以提供一个持久、可扩展和可共享的工作空间,当您添加和删除文件时,该工作空间会自动增长和缩小不需要管理。 - 适用于Lustre的Amazon FSx – 针对计算密集型工作负载(例如高性能计算和机器学习)的优化文件系统,您可以通过 Amazon FSx CSI 驱动程序. FSx for Lustre 提供
ReadWriteMany
访问模式,您可以使用它来缓存训练数据,并直接连接到作为后备存储的 Amazon S3,您可以使用它来支持 Jupyter 笔记本服务器或在 Kubeflow 数据平面中运行的分布式训练。 使用此配置,您无需在使用卷之前将数据传输到文件系统。 FSx for Lustre 提供一致的亚毫秒级延迟和高并发,并且可以扩展到 TB/s 的吞吐量和数百万 IOPS。
Kubeflow 部署选项
AWS 提供各种 Kubeflow 部署选项:
- 使用 Amazon Cognito 进行部署
- 使用 Amazon RDS 和 Amazon S3 进行部署
- 使用 Amazon Cognito、Amazon RDS 和 Amazon S3 进行部署
- 香草部署
有关每个选项的服务集成和可用附加组件的详细信息,请参阅 部署选项. 您可以选择最适合您的用例的选项。
在以下部分中,我们将逐步介绍在 Amazon EKS 上安装 AWS Kubeflow v1.4 发行版的步骤。 然后,我们使用 Kubeflow 中央 UI 控制面板上现有的 XGBoost 管道示例来演示 AWS Kubeflow 与 Amazon Cognito、Amazon RDS 和 Amazon S3 的集成和使用,以及 Secrets Manager 作为附加组件。
先决条件
对于本演练,您应该具有以下先决条件:
- An AWS账户.
- 现有的 Amazon EKS 集群。 它应该是 Kubernetes 版本 1.19 或更高版本。 对于使用自动集群创建 埃克斯特尔,请参阅 创建 Amazon EKS 集群 并使用 eksctl 选项。
在用于访问 Kubernetes 集群的客户端计算机上安装以下工具。 您可以使用 AWS 云9,用于 Kubernetes 集群设置的基于云的集成开发环境 (IDE)。
- AWS命令行界面 (AWS CLI) – 用于与 AWS 服务交互的命令行工具。 有关安装说明,请参阅 安装,更新和卸载AWS CLI.
- 埃克斯特尔 > 0.56 – 一个命令行工具,用于处理 Amazon EKS 集群,可自动执行许多单独的任务。
- Kubectl – 用于处理 Kubernetes 集群的命令行工具。
- 混帐 – 分布式版本控制软件。
- Python 3.8 + – Python 编程环境。
- 点子 – Python 的包管理器。
- 自定义版本 3.2.0 – 通过 kustomization 文件自定义 Kubernetes 对象的命令行工具。
在 AWS 上安装 Kubeflow
配置 kubectl 以便您可以连接到 Amazon EKS 集群:
Kubeflow 部署中的各种控制器使用 服务帐号的 IAM 角色 (IRSA)。 您的集群必须存在 OIDC 提供商才能使用 IRSA。 如果您的集群还没有,请运行以下命令,创建一个 OIDC 提供商并将其关联到您的 Amazon EKS 集群:
克隆 AWS manifests repo 和 Kubeflow manifests repo,并检查各自的发布分支:
有关这些版本的更多信息,请参阅 发布和版本控制.
设置 Amazon RDS、Amazon S3 和 Secrets Manager
在部署 Kubeflow 清单之前创建 Amazon RDS 和 Amazon S3 资源。 我们使用自动化 Python 脚本负责在 Secrets Manager 中创建 S3 存储桶、RDS 数据库和所需的密钥。 它还编辑 Kubeflow 管道和 AutoML 所需的配置文件,以便在 Kubeflow 安装期间为 RDS 数据库和 S3 存储桶正确配置。
创建一个IAM用户 有权限允许 GetBucketLocation
以及对要存储 Kubeflow 工件的 S3 存储桶中的对象的读写访问权限。 使用 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
以下代码中的 IAM 用户:
将 Amazon Cognito 设置为身份验证提供商
在本节中,我们在 Route 53 和 ALB 中创建一个自定义域,以将外部流量路由到 Kubeflow Istio 网关。 我们使用 ACM 创建证书以在 ALB 和 Amazon Cognito 上启用 TLS 身份验证,以维护用户池和管理用户身份验证。
将以下值代入
- 路由53.rootDomain.name – 注册域。 假设这个域是
example.com
. - 路由53.rootDomain.hostedZoneId – 如果您的域是在 Route53 中管理的,请输入在托管区域详细信息下找到的托管区域 ID。 如果您的域由其他域提供商管理,请跳过此步骤。
- 路由53.subDomain.name – 您要托管 Kubeflow 的子域的名称(例如,
platform.example.com
)。 有关子域的更多信息,请参阅 使用 AWS Cognito 作为 IdP 部署 Kubeflow. - 集群名称 – 集群名称和 Kubeflow 的部署位置。
- 集群区域 – 部署 Kubeflow 的集群 Region(例如,
us-west-2
). - cognitoUserpool.name – Amazon Cognito 用户池的名称(例如,
kubeflow-users
).
配置文件类似于以下代码:
运行脚本以创建资源:
该脚本更新 config.yaml
包含它创建的资源名称、ID 和 ARN 的文件。 它看起来类似于以下代码:
构建清单并部署 Kubeflow
使用以下命令部署 Kubeflow:
使用 ALB 地址更新域
该部署创建了一个入口管理的 AWS 应用程序负载均衡器。 我们使用负载均衡器的 DNS 更新 Route 53 中子域的 DNS 条目。 运行以下命令以检查负载均衡器是否已配置(这大约需要 3-5 分钟):
如果 ADDRESS
几分钟后字段为空,检查日志 alb-ingress-controller
. 有关说明,请参阅 ALB 未能提供.
配置负载均衡器后,复制负载均衡器的 DNS 名称并将地址替换为 kubeflow.alb.dns
in ${kubeflow_manifest_dir}/tests/e2e/utils/cognito_bootstrap/config.yaml
. 配置文件的 Kubeflow 部分类似于以下代码:
运行以下脚本以使用预置负载均衡器的 DNS 更新 Route 53 中子域的 DNS 条目:
故障排除
如果您在安装过程中遇到任何问题,请参阅 故障排除指南 或按照本博客中的“清理”部分重新开始。
用例演练
现在我们已经完成了所需的 Kubeflow 组件的安装,让我们使用仪表板上的 Kubeflow Pipelines 提供的现有示例之一来看看它们的实际效果。
使用 Amazon Cognito 访问 Kubeflow 仪表板
首先,让我们访问 Kubeflow 仪表板。 因为我们使用 Amazon Cognito 作为 IdP,所以使用 官方自述文件. 我们首先在 Amazon Cognito 控制台上创建一些用户。 这些是将登录到中央仪表板的用户。 下一个, 建立个人资料 对于您创建的用户。 然后您应该能够通过登录页面访问仪表板 https://kubeflow.platform.example.com.
以下屏幕截图显示了我们的 Kubeflow Dashboard。
运行管道
在 Kubeflow Dashboard 上,选择 管道 在导航名称中。 您应该看到 Kubeflow Pipelines 提供的四个示例,您可以直接运行这些示例来探索各种 Pipelines 功能。
在这篇文章中,我们使用名为 [Demo] XGBoost – 迭代模型训练的 XGBoost 示例。 您可以在以下位置找到源代码 GitHub上. 这是一个简单的管道,它使用现有的 XGBoost/Train
和 XGBoost/Predict
Kubeflow 管道组件迭代训练模型,直到基于指定指标认为指标良好。
要运行管道,请完成以下步骤:
- 选择管道并选择 创建实验.
- 下 实验细节, 输入名称(对于此帖子,
demo-blog
) 和可选描述。 - 下一页.
- 下 运行详情¸ 选择您的管道和管道版本。
- 针对 运行名称,输入名称。
- 针对 实验,选择您创建的实验。
- 针对 运行类型, 选择 一次性.
- Start 开始.
管道开始运行后,您应该会看到组件完成(几秒钟内)。 在此阶段,您可以选择任何已完成的组件以查看更多详细信息。
访问 Amazon S3 中的构件
在部署 Kubeflow 时,我们指定 Kubeflow Pipelines 应该使用 Amazon S3 来存储它的构件。 这包括所有管道输出工件、缓存运行和管道图——所有这些都可以用于丰富的可视化和性能评估。
管道运行完成后,您应该能够在安装期间创建的 S3 存储桶中看到工件。 要确认这一点,请选择管道的任何已完成组件并检查 输入输出 默认部分 图表 标签。 工件 URL 应指向您在部署期间指定的 S3 存储桶。
要确认资源已添加到 Amazon S3,我们还可以通过 Amazon S3 控制台检查我们 AWS 账户中的 S3 存储桶。
以下屏幕截图显示了我们的文件。
验证 Amazon RDS 中的 ML 元数据
我们还在部署期间将 Kubeflow Pipelines 与 Amazon RDS 集成,这意味着任何管道元数据都应存储在 Amazon RDS 中。 这包括任何运行时信息,例如任务的状态、工件的可用性、与运行或工件关联的自定义属性等等。
要验证 Amazon RDS 集成,请按照 官方自述文件. 具体完成以下步骤:
- 从安装期间创建的密钥中获取 Amazon RDS 用户名和密码:
- 使用这些凭证从集群内连接到 Amazon RDS:
- 当 MySQL 提示打开时,我们可以验证
mlpipelines
数据库如下: - 现在我们可以读取特定表的内容,以确保我们可以看到有关运行管道的实验的元数据信息:
清理
要卸载 Kubeflow 并删除您创建的 AWS 资源,请完成以下步骤:
- 通过运行以下命令删除入口和入口管理的负载均衡器:
- 删除其余的 Kubeflow 组件:
- 删除脚本创建的 AWS 资源:
- 为 Amazon RDS 和 Amazon S3 集成创建的资源。 确保您拥有由脚本创建的配置文件
${kubeflow_manifest_dir}/tests/e2e/utils/rds-s3/metadata.yaml
: - 为 Amazon Cognito 集成创建的资源。 确保您拥有由脚本创建的配置文件
${kubeflow_manifest_dir}/tests/e2e/utils/cognito_bootstrap/config.yaml
:
- 为 Amazon RDS 和 Amazon S3 集成创建的资源。 确保您拥有由脚本创建的配置文件
- 如果您使用 eksctl 为 Kubeflow 创建了专用 Amazon EKS 集群,则可以使用以下命令将其删除:
总结
在这篇文章中,我们强调了 Kubeflow on AWS 通过原生 AWS 托管服务集成为安全、可扩展和企业就绪的 AI 和 ML 工作负载提供的价值。 您可以从多个部署选项中进行选择,以在 AWS 上安装 Kubeflow,并集成各种服务。 本文中的用例演示了 Kubeflow 与 Amazon Cognito、Secrets Manager、Amazon RDS 和 Amazon S3 的集成。 要开始在 AWS 上使用 Kubeflow,请参阅可用的 AWS 集成部署选项 AWS 上的 Kubeflow.
从 v1.3 开始,您可以按照 AWS 实验室存储库 跟踪所有 AWS 对 Kubeflow 的贡献。 您也可以在 Kubeflow #AWS Slack 频道; 您的反馈将帮助我们优先考虑为 Kubeflow 项目做出贡献的下一个功能。
作者简介
坎瓦尔吉特·库尔米 是 Amazon Web Services 的 AI/ML 专家解决方案架构师。 他与 AWS 产品、工程和客户合作,提供指导和技术援助,帮助他们在使用 AWS 时提高混合 ML 解决方案的价值。 Kanwaljit 专门帮助客户使用容器化和机器学习应用程序。
梅格纳·贝贾尔 是一名 AWS AI 软件工程师,通过在 AWS 上构建深度学习容器、深度学习 AMI、AWS Kubernetes 控制器 (ACK) 和 Kubeflow 等机器学习产品和平台,使用户能够更轻松地将其机器学习工作负载加载到 AWS 上. 工作之余,她喜欢阅读、旅行和涉足绘画。
苏拉杰·哥打 是一名专门从事机器学习基础设施的软件工程师。 他构建了一些工具来轻松启动和扩展 AWS 上的机器学习工作负载。 他从事 AWS Deep Learning Containers、Deep Learning AMI、SageMaker Operators for Kubernetes 以及其他开源集成(如 Kubeflow)的工作。
- "
- 10
- 100
- 420
- 7
- 关于
- ACCESS
- 账号管理
- 操作
- 附加
- 地址
- 管理员
- 管理
- 分支机构
- AI
- 所有类型
- 已经
- Amazon
- 亚马逊网络服务
- 另一个
- 应用领域
- 应用领域
- 适当
- 架构
- 围绕
- 律师
- 认证
- 认证
- 认证
- 授权
- 自动化
- 自动化
- 自动化
- 可用性
- 可使用
- AWS
- 成为
- 好处
- 最佳
- 十亿美元
- 博客
- 边界
- 建立
- 建筑物
- 建立
- 内建的
- 能力
- 容量
- 关心
- 例
- CD
- 证书
- 证书
- 挑战
- 结算
- 索赔
- 程
- 码
- 相当常见
- 完成
- 复杂
- 元件
- 一台
- 计算
- 配置
- 分享链接
- 连接方式
- 安慰
- 集装箱
- 包含
- 内容
- 继续
- 贡献
- 控制
- 调节器
- 版权
- 可以
- 创建信息图
- 创建
- 创建
- 创造
- 创建
- 资历
- 危急
- 习俗
- 合作伙伴
- XNUMX月XNUMX日
- data
- 数据处理
- 数据科学
- 数据库
- DDoS攻击
- 专用
- 需求
- 演示
- 证明
- 部署
- 部署
- 部署
- 部署
- 部署
- 部署
- 设计
- 细节
- 详情
- 研发支持
- 地塞米松
- 不同
- 直接
- 直接
- 讨论
- 分布
- 分配
- DNS
- 不会
- 域
- 容易
- 易于使用
- 回音
- 邮箱地址
- enable
- 加密
- 端点
- 工程师
- 工程师
- 输入
- 企业
- 环境
- 评估
- 活动
- 例子
- 现有
- 体验
- 实验
- 探索
- 失败
- 特征
- 反馈
- 金融
- 姓氏:
- 适合
- 流
- 专注焦点
- 重点
- 遵循
- 以下
- 格式
- 发现
- 新鲜
- 越来越
- 混帐
- GitHub上
- 非常好
- 谷歌
- 增长
- 成长
- 帮助
- 帮助
- 帮助
- 此处
- 高
- 更高
- 突出
- 高度
- 托管
- HTTPS
- 杂交种
- 身分
- 影响力故事
- 实施
- 改善
- 公司
- 包括
- 包含
- 增加
- 个人
- 行业领先
- info
- 信息
- 基础设施
- 安装
- 集成
- 积分
- 集成
- 投资
- 隔离
- 问题
- IT
- 本身
- 工作机会
- 保持
- 键
- 实验室
- 语言
- 大
- 推出
- 学习
- 翻新
- Line
- 加载
- 本地
- 机
- 机器学习
- 保持
- 制作
- 制作
- 管理
- 管理
- 颠覆性技术
- 经理
- 指标
- 百万
- ML
- 模型
- 模型
- 监控
- 更多
- 最先进的
- 名称
- 自然
- 旅游导航
- 净
- 网络
- 节点
- 笔记本
- 数
- 优惠精选
- 打开
- 开放源码
- 打开
- 运营商
- 优化
- 附加选项
- 附加选项
- 其他名称
- 己
- 密码
- 性能
- 平台
- 平台
- 点
- 政策
- 池
- 当下
- 优先
- 处理
- 产品
- 热销产品
- 代码编程
- 项目
- 保护
- 提供
- 提供
- 优
- 国家
- 很快
- 达到
- 阅读
- 原因
- 记录
- 在相关机构注册的
- 释放
- 请求
- 必须
- 岗位要求
- 资源
- 资源
- 响应
- REST的
- 路线
- 运行
- 运行
- 可扩展性
- 可扩展性
- 鳞片
- 缩放
- 科学
- SDK
- 证券交易委员会
- 秒
- 安全
- 保安
- 无服务器
- 服务
- 特色服务
- 集
- 格局
- 分享
- 迹象
- 简易
- 尺寸
- 松弛
- 睡觉
- So
- 社会
- 软件
- 软件工程师
- 固体
- 方案,
- 解决方案
- 一些
- 东西
- 源代码
- 专家
- 专门
- 专业
- 特别是
- 阶段
- 开始
- 开始
- 启动
- 州/领地
- Status
- 存储
- 商店
- 顺利
- SUPPORT
- 支持
- 系统
- 产品
- 任务
- 文案
- 通过
- 次
- 象征
- 工具
- 工具
- 最佳
- 跟踪时
- 交通
- 产品培训
- 转让
- 翻译
- 运输
- 旅游
- ui
- 更新
- 最新动态
- us
- 使用
- 用户
- 验证
- 折扣值
- 各种
- 各个
- 确认
- 愿景
- 体积
- 卷筒纸
- Web服务
- WHO
- 中
- 也完全不需要
- 工作
- 工作
- 加工
- 合作