你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在一些情况下,云连接间歇性有效,或者用户出于隐私原因而首选设备内方案,嵌入式内容安全专为这类情况而设计。 例如,你可以使用电脑中的嵌入式内容安全来检测基础模型生成的有害内容,或可能超出行驶范围的汽车。 还可以开发混合云和脱机解决方案。 对于设备必须位于安全环境(如银行或政府实体)的情况,应首先考虑使用断开连接的容器。
重要
Microsoft 限制对嵌入式内容安全的访问。 可以通过 Azure AI 内容安全嵌入式内容安全限制访问审核来申请访问权限。 有关详细信息,请参阅有限的访问权限。
平台要求
嵌入式内容安全包含在内容安全 C++ SDK 中。
选择目标环境
嵌入式内容安全目前仅支持 Windows。 如果需要在其他平台上运行嵌入式内容安全,请联系 Microsoft 帐户联系人。
x64 硬件上需要 Windows 10 或更高版本。
无论内容安全 SDK 使用的是哪种编程语言,都必须安装最新的 Microsoft Visual C++ Redistributable for Visual Studio 2015-2022。
限制
嵌入式内容安全仅适用于 C++ SDK。 其他内容安全 SDK 和 REST API 不支持嵌入式内容安全。
嵌入式内容安全 SDK 包
对于 C++ 嵌入式应用程序,请安装以下适用于 C++ 包的内容安全 SDK:
程序包 | 说明 |
---|---|
Azure.AI.ContentSafety.Extension.Embedded.Text | 在设备上运行文本分析的必要项 |
Azure.AI.ContentSafety.Extension.Embedded.Image | 在设备上运行图像分析的必要项 |
模型
对于嵌入式内容安全,需要将内容安全下载到设备。 Microsoft 限制对嵌入式内容安全的访问。 可以通过嵌入式内容安全限制访问审核申请访问。 将在成功完成受限访问评审进程后提供说明。
嵌入式内容安全支持分析文本和分析图像功能。 这些功能可以扫描文本或图像内容中是否存在多种严重级别的性内容、暴力、仇恨和自残内容。 值得注意的是,这些嵌入式模型已针对设备内执行进行了优化,与 Azure API 相比,所需的计算资源更少。 因此,嵌入式内容安全模型生成的输出可能与 Azure API 的输出不同。
嵌入式内容安全代码示例
以下是可供使用的嵌入式内容安全示例。 按照自述文件运行示例。
性能评估
嵌入式内容安全模型完全在目标设备上运行。 了解设备硬件上这些模型的性能特征对于在产品和应用程序中提供低延迟体验至关重要。 本部分提供的信息有助于回答问题:“我的设备是否适合运行嵌入式内容安全性进行文本分析或图像分析?”
影响性能的因素
设备规范 - 设备的规范在嵌入式内容安全模型是否可以正常运行且没有性能问题方面发挥关键作用。 CPU 时钟速度、体系结构(例如 x64、ARM 处理器等)和内存都会影响模型推理速度。
CPU/GPU 负载 - 在大多数情况下,你的设备会运行其他应用程序,与集成嵌入式内容安全模型的应用程序并行。 你的设备在空闲和高峰期经历的 CPU/GPU 负载量也可能会影响性能。
例如,如果设备上运行的所有其他应用程序让设备处于中到高的 CPU 负载,那么如果将嵌入式内容安全与其他应用程序一起运行,则可能会遇到性能问题,即使有强大的处理器也是如此。
内存负载 – 嵌入式内容安全文本分析过程在运行时消耗大约 900 MB 内存。 如果设备可用于嵌入式内容安全进程的内存较少,则会频繁回退到虚拟内存和分页,这可能会导致更多的延迟。 这可能会影响实时因子和用户感知延迟。
可能影响性能的 SDK 参数
以下 SDK 参数可能会影响嵌入式内容安全模型的推理时间。
gpuEnabled
设置为 true 以启用 GPU,否则使用 CPU。 一般来说,使用 GPU 的推理时间较短。numThreads
此参数仅适用于 CPU。 此参数定义了在多线程环境中要使用的线程数。 我们最多支持四个线程。
有关常见电脑 CPU 和 GPU 的性能基准数据,请参阅下一部分。
常见 CPU 和 GPU 的性能基准数据
如上所述,有多个因素会影响嵌入式内容安全模型的性能。 强烈建议在设备上对其进行测试,并调整参数以适应应用的要求。
我们还对各种常见电脑的 CPU 和 GPU 进行了性能基准测试。 请记住,即使搭载相同的 CPU,性能也会根据 CPU 和内存负载而有所不同。 在考虑嵌入式内容安全是否可以在你的设备上运行时,应将所提供的基准数据作为参考。 为了获得最佳效果,我们建议在要使用的设备和特定的应用场景中进行测试。
示例代码包括用于监控内存、推理时间等性能指标的代码片段。
CPU:Intel(R) Core(TM) Ultra i9 149000HX
AACS_NUM_THREADS | CPU 内存利用率 | 延迟 |
---|---|---|
1 | 940 MB | 260 毫秒 |
2 | 940 MB | 164 毫秒 |
3 | 940 MB | 125 毫秒 |
4 | 940 MB | 103 毫秒 |
CPU:Intel(R) Core(TM) Ultra 5 125H
AACS_NUM_THREADS | CPU 内存利用率 | 延迟 |
---|---|---|
1 | 940 MB | 320 毫秒 |
2 | 940 MB | 180 毫秒 |
3 | 940 MB | 125 毫秒 |
4 | 940 MB | 105 毫秒 |
GPU:NVIDIA GeForce RTX 4060 Laptop GPU
GPU 内存使用率 | 延迟 |
---|---|
940 MB | 26 毫秒 |
GPU:Intel(R) Arc(TM) Graphics
CPU 内存利用率 | 延迟 |
---|---|
940 MB | 80 ms |