你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Foundry Local 体系结构

重要

  • Foundry Local 以预览版形式提供。 通过公共预览版,可以提前访问正处于开发状态的功能。
  • 正式发布 (GA) 之前,功能、方法和流程可能会发生更改或功能受限。

Foundry Local 可直接在设备上实现高效、安全且可缩放的 AI 模型推理。 本文介绍 Foundry Local 的核心组件以及它们如何协同工作以提供 AI 功能。

Foundry Local 提供以下主要优势:

  • 低延迟:在本地运行模型以尽量减少处理时间并更快地提供结果。
  • 数据隐私:在本地处理敏感数据而不将其发送到云,从而帮助满足数据保护要求。
  • 灵活性:支持多种硬件配置,使你可以根据需要选择最佳设置。
  • 可伸缩性:跨各种设备(从笔记本电脑到服务器)进行部署,以适应不同的用例。
  • 成本效益:降低云计算成本,尤其是对于大容量应用程序。
  • 脱机作:在远程或断开连接的环境中在没有 Internet 连接的情况下工作。
  • 无缝集成:轻松融入现有开发工作流,以便顺利采用。

关键组件

Foundry Local 体系结构包含以下主要组件:

Foundry 本地体系结构示意图。

Foundry Local 服务

Foundry 本地服务包括一个与 OpenAI 兼容的 REST 服务器,该服务器提供用于处理推理引擎的标准接口。 还可以通过 REST 管理模型。 开发人员使用此 API 以编程方式发送请求、运行模型和获取结果。

  • 终结点:在服务启动时 动态分配 终结点。 可以通过运行 foundry service status 命令找到终结点。 在应用程序中使用 Foundry Local 时,我们建议使用自动处理终结点的 SDK。 有关如何使用 Foundry Local SDK 的更多详细信息,请阅读 带 Foundry Local 的集成推理 SDK 一文。
  • 用例:
    • 将 Foundry Local 连接到自定义应用程序
    • 通过 HTTP 请求执行模型

ONNX 运行时

ONNX 运行时是执行 AI 模型的核心组件。 它在本地硬件(如 CPU、GPU 或 NPU)上高效运行优化的 ONNX 模型。

功能

  • 支持多个硬件供应商(如 NVIDIA、AMD、Intel、Qualcomm)和设备类型(如 NPU、CPU、GPU 等)
  • 提供一致的接口,用于跨模型运行不同的硬件
  • 提供一流的性能
  • 支持量化模型以加快推理速度

模型管理

Foundry Local 提供了可靠的工具来管理 AI 模型,确保它们随时可供推理和易于维护。 模型管理通过 模型缓存Command-Line 接口(CLI)进行处理。

模型缓存

模型缓存将下载的 AI 模型存储在设备上本地,这可确保模型已准备好进行推理,而无需反复下载它们。 可以使用 Foundry CLI 或 REST API 管理缓存。

  • 目的:通过确保模型在本地可用来提高模型推理速度
  • 键命令
    • foundry cache list:显示本地缓存中的所有模型
    • foundry cache remove <model-name>:从缓存中删除特定模型
    • foundry cache cd <path>:更改缓存模型的存储位置

模型生命周期

  1. 下载:从 Azure AI Foundry 模型目录下载模型并将其保存到本地磁盘。
  2. 加载:将模型加载到 Foundry 本地服务内存中供推理。 设置 TTL(生存时间)以控制模型在内存中停留的时间(默认值:10 分钟)。
  3. 运行:为请求执行模型推理。
  4. 卸载:从内存中删除模型,以在不再需要资源时释放资源。
  5. 删除:从本地缓存中删除模型以回收磁盘空间。

使用 Olive 编译模型

在模型可与 Foundry Local 一起使用之前,必须以 ONNX 格式编译和优化模型。 Microsoft在 Azure AI Foundry 模型目录中提供已发布的模型,这些模型已针对 Foundry Local 进行了优化。 不过,通过使用 Olive,你并不局限于这些模型。 Olive 是一个强大的框架,用于准备 AI 模型以高效推理。 它将模型转换为 ONNX 格式,优化其图形结构,并应用量化等技术来提高本地硬件的性能。

