微调模型后,可能需要通过聊天完成 API 或 评估 服务来测试其质量。
开发者层级部署允许你部署新模型,而无需支付标准部署或全局部署中按照小时产生的托管费用。 产生的唯一费用按令牌计费。 有关最新定价,请访问定价页。
重要
开发人员层不提供可用性 SLA,也没有 数据驻留 保证。 如果需要 SLA 或数据驻留,请选择用于测试模型的替代 部署类型 。
开发人员层部署的固定生存期为 24 小时。 在下方详细了解部署生命周期。
部署优化后的模型
若要部署候选模型,请选择要部署的微调模型,然后选择“ 部署”。
此时会打开“部署模型”对话框。 在对话框中,输入 部署名称 ,然后从部署类型下拉列表中选择 “开发人员 ”。 选择“ 创建 ”以开始部署自定义模型。
可以在 Azure AI Foundry 门户中的 “部署 ”窗格中监视新部署的进度。
import json
import os
import requests
token = os.getenv("<TOKEN>")
subscription = "<YOUR_SUBSCRIPTION_ID>"
resource_group = "<YOUR_RESOURCE_GROUP_NAME>"
resource_name = "<YOUR_AZURE_OPENAI_RESOURCE_NAME>"
model_deployment_name = "gpt41-mini-candidate-01" # custom deployment name that you will use to reference the model when making inference calls.
deploy_params = {'api-version': "2024-10-21"}
deploy_headers = {'Authorization': 'Bearer {}'.format(token), 'Content-Type': 'application/json'}
deploy_data = {
"sku": {"name": "developer", "capacity": 50},
"properties": {
"model": {
"format": "OpenAI",
"name": <"fine_tuned_model">, #retrieve this value from the previous call, it will look like gpt41-mini-candidate-01.ft-b044a9d3cf9c4228b5d393567f693b83
"version": "1"
}
}
}
deploy_data = json.dumps(deploy_data)
request_url = f'https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}'
print('Creating a new deployment...')
r = requests.put(request_url, params=deploy_params, headers=deploy_headers, data=deploy_data)
print(r)
print(r.reason)
print(r.json())
变量 |
定义 |
令牌 |
可通过多种方式生成授权令牌。 初始测试的最简单方法是从 Azure 门户启动 Cloud Shell。 然后运行 az account get-access-token 。 可以将此令牌用作 API 测试的临时授权令牌。 建议将其存储在新的环境变量中。 |
订阅 |
关联的 Azure OpenAI 资源的订阅 ID。 |
resource_group |
Azure OpenAI 资源的资源组名称。 |
资源名称 |
Azure OpenAI 资源名称。 |
模型部署名称 |
新微调模型部署的自定义名称。 这是在进行聊天补全调用时将在代码中引用的名称。 |
fine_tuned_model |
请从上一步的微调作业结果中检索此值。 该字符串类似于 gpt41-mini-candidate-01.ft-b044a9d3cf9c4228b5d393567f693b83 。 需要将该值添加到 deploy_data json。 或者,也可以通过传递将以 ftchkpt-e559c011ecc04fc68eaa339d8227d02d 格式显示的检查点 ID 来部署检查点 |
以下示例演示如何使用 REST API 为自定义模型创建模型部署。 REST API 为自定义模型的部署生成名称。
curl -X POST "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2024-10-21" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"sku": {"name": "developer", "capacity": 50},
"properties": {
"model": {
"format": "OpenAI",
"name": "<FINE_TUNED_MODEL>",
"version": "1"
}
}
}'
变量 |
定义 |
令牌 |
可通过多种方式生成授权令牌。 初始测试的最简单方法是从 Azure 门户启动 Cloud Shell。 然后运行 az account get-access-token 。 可以将此令牌用作 API 测试的临时授权令牌。 建议将其存储在新的环境变量中。 |
订阅 |
关联的 Azure OpenAI 资源的订阅 ID。 |
resource_group |
Azure OpenAI 资源的资源组名称。 |
资源名称 |
Azure OpenAI 资源名称。 |
模型部署名称 |
新微调模型部署的自定义名称。 这是在进行聊天补全调用时将在代码中引用的名称。 |
fine_tuned_model |
请从上一步的微调作业结果中检索此值。 该字符串类似于 gpt-35-turbo-0125.ft-b044a9d3cf9c4228b5d393567f693b83 。 需要将该值添加到 deploy_data json。 或者,也可以通过传递将以 ftchkpt-e559c011ecc04fc68eaa339d8227d02d 格式显示的检查点 ID 来部署检查点 |
使用 Azure CLI 部署模型
以下示例演示如何使用 Azure CLI 部署自定义模型。 使用 Azure CLI 时,必须为自定义模型的部署指定名称。 有关使用 Azure CLI 部署自定义模型的详细信息,请参阅 az cognitiveservices account deployment
。
若要在控制台窗口中运行此 Azure CLI 命令,必须将以下 <占位符> 替换为自定义模型的相应值:
占位符 |
价值 |
<YOUR_AZURE_SUBSCRIPTION> |
Azure 订阅的名称或 ID。 |
<YOUR_RESOURCE_GROUP> |
Azure 资源组的名称。 |
<YOUR_RESOURCE_NAME> |
Azure OpenAI 资源的名称。 |
<你的部署名称> |
用于模型部署的名称。 |
<YOUR_FINE_TUNED_MODEL_ID> |
自定义模型的名称。 |
az cognitiveservices account deployment create
--resource-group <YOUR_RESOURCE_GROUP>
--name <YOUR_RESOURCE_NAME>
--deployment-name <YOUR_DEPLOYMENT_NAME>
--model-name <YOUR_FINE_TUNED_MODEL_ID>
--model-version "1"
--model-format OpenAI
--sku-capacity "50"
--sku-name "Developer"
使用部署的微调模型
部署自定义模型后,可像使用任何其他已部署的模型一样使用它。 可以使用 Azure AI Foundry 门户中的 Playgrounds 来试验新部署。 可以继续对自定义模型使用相同的参数,例如 temperature
和 max_tokens
,就像对其他已部署的模型一样。
还可以使用 评估 服务针对已部署的模型候选模型和其他模型版本创建和运行模型评估。
import os
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-01"
)
response = client.chat.completions.create(
model="gpt41-mini-candidate-01", # model = "Custom deployment name you chose for your fine-tuning model"
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure AI services support this too?"}
]
)
print(response.choices[0].message.content)
curl $AZURE_OPENAI_ENDPOINT/openai/deployments/<deployment_name>/chat/completions?api-version=2024-10-21 \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure AI services support this too?"}]}'
清理部署
无论活动如何,开发人员部署都会自行自动删除。 每个部署的固定生存期为 24 小时 ,之后将删除该部署。 删除部署不会删除或影响基础自定义模型,并且可以随时重新部署自定义模型。
若要手动删除部署,可以使用 Azure AI Foundry 门户或使用 Azure CLI。
若要使用部署 - 删除 REST API,请向部署资源发送 HTTP DELETE
。 与创建部署一样,必须包含以下参数:
- Azure 订阅 ID
- Azure 资源组名称
- Azure OpenAI 资源名称
- 要删除的部署的名称
下面是用于删除部署的 REST API 示例:
curl -X DELETE "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2024-10-21" \
-H "Authorization: Bearer <TOKEN>"
后续步骤