-
Notifications
You must be signed in to change notification settings - Fork 6
09 ‐ Dominando o Elastic Machine Learning
O Elastic Machine Learning é uma poderosa ferramenta integrada ao Elasticsearch que permite analisar e detectar padrões em grandes volumes de dados de maneira automatizada. Ele utiliza modelos estatísticos e técnicas de machine learning para oferecer funcionalidades como Anomaly Detection, Data Frame Analytics e a importação de modelos de NLP (Natural Language Processing).
Aspecto | Anomaly Detection | Data Frame Analytics |
---|---|---|
Definição | Identificação de padrões que desviam do comportamento normal. | Análise e manipulação de dados tabulares para insights. |
Objetivo | Detectar eventos raros ou comportamentos anormais. | Explorar, transformar e modelar dados estruturados. |
Técnicas Comuns | Estatísticas, Machine Learning (K-Means, Isolation Forest), séries temporais. | Resumo estatístico, transformações, visualização, aprendizado de máquina. |
Exemplo de Uso | Identificar transações fraudulentas em um banco. | Aplicar regressão linear em um conjunto de dados tabulares. |
Ferramentas Comuns | TensorFlow, Scikit-learn, Elastic Stack, PyOD. | Pandas, PySpark, Elastic Data Frame Analytics. |
Áreas de Aplicação | Cibersegurança, manutenção preditiva, saúde. | Análise de grandes volumes de dados, pipelines de ML. |
Foco | Detecção de padrões irregulares. | Processamento e análise eficiente de tabelas de dados. |
Aspecto | Descrição |
---|---|
Definição | Campo da IA que capacita máquinas a entender, interpretar, processar e gerar linguagem humana. |
Objetivo | Facilitar a interação entre humanos e computadores usando linguagem natural. |
Tarefas Principais | - Análise de Sentimentos: Identificar emoções e opiniões em textos. |
- Reconhecimento de Entidades Nomeadas (NER): Extrair nomes, lugares e organizações. | |
- Tradução Automática: Converter texto entre diferentes idiomas. | |
- Resumo Automático: Gerar resumos concisos de textos longos. | |
- Classificação de Texto: Categorizar texto (e.g., spam/não spam). | |
- Geração de Texto: Criar conteúdo original ou assistido. | |
- Análise Sintática e Semântica: Entender estrutura gramatical e significado. | |
- Reconhecimento de Fala: Converter áudio em texto. | |
Ferramentas Comuns | - NLTK: Biblioteca para tarefas básicas de NLP. |
- spaCy: Processamento eficiente de linguagem natural. | |
- Hugging Face Transformers: Modelos avançados como BERT e GPT. | |
- Google Cloud Natural Language API: Serviço para análise e extração de texto. | |
- OpenAI GPT: Modelos avançados para geração e compreensão de linguagem. | |
Aplicações | - Assistentes Virtuais: Alexa, Siri, Google Assistant. |
- Chatbots: Atendimento automatizado em sites e aplicativos. | |
- Análise de Redes Sociais: Monitorar opiniões e tendências. | |
- Motores de Busca: Sistemas de recomendação e recuperação de informações. | |
- Educação: Correção automática e tradução assistida. | |
Desafios | - Ambiguidade Linguística: Interpretação errada devido à natureza ambígua do idioma. |
- Dados de Treinamento: Necessidade de grandes volumes de dados rotulados. | |
- Contexto e Semântica: Difícil captar significados em textos complexos. | |
- Linguagens Menos Representadas: Falta de modelos para idiomas de menor uso. |
Uma série temporal é uma sequência de observações ou dados coletados e registrados em intervalos de tempo regulares. A característica essencial de uma série temporal é que os dados são dependentes do tempo, e o objetivo é analisar, modelar e prever os padrões e comportamentos futuros com base em dados históricos.
Categoria | Exemplos ou Descrição |
---|---|
Exemplos de Séries Temporais | |
Financeiras | Preços de ações, taxas de câmbio. |
Econômicas | PIB trimestral, taxas de desemprego. |
Climáticas | Temperatura diária, níveis de chuva. |
Demográficas | População ao longo de anos. |
Operacionais | Vendas diárias, tráfego de internet. |
Tarefas Comuns em Séries Temporais | |
Análise | Identificar padrões e componentes (tendência, sazonalidade). |
Modelagem | Ajustar modelos para explicar o comportamento dos dados. |
Previsão (Forecasting) | Estimar valores futuros com base no histórico. |
Detecção de Anomalias | Identificar pontos fora do padrão esperado. |
Métodos de Análise de Séries Temporais | |
Modelos Estatísticos | |
ARIMA | Combina autoregressão e médias móveis para modelar séries estacionárias. |
ETS | Suavização exponencial para modelar tendência e sazonalidade. |
Modelos de Machine Learning | |
LSTM | Rede neural recorrente para capturar dependências de longo prazo. |
Prophet | Modelo para previsão de séries temporais desenvolvido pelo Facebook. |
Visualizações | Gráficos de linha, decomposição da série temporal para separar os componentes. |
A busca semântica é um processo de recuperação de informações que utiliza o significado e o contexto das palavras para entender a intenção do usuário, em vez de apenas combinar palavras-chave literalmente. Esse tipo de busca é mais inteligente e sofisticado, pois tenta capturar o significado por trás de uma consulta, mesmo quando as palavras exatas não estão presentes nos dados
Etapa | Descrição |
---|---|
Compreensão da Consulta | Usa Processamento de Linguagem Natural (NLP) para interpretar a consulta e analisar o contexto e significado. |
Desambiguação | Resolve múltiplos significados para palavras ambíguas com base no contexto. |
Representação Vetorial | Converte palavras e documentos em representações matemáticas (vetores) usando modelos como Word2Vec ou BERT. |
Indexação Semântica | Armazena os dados em índices preparados para correspondência semântica. |
Correspondência de Consulta | Combina a consulta com documentos relevantes no espaço vetorial baseado na similaridade semântica. |
Rankeamento dos Resultados | Ordena os resultados com base na relevância usando medidas como similaridade vetorial. |
Vantagens da Busca Semântica | Descrição |
---|---|
Entendimento do Contexto | Reconhece sinônimos e palavras relacionadas, melhorando a precisão mesmo sem palavras exatas. |
Consultas Naturais | Aceita linguagem natural, tornando a interação mais intuitiva para os usuários. |
Personalização | Ajusta os resultados com base no histórico e preferências do usuário. |
Resultados Precisos | Reduz a exibição de informações irrelevantes, fornecendo resultados mais alinhados ao objetivo. |
Tecnologias Usadas | Descrição |
---|---|
Modelos de Linguagem | Word2Vec, GloVe, BERT, GPT para compreender o significado semântico e contextual das palavras. |
Motores de Busca | ElasticSearch, Solr, e soluções personalizadas com redes neurais. |
Bases de Conhecimento | Knowledge Graphs para capturar relações complexas entre conceitos. |
Infraestrutura Avançada | GPUs e sistemas distribuídos para gerenciar grandes volumes de dados e cálculos vetoriais. |
Embeddings de palavras são representações vetoriais de palavras em um espaço de múltiplas dimensões. Eles permitem que computadores entendam o significado das palavras com base em seus contextos e relações, capturando semelhanças e diferenças semânticas de maneira matemática.
São utilizadas técnicas de busca de texto através do uso de algoritmos de tokenização e identificação de palavras, o resultado é convertido em vetores/matriz, ou seja, em número em várias dimensões, o elasticsearch trabalha com aproximadamente 512 dimensões. Os dados são armazenados servindo de referência para consultas específicas.
Vamos dar um exemplo: Partindo do princípio de que faço um questionamento e/ou uma pergunta, essa por sua vez é vetorizada e também transformada em matriz, neste momento o elasticsearch realiza a comparação dos vetores através de cálculo da distância entre os vetores, retornando é claro o grou de proximidade entre dados armazenados e a minha pergunta.
- Componentes do Fluxo
Descrição: Este componente representa o processo de conversão dos dados originais (como textos ou palavras) em embeddings, que são representações vetoriais densas em um espaço de alta dimensionalidade.
Objetivo: Capturar o significado semântico dos dados para que relações entre elementos possam ser medidas de forma matemática.
Exemplo: Converter a frase "gato preto" em um vetor como [0.15, 0.89, 0.43, ...].
Descrição: Similar ao processo anterior, mas aplicado à consulta do usuário. A consulta é transformada em um vetor de embedding usando o mesmo modelo ou método aplicado aos dados armazenados.
Objetivo: Garantir que a representação da consulta seja compatível com os dados já embutidos.
Exemplo: Para a consulta "animal de quatro patas", gera-se um vetor que captura o significado semântico da frase.
Descrição: Espaço onde os embeddings são armazenados. Cada ponto no espaço vetorial representa um elemento (como palavras, documentos ou consultas).
Objetivo: Permitir comparação direta entre os elementos com base em proximidade vetorial.
Exemplo: No espaço vetorial, "gato" e "cachorro" estão mais próximos entre si do que "gato" e "carro".
Descrição: O processo de localizar o vetor mais próximo da consulta no espaço vetorial. Isso é feito com métricas de similaridade, como distância euclidiana ou similaridade do cosseno.
Objetivo: Encontrar o elemento mais relevante com base na similaridade semântica.
Exemplo: Se a consulta for "felino", o sistema pode retornar "gato" como o elemento mais próximo.
Descrição: O resultado final da busca semântica, apresentado ao usuário. Pode incluir um único elemento ou uma lista de elementos ordenados por relevância.
Objetivo: Fornecer informações que atendam à intenção do usuário.
Exemplo: Para a consulta "animal de estimação", os resultados podem incluir "gato" e "cachorro" como os mais relevantes.
Referência: https://www.elastic.co/pt/what-is/word-embedding
- Visão Geral
Tópico | Definição | Objetivo | Exemplo Prático | Exemplo Adicional |
---|---|---|---|---|
Single Metric | Análise ou monitoramento de uma única métrica ao longo do tempo. | Identificar padrões, tendências e anomalias de uma métrica específica. | Monitorar vendas diárias de um produto específico em uma loja. | Monitorar a temperatura média diária de uma cidade ao longo de um mês. |
Multi-Metric | Análise simultânea de múltiplas métricas para entender interações ou correlações. | Identificar relações entre métricas e detectar tendências ou discrepâncias. | Monitorar vendas, tráfego no site e avaliações de clientes simultaneamente. | Comparar a produção de energia solar e eólica em diferentes regiões. |
Population | Conjunto completo de itens ou elementos analisados, como pessoas, produtos ou dispositivos. | Obter insights gerais ou específicos sobre o comportamento ou desempenho do conjunto. | Analisar o comportamento de todos os clientes de uma empresa em termos de compras. | Avaliar os dispositivos conectados em uma rede corporativa para identificar padrões. |
Advanced | Técnicas sofisticadas para análises complexas ou personalizações avançadas. | Resolver problemas desafiadores como previsões ou padrões complexos. | Usar algoritmos de clustering para segmentar clientes com base em padrões de compra. | Aplicar redes neurais para prever a demanda energética em horários de pico. |
Categorization | Agrupamento ou classificação de dados em categorias com base em atributos comuns. | Organizar dados em grupos significativos para simplificar a análise. | Categorizar produtos em eletrônicos, roupas e livros para análise separada. | Dividir clientes por faixa etária para entender padrões de consumo. |
Rare | Identificação de eventos ou padrões incomuns ou raros. | Detectar anomalias ou exceções que podem indicar problemas ou oportunidades. | Detectar transações financeiras fraudulentas devido à sua baixa frequência. | Identificar falhas raras em equipamentos industriais com base em sinais de sensores. |
Geo | Análise de dados com dimensão geográfica, representando informações por localização. | Identificar padrões e tendências regionais ou locais. | Analisar o volume de vendas em diferentes estados ou cidades usando mapas interativos. | Monitorar a distribuição de doenças em diferentes regiões geográficas. |
Data Visualizer | Ferramentas para transformar dados brutos em representações visuais como gráficos e mapas. | Facilitar a compreensão, interpretação e comunicação de insights. | Criar gráficos de barras ou mapas de calor para visualizar desempenho por região. | Criar dashboards interativos para comparar KPIs em tempo real. |
Neste primeiro momento estaremos analisando o Event Count. Quantidade de evento em um determinado período.
- Bucket span
Uma informação de grande relevância, são as configurações de Backet Span. Para o algoritmo o intervalo de tempo deve ser considerado em função das alterações de comportamento na linha do tempo.
As principais funcionalidades do Elastic Machine Learning incluem:
-
Detecção de Anomalias (Anomaly Detection): Ferramenta poderosa para monitorar e identificar padrões incomuns ou inesperados em seus dados, essencial para alertar sobre possíveis problemas em tempo real.
-
Data Frame Analytics: Permite criar modelos de machine learning em dados tabulares, como regressão, classificação, e agrupamento de dados, ajudando a extrair insights mais profundos e fazer previsões.
-
Importação de Modelos NLP: Com o uso da biblioteca Eland, é possível importar modelos pré-treinados, como os da Hugging Face, para análise de texto diretamente no Elasticsearch, facilitando tarefas como geração de embeddings, classificação de textos e muito mais.
A Detecção de Anomalias no Elastic Machine Learning é projetada para detectar automaticamente comportamentos incomuns ou fora do padrão dentro de grandes volumes de dados. Isso é extremamente útil para casos de monitoramento de segurança, detecção de fraudes, ou problemas operacionais em tempo real. A detecção de anomalias funciona treinando um modelo que aprende o comportamento normal dos seus dados e, posteriormente, identifica quando ocorre uma divergência significativa.
Principais características:
- Unsupervised learning (Aprendizado não supervisionado): Não precisa de dados rotulados para treinar o modelo.
- Real-time Anomaly Detection: Processamento contínuo de fluxos de dados.
- Multi-metric support: Pode analisar múltiplas métricas simultaneamente, o que aumenta a precisão da detecção.
O Data Frame Analytics é a solução do Elastic Machine Learning para análise de dados estruturados, permitindo a criação de modelos supervisionados como regressão e classificação, além de modelos não supervisionados, como agrupamento (clustering). Ele possibilita realizar análises em dados tabulares, identificar padrões e gerar previsões. Algumas das principais capacidades incluem:
- Regressão: Criação de modelos para prever valores contínuos, como o preço de um imóvel.
- Classificação: Previsão de categorias ou rótulos, como spam ou não-spam.
- Outlier Detection: Identificação de pontos fora do padrão em grandes conjuntos de dados.
- Clustering: Agrupamento de dados com base em características semelhantes.
A capacidade de importar modelos pré-treinados de NLP para o Elasticsearch é uma funcionalidade avançada oferecida através do Eland. Isso permite trabalhar com tarefas como análise de sentimentos, classificação de textos, geração de embeddings, entre outras. Modelos populares como BERT, DistilBERT e Sentence Transformers podem ser integrados diretamente ao Elasticsearch para melhorar a busca semântica e a compreensão de linguagem natural nos seus dados.
9.2 Passo a Passo para Importar o Modelo "sentence-transformers/msmarco-MiniLM-L-12-v3" Usando o Eland
Certifique-se de que o sistema esteja atualizado antes de instalar qualquer dependência:
sudo apt update && sudo apt upgrade -y
Instale o Python3, pip
, e o virtualenv
para configurar o ambiente virtual.
sudo apt install python3 python3-pip python3-venv -y
Crie a pasta /opt/elastic/ml
e configure o ambiente virtual dentro dessa pasta:
sudo mkdir -p /opt/elastic/ml
sudo chown $USER:$USER /opt/elastic/ml
Dentro da pasta /opt/elastic/ml
, crie o ambiente virtual venv
.
cd /opt/elastic/ml
python3 -m venv venv
Ative o ambiente virtual:
source venv/bin/activate
Com o ambiente virtual ativado, instale a biblioteca eland
com a dependência torch
e a biblioteca transformers
:
pip install "eland[pytorch]" transformers
Utilize o comando eland_import_hub_model
para importar o modelo de embeddings sentence-transformers/msmarco-MiniLM-L-12-v3
com autenticação e ignorando a checagem de certificado:
eland_import_hub_model \
--url https://localhost:9200 \
--hub-model-id sentence-transformers/msmarco-MiniLM-L-12-v3 \
--task-type text_embedding \
-u elastic \
-p 123456 \
--insecure \
--start
Verifique se o modelo foi corretamente sincronizado no Elasticsearch:
curl -X GET "https://localhost:9200/_ml/trained_models" \
-u elastic:123456 -k
Esse comando listará os modelos treinados disponíveis no Elasticsearch, e o modelo msmarco-MiniLM-L-12-v3
deverá estar na lista.
Para testar a geração de embeddings de um texto, use o seguinte comando:
curl -X POST "https://localhost:9200/msmarco_embeddings/_infer" \
-u elastic:123456 --insecure \
-H 'Content-Type: application/json' \
-d '{
"docs": [
{
"text_field": "ElasticSearch is a distributed search engine built on Apache Lucene."
}
]
}'
Se o modelo estiver funcionando corretamente, você verá uma resposta contendo os embeddings gerados.
Para encerrar a sessão, desative o ambiente virtual com o comando:
deactivate
Esse procedimento completo configura o ambiente, importa o modelo de NLP, e testa sua funcionalidade para gerar embeddings no Elasticsearch.