Compartir a través de


Biblioteca cliente de Anomaly Detector de Azure Cognitive Services para .NET: versión 3.0.0-preview.7

Anomaly Detector es un servicio de inteligencia artificial con un conjunto de API, lo que permite supervisar y detectar anomalías en los datos de serie temporal con poco conocimiento de aprendizaje automático (ML), ya sea la validación por lotes o la inferencia en tiempo real.

Código | fuente Paquete (NuGet) | Documentación | de referencia de APIDocumentación del producto

Introducción

Requisitos previos

  • Necesita una suscripción de Azure para usar este paquete.
  • Una instancia de Cognitive Services Anomaly Detector existente.

Instalar el paquete

Instale la biblioteca cliente de Azure Anomaly Detector para .NET con NuGet:

dotnet add package Azure.AI.AnomalyDetector --prerelease

En esta tabla se muestra la relación entre las versiones del SDK y las versiones de la API admitidas del servicio:

Versión del SDK Versión de la API admitidas del servicio
3.0.0-preview.6 1.1
3.0.0-preview.4, 3.0.0-preview.5 1.1-preview-1
3.0.0-beta.3 1.1-preview
3.0.0-preview.1, 3.0.0-preview.2 1.0

Autenticar el cliente

Puede encontrar el punto de conexión del recurso de servicio de Anomaly Detector mediante Azure Portal o la CLI de Azure:

# Get the endpoint for the Anomaly Detector service resource
az cognitiveservices account show --name "resource-name" --resource-group "resource-group-name" --query "properties.endpoint"

Obtención de la clave de API

Puede obtener la clave de API del recurso del servicio Anomaly Detector en Azure Portal. Como alternativa, puede usar el fragmento de código de la CLI de Azure siguiente para obtener la clave de API del recurso.

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Creación de AnomalyDetectorClient con AzureKeyCredential

Una vez que tenga el valor de la clave de API, cree un AzureKeyCredential. Con el punto de conexión y la credencial de clave, puede crear :AnomalyDetectorClient

string endpoint = "<endpoint>";
string apiKey = "<apiKey>";
var credential = new AzureKeyCredential(apiKey);
var client = new AnomalyDetectorClient(new Uri(endpoint), credential);

Conceptos clave

Con el Anomaly Detector, puede detectar anomalías en una variable mediante detección de anomalías univariables o detectar anomalías en varias variables con detección de anomalías multivariante.

Característica Descripción
Detección de anomalías univariante Detectar anomalías en una variable, como ingresos, costos, etc. El modelo se seleccionó automáticamente en función del patrón de datos.
Detección de anomalías multivariante Detecte anomalías en varias variables con correlaciones, que normalmente se recopilan del equipo u otro sistema complejo. El modelo subyacente utilizado es la red de atención de Graph.

Detección de anomalías univariante

La API de detección de anomalías univariante le permite controlar y detectar anomalías en sus datos de series temporales sin necesidad de conocer el aprendizaje automático. Los algoritmos se adaptan al identificar y aplicar automáticamente los modelos más idóneos para sus datos, con independencia del sector, el escenario o el volumen de datos. Con el uso de datos de serie temporal, la API determina los límites de la detección de anomalías, los valores esperados y qué puntos de datos son anomalías.

Para usar Anomaly Detector, no se necesita ninguna experiencia anterior con el aprendizaje automático, y la API REST le permite integrar fácilmente el servicio en sus aplicaciones y procesos.

Con la detección de anomalías univariante, puede detectar automáticamente anomalías en los datos de series temporales o a medida que se producen en tiempo real.

Característica Descripción
Detección mediante transmisión Detecte anomalías en sus datos de transmisión mediante los puntos de datos vistos anteriormente para determinar si el último de ellos es una anomalía. Esta operación genera un modelo con los puntos de datos enviados y determina si el punto de destino es una anomalía. La llamada a la API con cada nuevo punto de datos que genera le permite supervisar los datos que se crean.
Detección por lotes Use la serie temporal para detectar las anomalías que podrían existir en los datos. Esta operación genera un modelo con todos los datos de serie temporal, donde cada punto de analiza con el mismo modelo.
Detección de puntos de cambio Use la serie temporal para detectar los puntos de cambio de tendencia que existan en los datos. Esta operación genera un modelo con todos los datos de serie temporal, donde cada punto de analiza con el mismo modelo.

Detección de anomalías multivariante

Las API de detección de anomalías multivariante permiten a los desarrolladores integrar fácilmente la inteligencia artificial avanzada para detectar anomalías de grupos de métricas, sin necesidad de tener conocimientos de aprendizaje automático ni datos etiquetados. Las dependencias y las correlaciones de hasta 300 señales diferentes ahora se cuentan automáticamente como factores clave. Esta nueva funcionalidad le permite proteger de forma proactiva los sistemas complejos, como aplicaciones de software, servidores, máquinas de fábrica, vehículos espaciales o incluso su empresa, frente a errores.

