本文介绍如何在不同于用于创建部署的项目或中心中配置现有无服务器 API。
重要
预览版的模型在模型目录中的模型卡上标记为“预览”。
可以将模型目录中的某些模型部署为无服务器 API。 这种部署可以将模型作为 API 使用,而无需将它们托管在自己的订阅上,同时保持组织所需的企业安全性和合规性。 此部署选项不需要使用您订阅中的配额。
在以下情况下,可能需要在与用于创建部署的项目或中心不同的项目或中心中使用无服务器 API 终结点:
- 你想要将部署集中到给定的项目或中心,并从组织中的不同项目或中心使用这些部署。
- 需要在特定 Azure 区域中的中心部署模型,其中提供了适用于该模型的无服务器部署。 但是,需要从另一个区域使用此模型,其中无服务器部署不适用于该特定模型。
先决条件
具有有效付款方式的 Azure 订阅。 免费或试用的 Azure 订阅将不起作用。 如果没有 Azure 订阅,请先创建一个付费的 Azure 帐户。
如果使用的是基于中心的项目,则需要提供 Azure AI Foundry 中心。 Foundry 项目不使用中心。 有关详细信息,请参阅 项目类型。
如果没有项目, 请创建基于中心的项目。
一个部署到无服务器 API 的模型。 本文假定你以前部署了 Meta-Llama-3-8B-Instruct 模型。 若要了解如何将此模型部署为无服务器 API,请参阅将模型部署为无服务器 API。
需要安装以下软件才能使用 Azure AI Foundry:
Azure CLI 和适用于 Azure 机器学习的 ml 扩展。
az extension add -n ml
如果已安装该扩展,请确保安装的是最新版本。
az extension update -n ml
安装该扩展后,对其进行配置:
az account set --subscription <subscription>
az configure --defaults workspace=<project-name> group=<resource-group> location=<location>
安装适用于 Python 的 Azure 机器学习 SDK。
pip install -U azure-ai-ml
安装后,导入所需的命名空间:
from azure.ai.ml import MLClient
from azure.identity import InteractiveBrowserCredential
from azure.ai.ml.entities import ServerlessEndpoint, ServerlessConnection
创建无服务器 API 终结点连接
按照以下步骤创建连接:
连接到部署该终结点的项目或中心:
小窍门
由于可以在 Azure AI Foundry 门户中 自定义左窗格 ,因此你可能会看到与这些步骤中显示的项不同。 如果未看到要查找的内容,请选择 ... 左窗格底部的更多内容。
转到 Azure AI Foundry,然后导航到部署了要连接到的终结点的项目。
将 CLI 配置为指向该项目:
az account set --subscription <subscription>
az configure --defaults workspace=<project-name> group=<resource-group> location=<location>
创建连接到你的项目的客户端:
client = MLClient(
credential=InteractiveBrowserCredential(tenant_id="<tenant-id>"),
subscription_id="<subscription-id>",
resource_group_name="<resource-group>",
workspace_name="<project-name>",
)
获取终结点的 URL 和要连接到的终结点的凭据。 在此示例中,你将获取名为“meta-llama3-8b-qwerty”的终结点的详细信息。
在 Azure AI Foundry 门户中项目的左侧边栏,转到“我的资产”>“模型 + 终结点”,以查看项目中的部署列表。
选择要连接到的部署。
复制“目标 URI”和“密钥”的值。
az ml serverless-endpoint get-credentials -n meta-llama3-8b-qwerty
endpoint_name = "meta-llama3-8b-qwerty"
endpoint_keys = client.serverless_endpoints.get_keys(endpoint_name)
print(endpoint_keys.primary_key)
print(endpoint_keys.secondary_key)
现在,连接到要在其中创建连接的项目或中心:
将 CLI 配置为指向该项目:
az account set --subscription <subscription>
az configure --defaults workspace=<project-name> group=<resource-group> location=<location>
创建连接到你的项目的客户端:
client = MLClient(
credential=InteractiveBrowserCredential(tenant_id="<tenant-id>"),
subscription_id="<subscription-id>",
resource_group_name="<resource-group>",
workspace_name="<project-name>",
)
在项目中创建连接:
从 Azure AI Foundry 门户中的项目,转到左侧边栏底部并选择“管理中心”。
在管理中心的左侧边栏中,选择“连接资源”。
选择新建连接。
选择“无服务器模型”。
对于“目标 URI”,请粘贴之前复制的值。
对于“密钥”,请粘贴之前复制的值。
为连接命名,在本例中为“meta-llama3-8b-connection”。
选择“添加连接”。
创建连接定义:
connection.yml
name: meta-llama3-8b-connection
type: serverless
endpoint: https://meta-llama3-8b-qwerty-serverless.inference.ai.azure.com
api_key: 1234567890qwertyuiop
az ml connection create -f connection.yml
client.connections.create_or_update(ServerlessConnection(
name="meta-llama3-8b-connection",
endpoint="https://meta-llama3-8b-qwerty-serverless.inference.ai.azure.com",
api_key="1234567890qwertyuiop"
))
此时,连接可供使用。
要验证连接是否正常工作,请执行以下操作:
返回到 Azure AI Foundry 门户中的项目。
在项目的左侧边栏中,转到“生成并自定义”>“提示流”。
选择“创建”以创建新流。
在“聊天流”框中选择“创建”。
为“提示流”命名,然后选择“创建。
从图中选择聊天节点,以转到聊天部分。
对于“连接”,打开下拉列表以选择刚刚创建的连接,在本例中为“meta-llama3-8b-connection”。
从顶部导航栏中选择启动计算会话,以启动提示流自动运行。
选择“聊天”选项。 现在可以发送消息并获取响应。
相关内容