Een zoekindex verrijken met behulp van een Azure Machine Learning-model

Voltooid

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.

A diagram showing the steps to enrich a search index with an Azure AI Machine Learning Studio model.

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.

A screenshot of all the prebuilt components in the Azure AI Machine Learning Studio.

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.