Detección de anomalías en tiempo real utilizando modelos de lenguaje grande

La capacidad para detectar anomalías resulta importante en el mundo basado en datos de hoy y es un componente clave para varias industrias, como la finanza, la atención médica, la ciberseguridad y la fabricación. Las anomalías pueden ser señales de fraude, fallos de sistema, incidentes de seguridad o otros eventos importantes que requieren atención inmediata. El volumen, velocidad y variedad de los datos en flujo son difíciles de manejar para técnicas de detección de anomalías tradicionales. Por otra parte, los últimos avances en Los Modelos de Lenguaje Largos (LLMs) ofrecen una nueva vía para realizar detección de anomalías en tiempo real. En este artículo de blog, discutimos cómo los LLMs se pueden utilizar para detectar anomalías en datos en flujo con algunos ejemplos.

Detección de Anomalías

Las anomalías son patrones en sus datos que no conforman con una noción bien definida de comportamiento normal.

Detectar Anomalías

Esto literalmente significa encontrar el punto en los datos que difiere significativamente del resto de su tipo. Esto puede revelar eventos raros o casos marginales que no encajan con el perfil del conjunto de datos general. Estas anomalías se pueden generalizar en tres tipos:

  1. Anomalías de tabla: Estos son anomalías de punto, básicamente celdas individuales que sobresalen de manera notable en la tabla.
  2. Outliers con contexto: Puntos de datos que pueden considerarse outliers dentro de un contexto.
  3. Anomalías de espacio: Un grupo de puntos parece ser anomalo solo cuando se ven juntos.

El problema con los datos en streaming

Datos en streaming es un término utilizado para describir datos generados continuamente o producidos en tiempo real en el momento. Estos se presentan en forma de datos de sensores, transacciones financieras, fuentes de medios sociales y registros de red. Los desafíos primarios de la detección de anomalías en datos en streaming son los siguientes:

  • Volumen: Tenemos montañas de datos.
  • Velocidad: El flujo rápido de datos requiere un enfoque en tiempo real para procesar la corriente.
  • Diversidad: Los datos llegan en muchas formas y variedades.
  • Veracidad: Asegurar que los datos son precisos y confiables.

Hay muchas razones en las que los métodos tradicionales de detección de anomalías (como pruebas estadísticas y modelos de aprendizaje automático) a menudo no pueden abordar estos desafíos. Es ahí donde entra en juego la tecnología de Modelos de Lenguaje Grandes (LLMs por sus siglas en inglés).

Modelos de Lenguaje Grandes

Los modelos lingüísticos (como GPT-4 de OpenAI, por ejemplo) son máquinas de aprendizaje profundo que han sido entrenadas con una gran cantidad de texto. Estos modelos pueden entender y generar texto como lo hacen los humanos, lo que los hace grandes herramientas para una amplia variedad de tareas de Procesamiento de Lenguaje Natural (NLP). Los LLMs demuestran capacidades impresionantes en tareas como la generación de texto, traducción, resumen e incluso programación.

Pueden utilizarse las LLM de mejor manera al usarlas para descifrar el contexto y los patrones en los datos. Esto las hace candidatas perfectas para la detección de anomalías, ya que estos algoritmos pueden detectar incluso pequeñas desviaciones que los métodos tradicionales podrían pasar por alto.

Uso de LLM para Detección de Anomalías

Las LLM pueden utilizarse de múltiples maneras para fines de tratarlas como detectores de anomalías para un evento entrante determinado y enviarlo a un sistema externo. Aquí están algunos métodos:

  • Análisis contextual: Las LLM ayudan a detectar anomalías aprendiendo el contexto alrededor de los puntos de datos específicos. En el contexto de una corriente de transacciones financieras, una LLM puede detectar hábitos de gasto anómalos.
  • Identificación de patrones: Las LLM identifican patrones complejos y completos en los datos. Una LLM puede detectar patrones de tráfico inusuales que pueden indicar una violación de la seguridad en la seguridad de la red.
  • Datos etiquetados: El objetivo principal de los árboles de modelos lineales es predecir una de dos salidas discretas, a menudo comparadas de manera supervisada para la cual podría requerir datos etiquetados.
  • Aprendizaje no supervisado: Las LLM también pueden emplearse no supervisadas para la detección de anomalías sin datos etiquetados. Esto es particularmente conveniente en aplicaciones que presentan anomalías raras y/o datos etiquetados escasos.
  • Procesamiento eficiente en tiempo: Debido a que las LLM pueden procesar datos en tiempo real, son adecuadas para aplicaciones de datos en flujo. Pueden hacer esto en vivo y de manera continua mientras monitorean los datos a medida que fluyen.

