Erstellen und Konfigurieren aller Ressourcen für Azure KI-Modellinferenz
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
In diesem Artikel erfahren Sie, wie Sie die Ressourcen erstellen, die erforderlich sind, um Azure KI-Modellreferenz und führende Modelle aus dem Azure KI-Modellkatalog zu nutzen.
Voraussetzungen
Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:
- Ein Azure-Abonnement. Wenn Sie GitHub-Modelle verwenden, können Sie Ihre Erfahrung upgraden und während dem Prozess ein Azure-Abonnement erstellen. Lesen Sie in diesem Fall Upgrade von GitHub-Modellen auf die Azure KI-Modellinferenz.
Wichtig
Das Azure AI Foundry-Portal verwendet Projekte und Hubs zum Erstellen von Azure KI Services-Konten und zum Konfigurieren von Azure KI-Modellinferenz. Wenn Sie keine Hubs und Projekte verwenden möchten, können Sie die Ressourcen entweder mithilfe der Azure CLI oder mithilfe von Bicep erstellen. Sie können die Azure KI Services-Ressource auch über das Azure-Portal erstellen.
Erstellen der Ressourcen
Führen Sie die folgenden Schritte aus, um ein Projekt mit einem Azure KI Services-Konto zu erstellen:
Besuchen Sie das Azure KI Foundry-Portal.
Wählen Sie auf der Startseite die Option Projekt erstellen aus.
Geben Sie dem Projekt einen Namen, z. B. „my-project“.
In diesem Tutorial erstellen Sie ein völlig neues Projekt unter einem neuen KI-Hub. Wählen Sie daher Neuen Hub erstellen aus.
Geben Sie dem Hub einen Namen, z. B. „my-hub“, und wählen Sie Weiter aus.
Der Assistent wird mit Details zu den Ressourcen aktualisiert, die erstellt werden sollen. Wählen Sie Zu erstellende Azure-Ressourcen aus, um die Details anzuzeigen.
Sie sehen, dass die folgenden Ressourcen erstellt werden:
Eigenschaft Beschreibung Ressourcengruppe Der Hauptcontainer für alle Ressourcen in Azure. Dadurch können Ressourcen organisiert werden, die zusammenarbeiten. Es hilft auch beim Festlegen eines Bereichs für die Kosten, die mit dem gesamten Projekt verbunden sind. Location Die Region der Ressourcen, die Sie erstellen Hub Der Hauptcontainer für KI-Projekte in Azure AI Foundry. Hubs fördern die Zusammenarbeit und ermöglichen es Ihnen, Informationen für Ihre Projekte zu speichern. KI Services Die Ressource, die den Zugriff auf die führenden Modelle im Azure KI-Modellkatalog ermöglicht. In diesem Tutorial wird ein neues Konto erstellt, Azure KI Services-Ressourcen können jedoch für mehrere Hubs und Projekte freigegeben werden. Hubs verwenden eine Verbindung mit der Ressource, um Zugriff auf die dort verfügbaren Modellbereitstellungen zu haben. Informationen zum Erstellen von Verbindungen zwischen Projekten und Azure KI Services zum Nutzen von Azure KI-Modellinferenz finden Sie unter Verbinden Ihres KI-Projekts. Klicken Sie auf Erstellen. Der Prozess zur Ressourcenerstellung wird gestartet.
Nach Abschluss des Vorgangs kann Ihr Projekt konfiguriert werden.
Azure KI-Modellreferenz ist eine Previewfunktion, die in Azure AI Foundry aktiviert werden muss. Wählen Sie auf der oberen Navigationsleiste in der rechten Ecke das Symbol Previewfunktionen aus. Rechts auf dem Bildschirm wird ein Kontextblatt angezeigt.
Aktivieren Sie das Feature Modelle im Azure KI-Modellinferenzdienst bereitstellen.
Schließen Sie den Bereich.
Um Azure KI-Modellinferenz zu verwenden, müssen Sie Ihrem Azure KI Services-Konto Modellbereitstellungen hinzufügen.
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Sie können entscheiden, welche Modelle für das Rückschließen im Rückschlussendpunkt verfügbar sind, und diese entsprechend konfigurieren. Wenn ein bestimmtes Modell konfiguriert ist, können Sie dann Vorhersagen daraus generieren, indem Sie den Modellnamen oder den Bereitstellungsnamen für Ihre Anforderungen angeben. Für die Verwendung sind in Ihrem Code keine weiteren Änderungen erforderlich.
In diesem Artikel erfahren Sie, wie Sie Azure KI-Modellinferenz in Azure AI Foundry ein neues Modell hinzufügen.
Voraussetzungen
Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:
Ein Azure-Abonnement. Wenn Sie GitHub-Modelle verwenden, können Sie Ihre Erfahrung upgraden und während dem Prozess ein Azure-Abonnement erstellen. Lesen Sie in diesem Fall Upgrade von GitHub-Modellen auf die Azure KI-Modellinferenz.
Eine Azure KI Services-Ressource.
Installieren Sie die Azure CLI und die
cognitiveservices
-Erweiterung für Azure KI Services:az extension add -n cognitiveservices
Einige der Befehle in diesem Tutorial verwenden das Tool
jq
, das möglicherweise nicht in Ihrem System installiert ist. Die Installationsanweisungen finden Sie unter Herunterladen vonjq
.Ermitteln Sie die folgenden Informationen:
die Azure-Abonnement-ID
Name Ihrer Azure KI Services-Ressource
Ressourcengruppe, in der die Azure KI Services-Ressource bereitgestellt wurde
Option „Add models“
Um ein Modell hinzuzufügen, müssen Sie zuerst das Modell ermitteln, das Sie bereitstellen möchten. Sie können die verfügbaren Modelle wie folgt abfragen:
Melden Sie sich bei Ihrem Azure-Abonnement an:
az login
Wenn Sie über mehrere Abonnements verfügen, wählen Sie das Abonnement aus, in dem sich Ihre Ressource befindet:
az account set --subscription $subscriptionId>
Legen Sie die folgenden Umgebungsvariablen anhand des Namens der Azure KI Services-Ressource, die Sie verwenden möchten, und der entsprechenden Ressourcengruppe fest.
accountName="<ai-services-resource-name>" resourceGroupName="<resource-group>"
Wenn Sie noch kein Azure KI Services-Konto haben, können Sie eins wie folgt erstellen:
az cognitiveservices account create -n $accountName -g $resourceGroupName
Sehen Sie sich zunächst an, welche Modelle Ihnen unter welcher SKU zur Verfügung stehen. Die folgende Befehlsliste enthält alle verfügbaren Modelldefinitionen:
az cognitiveservices account list-models \ -n $accountName \ -g $resourceGroupName \ | jq '.[] | { name: .name, format: .format, version: .version, sku: .skus[0].name, capacity: .skus[0].capacity.default }'
Die Ausgabe sieht wie folgt aus:
{ "name": "Phi-3.5-vision-instruct", "format": "Microsoft", "version": "2", "sku": "GlobalStandard", "capacity": 1 }
Suchen Sie das Modell, das Sie bereitstellen möchten. Sie benötigen die Eigenschaften
name
,format
,version
undsku
. Je nach Bereitstellungstyp ist eventuell Kapazität erforderlich.Tipp
Beachten Sie, dass nicht alle Modelle in allen SKUs verfügbar sind.
Fügen Sie der Ressource die Modellimplementierung hinzu. Im folgenden Beispiel wird
Phi-3.5-vision-instruct
hinzugefügt:az cognitiveservices account deployment create \ -n $accountName \ -g $resourceGroupName \ --deployment-name Phi-3.5-vision-instruct \ --model-name Phi-3.5-vision-instruct \ --model-version 2 \ --model-format Microsoft \ --sku-capacity 1 \ --sku-name GlobalStandard
Das Modell kann nun verwendet werden.
Sie können dasselbe Modell bei Bedarf mehrmals bereitstellen, solange dies unter einem anderen Bereitstellungsnamen erfolgt. Diese Funktion kann nützlich sein, wenn Sie unterschiedliche Konfigurationen, z. B. für die Inhaltssicherheit, für ein bestimmtes Modell testen möchten.
Verwalten von Bereitstellungen
Mithilfe der CLI können Sie alle verfügbaren Bereitstellungen anzeigen:
Führen Sie den folgenden Befehl aus, um alle aktiven Bereitstellungen anzuzeigen:
az cognitiveservices account deployment list -n $accountName -g $resourceGroupName
Sie können die Details einer bestimmten Bereitstellung anzeigen:
az cognitiveservices account deployment show \ --deployment-name "Phi-3.5-vision-instruct" \ -n $accountName \ -g $resourceGroupName
Sie können eine bestimmte Bereitstellung wie folgt löschen:
az cognitiveservices account deployment delete \ --deployment-name "Phi-3.5-vision-instruct" \ -n $accountName \ -g $resourceGroupName
Verwenden des Modells
Bereitgestellte Modelle in der Azure KI-Modellinferenz können mithilfe des Rückschlussendpunkts des Azure KI-Modells für die Ressource genutzt werden. Geben Sie beim Erstellen Ihrer Anforderung den Parameter model
an, und fügen Sie den von Ihnen erstellten Namen der Modellimplementierung ein. Sie können den URI für den Rückschlussendpunkt mithilfe des folgenden Codes programmgesteuert abrufen:
Rückschlussendpunkt
az cognitiveservices account show -n $accountName -g $resourceGroupName | jq '.properties.endpoints["Azure AI Model Inference API"]'
Um Anforderungen an den Endpunkt der Azure KI-Modellinferenz zu senden, fügen Sie die Route models
an, z. B. https://<resource>.services.ai.azure.com/models
. Die API-Referenz für den Endpunkt finden Sie auf der Seite Referenz zur Azure KI-Modellinferenz-API.
Rückschlussschlüssel
az cognitiveservices account keys list -n $accountName -g $resourceGroupName
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
In diesem Artikel erfahren Sie, wie Sie die Ressourcen erstellen, die erforderlich sind, um Azure KI-Modellreferenz und führende Modelle aus dem Azure KI-Modellkatalog zu nutzen.
Voraussetzungen
Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:
- Ein Azure-Abonnement. Wenn Sie GitHub-Modelle verwenden, können Sie Ihre Erfahrung upgraden und während dem Prozess ein Azure-Abonnement erstellen. Lesen Sie in diesem Fall Upgrade von GitHub-Modellen auf die Azure KI-Modellinferenz.
Installieren Sie die Azure CLI.
Ermitteln Sie die folgenden Informationen:
- die Azure-Abonnement-ID
Informationen zu diesem Tutorial
Das Beispiel in diesem Artikel basiert auf Codebeispielen, die im Repository Azure-Samples/azureai-model-inference-bicep enthalten sind. Wenn Sie die Befehle lokal ausführen möchten, ohne Dateiinhalte kopieren oder einfügen zu müssen, verwenden Sie die folgenden Befehle, um das Repository zu klonen und zum Ordner für Ihre Programmiersprache zu wechseln:
git clone https://github.com/Azure-Samples/azureai-model-inference-bicep
Die Dateien für dieses Beispiel befinden sich in:
cd azureai-model-inference-bicep/infra
Grundlegendes zu den Ressourcen
Dieses Tutorial unterstütz Sie beim Erstellen der folgenden Elemente:
- Eine Azure KI Services-Ressource.
- Modellbereitstellung in der globalen Standard-SKU für alle Modelle, die nutzungsbasierte Bezahlung unterstützen
- (Optional) Azure KI-Projekt und -Hub
- (Optional) Verbindung zwischen dem Hub und den Modellen in Azure KI Services
Zum Erstellen dieser Ressourcen verwenden Sie die folgenden Elemente:
Verwenden Sie die Vorlage
modules/ai-services-template.bicep
, um Ihre Azure KI Services-Ressource zu beschreiben:modules/ai-services-template.bicep
@description('Location of the resource.') param location string = resourceGroup().location @description('Name of the Azure AI Services account.') param accountName string @description('The resource model definition representing SKU') param sku string = 'S0' @description('Whether or not to allow keys for this account.') param allowKeys bool = true @allowed([ 'Enabled' 'Disabled' ]) @description('Whether or not public endpoint access is allowed for this account.') param publicNetworkAccess string = 'Enabled' @allowed([ 'Allow' 'Deny' ]) @description('The default action for network ACLs.') param networkAclsDefaultAction string = 'Allow' resource account 'Microsoft.CognitiveServices/accounts@2023-05-01' = { name: accountName location: location identity: { type: 'SystemAssigned' } sku: { name: sku } kind: 'AIServices' properties: { publicNetworkAccess: publicNetworkAccess networkAcls: { defaultAction: networkAclsDefaultAction } disableLocalAuth: allowKeys } } output endpointUri string = account.properties.endpoints['Azure AI Model Inference API'] output id string = account.id
Verwenden Sie die Vorlage
modules/ai-services-deployment-template.bicep
, um Modellbereitstellungen zu beschreiben:modules/ai-services-deployment-template.bicep
@description('Name of the Azure AI services account') param accountName string @description('Name of the model to deploy') param modelName string @description('Version of the model to deploy') param modelVersion string @allowed([ 'AI21 Labs' 'Cohere' 'Core42' 'DeepSeek' 'Meta' 'Microsoft' 'Mistral AI' 'OpenAI' ]) @description('Model provider') param modelPublisherFormat string @allowed([ 'GlobalStandard' 'Standard' 'GlobalProvisioned' 'Provisioned' ]) @description('Model deployment SKU name') param skuName string = 'GlobalStandard' @description('Content filter policy name') param contentFilterPolicyName string = 'Microsoft.DefaultV2' @description('Model deployment capacity') param capacity int = 1 resource modelDeployment 'Microsoft.CognitiveServices/accounts/deployments@2024-04-01-preview' = { name: '${accountName}/${modelName}' sku: { name: skuName capacity: capacity } properties: { model: { format: modelPublisherFormat name: modelName version: modelVersion } raiPolicyName: contentFilterPolicyName == null ? 'Microsoft.Nill' : contentFilterPolicyName } }
Der Einfachheit halber definieren wir das Modell, das im Dienst verfügbar sein soll, mithilfe einer JSON-Datei. Die Datei infra/models.json enthält eine Liste von JSON-Objekten mit den Schlüsseln
name
,version
,provider
undsku
, die die bereitzustellenden Modelle definiert. Da die Modelle nutzungsbasierte Bezahlung unterstützen, entstehen durch das Hinzufügen von Modellbereitstellungen keine zusätzlichen Kosten. Ändern Sie die Datei, indem Sie die Modelleinträge entfernen/hinzufügen, die verfügbar sein sollen. Im folgenden Beispiel werden nur die ersten 7 Zeilen der JSON-Datei angezeigt:models.json
[ { "name": "AI21-Jamba-1.5-Large", "version": "1", "provider": "AI21 Labs", "sku": "GlobalStandard" },
Wenn Sie Projekte verwenden möchten (empfohlen), benötigen Sie die Vorlagen zum Erstellen eines Projekts, eines Hubs und einer Verbindung mit der Azure KI Services-Ressource:
modules/project-hub-template.bicep
param location string = resourceGroup().location @description('Name of the Azure AI hub') param hubName string = 'hub-dev' @description('Name of the Azure AI project') param projectName string = 'intelligent-apps' @description('Name of the storage account used for the workspace.') param storageAccountName string = replace(hubName, '-', '') param keyVaultName string = replace(hubName, 'hub', 'kv') param applicationInsightsName string = replace(hubName, 'hub', 'log') @description('The container registry resource id if you want to create a link to the workspace.') param containerRegistryName string = replace(hubName, '-', '') @description('The tags for the resources') param tagValues object = { owner: 'santiagxf' project: 'intelligent-apps' environment: 'dev' } var tenantId = subscription().tenantId var resourceGroupName = resourceGroup().name var storageAccountId = resourceId(resourceGroupName, 'Microsoft.Storage/storageAccounts', storageAccountName) var keyVaultId = resourceId(resourceGroupName, 'Microsoft.KeyVault/vaults', keyVaultName) var applicationInsightsId = resourceId(resourceGroupName, 'Microsoft.Insights/components', applicationInsightsName) var containerRegistryId = resourceId( resourceGroupName, 'Microsoft.ContainerRegistry/registries', containerRegistryName ) resource storageAccount 'Microsoft.Storage/storageAccounts@2019-04-01' = { name: storageAccountName location: location sku: { name: 'Standard_LRS' } kind: 'StorageV2' properties: { encryption: { services: { blob: { enabled: true } file: { enabled: true } } keySource: 'Microsoft.Storage' } supportsHttpsTrafficOnly: true } tags: tagValues } resource keyVault 'Microsoft.KeyVault/vaults@2019-09-01' = { name: keyVaultName location: location properties: { tenantId: tenantId sku: { name: 'standard' family: 'A' } enableRbacAuthorization: true accessPolicies: [] } tags: tagValues } resource applicationInsights 'Microsoft.Insights/components@2018-05-01-preview' = { name: applicationInsightsName location: location kind: 'web' properties: { Application_Type: 'web' } tags: tagValues } resource containerRegistry 'Microsoft.ContainerRegistry/registries@2019-05-01' = { name: containerRegistryName location: location sku: { name: 'Standard' } properties: { adminUserEnabled: true } tags: tagValues } resource hub 'Microsoft.MachineLearningServices/workspaces@2024-07-01-preview' = { name: hubName kind: 'Hub' location: location identity: { type: 'systemAssigned' } sku: { tier: 'Standard' name: 'standard' } properties: { description: 'Azure AI hub' friendlyName: hubName storageAccount: storageAccountId keyVault: keyVaultId applicationInsights: applicationInsightsId containerRegistry: (empty(containerRegistryName) ? null : containerRegistryId) encryption: { status: 'Disabled' keyVaultProperties: { keyVaultArmId: keyVaultId keyIdentifier: '' } } hbiWorkspace: false } tags: tagValues } resource project 'Microsoft.MachineLearningServices/workspaces@2024-07-01-preview' = { name: projectName kind: 'Project' location: location identity: { type: 'systemAssigned' } sku: { tier: 'Standard' name: 'standard' } properties: { description: 'Azure AI project' friendlyName: projectName hbiWorkspace: false hubResourceId: hub.id } tags: tagValues }
modules/ai-services-connection-template.bicep
@description('Name of the hub where the connection will be created') param hubName string @description('Name of the connection') param name string @description('Category of the connection') param category string = 'AIServices' @allowed(['AAD', 'ApiKey', 'ManagedIdentity', 'None']) param authType string = 'AAD' @description('The endpoint URI of the connected service') param endpointUri string @description('The resource ID of the connected service') param resourceId string = '' @secure() param key string = '' resource connection 'Microsoft.MachineLearningServices/workspaces/connections@2024-04-01-preview' = { name: '${hubName}/${name}' properties: { category: category target: endpointUri authType: authType isSharedToAll: true credentials: authType == 'ApiKey' ? { key: key } : null metadata: { ApiType: 'Azure' ResourceId: resourceId } } }
Erstellen der Ressourcen
Führen Sie in der Konsole die folgenden Schritte aus:
Definieren Sie die Hauptbereitstellung:
deploy-with-project.bicep
@description('Location to create the resources in') param location string = resourceGroup().location @description('Name of the resource group to create the resources in') param resourceGroupName string = resourceGroup().name @description('Name of the AI Services account to create') param accountName string = 'azurei-models-dev' @description('Name of the project hub to create') param hubName string = 'hub-azurei-dev' @description('Name of the project to create in the project hub') param projectName string = 'intelligent-apps' @description('Path to a JSON file with the list of models to deploy. Each model is a JSON object with the following properties: name, version, provider') var models = json(loadTextContent('models.json')) module aiServicesAccount 'modules/ai-services-template.bicep' = { name: 'aiServicesAccount' scope: resourceGroup(resourceGroupName) params: { accountName: accountName location: location } } module projectHub 'modules/project-hub-template.bicep' = { name: 'projectHub' scope: resourceGroup(resourceGroupName) params: { hubName: hubName projectName: projectName } } module aiServicesConnection 'modules/ai-services-connection-template.bicep' = { name: 'aiServicesConnection' scope: resourceGroup(resourceGroupName) params: { name: accountName authType: 'AAD' endpointUri: aiServicesAccount.outputs.endpointUri resourceId: aiServicesAccount.outputs.id hubName: hubName } dependsOn: [ projectHub ] } @batchSize(1) module modelDeployments 'modules/ai-services-deployment-template.bicep' = [ for (item, i) in models: { name: 'deployment-${item.name}' scope: resourceGroup(resourceGroupName) params: { accountName: accountName modelName: item.name modelVersion: item.version modelPublisherFormat: item.provider skuName: item.sku } dependsOn: [ aiServicesAccount ] } ] output endpoint string = aiServicesAccount.outputs.endpointUri
Melden Sie sich bei Azure an:
az login
Stellen Sie sicher, dass Sie sich im richtigen Abonnement befinden:
az account set --subscription "<subscription-id>"
Führen Sie die Bereitstellung aus:
RESOURCE_GROUP="<resource-group-name>" az deployment group create \ --resource-group $RESOURCE_GROUP \ --template-file deploy-with-project.bicep
Wenn Sie nur die Azure KI Services-Ressource und die Modellbereitstellungen bereitstellen möchten, verwenden Sie die folgende Bereitstellungsdatei:
deploy.bicep
@description('Location to create the resources in') param location string = resourceGroup().location @description('Name of the resource group to create the resources in') param resourceGroupName string = resourceGroup().name @description('Name of the AI Services account to create') param accountName string = 'azurei-models-dev' @description('Path to a JSON file with the list of models to deploy. Each model is a JSON object with the following properties: name, version, provider') var models = json(loadTextContent('models.json')) module aiServicesAccount 'modules/ai-services-template.bicep' = { name: 'aiServicesAccount' scope: resourceGroup(resourceGroupName) params: { accountName: accountName location: location } } @batchSize(1) module modelDeployments 'modules/ai-services-deployment-template.bicep' = [ for (item, i) in models: { name: 'deployment-${item.name}' scope: resourceGroup(resourceGroupName) params: { accountName: accountName modelName: item.name modelVersion: item.version modelPublisherFormat: item.provider skuName: item.sku } dependsOn: [ aiServicesAccount ] } ] output endpoint string = aiServicesAccount.outputs.endpointUri
Führen Sie die Bereitstellung aus:
RESOURCE_GROUP="<resource-group-name>" az deployment group create \ --resource-group $RESOURCE_GROUP \ --template-file deploy.bicep
Die Vorlage gibt den Azure KI-Modellinferenzendpunkt aus, über den Sie alle von Ihnen erstellten Modellbereitstellungen nutzen können.