Competenza AML

Note

Azure AI Search è disponibile tramite il portale di Azure, le API REST e Azure SDK. È inoltre alla base di Foundry IQ, il livello di conoscenza gestito che trasforma il contenuto aziendale in knowledge base riutilizzabili e con riconoscimento delle autorizzazioni per gli agenti nel portale di Microsoft Foundry.

Importante

Le funzionalità, le funzionalità o le proprietà contrassegnate (anteprima) non sono coperte da un contratto di servizio, non sono consigliate per i carichi di lavoro di produzione e potrebbero cambiare o essere vincolate prima che diventino disponibili a livello generale. Le condizioni di anteprima Azure AI Search si applicano a tutte le funzionalità di anteprima, indipendente o parte di una funzionalità disponibile a livello generale.

Usare la competenza AML per estendere l'arricchimento tramite intelligenza artificiale con un modello di incorporamento di base distribuito dal catalogo dei modelli di Microsoft Foundry (anteprima) o da un modello di Azure Machine Learning (AML) personalizzato. I tuoi dati vengono elaborati nella Geo dove il tuo modello è distribuito.

Specificare la competenza AML in un set di competenze, per integrare il modello distribuito in una pipeline di arricchimento tramite intelligenza artificiale. La competenza AML è utile per eseguire l'elaborazione o l'inferenza non supportata dalle competenze predefinite. Gli esempi includono la generazione di incorporamenti con il proprio modello e l'applicazione della logica di Machine Learning personalizzata al contenuto arricchito.

Per gli endpoint online AML, usare una versione dell'API stabile o un Azure SDK equivalente per chiamare la competenza AML. Per le connessioni al catalogo dei modelli, usare una versione dell'API di anteprima.

Utilizzo delle competenze AML

Analogamente ad altre competenze, la competenza AML ha input e output. Gli input vengono inviati come oggetto JSON a una distribuzione serverless dal catalogo modelli Foundry o da un endpoint online AML. L'output deve includere un codice di stato di esito positivo, un payload JSON e i parametri specificati dalla definizione della competenza AML. Qualsiasi altra risposta viene considerata un errore e non vengono eseguiti arricchimenti.

L'indicizzatore ritenta due volte per i codici di stato HTTP seguenti:

  • 503 Service Unavailable
  • 429 Too Many Requests

Competenza AML per i modelli in Microsoft Foundry (anteprima)

Azure AI Search fornisce il vettorizzatore del catalogo modelli di Microsoft Foundry (anteprima), disponibile anche nella procedura guidata Importa dati, per le connessioni al catalogo modelli in fase di query. Se si vuole usare questo vettorizzatore per le query, l'abilità AML è la controparte di indicizzazione per la generazione di embedding usando un modello dal catalogo dei modelli.

Durante l'indicizzazione, la competenza AML può connettersi al catalogo dei modelli per generare vettori per l'indice. Al momento della query, le query possono utilizzare un vettorizzatore per connettersi allo stesso modello e vettorizzare le stringhe di testo. È consigliabile usare l'abilità AML e il vettorizzatore del catalogo dei modelli Foundry di Microsoft insieme, in modo che lo stesso modello di incorporamento venga usato per l'indicizzazione e le query. Per altre informazioni, vedere Usare modelli di incorporamento dal catalogo dei modelli Foundry.

È consigliabile usare la procedura guidata Importa dati per generare un set di competenze che include una competenza AML per i modelli di incorporamento distribuiti in Foundry. La procedura guidata genera la definizione della competenza AML per input, output e mapping, offrendo un modo semplice per testare un modello prima di scrivere codice.

Prerequisiti

  • Un progetto basato su hub foundry Microsoft o un'area di lavoro AML per un modello personalizzato creato.

  • Solo per i progetti basati su hub, una distribuzione serverless di un modello supportato dal catalogo modelli di Microsoft Foundry. È possibile usare interfaccia della riga di comando di Azure per eseguire il provisioning di una distribuzione serverless.

@odata.type

Microsoft.Skills.Custom.AmlSkill

Parametri della competenza

I parametri sono case sensitive. I parametri usati dipendono dall'autenticazione richiesta dal provider di modelli, se presente.