Ejemplos prácticos

Antes de eso, veamos algunos ejemplos básicos de cómo podemos utilizar las MAs en tiempo real para la detección de anomalías en diferentes dominios.

Caso de uso 1: Detección de fraude financiero

Las instituciones financieras procesan grandes volúmenes de datos de transacciones con un gran número de transacciones que ocurren diariamente (en diversas formas, es decir, tanto en tiempo real como offline). Desde el punto de vista financiero, identificar el fraude es fundamental para minimizar las pérdidas y mantener la confianza del cliente. Además, los sistemas basados en reglas tradicionales a menudo no identifican patrones de fraude más complejos.

Una MA facilita el procesamiento en tiempo real de la corriente de transacciones. Basándonos en el importe de la transacción, la geolocalización y el tiempo, estos factores también se pueden aplicar al comportamiento de compra histórico. Por ejemplo, si una tarjeta de crédito del cliente se utiliza para realizar una compra cara en otro país de repente, ese comportamiento sería inusual basado en el historial de gastos pasados y podría disparar una salida de anomalía por la MA.

Caso de uso 2: Monitoreo de la Salud

El monitoreo continuo y la detección precoz de condiciones médicas juegan un papel clave en la atención médica. Estos dispositivos recogen una corriente continua de datos — frecuencia cardíaca, niveles de presión arterial y patrones de actividad.

Una MA se puede utilizar para analizar este conjunto de datos en tiempo real. Por ejemplo, si la frecuencia cardíaca de un paciente sobresale de manera inusual por una razón desconocida, podemos marcar esta anomalía. La MA también puede tener en cuenta información contextual variada, como el historial del paciente y la actividad en un momento dado, para mejorar la detección de anomalías.

Caso de uso 3: Seguridad de la Red

La seguridad de la red requiere un monitoreo activo y un entendimiento de la traficación normal en la red. Las anomalías en el trafico de red pueden llevar a problemas como infecciones por malware, brechas de datos o ataques de denegación de servicio.

Podemos utilizar una AML para examinar los registros de red para detectar desviaciones de los patrones habituales, que podrían indicar un riesgo de seguridad. Por ejemplo, si hay un repentino aumento en el tráfico hacia un servidor particular o un patrón inusual de transferencia de datos, la AML puede identificar estas anomalías posibles. El modelo incluso puede tener en cuenta los patrones de tráfico históricos y las firmas de ataque conocidas para mejorar la precisión de la detección.

Cómo Implementar Detección de Anomalías Utilizando AMLs

Recolección de Datos

Recolectar datos de fuentes en streaming. Pueden ser registros de transacciones, datos de sensores o conectividad de red.

Limpieza de Datos

La limpieza de los datos es un paso crucial para que se adecuen a nuestro análisis de preprocesamiento. Esto puede incluir la eliminación de ruido, la manutención de valores faltantes y la normalización de los datos.

Entrenamiento del Modelo

Entrenar la AML con datos históricos para establecer líneas base. Este paso podría incluir un entrenamiento adicional de una AML entrenada en los datos del dominio.

Implementación para Análisis en Tiempo Real

Usar el modelo entrenado para analizar datos en streaming. El modelo necesita supervisar el flujo de datos y lanzar una señal de alerta si encuentra cualquier anomalía.

Alerta y Acción

Crear un sistema de alerta para avisar a la autoridad relevante si se detectan anomalías. Especificar las tareas a realizar en base a ciertos tipos de anomalías.

Configuración del Entorno

Para comenzar, instale las bibliotecas requeridas.

pip install transformers torch

Ejemplo de Modelo 1: Detección de Fraude Financiero

