什么是 Azure AI 容器?
Azure AI 服务提供了多个 Docker 容器,可让你在本地使用与 Azure 中提供的相同 API。 借助这些容器,你能够灵活地将 Azure AI 服务移至更接近你的数据的位置,以满足合规性、安全性或其他操作目的。 容器支持目前适用于部分 Azure AI 服务。
容器化是一种软件分发方法,其中应用程序或服务(包括其依赖关系和配置)被一起打包为容器映像。 如果几乎不进行修改,可将容器映像部署在容器主机上。 容器彼此隔离并与基础操作系统隔离,内存占用小于虚拟机。 容器可以从容器映像中实例化以用于短期任务,并在不再需要时将其删除。
功能和优势
- 不可变的基础结构:使 DevOps 团队能够利用一组一致且可靠的已知系统参数,同时能够适应变化。 通过容器,可灵活地在可预测生态系统内进行透视,并避免配置偏移。
- 对数据的控制:选择 Azure AI 服务处理数据的位置。 如果无法将数据发送到云,但需要访问 Azure AI 服务 API,则此操作可能很重要。 支持混合环境中的一致性 - 跨数据、管理、标识和安全性。
- 对模型更新的控制:其解决方案中部署的模型的版本控制和更新方面的灵活性。
- 可移植的体系结构:支持创建可在 Azure、本地和边缘部署的可移植应用程序体系结构。 可直接将容器部署到 Azure Kubernetes 服务、Azure 容器实例,或部署到 Azure Stack 的 Kubernetes 集群。 有关详细信息,请参阅将 Kubernetes 部署到 Azure Stack。
- 高吞吐量/低延迟:通过使以物理方式运行的 Azure AI 服务更深入了解其应用程序逻辑和数据,为客户提供缩放功能,以满足高吞吐量和低延迟扩展要求。 容器不限制每秒综合事务数 (TPS),如果提供了必要的硬件资源,它还可进行纵向或横向扩展,来应对需求。
- 可伸缩性:随着容器化和容器业务流程软件(如 Kubernetes)的日益普及,可伸缩性已成为技术进步的前沿领域。 基于可缩放的群集的应用程序开发可满足高可用性的需要。
Azure AI 服务中的容器
Azure AI 容器提供以下一组 Docker 容器,其中每个容器都包含 Azure AI 服务中的服务的功能子集。 可以在下表中找到说明和映像位置。
注意
有关 Azure AI 文档智能容器说明和映像位置,请参阅安装和运行文档智能容器。
决策容器
服务 | 容器 | 说明 | 可用性 |
---|---|---|---|
异常检测器 | 异常检测器(映像) | 可以使用异常检测器 API 来监视并检测与机器学习配合使用的时序数据中的异常。 | 正式发布 |
语言容器
服务 | 容器 | 说明 | 可用性 |
---|---|---|---|
LUIS | LUIS(映像) | 可将已训练或已发布的语言理解模型(也称为 LUIS 应用)加载到 docker 容器中并提供对容器的 API 终结点中的查询预测的访问权限。 可以从容器中收集查询日志并将这些日志上传回 LUIS 门户以提高应用的预测准确性。 | 正式发布 |
语言服务 | 关键短语提取(映像) | 提取关键短语,以标识要点。 例如,针对输入文本“The food was delicious and there were wonderful staff”,该 API 会返回谈话要点:“food”和“wonderful staff”。 | 正式发布 |
语言服务 | 文本语言检测(映像) | 针对多达 120 种语言,检测输入文本是使用哪种语言编写的,并报告请求中提交的每个文档的单个语言代码。 语言代码与表示评分强度的评分相搭配。 | 正式发布 |
语言服务 | 情绪分析(映像) | 分析原始文本,获取正面或负面情绪的线索。 此版本的情绪分析为每个文档以及其中的句子返回情绪标签(例如正面或负面) 。 | 正式发布 |
语言服务 | 运行状况文本分析(映像) | 从非结构化临床文本中提取医疗信息并进行标记。 | 正式发布 |
语言服务 | 命名实体识别(图像) | 从文本中提取命名实体。 | 正式发布。 |
[语言服务][ta-containers-pii] | 个人身份信息 (PII) 检测(图像) | 从文本中检测和修订个人身份信息实体。 | 正式发布。 |
[语言服务][ta-containers-cner] | 自定义命名实体识别(映像) | 利用使用数据创建的自定义模型从文本中提取命名实体。 | 正式发布 |
语言服务 | 摘要(图像) | 汇总来自各种源的文本。 | 公共预览版。 |
视觉容器
服务 | 容器 | 说明 | 可用性 |
---|---|---|---|
空间分析 | 空间分析(映像) | 分析实时流视频,以理解人员之间的空间关系、他们的动作以及与物理环境中对象的交互。 | 预览 |
此外,Azure AI 服务多服务资源产品/服务支持某些容器。 可以为以下服务创建单个 Azure AI 服务资源,并在支持的服务之间使用相同的计费密钥:
- Azure AI 视觉
- LUIS
- 语言服务
先决条件
使用 Azure AI 容器之前,必须先满足以下先决条件:
Docker 引擎:必须在本地安装 Docker 引擎。 Docker 提供用于在 macOS、Linux 和 Windows 上配置 Docker 环境的包。 在 Windows 上,必须将 Docker 配置为支持 Linux 容器。 还可直接将 Docker 容器直接部署到 Azure Kubernetes 服务或 Azure 容器实例。
必须将 Docker 配置为允许容器连接 Azure 并向其发送账单数据。
熟悉 Microsoft 容器注册表和 Docker:应对 Microsoft 容器注册表和 Docker 概念有基本的了解,例如注册表、存储库、容器和容器映像,以及基本的 docker
命令的知识。
有关 Docker 和容器的基础知识,请参阅 Docker 概述。
各容器还可以有其自己的要求,包括服务器和内存分配要求。
Azure AI 服务容器安全
开发应用程序时,安全性是主要关注因素。 安全性重要是因为它是成功的指标。 构建包含 Azure AI 容器的软件解决方案时,必须了解你所受的限制和能够使用的功能。 有关网络安全性的详细信息,请参阅配置 Azure AI 服务虚拟网络。
重要
默认情况下,Azure AI 服务容器 API 上没有安全措施。 之所以这样设置,是因为大多数情况下容器会作为 Pod 的一部分运行,而 Pod 受网络桥的保护,与外部隔离。 然而,用户可以构建自己的身份验证基础结构,以近似于访问基于云的 Azure AI 服务时使用的身份验证方法。
下图演示了默认的非安全方法:
作为替代安全方法的示例,Azure AI 容器的使用者可以通过一个前置组件来增强容器,让容器终结点保持专用。 让我们考虑一个方案,在该方案中,我们使用 Istio 作为入口网关。 Istio 支持 HTTPS/TLS 和客户端证书身份验证。 在此方案中,Istio 前端会公开容器访问权限,提供的客户端证书已事先通过 Istio 获得批准。
在同一类别中,Nginx 是另一常用的选择。 Istio 和 Nginx 都充当服务网格,并提供其他功能,例如负载均衡、路由和速率控制。
容器网络
若要提交计费所需的计量信息,则需要 Azure AI 容器。 如果无法将 Azure AI 容器依赖的各种网络通道加入允许列表,则容器不能正常运行。
将 Azure AI 服务域和端口加入允许列表
主机应该允许列出端口 443 和以下域:
*.cognitive.azure.cn
*.cognitiveservices.azure.cn
禁用深度行数据包检查
深度数据包检查 (DPI) 是一种数据处理,它会详细检查通过计算机网络发送的数据,并且通常会对其采取阻止、重新路由或日志记录等相应操作。
在 Azure AI 容器创建的通往 Microsoft 服务器的安全通道上禁用 DPI。 如果不能这样做,则容器无法正常运行。
开发人员示例
可在 GitHub 存储库中查看开发人员示例。
后续步骤
安装和浏览 Azure AI 服务中的容器提供的功能: