生成式人工智能/大语言模型

在 Azure AI Foundry 上使用 NVIDIA NIM 加速 AI 推理

NVIDIA NIM 微服务 集成到 Azure AI Foundry ,标志着企业 AI 开发的重大飞跃。通过将 NIM 微服务与 Azure 可扩展的安全基础架构相结合,企业组织现在可以比以往更高效地部署功能强大的即用型 AI 模型。

NIM 微服务容器化,可为预训练和自定义 AI 模型提供 GPU 加速推理。NIM 微服务集成了 NVIDIA 和更广泛的社区的领先推理技术,可为 NVIDIA 加速基础设施上的最新 AI 模型提供优化的响应延迟和吞吐量。

开发者可以通过符合每个领域行业标准的 API 访问 AI 模型,从而简化 AI 应用的开发。NIM 支持跨多个领域和一系列 AI 模型的 AI 用例,包括社区模型、NVIDIA AI Foundation 模型和 NVIDIA 合作伙伴提供的自定义 AI 模型。其中包括语音、图像、视频、3D、药物研发、医学成像等模型。

Azure AI Foundry

Azure AI Foundry 是一个值得信赖的集成平台,供开发者和 IT 管理员设计、定制和管理 AI 应用和智能体。它通过简单的门户、统一的 SDK 和 API 提供了一套丰富的 AI 功能和工具。该平台可促进安全的数据集成、模型自定义和企业级治理,以加速生产路径。

Azure AI Foundry 上的 NVIDIA NIM

NIM 微服务在 Azure AI Foundry 上原生支持,使开发者能够快速创建简化的部署路径。这些微服务在 Azure 的托管计算上运行,消除了设置和维护 GPU 基础设施的复杂性,同时确保高可用性和可扩展性,即使对于要求严苛的工作负载也是如此。这使得团队能够快速从模型选择转向生产使用。

NVIDIA NIM 是 NVIDIA AI Enterprise 的一部分,NVIDIA AI Enterprise 是一套易于使用的微服务,专为安全、可靠和高性能的 AI 推理而设计。每个 NIM 部署都包含 NVIDIA AI Enterprise 支持,可为企业级使用提供一致的性能和可靠的更新。

部署在 Azure AI Foundry 上的 NIM 可以通过标准 API 进行访问,从而轻松集成到 Azure 服务 (如 AI 代理服务) 和 代理式 AI 框架 (如 Semantic Kernel) 中。NIM 微服务利用 NVIDIA 和社区的强大技术 (包括 NVIDIA Dynamo NVIDIA TensorRT NVIDIA TensorRT-LLM 、vLLM、PyTorch 等) 构建而成,可在托管 Azure 计算上无缝扩展。

NIM 微服务提供:

  • 零配置部署 :通过开箱即用的优化快速启动和运行。
  • 无缝 Azure 集成 :轻松使用 Azure AI Agent Service 和 Semantic Kernel。
  • 企业级可靠性:受益于 NVIDIA AI Enterprise 支持,可实现持续的性能和安全性。
  • 可扩展推理: 利用 Azure 的 NVIDIA 加速基础架构来处理要求严苛的工作负载。

您只需单击几下即可部署这些服务。从 Azure AI Foundry 的模型目录中选择 Llama 3.3 70B NIM 等模型,并将其直接集成到您的 AI 工作流中。开始构建在 Azure 生态系统中完美运行的生成式 AI 应用。

在 Azure AI Foundry 上部署 NIM

本节将为您介绍如何在 Azure AI Foundry 上部署 NIM。

视频 1. 了解如何在 Azure AI Foundry 上使用 NVIDIA NIM 部署模型

Azure AI Foundry 门户

首先访问 Azure AI Foundry 门户,然后按照以下步骤操作。

1. 前往 ai.azure.com,确保您拥有可用的 Hub 和 Project。

2. 从左侧栏菜单中选择“ Model Catalog ” (图 1) 。

3. 在“ 集合 ”过滤器中,选择 NVIDIA 以查看 Azure AI Foundry 上提供的所有 NIM 微服务。

Screenshot of the Azure AI Foundry Model Catalog.
图 1。直接从 Azure AI Foundry 门户部署 NIM 微服务

4. 选择要使用的 NIM。此示例使用 Llama 3.1 8B Instruct NIM 微服务。

5. 单击 部署

6. 选择要用于部署的部署名称和虚拟机 (VM) 类型 (图 2) 。系统将预先选择所选 NIM 支持且在模型卡中指定的 VM SKU。请注意,此步骤要求您的 Azure 订阅为所选 VM 类型提供足够的可用配额。 如有需要,请按照说明申请增加服务配额。

Screenshot of the Azure AI Foundry Model Catalog with dialog box showing NIM deployment name and virtual machine menu selection.
图 2。为所选 NIM 选择部署名称和 VM 类型

7. 可选:自定义部署配置,例如实例数量。在此步骤中,您还可以利用现有 endpoint 进行部署。

8. 单击“ Next ” (下一步) ,然后查看 NIM 部署的定价明细和使用条款 (图 3) 。定价明细包括 Azure Compute 费用以及使用 NIM 软件所需的 NVIDIA AI Enterprise 许可证的每个 GPU 的固定费用。

Deploy NVIDIA NIM microservice through Azure Marketplace pricing breakdown.
图 3。通过 Azure Marketplace 部署 NVIDIA NIM 的价格明细

9. 确认使用条款后,单击“Deploy”以启动部署流程。

Python SDK 部署

还可以使用 Azure Machine Learning Python SDK 在 Azure AI Foundry 上以编程方式部署 NIM。为此,请按照本节中提供的步骤操作。

安装 Azure ML SDK:

pip install azure-ai-ml
pip install azure-identity

设置凭据:

from azure.ai.ml import MLClient
from azure.identity import InteractiveBrowserCredential
workspace_ml_client = MLClient(
	credential=InteractiveBrowserCredential(),
	subscription_id="azure-subscription-id",
	resource_group_name="resource-group-name",
	workspace_name="azure-ai-foundry-project-name",
)

创建托管 NIM 部署的托管在线端点:

import time, sys
from azure.ai.ml.entities import (
    ManagedOnlineEndpoint,
    ManagedOnlineDeployment,
    ProbeSettings,
)

# Make the endpoint name unique
timestamp = int(time.time())
online_endpoint_name = "endpoint" + str(timestamp)

# Create an online endpoint
endpoint = ManagedOnlineEndpoint(
    name=online_endpoint_name,
    auth_mode="key",
)
workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).wait()

最后,使用 model ID 部署模型:

model_name = "azureml://registries/azureml-nvidia/models/Llama-3.1-8B-Instruct-NIM-microservice/versions/2"

demo_deployment = ManagedOnlineDeployment(
    name="nim-deployment",
    endpoint_name=online_endpoint_name,
    model=model_name,
    instance_type="Standard_NC24ads_A100_v4",
    instance_count=1,
    liveness_probe=ProbeSettings(
        failure_threshold=30,
        success_threshold=1,
        timeout=2,
        period=10,
        initial_delay=1000,
    ),
    readiness_probe=ProbeSettings(
        failure_threshold=10,
        success_threshold=1,
        timeout=10,
        period=10,
        initial_delay=1000,
    ),
)
workspace_ml_client.online_deployments.begin_create_or_update(demo_deployment).wait()
endpoint.traffic = {"nim-deployment": 100}
workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).result()

使用 OpenAI 或 Azure AI Foundry SDK 将 NIM 集成到 AI 解决方案中

Foundry 上的 NVIDIA NIM 提供了一个兼容 OpenAI 的 API。如需详细了解受支持的负载,请参阅适用于 LLM 的 NVIDIA NIM 文档。另一种方法是使用 Azure AI Foundry SDK

在 Azure AI Foundry 上使用 NIM 的 OpenAI SDK

使用 openai SDK 在 Azure AI Foundry 和 Azure ML 中使用 Llama 3.1 8B NIM 部署。Azure AI 和 Azure ML 中的 NVIDIA Meta Llama 3 系列模型提供与 OpenAI Chat Completion API 的 API 兼容性。它使客户和用户能够从 OpenAI 模型无缝过渡到 Meta Llama LLM NIM 微服务。

该 API 可直接与 OpenAI 的客户端库或第三方工具,如 LangChain 或 LlamaIndex 一起使用。

以下示例展示了如何将 openai 与部署在 Azure AI 和 Azure ML 中的 Meta Llama 3 聊天模型结合使用。有关更多详细信息,请参阅 GitHub 上的 Azure/azureml-examples

pip install openai

请注意,您需要 endpoint URL 和与该端点关联的 authentication key。这些可以从前面的步骤中获取。要使用 openai,请配置如下客户端:

  • base_url:使用部署中的端点 URL。在 URL 中添加 /v1
  • api_key:使用您的 API 密钥。
client = OpenAI(
    base_url="https://<endpoint>.<region>.inference.ml.azure.com/v1", api_key="<key>"
)

使用 client 创建聊天完成请求:

response = client.chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "Who is the most renowned French painter? Provide a short answer.",
        }
    ],
    model="meta/llama-3.1-8b-instruct",
)

生成的文本可以通过以下方式访问:

print(response.choices[0].message.content)

Azure AI Foundry 上搭载 NIM 的 Azure AI Inference SDK

此示例展示了如何使用带有 Llama 3 NIM 的 AI 推理 SDK,在 Azure AI Foundry 和 Azure AML 中使用 Llama 3.1 8B NIM 部署。有关更多详细信息,请参阅 GitHub 上的 Azure/azureml-examples

首先,使用您的包管理器 (如 pip) 安装包 azure-ai-inference

pip install azure-ai-inference

使用 ai.inference 包中的 ChatCompletionsClient 调用 Llama LLM NIM:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.inference.models import SystemMessage, UserMessage

endpoint = "https://<endpoint>.<region>.inference.ml.azure.com/v1"
key = os.getenv("AZURE_AI_CHAT_KEY", "keyhere")

client = ChatCompletionsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(key),
)

response = client.complete(
    messages=[
        SystemMessage("You are a helpful assistant."),
        UserMessage("Can you write me a song?"),
    ],
)

print(response.choices[0].message.content)

开始在 Azure AI Foundry 上使用 NVIDIA NIM

NVIDIA NIM 微服务 集成到 Azure AI Foundry 集两全其美:包含硬件和软件的先进 NVIDIA AI 推理平台,以及 Azure 的企业级云基础设施。这种强大的组合使开发者和组织能够以最少的配置和更高的性能快速部署、扩展和运行 AI 模型。只需单击几下或执行几行代码,即可为当今一些非常先进的模型解锁高性能推理。

要开始使用,请查看以下资源:

请持续关注,详细了解基于 AI Foundry 的 NVIDIA NIM,并探索如何在 Azure 上充分利用 NVIDIA。

 

标签