Supongamos que queremos experimentar con la detección de anomalías en transacciones financieras mediante LLM (Large Language Model).

Paso 1: Simulación de Datos

Enviamos una corriente de transacciones financieras.

Python

 

import random
import time

def generate_transaction():
    transactions = [
        {"user_id": 1, "amount": random.uniform(1, 100), "location": "New York"},
        {"user_id": 2, "amount": random.uniform(1, 1000), "location": "San Francisco"},
        {"user_id": 3, "amount": random.uniform(1, 500), "location": "Los Angeles"},
        {"user_id": 4, "amount": random.uniform(1, 2000), "location": "Chicago"},
    ]
    return random.choice(transactions)

def stream_transactions():
    while True:
        transaction = generate_transaction()
        yield transaction
        time.sleep(1)  # Simulating real-time data stream

# Ejemplo de uso
for transaction in stream_transactions():
    print(transaction)

Paso 2: Detección de Anomalías Base en LLM

Usaremos un LLM preentrenado para esto, utilizando Hugging Face.

Python

 

from transformers import pipeline

# Cargar un modelo de análisis de sentimento preentrenado como ejemplo
# En un escenario real, entrenarías un modelo en tu tarea de detección de anomalías específica
model = pipeline("sentiment-analysis")

def detect_anomaly(transaction):
    # Convertir la transacción en un formato de cadena para el LLM
    transaction_str = f"User {transaction['user_id']} made a transaction of ${transaction['amount']} in {transaction['location']}."

    # Usar el LLM para analizar la transacción
    result = model(transaction_str)

    # Para simplificar, considerar anomalía el sentimiento negativo
    if result[0]['label'] == 'NEGATIVE':
        return True
    return False

# Ejemplo de uso
for transaction in stream_transactions():
    if detect_anomaly(transaction):
        print(f"Anomaly detected: {transaction}")
    else:
        print(f"Normal transaction: {transaction}")

Ejemplo 2: Monitoreo de Salud

Usaremos el método LLM para construir modelos para detectar anomalías en una corriente de datos de salud de pacientes.

Paso 1: Simulación de Datos

Python

 

def generate_health_data():
    health_data = [
        {"patient_id": 1, "heart_rate": random.randint(60, 100), "blood_pressure": random.randint(110, 140)},
        {"patient_id": 2, "heart_rate": random.randint(60, 120), "blood_pressure": random.randint(100, 150)},
        {"patient_id": 3, "heart_rate": random.randint(50, 110), "blood_pressure": random.randint(90, 130)},
        {"patient_id": 4, "heart_rate": random.randint(70, 130), "blood_pressure": random.randint(100, 160)},
    ]
    return random.choice(health_data)

def stream_health_data():
    while True:
        data = generate_health_data()
        yield data
        time.sleep(1)  # Simulating real-time data stream

# Ejemplo de uso
for data in stream_health_data():
    print(data)

Paso 2: Detección de Anomalías Base en LLM

Python

 

def detect_health_anomaly(data):
    # Convertir los datos de salud en un formato de cadena para el LLM
    health_data_str = f"Patient {data['patient_id']} has a heart rate of {data['heart_rate']} and blood pressure of {data['blood_pressure']}."

    # Usar el LLM para analizar los datos de salud
    result = model(health_data_str)

    # Para simplificar, considerar anomalía el sentimiento negativo
    if result[0]['label'] == 'NEGATIVE':
        return True
    return False

# Ejemplo de uso
for data in stream_health_data():
    if detect_health_anomaly(data):
        print(f"Anomaly detected: {data}")
    else:
        print(f"Normal health data: {data}")

Ejemplo 3: Seguridad de la Red

Generando registros de red y detectando outliers con un LLM.

Paso 1: Simulación de Datos

Python

 

def generate_network_log():
    network_logs = [
        {"ip": "192.168.1.1", "request": "GET /index.html", "status": 200},
        {"ip": "192.168.1.2", "request": "POST /login", "status": 401},
        {"ip": "192.168.1.3", "request": "GET /admin", "status": 403},
        {"ip": "192.168.1.4", "request": "GET /unknown", "status": 404},
    ]
    return random.choice(network_logs)

