Een zoekindex verrijken met behulp van een Azure Machine Learning-model
U maakt uw Azure Machine Learning-model met behulp van ontwikkelhulpprogramma's zoals de Python SDK, REST API's of Azure CLI. Een andere optie is om te profiteren van azure AI Machine Learning Studio, een grafische gebruikersinterface waarmee u modellen kunt maken, trainen en implementeren zonder code te schrijven.
Wanneer u een model hebt gemaakt, wijzigt u de manier waarop de scorecode het model aanroept, zodat het kan worden gebruikt door uw vaardigheid voor aangepaste zoekopdrachten.
De laatste stappen zijn het maken van een Kubernetes-cluster om een eindpunt voor uw model te hosten.
Een AML-werkruimte maken
Wanneer u de AML-werkruimte maakt, maakt Azure ook opslagaccounts, een sleutelarchief en Application Insights-resources. In het deelvenster Overzicht van de AML-werkruimte krijgt u een koppeling om Azure AI Machine Learning Studio te starten.
Een model maken en trainen in Azure Machine Learning-studio
Met Azure AI Machine Learning Studio kunt u een ontwerper gebruiken om slepen en neerzetten te gebruiken om pijplijnen te maken waarmee modellen worden gemaakt en getraind. Er is een nog eenvoudigere manier om modellen te maken met behulp van vooraf gemaakte sjablonen.
U kiest er echter voor om uw modellen te maken. Ze moeten worden geregistreerd in Azure AI Machine Learning Studio, zodat u het model kunt implementeren in een webservice.
Wijzigen hoe het model werkt zodat het kan worden aangeroepen door de aangepaste AML-vaardigheid
De modellen die u traint, gebruiken normaal gesproken veel voorbeelden van de gegevens. De gegevenssets hebben veel rijen en worden gesplitst en gebruikt om het model te trainen en te testen. De code die deze gegevens verwerkt en doorgeeft aan het model, moet worden gewijzigd om enkele rijen te verwerken.
Het JSON-antwoord van het model mag ook alleen de uitvoervoorspelling bevatten.
Als uw gegevens bijvoorbeeld een matrix van JSON-objecten zijn:
[
{
"attribute-1": null,
"attribute-2": null
},
{
"attribute-1": null,
"attribute-2": null
},
{
"attribute-1": null,
"attribute-2": null
}
]
De python-scorecode moet de gegevens tegelijk verwerken:
data = json.loads(data)
for row in data:
for key, val in row.items():
input_entry[key].append(decode_nan(val))
De invoergegevensset wijzigen in één record:
{
"attribute-1": null,
"attribute-2": null
}
De Python-code moet worden gewijzigd in:
data = json.loads(data)
for key, val in data.items():
input_entry[key].append(decode_nan(val))
Voor het antwoord van de scorecode retourneert de standaardcode het hele JSON-document:
return json.dumps({"result": result.data_frame.values.tolist()})
De aangepaste vaardigheid moet één antwoord van het model kunnen toewijzen. De code moet dus JSON retourneren die alleen het laatste kenmerk is.
output = result.data_frame.values.tolist()
# return the last column of the the first row of the dataframe
return {
"predicted_outcome": output[0][-1]
}
Een eindpunt maken voor uw model dat u wilt gebruiken
Het model wordt geïmplementeerd op een eindpunt. Azure AI Machine Learning Studio biedt ondersteuning voor het implementeren van een model naar een realtime-eindpunt, een batch-eindpunt of een webservice. Op dit moment biedt de aangepaste AmlSkill
vaardigheid in Azure AI Search alleen ondersteuning voor webservice-eindpunten.
De andere beperking is dat het eindpunt een Azure Kubernetes Service (AKS) moet zijn, dat containerinstanties niet worden ondersteund.
Als u ervaring hebt met het maken en beheren van AKS-clusters, kunt u de clusters handmatig maken in Azure Portal en ernaar verwijzen wanneer u uw eindpunt maakt. Een eenvoudigere optie is echter om Azure AI Machine Learning Studio het cluster voor u te laten maken en beheren.
Als u naar de rekensectie van de studio navigeert, kunt u deductieclusters maken. AML Studio begeleidt u vervolgens bij het kiezen van de grootte van het cluster en zelfs https inschakelen en een domeinnaam voor u maken. Deze heeft de indeling location.cloudapp.azure.com:443
.
Verbinding maken de aangepaste AML-vaardigheid naar het eindpunt
Nu alles hierboven is ingesteld, moet u uw Azure AI-Search-service bijwerken. Als u eerst uw zoekindex wilt verrijken, voegt u een nieuw veld toe aan uw index om de uitvoer voor het model op te nemen.
Vervolgens werkt u uw vaardighedenset voor indexen bij en voegt u de #Microsoft.Skills.Custom.AmlSkill
aangepaste vaardigheid toe.
Vervolgens wijzigt u de indexeerfunctie om de uitvoer van de aangepaste vaardigheid toe te wijzen aan het veld dat u in de index hebt gemaakt.
De laatste stap is het opnieuw uitvoeren van de indexeerfunctie om uw index te verrijken met het AML-model.