Biblioteca de clientes Detector de Anomalias dos Serviços Cognitivos do Azure para .NET – versão 3.0.0-preview.7
Detector de Anomalias é um serviço de IA com um conjunto de APIs, que permite monitorar e detectar anomalias em seus dados de série temporal com pouco conhecimento de ML (machine learning), validação em lote ou inferência em tempo real.
Código-fonte | Pacote (NuGet) | Documentação | de referência da APIDocumentação do produto
Introdução
Pré-requisitos
- Você precisa de uma assinatura do Azure para usar esse pacote.
- Uma instância de Detector de Anomalias dos Serviços Cognitivos existente.
Instalar o pacote
Instale a biblioteca de clientes do Azure Detector de Anomalias para .NET com o NuGet:
dotnet add package Azure.AI.AnomalyDetector --prerelease
Esta tabela mostra a relação entre as versões do SDK e as versões de API com suporte do serviço:
Versão do SDK | Versão da API do serviço com suporte |
---|---|
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 o cliente
Você pode encontrar o ponto de extremidade para o recurso de serviço Detector de Anomalias usando o Portal do Azure ou a CLI do 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"
Obter a chave de API
Você pode obter a Chave de API do recurso de serviço Detector de Anomalias no Portal do Azure. Como alternativa, você pode usar o snippet da CLI do Azure abaixo para obter a chave de API do recurso.
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
Criar AnomalyDetectorClient com AzureKeyCredential
Depois de ter o valor da chave de API, crie um AzureKeyCredential
. Com o ponto de extremidade e a credencial de chave, você pode criar o AnomalyDetectorClient
:
string endpoint = "<endpoint>";
string apiKey = "<apiKey>";
var credential = new AzureKeyCredential(apiKey);
var client = new AnomalyDetectorClient(new Uri(endpoint), credential);
Principais conceitos
Com o Detector de Anomalias, você pode detectar anomalias em uma variável usando a Detecção de Anomalias Univariadas ou detectar anomalias em várias variáveis com Detecção de Anomalias Multivariadas.
Recurso | Descrição |
---|---|
Detecção de Anomalias Univariadas | Detecte anomalias em uma variável, como receita, custo etc. O modelo foi selecionado automaticamente com base no padrão de dados. |
Detecção de Anomalias Multivariadas | Detecte anomalias em diversas variáveis com correlações, que geralmente são coletadas de equipamentos ou de outro sistema complexo. O modelo subjacente usado é a rede de atenção do Graph. |
Detecção de Anomalias Univariadas
A API de Detecção de Anomalias Univariadas permite monitorar e detectar as anormalidades nos dados das séries temporais sem a necessidade de conhecer o aprendizado de máquina. Os algoritmos se adaptam identificando e aplicando automaticamente os modelos mais adequados aos dados, independentemente do setor, cenário ou volume de dados. Usando seus dados de série temporal, a API determina os limites para detecção de anomalias, os valores esperados e quais pontos de dados são anomalias.
Usar o Detector de Anomalias não exige nenhuma experiência anterior em machine learning e a API REST permite que você integre facilmente o serviço aos seus aplicativos e processos.
Com a Detecção de Anomalias Univariadas, você pode detectar automaticamente anomalias em seus dados de série temporal ou conforme elas ocorrem em tempo real.
Recurso | Descrição |
---|---|
Detecção de streaming | Detecte anomalias em seus dados de streaming usando pontos de vistos anteriormente para determinar se pelo menos um é uma anomalia. Essa operação gera um modelo usando os pontos de dados que você envia e determina se o ponto de destino é uma anomalia. Ao chamar a API com cada novo ponto de dados que você gera, você pode monitorar seus dados conforme eles são criados. |
Detecção em lote | Use sua série temporal para detectar todas as anomalias que podem existir em seus dados. Essa operação gera um modelo usando todos os seus dados de série temporal, analisando cada ponto com o mesmo modelo. |
Detecção de pontos de alteração | Use a série temporal para detectar qualquer ponto de alteração de tendência existente nos dados. Essa operação gera um modelo usando todos os seus dados de série temporal, analisando cada ponto com o mesmo modelo. |
Detecção de Anomalias Multivariadas
As APIs de Detecção de Anomalias Multivariadas permitem que os desenvolvedores integrem facilmente a IA avançada para detectar as anomalias dos grupos de métricas, sem a necessidade de conhecimento de aprendizado de máquina ou de dados rotulados. Dependências e intercorrelações entre até 300 sinais diferentes agora são automaticamente contadas como fatores chave. Essa nova funcionalidade ajuda a proteger, de forma proativa, sistemas complexos, como aplicativos de software, servidores, máquinas de fábrica, naves espaciais ou até mesmo seus negócios, contra falhas.
Com a Detecção de Anomalias Multivariadas, você pode detectar automaticamente anomalias em todos os dados de série temporal ou conforme elas ocorrem em tempo real. Há três processos para usar a Detecção de Anomalias Multivariadas.
- Treinamento: use a API treinar modelo para criar e treinar um modelo e, em seguida, usar Obter API de Status do Modelo para obter os metadados de modelo e status.
- Inferência:
- Use a API de Inferência Assíncrona para disparar um processo de inferência assíncrona e usar a API Obter Resultados de Inferência para obter resultados de detecção em um lote de dados.
- Você também pode usar a API de Inferência de Sincronização para disparar uma detecção em um carimbo de data/hora todas as vezes.
- Outras operações: a API de Modelo de Lista e a API de Modelo de Exclusão têm suporte no modelo de Detecção de Anomalias Multivariadas para gerenciamento de modelos.
Acesso thread-safe
Garantimos que todos os métodos de instância do cliente sejam thread-safe e independentes uns dos outros (diretriz). Isso garante que a recomendação de reutilize instâncias de cliente seja sempre segura, mesmo entre threads.
Conceitos adicionais
Opções | do cliente Acessando a resposta | Operações de execução prolongada | Tratamento de falhas | Diagnostics | Zombando | Tempo de vida do cliente
Exemplos
A seção a seguir fornece vários snippets de código que abrangem algumas das tarefas de serviço de Detector de Anomalias mais comuns, incluindo:
- Detecção de anomalias univariadas – detecção em lote
- Detecção de Anomalias Univariadas – Detecção de streaming
- Detecção de Anomalias Univariadas – Detectar pontos de alteração
- Detecção de Anomalias Multivariadas
Detecção em lote
//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;
}
Detecção 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;
}
Detectar pontos de alteração
//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.");
}
Exemplo de detecção de anomalias multivariadas
Para ver como usar Detector de Anomalias biblioteca para conduzir a Detecção de Anomalias Multivariadas, consulte este exemplo.
Solução de problemas
Configuração do registro em log do console
A maneira mais simples de ver os logs é habilitar o log do console. Para criar um ouvinte de log do SDK do Azure que gera mensagens para o console, use o método AzureEventSourceListener.CreateConsoleLogger.
// Setup a listener to monitor logged events.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();
Para saber mais sobre outros mecanismos de registro em log, confira Exemplos de diagnóstico.
Próximas etapas
Esses exemplos de código mostram operações de cenário comuns com a biblioteca de Detector de Anomalias do Azure. Mais amostras podem ser encontradas no diretório de exemplos .
Detecção de Anomalias Univariadas – Detecção em Lote: Sample1_DetectEntireSeriesAnomaly.cs
Detecção de anomalias univariadas – Detecção de streaming: Sample2_DetectLastPointAnomaly.cs
Detecção de Anomalias Univariadas – Detecção de Ponto de Alteração: Sample3_DetectChangePoint.cs
Detecção de anomalias multivariadas: Sample4_MultivariateDetect.cs
Documentação adicional
Para obter uma documentação mais abrangente sobre o Detector de Anomalias do Azure, consulte a documentação do Detector de Anomalias sobre docs.microsoft.com.
Contribuição
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite cla.microsoft.com.
Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.
Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.
Azure SDK for .NET