def stream_network_logs():
    while True:
        log = generate_network_log()
        yield log
        time.sleep(1)  # Simulating real-time data stream

# Ejemplo de uso
for log in stream_network_logs():
    print(log)

Paso 2: Detección de Anomalías Basada en LLM

Python

 

def detect_network_anomaly(log):
    # Convertir los registros de red en formato de cadena para la LLM
    log_str = f"IP {log['ip']} made a {log['request']} request with status {log['status']}."

    # Utilizar la LLM para analizar los registros de red
    result = model(log_str)

    # Para simplificar, considerar el sentimiento negativo como una anomalía
    if result[0]['label'] == 'NEGATIVE':
        return True
    return False

# Ejemplo de uso
for log in stream_network_logs():
    if detect_network_anomaly(log):
        print(f"Anomaly detected: {log}")
    else:
        print(f"Normal network log: {log}")

Los ejemplos muestran cómo se pueden utilizar los Modelos de Lenguaje Largos (LLM) para la detección de anomalías en tiempo real en diferentes áreas. El modelo de análisis de sentimiento se utiliza solo para fines ilustrativos en los ejemplos, aunque podría ajustarlo a una LLM en su tarea de detección de anomalías.

Uso en Tiempo Real de LLMs

Al monitorear siempre los datos a medida que fluyen usando la API de streaming y utilizar grandes búsquedas, basadas en patrones para evaluar el contexto (medidas estadísticas), la detección de anomalías en tiempo real permite respuestas a potenciales problemas de inmediato.

Retos y Consideraciones

Además de las ventajas de detección de anomalías que ofrecen las LLM, también se necesita estar al tanto de sus desafíos y limitaciones.

  • Recursos: Las LLM requieren de recursos significativos para entrenar y realizar procesamiento en tiempo real. Es necesario asegurar que haya infraestructura suficiente disponible.
  • Privacidad de datos: Datos sensibles como las transacciones financieras y los registros de atención médica se rigen por regulaciones donde la privacidad es crucial.
  • Interpretabilidad: Los modelos de Lenguaje General (LLM) se denominan a menudo “caja negra” debido a su complejidad. Para la confianza y comprender por qué se detectaron anomalías, es importante la interpretabilidad y explicabilidad del modelo.
  • Aprendizaje continuo: La información en flujo es impredecible y las tendencias pueden fluctuar con el tiempo. Los modelos necesitan actualizarse para el aprendizaje continuo y mejorar la precisión de detección.

Directrices futuras

El área de detección de anomalías con LLM todavía está en desarrollo, y algunas direcciones son noveles para una exploración futura que consideramos prometedoras para la investigación y la innovación futuras:

  • Modelos híbridos: La integración de series temporales o algoritmos de clustering con LLM puede reforzar la detección de anomalías.
  • Cómputo en la periferia: Como parte de la ejecución de LLM, es posible desplegarlos en dispositivos en la periferia; esto permite la detección en tiempo real a nivel de origen y, por lo tanto, reduce la latencia y la respuesta.
  • IA explicable: Diseñar técnicas para mejorar la interpretabilidad de LLM para que los interesados puedan comprender y aceptar las bases de las decisiones del modelo.
  • Modelos específicos de dominio: Ajustar LLM para dominios específicos (finanzas, atención médica o ciberseguridad) puede aumentar la precisión y relevancia de la detección.

Conclusión

La detección de anomalías es un caso de uso común en todas las industrias con datos en flujo. Sin embargo, los grandes modelos de lenguaje pueden ser utilizados como una poderosa y metodología completa para abordar este problema. El uso de MLL para análisis contextual y reconocimiento de patrones junto con procesamiento en tiempo real puede ayudar significativamente a las organizaciones a identificar anomalías rápidamente. Hay algunos desafíos que deben ser abordados hasta que puedamos aprovechar plenamente el poder de los MLL para la detección de anomalías. Podemos prever incluso mayores mejoras en la detección de anomalías en tiempo real a medida que la tecnología avance en este campo.

Source:
https://dzone.com/articles/realtime-anomaly-detection-using-large-language