小窍门

若要详细了解如何为 Foundry Local 编译模型,请阅读 如何编译 Hugging Face 模型以在 Foundry Local 上运行

硬件抽象层

硬件抽象层通过抽象基础硬件来确保 Foundry Local 可以在各种设备上运行。 为了基于可用硬件优化性能,Foundry Local 支持:

  • 多个 执行提供程序,例如 NVIDIA CUDA、AMD、Qualcomm、Intel。
  • 多个 设备类型,例如 CPU、GPU、NPU。

注释

对于 Windows 上的 Intel NPU 支持,需要安装 Intel NPU 驱动程序 才能启用硬件加速。

注释

对于 Qualcomm NPU 支持,需要安装 Qualcomm NPU 驱动程序。 如果遇到错误 Qnn error code 5005: "Failed to load from EpContext model. qnn_backend_manager.",这通常表示过时的驱动程序或 NPU 资源冲突。 请尝试重新启动以清除 NPU 资源冲突,尤其是在使用 Windows Copilot+ 功能之后。

开发人员体验

Foundry Local 体系结构旨在提供无缝的开发人员体验,实现与 AI 模型的轻松集成和交互。 开发人员可以从各种接口中进行选择,以便与系统交互,包括:

命令行接口 (CLI)

Foundry CLI 是用于管理模型、推理引擎和本地缓存的强大工具。

示例

  • foundry model list:列出本地缓存中的所有可用模型。
  • foundry model run <model-name>:运行模型。
  • foundry service status:检查服务的状态。

小窍门

若要了解有关 CLI 命令的详细信息,请阅读 Foundry 本地 CLI 参考

推理 SDK 集成

Foundry Local 支持与大多数语言(如 OpenAI SDK)的各种 SDK 集成,使开发人员能够使用熟悉的编程接口与本地推理引擎交互。

小窍门

若要了解有关与推理 SDK 集成的详细信息,请阅读 将推理 SDK 与 Foundry Local 集成

Visual Studio Code 的 AI 工具包

AI Toolkit for Visual Studio Code 为开发人员提供了一个用户友好的界面,用于与 Foundry Local 交互。 它允许用户运行模型、管理本地缓存,并在 IDE 中直接可视化结果。

功能

  • 模型管理:从 IDE 中下载、加载和运行模型。
  • 交互式控制台:实时发送请求和查看响应。
  • 可视化工具:模型性能和结果的图形表示形式。

先决条件

将 Foundry Local 模型连接到 AI 工具包:

  1. 在 AI 工具包中添加模型:从 Visual Studio Code 的活动栏中打开 AI 工具包。 在“我的模型”面板中,选择“为远程界面添加模型”按钮,然后从下拉菜单中选择“添加自定义模型”。
  2. 输入与聊天兼容的终结点 URL:输入 http://localhost:PORT/v1/chat/completions,其中 PORT 替换为 Foundry Local 服务终结点的端口号。 可以使用 CLI 命令 foundry service status 查看本地运行服务的端口。 Foundry Local 动态分配端口,因此它可能并不总是一样的。
  3. 提供模型名称:输入要从 Foundry Local 中使用的确切模型名称,例如 phi-3.5-mini。 可使用 CLI 命令 foundry cache list 列出以前下载且本地缓存的所有模型,或者使用 foundry model list 查看所有可供本地使用的模型。 还需要输入显示名称,该名称仅供你自己本地使用,因此为了避免混淆,建议输入与确切模型名称相同的名称。
  4. 身份验证:如果本地设置不需要身份验证(这是 Foundry Local 设置的默认值),可以将身份验证标头字段留空,然后按 Enter。

完成这些步骤后,Foundry Local 模型将显示在 AI 工具包的“我的模型”列表中并准备就绪,可通过右键单击模型并选择“在操场中加载”来使用。