Con la detección de anomalías multivariante, puede detectar automáticamente anomalías en los datos de serie temporal o a medida que se producen en tiempo real. Hay tres procesos para usar detección de anomalías multivariante.

  • Entrenamiento: use Train Model API para crear y entrenar un modelo y, a continuación, use Get Model Status API para obtener el estado y los metadatos del modelo.
  • Inference:
    • Use la API de inferencia asincrónica para desencadenar un proceso de inferencia asincrónica y usar get Inference results API para obtener resultados de detección en un lote de datos.
    • También puede usar la API de inferencia de sincronización para desencadenar una detección en una marca de tiempo cada vez.
  • Otras operaciones: List Model API y Delete Model API se admiten en el modelo de detección de anomalías multivariante para la administración de modelos.

Seguridad para subprocesos

Garantizamos que todos los métodos de instancia de cliente son seguros para subprocesos e independientes entre sí (instrucciones). Esto garantiza que la recomendación de reutilizar instancias de cliente siempre es segura, incluso entre subprocesos.

Conceptos adicionales

Opciones | de cliente Acceso a la respuesta | Operaciones | de larga duraciónControl de errores | Diagnóstico | Burla | Duración del cliente

Ejemplos

En la siguiente sección se proporcionan varios fragmentos de código que abarcan algunas de las tareas de servicio de Anomaly Detector más comunes, entre las que se incluyen:

Detección por lotes

//detect
Console.WriteLine("Detecting anomalies in the entire time series.");

try
{
    UnivariateEntireDetectionResult result = client.DetectUnivariateEntireSeries(request);

    bool hasAnomaly = false;
    for (int i = 0; i < request.Series.Count; ++i)
    {
        if (result.IsAnomaly[i])
        {
            Console.WriteLine($"An anomaly was detected at index: {i}.");
            hasAnomaly = true;
        }
    }
    if (!hasAnomaly)
    {
        Console.WriteLine("No anomalies detected in the series.");
    }
}
catch (RequestFailedException ex)
{
    Console.WriteLine($"Entire detection failed: {ex.Message}");
    throw;
}
catch (Exception ex)
{
    Console.WriteLine($"Detection error. {ex.Message}");
    throw;
}

Detección de streaming

//detect
Console.WriteLine("Detecting the anomaly status of the latest point in the series.");

try
{
    UnivariateLastDetectionResult result = client.DetectUnivariateLastPoint(request);

    if (result.IsAnomaly)
    {
        Console.WriteLine("The latest point was detected as an anomaly.");
    }
    else
    {
        Console.WriteLine("The latest point was not detected as an anomaly.");
    }
}
catch (RequestFailedException ex)
{
    Console.WriteLine($"Last detection failed: {ex.Message}");
    throw;
}
catch (Exception ex)
{
    Console.WriteLine($"Detection error. {ex.Message}");
    throw;
}

Detección de puntos de cambio

//detect
Console.WriteLine("Detecting the change point in the series.");

UnivariateChangePointDetectionResult result = client.DetectUnivariateChangePoint(request);

if (result.IsChangePoint.Contains(true))
{
    Console.WriteLine("A change point was detected at index:");
    for (int i = 0; i < request.Series.Count; ++i)
    {
        if (result.IsChangePoint[i])
        {
            Console.Write(i);
            Console.Write(" ");
        }
    }
    Console.WriteLine();
}
else
{
    Console.WriteLine("No change point detected in the series.");
}

Ejemplo de detección de anomalías multivariante

Para ver cómo usar Anomaly Detector biblioteca para realizar la detección de anomalías multivariante, consulte este ejemplo.

Solución de problemas

Configuración del registro de la consola

La manera más sencilla de ver los registros es habilitar el registro de la consola. Para crear un agente de escucha de registro del SDK de Azure que genere mensajes en la consola, use el método AzureEventSourceListener.CreateConsoleLogger.

// Setup a listener to monitor logged events.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();

Para más información sobre otros mecanismos de registro, consulte Ejemplos de diagnóstico.

Pasos siguientes

Estos ejemplos de código muestran operaciones de escenario comunes con la biblioteca de Azure Anomaly Detector. Puede encontrar más ejemplos en el directorio samples .

Documentación adicional

Para obtener más documentación sobre Azure Anomaly Detector, consulte la documentación de Anomaly Detector sobre docs.microsoft.com.

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más información, visite cla.microsoft.com.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.