Nome del parametro Descrizione
uri (Necessario per l'autenticazione con chiave) L'URI di destinazione della distribuzione serverless dal catalogo modelli di Microsoft Foundry o l'URI punteggi dell'endpoint online AML. È consentito solo lo schema URI HTTPS. I modelli supportati dal catalogo dei modelli (solo distribuzioni serverless) sono:
  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingual
  • Cohere-embed-v4
key (Obbligatorio per l'autenticazione della chiave) Chiave API del provider di modelli.
resourceId (Obbligatorio per l'autenticazione tramite token) L'ID della risorsa di Azure Resource Manager del provider del modello. Per un endpoint online AML, usare il formato subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/onlineendpoints/{endpoint_name}.
region (Facoltativo per l'autenticazione del token) Area in cui viene distribuito il provider di modelli. Obbligatorio se l'area è diversa dall'area del servizio di ricerca.
timeout (Facoltativo) Timeout per il client HTTP che effettua la chiamata API. Deve essere formattato come valore XSD "dayTimeDuration", ovvero un subset limitato di un valore di durata ISO 8601 . Ad esempio, PT60S per 60 secondi. Se non è impostato, viene scelto un valore predefinito di 30 secondi. È possibile impostare il timeout su un minimo di 1 secondo e un massimo di 230 secondi.
degreeOfParallelism (Facoltativo) Numero di chiamate effettuate dall'indicizzatore in parallelo all'endpoint specificato. È possibile ridurre questo valore se l'endpoint non riesce con un carico eccessivo di richieste. È possibile generarlo se l'endpoint è in grado di accettare più richieste e si desidera un aumento delle prestazioni dell'indicizzatore. Se non è impostato, viene usato un valore predefinito pari a 5. È possibile impostare degreeOfParallelism un minimo di 1 e un massimo di 10.

Autenticazione

La competenza AML offre due opzioni di autenticazione:

  • Autenticazione basata su chiave: Si fornisce una chiave statica per autenticare le richieste di assegnazione dei punteggi dalla competenza AML. Imposta i parametri uri e key per questa connessione.

  • Autenticazione basata su token: Il progetto basato su hub Foundry o l'endpoint online AML viene distribuito usando l'autenticazione basata su token. Il servizio Azure AI Search deve avere un'identità gestita e un'assegnazione di ruolo nel provider di modelli. La competenza AML usa quindi l'identità del servizio di ricerca per l'autenticazione con il provider di modelli, senza chiavi statiche necessarie. L'identità del servizio di ricerca deve avere il ruolo Proprietario o Collaboratore . Impostare il parametro resourceId e, se il servizio di ricerca si trova in un'area diversa dal provider di modelli, impostare il parametro region.

Input delle competenze

Gli input delle competenze sono un nodo del documento arricchito creato durante il cracking di documenti. Ad esempio, potrebbe trattarsi del documento radice, di un'immagine normalizzata o del contenuto di un BLOB. Non sono disponibili input predefiniti per questa competenza. Per gli input, è necessario specificare uno o più nodi popolati al momento dell'esecuzione della competenza AML.

Output delle competenze

Gli output delle competenze sono nuovi nodi di un documento arricchito creato dalla competenza. Non sono disponibili output predefiniti per questa competenza. Per gli output, è necessario fornire nodi che possono essere popolati dalla risposta JSON della competenza AML.

Definizione di esempio

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A custom model that detects the language in a document.",
    "uri": "https://language-model.models.contoso.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Struttura JSON di input di esempio

Questa struttura JSON rappresenta il payload inviato al progetto basato su hub Foundry o all'endpoint online AML. I campi di primo livello della struttura corrispondono ai "nomi" specificati nella inputs sezione della definizione della competenza. I valori di questi campi provengono dalle "origini" di tali campi, che possono essere provenienti da un campo nel documento o da un'altra competenza.

{
  "text": "Este es un contrato en Inglés"
}

Struttura JSON di output di esempio

L'output corrisponde alla risposta del progetto basato su hub Foundry o dell'endpoint online AML. Il provider di modelli deve restituire solo un payload JSON (verificato esaminando l'intestazione della risposta Content-Type) e deve essere un oggetto i cui campi sono arricchimenti che corrispondono ai "nomi" nel output e il cui valore è considerato l'arricchimento.

{
    "detected_language_code": "es"
}

Definizione dell'esempio di modellazione inline

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://language-model.models.contoso.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "shapedText",
        "sourceContext": "/document",
        "inputs": [
            {
              "name": "content",
              "source": "/document/content"
            }
        ]
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Struttura JSON di modellazione inline dell'input

{
  "shapedText": { "content": "Este es un contrato en Inglés" }
}

Struttura JSON di output di esempio della forma inline

{
    "detected_language_code": "es"
}

Casi di errore

Oltre al progetto basato su hub Foundry o all'endpoint online AML non disponibile o all'invio di codici di stato non con esito positivo, i casi seguenti sono considerati errori:

  • Il provider di modelli restituisce un codice di stato con esito positivo, ma la risposta indica che non è application/json. La risposta non è quindi valida e non vengono eseguiti arricchimenti.

  • Il provider di modelli restituisce json non valido.

Se il provider di modelli non è disponibile o restituisce un errore HTTP, alla cronologia di esecuzione dell'indicizzatore viene aggiunto un errore descrittivo con i dettagli disponibili sull'errore HTTP.