ES2967675T3 - Compartición distribuida de recursos de aprendizaje automático y enrutamiento de solicitudes - Google Patents

Compartición distribuida de recursos de aprendizaje automático y enrutamiento de solicitudes Download PDF

Info

Publication number
ES2967675T3
ES2967675T3 ES22152437T ES22152437T ES2967675T3 ES 2967675 T3 ES2967675 T3 ES 2967675T3 ES 22152437 T ES22152437 T ES 22152437T ES 22152437 T ES22152437 T ES 22152437T ES 2967675 T3 ES2967675 T3 ES 2967675T3
Authority
ES
Spain
Prior art keywords
network device
network
data
machine learning
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES22152437T
Other languages
English (en)
Inventor
Philippe Klein
Yong Li
Xuemin Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies International Sales Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avago Technologies International Sales Pte Ltd filed Critical Avago Technologies International Sales Pte Ltd
Application granted granted Critical
Publication of ES2967675T3 publication Critical patent/ES2967675T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Varias realizaciones de la presente divulgación mejoran las tecnologías de red multicapa y otras tecnologías existentes al enrutar y procesar solicitudes de clientes que requieren aprendizaje automático en función de las capacidades de aprendizaje automático de cada dispositivo de red y/u otras características de recursos informáticos de diferentes dispositivos de red. Esto garantiza que la latencia y el rendimiento de la red, entre otras características de consumo de recursos informáticos, mejorarán a medida que el procesamiento de aprendizaje automático pueda ocurrir en el dispositivo de red más adecuado o distribuirse entre varios dispositivos de red adecuados. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Compartición distribuida de recursos de aprendizaje automático y enrutamiento de solicitudes
Antecedentes de la invención
Las redes informáticas multicapa incluyen múltiples capas de múltiples redes o dispositivos que interactúan entre sí para atender las solicitudes de los clientes. Por ejemplo, las redes de acceso de banda ancha pueden incluir una capa de Internet de las cosas (IoT) de dispositivos IoT (por ejemplo, un televisor inteligente o un sensor), una capa de equipo local del cliente (CPE) de hardware de telecomunicaciones típicamente ubicado en un hogar o negocio de un cliente (por ejemplo, puertas de enlace residenciales, decodificadores, etc.), una capa de borde de dispositivos (por ejemplo, dispositivos móviles, microservidores, etc.) donde reside el cliente (o más cerca del cliente o del dispositivo IoT en relación con la nube ) y que controla y procesa datos en el límite entre dos o más redes, y una capa de nube de nodos informáticos en un centro de datos que realiza la mayor parte del procesamiento y la informática pesados. Para atender una solicitud de un cliente, la solicitud típicamente se enruta a un dispositivo en cada capa y luego los datos se devuelven al dispositivo IoT.
Las redes informáticas multicapa existentes y otras redes informáticas no proporcionan funcionalidad para compartir capacidades de procesamiento de aprendizaje automático entre sí y enrutar y procesar de manera inteligente las solicitudes de los clientes que requieren funcionalidad de aprendizaje automático. Además, las tecnologías existentes consumen innecesariamente recursos informáticos, tal como memoria, CPU y recursos de red, entre otras cosas.
El documento US 2020/334567 A1 divulga un entorno informático en red en el que el entrenamiento de modelos de aprendizaje automático se distribuye entre una pluralidad de dispositivos del cliente. Un gestor de entrenamiento de modelos organiza la asignación de tareas de entrenamiento a los dispositivos del cliente en un sistema distribuido para facilitar el entrenamiento de modelos de aprendizaje automático por una pluralidad de dispositivos del cliente. El documento EP 3754915A1 proporciona un procedimiento, aparato y sistema de procesamiento de datos, y se relaciona con el campo de la informática distribuida.
Sumario
Un objeto de la invención es proporcionar una tecnología de red eficiente. Este objeto se logra por las reivindicaciones independientes. Otras realizaciones se muestran en las reivindicaciones dependientes.
Este sumario se proporciona para presentar una selección de conceptos en una forma simplificada que se describen más adelante en la Descripción detallada. Este sumario no pretende identificar todas las características clave o características esenciales del tema reivindicado, ni está destinado a ser utilizado como ayuda para determinar el ámbito del tema reivindicado.
Las realizaciones particulares mejoran las funcionalidades multicapa existentes y otras funcionalidades de red empleando núcleos o módulos de aprendizaje automático a través de múltiples dispositivos de red de una red multicapa y compartiendo capacidades de aprendizaje automático de dichos módulos (y/u otras características de recursos informáticos) a través de la red de manera que se pueda tomar una decisión de enrutamiento inteligente en tiempo de ejecución para atender las solicitudes de los clientes que requieren procesamiento de aprendizaje automático. Las solicitudes de los clientes incluyen los datos de aprendizaje automático y las transferencias de mensajes de control. En consecuencia, algunas realizaciones enrutan y procesan solicitudes de clientes que requieren aprendizaje automático en base a las capacidades de aprendizaje automático (por ejemplo, tipo de modelo, hiperparámetros) de cada dispositivo de red y/u otras características de recursos informáticos (por ejemplo, disponibilidad de memoria, utilización de CPU, etc.) de diferentes dispositivos de red. Esto garantiza que la latencia y el rendimiento de la red, entre otras características de consumo de recursos informáticos, mejorarán a medida que el procesamiento de aprendizaje automático pueda producirse en el dispositivo de red más adecuado o distribuirse entre varios dispositivos de red adecuados.
Breve descripción de las figuras
Los aspectos de la divulgación se describen en detalle a continuación con referencia a las figuras de dibujos adjuntas y en las que:
La Figura 1 es un diagrama de bloques de un entorno informático adecuado para su uso en la implementación de algunas realizaciones de la presente divulgación;
La Figura 2 es un diagrama esquemático de una arquitectura de entorno operativo de ejemplo para el cual se emplean algunas realizaciones de la presente divulgación;
La Figura 3A es un diagrama de bloques que ilustra que los servidores proxy de ML se integran en (o se conectan a) un módem por cable (CM), de acuerdo con algunas realizaciones;
La Figura 3B es un diagrama de bloques que ilustra que un servidor proxy de ML está integrado o conectado a un dispositivo RPD/RMD, de acuerdo con algunas realizaciones;
La Figura 3C es un diagrama de bloques que ilustra varios servidores proxy de ML que residen o están conectados a puertas de enlace CM, así como RPD/RMD, de acuerdo con algunas realizaciones;
La Figura 4 es un diagrama de bloques de un entorno operativo de ejemplo para el que se pueden emplear realizaciones de la presente divulgación;
La Figura 5 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático, de acuerdo con algunas realizaciones;
La Figura 6 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático para detectar anomalías, de acuerdo con algunas realizaciones;
La Figura 7 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático para detectar problemas PHY específicos del dispositivo y/o de toda la red, de acuerdo con algunas realizaciones;
La Figura 8 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático para detectar anomalías operativas particulares, de acuerdo con algunas realizaciones;
La Figura 9 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático para detectar y rastrear objetos particulares, de acuerdo con algunas realizaciones; La Figura 10 es un diagrama de serie temporal que ilustra que se puede detectar un tipo de flujo de vídeo y que se usa una ventana deslizante para determinar la presencia continua de un objeto dentro de un flujo de vídeo, de acuerdo con algunas realizaciones;
La Figura 11 es un diagrama esquemático que ilustra cómo se procesan datos de series temporales (por ejemplo, flujos de vídeo) usando un modelo de Memoria a Corto Plazo (LSTM), de acuerdo con algunas realizaciones;
La Figura 12 es un diagrama esquemático que ilustra cómo se genera una estadística de decisión usando uno o más modelos de aprendizaje automático, de acuerdo con algunas realizaciones;
La Figura 13 es un diagrama de bloques de un entorno informático de topología de ejemplo de dispositivos de servidores proxy de ML y clientes de ML en una infraestructura de Red de Acceso de Banda Ancha, de acuerdo con algunas realizaciones;
La Figura 14 es un diagrama de secuencia de ejemplo que ilustra dispositivos de red que comparten información de recursos de ML, de acuerdo con algunas realizaciones;
La Figura 15 es un diagrama de secuencia de ejemplo que ilustra dispositivos de red que establecen un canal de servicio de ML y procesan una solicitud del cliente para procesar datos a través de uno o más procesos de aprendizaje automático, de acuerdo con algunas realizaciones;
La Figura 16 es un diagrama de bloques que ilustra cómo se enruta una solicitud de ML desde un cliente a un dispositivo del cliente de destino, de acuerdo con algunas realizaciones;
La Figura 17 es un diagrama de bloques que ilustra la red de ML (a) y la red de ML (b) en una infraestructura de red de acceso de banda ancha por cable, de acuerdo con algunas realizaciones;
La Figura 18 es un diagrama de bloques de un dispositivo de servidor proxy de ML de ejemplo, de acuerdo con algunas realizaciones;
La Figura 19 es un diagrama de bloques de un dispositivo del cliente de ejemplo, de acuerdo con algunas realizaciones;
La Figura 20 es un diagrama de flujo de un proceso de ejemplo para generar o actualizar un objeto de datos con datos que especifican la información de característica de los recursos informáticos y la información de la capacidad de aprendizaje automático para los dispositivos de red, de acuerdo con algunas realizaciones;
La Figura 21 es un diagrama de flujo de un proceso de ejemplo para ejecutar una solicitud del cliente para procesar datos a través de uno o más procesos de aprendizaje automático, de acuerdo con algunas realizaciones;
La Figura 22 ilustra un diagrama de bloques de un dispositivo informático, de acuerdo con algunas realizaciones.
Descripción detallada
El tema de los aspectos de la presente divulgación se describe con especificidad en la presente memoria para cumplir los requerimientos legales. Sin embargo, la descripción en sí no pretende limitar el ámbito de esta patente. Por el contrario, los inventores han contemplado que el tema reivindicado podría incorporarse de otras maneras para incluir diferentes etapas o combinaciones de etapas, similares a los descritos en este documento, junto con otras tecnologías presentes o futuras. Además, aunque los términos "etapa" y/o "bloque" pueden usarse en la presente memoria para connotar diferentes elementos de los procedimientos empleados, los términos no deben interpretarse como que implican ningún orden particular entre varias etapas en la presente memoria divulgados a menos y excepto cuando el orden de las etapas individuales se describe explícitamente. Cada procedimiento descrito en la presente memoria puede comprender un proceso informático que se puede realizar utilizando cualquier combinación de hardware, microprograma y/o software. Por ejemplo, un procesador puede llevar a cabo diversas funciones ejecutando instrucciones almacenadas en la memoria. Los procedimientos también pueden realizarse como instrucciones utilizables por ordenador almacenadas en medios de almacenamiento del ordenador. Los procedimientos pueden proporcionarse por una aplicación independiente, un servicio o servicio alojado (independiente o en combinación con otro servicio alojado), o un complemento de otro producto, por nombrar algunos.
Las redes informáticas multicapa existentes y otras redes informáticas no proporcionan funcionalidad para compartir capacidades de procesamiento de aprendizaje automático entre sí. Aunque algunos dispositivos informáticos de nivel superior (por ejemplo, nodos informáticos en la nube) pueden realizar procesos de aprendizaje automático, dichos procesos normalmente no se distribuyen adecuadamente entre diferentes capas, tal como en el borde o en los dispositivos CPE. En consecuencia, el rendimiento y la latencia de la red se ven afectados negativamente. Por ejemplo, es posible que las solicitudes de los clientes tengan que saltar desde y hacia varios dispositivos en cada capa de una red de acceso de banda ancha antes de que la solicitud se procese finalmente en la capa de la nube, lo que reduce la cantidad de bits por segmento de tiempo en el que se procesan los datos dado todo los costos de generación de paquetes en un protocolo TCP/IP, por ejemplo. En general, también se aplican otros protocolos de transporte.
Las redes multicapas existentes y otras redes informáticas tampoco enrutan ni procesan adecuadamente las solicitudes de los clientes que requieren procesamiento de aprendizaje automático. Aunque los sistemas informáticos existentes pueden enrutar las solicitudes de los clientes mediante equilibrio de carga, procesamiento de fallas, tolerancia a fallas u otras funciones de enrutamiento, dicha funcionalidad de enrutamiento no tiene en cuenta las capacidades de aprendizaje automático de dispositivos de red particulares.
Las realizaciones de la presente divulgación proporcionan una o más soluciones técnicas a estos problemas con las redes informáticas existentes. En funcionamiento, se dirigen varias realizaciones que emplean núcleos o módulos de aprendizaje automático a través de múltiples dispositivos de red de una red multicapa y que comparten capacidades de dichos módulos a través de la red para que se pueda tomar una decisión de enrutamiento inteligente en tiempo de ejecución para atender las solicitudes de los clientes. Por ejemplo, varios dispositivos de puerta de enlace y de borde en una red de acceso de banda ancha pueden emplear diferentes modelos de aprendizaje automático con diferentes hiperparámetros y difundir (por ejemplo, a través de un anuncio de servicio de ML) una indicación de los modelos e hiperparámetros de aprendizaje automático a otros dispositivos de red para que los otros dispositivos de red puedan determinar las capacidades o atributos de aprendizaje automático de otros dispositivos de red, en relación con sus propias capacidades y atributos de aprendizaje automático.
Algunas realizaciones de la presente divulgación enrutan y procesan solicitudes de clientes que requieren aprendizaje automático en base a las capacidades de aprendizaje automático de cada dispositivo de red y/u otras características de recursos informáticos de diferentes dispositivos de red. Por ejemplo, una solicitud de un cliente puede ser detectar un objeto en un flujo de vídeo. Sin embargo, sólo ciertos dispositivos de red pueden emplear los modelos apropiados (por ejemplo, una CNN entrenada en imágenes) para detectar objetos. Y otros dispositivos de red emplean diferentes modelos que realizan diferentes funcionalidad (por ejemplo, un modelo de agrupación entrenado en firmas de programa maligno). Además, ciertos dispositivos de red pueden estar ocupados o de otro modo estar sujetos a alguna utilización o consumo de recursos informáticos por encima de un umbral (por ejemplo, disponibilidad de memoria, utilización de CPU, etc.). En consecuencia, en este ejemplo, varias realizaciones de la presente divulgación enrutan de manera inteligente las solicitudes de los clientes a aquellos dispositivos de red capaces de detectar objetos y/o dispositivos de red que no están sujetos a un consumo de recursos informáticos por encima de cierto umbral.
Varias realizaciones de la presente divulgación mejoran las redes multicapas existentes y otras redes, lo que mejora el consumo de recursos informáticos. Como se describe en la presente memoria con las tecnologías de red existentes, la funcionalidad de aprendizaje automático no se distribuye entre diferentes capas, tal como en el borde o en dispositivos CPE. Estas tecnologías tampoco enrutan ni procesan adecuadamente las solicitudes de los clientes que requieren procesamiento de aprendizaje automático. En consecuencia, el rendimiento y la latencia de la red se ven afectados negativamente. Sin embargo, debido a que múltiples dispositivos de red incluyen núcleos o módulos de aprendizaje automático, se mejora la información de capacidad (por ejemplo, el tipo de modelo de aprendizaje automático) que se comparte en toda la red para enrutar las solicitudes, el rendimiento y la latencia de los clientes. Esto se debe a que el procesamiento de aprendizaje automático no tiene por qué producirse en un dispositivo o capa designado, tal como la capa de nube. Además, se pueden determinar las características de los recursos informáticos (por ejemplo, CPU, memoria) para cada dispositivo de red para garantizar que las solicitudes no se enruten a esos dispositivos de red por encima de cierto umbral de consumo de recursos informáticos. Por ejemplo, una solicitud del cliente completa se puede procesar en el borde en base a que las capacidades de aprendizaje automático del dispositivo de red de borde correspondiente puedan atender completamente la solicitud. En este ejemplo, debido a que la solicitud del cliente no tiene que saltar a cada capa y se procesa en el borde cerca de donde reside el cliente, la latencia de la red y el rendimiento mejoran enormemente. En otro ejemplo, cuando se requiere un procesamiento intensivo de aprendizaje automático, por ejemplo, una primera parte de una solicitud del cliente puede ser procesada por un núcleo de aprendizaje automático en una capa de CPE en base a las capacidades de aprendizaje automático de un dispositivo CPE y luego una segunda parte de la solicitud se puede procesar en la capa de nube para que diferentes dispositivos de red puedan compartir el procesamiento de aprendizaje automático (por ejemplo, en paralelo), lo que también mejora la latencia y el rendimiento de la red.
Volviendo ahora a la Figura 1, se proporciona un diagrama de bloques que muestra un entorno operativo de ejemplo 100 en el que se pueden emplear algunas realizaciones de la presente divulgación. Debe entenderse que ésta y otras disposiciones descritas en la presente memoria se exponen sólo como ejemplos. Se pueden usar otras disposiciones y elementos (por ejemplo, máquinas, interfaces, funciones, órdenes y agrupaciones de funciones) además de o en lugar de los mostrados, y algunos elementos se pueden omitir por completo en aras de la claridad. Además, muchos de los elementos descritos en la presente memoria son entidades funcionales que pueden implementarse como componentes discretos o distribuidos o junto con otros componentes, y en cualquier combinación y ubicación adecuadas. Varias funciones descritas en la presente memoria como realizadas por una o más entidades pueden llevarse a cabo mediante hardware, microprograma y/o software. Por ejemplo, algunas funciones pueden ser realizadas por un procesador que ejecuta instrucciones almacenadas en la memoria.
El entorno operativo 100 permite el enrutamiento de una solicitud 150 desde el dispositivo del cliente 102 al dispositivo de red 112 para procesar la solicitud a través de una o más funcionalidades de aprendizaje automático, de acuerdo con algunas realizaciones. El entorno operativo 100 incluye uno o más dispositivos del cliente 102, un dispositivo de red 112, un dispositivo de red 116 y uno o más dispositivos de red 106 (que representan cualquier cantidad de dispositivos de red), cada uno de los cuales está acoplado comunicativamente a través de una o más redes 110.
El entorno operativo ilustrativo 100 mostrado en la Figura 1 es simplemente un ejemplo de un entorno operativo adecuado y no pretende sugerir ninguna limitación en cuanto al ámbito de uso o funcionalidad de las realizaciones de la presente invención. Por ejemplo, en algunas realizaciones, el entorno informático 100 incluye o representa un entorno informático en la nube que incluye un sistema de procesamiento de datos/distribuido basado en red que proporciona uno o más servicios informáticos en la nube (por ejemplo, IAAS, PAAS y SAAS). Además, un entorno informático en la nube puede incluir muchos ordenadores (por ejemplo, representados por los dispositivos de red), cientos o miles de ellos o más, dispuestos dentro de uno o más centros de datos y configurados para compartir recursos a través de la(s) red(es) 110. Además, un dispositivo del cliente o un dispositivo de red puede ser un módulo en el mismo dispositivo.
Adicional o alternativamente, en algunas realizaciones el entorno operativo 100 y la(s) red(es) 110 representan o incluyen cualquier red informática multicapa y/o jerárquica. Una "red informática jerárquica", como se describe en la presente memoria, se refiere a cualquier red informática donde los datos generalmente se enrutan y/o procesan en cierto orden jerárquico de un dispositivo de red a otro, aunque el dispositivo de red exacto para procesar los datos no está necesariamente predeterminado. Ejemplos de esto incluyen una red de acceso de banda ancha que incluye enrutadores residenciales, decodificadores y servidores internos, donde los datos, por ejemplo, se enrutan primero desde un dispositivo de red decodificador y luego a un dispositivo de red de enrutador residencial, luego a uno o más dispositivos de red del servidor interno. Adicional o alternativamente, la red informática jerárquica incluye un entorno informático de Internet de las cosas (IoT) donde los datos se procesan primero a través de una capa de CPE, luego una capa de borde y luego una capa de nube.
En diversas realizaciones, una "capa", como se describe en la presente memoria, se refiere a una función específica (por ejemplo, informática de borde) que realiza un tipo o categoría específica de dispositivo de red (por ejemplo, un dispositivo de informática de borde, a diferencia de un nodo informático en la nube). En un entorno informático de IoT, por ejemplo, las capas pueden ser una capa de dispositivo IoT, una capa de CPE, una capa de borde y una capa de nube. En algunas realizaciones, la(s) red(es) informática(s) 110 representan o incluyen una o más: Redes de área local (LAN), redes de área amplia (WAN), Internet, una red de telecomunicaciones y/o similares. Como se ilustra en la Figura 1, el dispositivo de red 116 está incluido en la capa 1 (por ejemplo, una capa de CPE), y el dispositivo de red 112 y el(los) dispositivo(s) de red N 106 están incluidos en una o más capas N (por ejemplo, capa 2, tal como una capa de borde configurada para procesar datos después de que la capa 1 procese los datos). La(s) capa(s) N representan cualquier cantidad diferente de capas, tal como 3, 4 o 5 capas. En algunas realizaciones, el dispositivo de red 112 y uno o más dispositivos de red 106 están incluidos en la misma capa, mientras que en otras realizaciones están ubicados en capas diferentes.
El entorno operativo ilustrativo 100 incluye uno o más dispositivos del cliente 102. En algunas realizaciones, uno o más dispositivos del cliente 102 representan cualquier dispositivo adecuado que genera y envía una solicitud para procesar datos y los datos procesados o la funcionalidad de ejecución (por ejemplo, una notificación, mensaje, datos de imagen procesados, etc.) de la solicitud se indica de vuelta a uno o más dispositivos del cliente 102.
En algunas realizaciones, el dispositivo del cliente 102 representa cualquier dispositivo informático adecuado asociado con un usuario, tal como un televisor inteligente, un dispositivo de teléfono móvil de un usuario, un sensor ponible (por ejemplo, un oxímetro de pulso) usado por un usuario, y similares. Por ejemplo, el(los) dispositivo(s) del cliente 102 pueden representar un ordenador de escritorio, un ordenador portátil, una laptop o notebook, una tableta, un ordenador de bolsillo, un teléfono, un teléfono inteligente, un reloj inteligente, gafas inteligentes o cualquier otro tipo adecuado de dispositivo electrónico asociado con o usado por un usuario.
En algunas realizaciones, uno o más dispositivos del cliente 102 incluye o representa uno o más dispositivos de red además de los dispositivos de red 116, 112 y el dispositivo de red N. Un "dispositivo de red" como se describe en la presente memoria se refiere a cualquier dispositivo informático adecuado configurado para procesar, ejecutar y/o enrutar una solicitud particular que se originó en un dispositivo del cliente. Los ejemplos de un dispositivo de red incluyen un dispositivo de servidor proxy, tal como un enrutador, un decodificador, una puerta de enlace de acceso a Internet, un enrutador, un conmutador de red, una puerta de enlace residencial, un dispositivo de borde, un nodo en la nube y similares. Un "dispositivo de servidor proxy" como se describe en la presente memoria se refiere a una puerta de enlace (por ejemplo, un enrutador) entre un dispositivo de usuario (por ejemplo, un control remoto de televisión de un usuario, un teléfono móvil o el dispositivo del cliente 102) y un punto final particular (por ejemplo, un nodo informático en la nube) dispositivo de red que está configurado para ser el último dispositivo en procesar una solicitud. Por ejemplo, un dispositivo de servidor proxy puede ser un servidor intermediario que actúa como puerta de enlace entre los usuarios finales y los sitios web (o servidores web) que navegan. Un dispositivo de servidor proxy que incluye núcleos o capacidades de aprendizaje automático se denomina en la presente memoria "servidor proxy de ML" o "dispositivo de servidor proxy de ML".
Otros ejemplos de un dispositivo de red incluyen un servidor Blade, un servidor web, un servidor de aplicaciones, un ordenador central, un nodo informático en la nube, un ordenador portátil, una tableta, una netbook, un ordenador personal (PC), un ordenador de escritorio, un asistente digital personal (PDA), un teléfono inteligente o cualquier dispositivo electrónico programable configurado para procesar y/o enrutar solicitudes de dispositivos del cliente.
El entorno operativo 100 ilustra que uno o más dispositivos del cliente 102 envían una solicitud 150, que puede ser una solicitud para procesar datos a través de uno o más procesos de aprendizaje automático. Por ejemplo, la solicitud 150 puede ser una solicitud para procesar datos de imágenes o secuencias de flujo de vídeo (por ejemplo, una solicitud para detectar y seguir un objeto particular). En algunas realizaciones, la solicitud 150 es una solicitud para determinar cualquier anomalía particular, tal como una intrusión maliciosa en la red o violaciones de la privacidad de los datos. En otro ejemplo, la solicitud 150 puede ser una solicitud para detectar problemas específicos de la capa física ("PHY") (por ejemplo, métricas de condición del canal, tales como SNR, MER, etc.).
El dispositivo de red 116 recibe la solicitud 150 y determina, a través del determinante de enrutamiento 104, a qué dispositivo de red enrutar la solicitud 150. Como se ilustra en la Figura 1, el determinante de enrutamiento 104 utiliza la lista de recursos de enrutamiento 120, que incluye atributos para cada dispositivo de red en el entorno operativo 100 (es decir, dispositivo de red 116, dispositivo de red 112 y dispositivo(s) de red 106). En algunas realizaciones, la lista de recursos de enrutamiento 120 (también denominada en la presente memoria "información de recursos") o partes de la lista de recursos de enrutamiento 120 (por ejemplo, la lista de subrecursos 120-1) se comparte entre cada uno de los dispositivos de red 116, 112 y 106. Dichos atributos de la lista de recursos de enrutamiento 120 incluyen una o más características de recursos informáticos de cada dispositivo de red respectivo (por ejemplo, CPU, memoria, velocidad de transferencia de datos) y una o más capacidades de procesamiento de aprendizaje automático de cada dispositivo de red respectivo (por ejemplo, tipo de modelo de aprendizaje automático, hiperparámetros utilizados en el modelo,). En algunas realizaciones, algunos o cada uno de los dispositivos de red 112 y los dispositivos de red 106 incluyen adicionalmente un determinante de enrutamiento idéntico al determinante de enrutamiento 105 para que también puedan realizar determinaciones de enrutamiento para solicitudes usando su propia versión de la lista de recursos de enrutamiento 120. Se entiende que la lista de recursos de enrutamiento 120 es sólo representativa y puede incluir alternativa o adicionalmente cualquier atributo adecuado, como se describe con más detalle a continuación.
"Características de los recursos informáticos" se refiere a cualquier estado particular de cualquier componente informático en términos de hardware, software y/o procesamiento de señales de un dispositivo de red respectivo. Por ejemplo, las características de los recursos informáticos pueden ser cualquiera de los tipos/estructuras de redes neuronales, velocidad de transmisión de datos de un dispositivo de red, protocolos de transporte de un dispositivo de red (por ejemplo, Protocolo de datagramas de usuario (UDP), Protocolo de control de transmisión (TCP), Protocolo de datos confiable (RDP), Protocolo de transmisión Apple Talk (ATP), etc.), latencia incurrida por el dispositivo de red y las rutas de datos correspondientes, capacidad de memoria interna y externa y ancho de banda, capacidad de procesamiento (por ejemplo, Tera operaciones por segundo (TOPS)), nivel o tipos de seguridad para datos de entrada/salida, memoria del servidor de operación en una agrupación, número de servidores (o nodos) en una agrupación, disponibilidad de almacenamiento dentro de una agrupación, utilización real de la memoria, utilización de la CPU, utilización de la red y similares.
"Capacidades de procesamiento de aprendizaje automático" (también denominadas en la presente memoria "recursos de aprendizaje automático" o "información de recursos de aprendizaje automático" o "capacidades de aprendizaje automático") se refiere a cualquier información que indique una funcionalidad específica de aprendizaje automático que un dispositivo de red en particular es capaz de realizar u otros atributos asociado con el aprendizaje automático. Como se describe en la presente memoria, varios dispositivos de red incluyen núcleos de aprendizaje automático capaces de atender y procesar solicitudes de clientes. Estas capacidades de ML se pueden compartir o distribuir entre múltiples dispositivos de red. Por ejemplo, las capacidades de aprendizaje automático pueden incluir rutas de datos admitidas para flujos de datos de entrada y datos de salida de ML, estadísticas de decisión de ML admitidas o tipos de inferencia y/o hiperparámetros correspondientes (por ejemplo, clases de redes neuronales (por ejemplo, CNN, LSTM, etc.), objetivos de predicción (por ejemplo, predecir características de imágenes, predecir programa maligno, predecir problemas de PHP, etc.), tamaño de una red neuronal, topología de la red neuronal (por ejemplo, número de capas o neuronas, ya sea completamente conectadas o alimentadas, tasa de aprendizaje).
Otros ejemplos incluyen una indicación de si el modelo es un modelo de agolpamiento, un modelo de clasificación, un modelo de regresión, las funciones de preprocesamiento de datos de entrada de ML admitidas (por ejemplo, normalización y escalado) y las funciones de posprocesamiento de datos de salida de ML (por ejemplo, devolver una notificación de programa maligno detectado, devolución de un objeto detectado con un cuadro delimitador), aprovisionamiento y almacenamiento del modelo de ML, y ejecución del motor de ML o del núcleo de ML
En algunas realizaciones, en base a lo que requiere la solicitud 150 en términos de aprendizaje automático (por ejemplo, detección de objetos) y/o en base a la comparación de los atributos (es decir, las capacidades de aprendizaje automático y/o características de recursos informáticos) para los diferentes dispositivos de red, el dispositivo de red 116 enruta la solicitud 150 al dispositivo de red 112 para que el dispositivo de red 112 pueda procesar la solicitud 150 a través de su núcleo de aprendizaje automático 114 (o enrutar la solicitud 150 a un dispositivo de red más adecuado para procesar la solicitud 150). Como se ilustra en la Figura 1, cada dispositivo de red tiene su propio núcleo de aprendizaje automático (es decir, 118, 114 y 108). Un "núcleo de aprendizaje automático" como se describe en la presente memoria se refiere a un módulo que representa o utiliza uno o más modelos de aprendizaje automático para tomar alguna decisión estadística o inferencia (por ejemplo, una predicción de clasificación usando un modelo de clasificación, una predicción de agrupamiento usando un modelo de agrupamiento, o predicción de regresión).
En un ejemplo ilustrativo del enrutamiento de la solicitud 150, el dispositivo de red 116 puede determinar que la solicitud 150 solicita procesar un objeto en un flujo de vídeo y que su núcleo de aprendizaje automático 118 (o núcleo de aprendizaje automático 108) es incapaz de procesar la solicitud 150 en base a la inclusión de un tipo de modelo diferente y/o hiperparámetros necesarios para procesar la solicitud. Por ejemplo, el núcleo de aprendizaje automático 118 y/o 108 puede configurarse para procesar solicitudes para detectar problemas específicos del dispositivo PHY, en contraposición a datos de imágenes. Sin embargo, el determinante de enrutamiento 140 puede determinar, a través de la lista de recursos 120, que el dispositivo de red 112 es capaz de procesar un objeto en un flujo de vídeo (o más específicamente, el núcleo de ML 114 incluye CNN u otra funcionalidad de modelo de máquina que está configurada para detectar objetos, y similares). Además, o alternativamente, se pueden utilizar las características reales de los recursos informáticos del dispositivo de red, tales como la utilización de la CPU y la capacidad/disponibilidad de la memoria. Por ejemplo, el dispositivo de red 112 puede tener actualmente menos utilización de CPU. De esta manera, el enrutamiento de la solicitud puede basarse en el aprendizaje automático o las capacidades centrales de ML y/o las características de los recursos informáticos de cada dispositivo de red. En consecuencia, el dispositivo de red 116 puede reenviar en respuesta la solicitud 150 al dispositivo de red 112. En respuesta, el dispositivo de red 112 procesa, a través del núcleo de ML 114, la solicitud (por ejemplo, genera un cuadro delimitador sobre un objeto en una imagen y lo amplía).
El dispositivo de red 112 envía en respuesta los datos procesados y/o una notificación 160 de vuelta al dispositivo del cliente 102 para ejecutar la solicitud 150. Por ejemplo, el dispositivo de red 112 puede hacer que se muestre un cuadro delimitador sobre un objeto de persona en movimiento mientras la persona se mueve en un televisor.
Como se describe en la presente memoria, los recursos de ML o "capacidades de ML" se pueden definir como los recursos lógicos de alto nivel que son responsables del soporte de aplicaciones de ML en una red. Esto puede incluir: a) una lista de redes de datos IP específicas denominadas redes de recursos de ML; b) las características de cada nodo de red en las redes de datos especificadas; y c) Los recursos de procesamiento de ML (disponibles) (es decir, capacidades de aprendizaje automático) del núcleo de ML integrado dentro de cada nodo de la red. En diversas realizaciones, las redes de recursos de ML están arraigadas en los clientes de ML donde residen las aplicaciones de ML y se forman dinámicamente de acuerdo con los requisitos de procesamiento de las aplicaciones de ML. En algunas realizaciones, para una red de recursos de ML específica, la lista de recursos 120 y/o la solicitud 150 pueden distribuirse y organizarse a través múltiples capas de red jerárquicas (conceptuales) (por ejemplo, capas de CPE, borde y nube).
En algunas realizaciones, las capacidades de aprendizaje automático incluyen las rutas de datos admitidas (para entrada/salida de ML), tipos de inferencia de Ml (por ejemplo, clases de redes neuronales e hiperparámetros correspondientes) y, para cada nodo de red de datos, velocidad de transmisión de datos, capacidad de procesamiento de ML, capacidad de seguridad, latencia, así como huella de memoria y ancho de banda. En algunas realizaciones, las capacidades de aprendizaje automático (por ejemplo, la lista de recursos 120) y/o la solicitud 150 se distribuyen a lo largo de una infraestructura de red de datos jerárquica multicapa y se comparten de manera óptima entre todos los clientes de ML que residen dentro de la infraestructura. En algunas realizaciones, el procesamiento de la solicitud 150 se logra enrutando dinámicamente las solicitudes de ML desde los clientes de ML (por ejemplo, los dispositivos del cliente 102) al dispositivo de red más adecuado que incluye las capacidades de red más adecuadas (a través de un respectivo núcleo de ML) que puede lograr el procesamiento de Ml solicitado bajo las condiciones específicas de la red (por ejemplo, características de recursos informáticos y/o capacidades de aprendizaje automático) en el momento de la solicitud. En algunas realizaciones, dichas decisiones de enrutamiento las toman salto a salto los servidores de alojamiento de recursos de ML (o, para acortar, servidores de ML) a lo largo de la ruta de datos desde el cliente de ML hasta el servidor de ML de destino, de acuerdo con estas políticas de enrutamiento configurables del servidor.
Varias realizaciones de la presente divulgación aprovechan un concepto llamado servidor proxy de ML como ejemplo de servidores ML. Realizaciones particulares están dirigidas a compartir eficientemente capacidades de ML (por ejemplo, la lista de recursos 120) a través de, por ejemplo, una infraestructura de red de datos jerárquica multicapa. En algunas realizaciones, un servidor proxy de ML es un dispositivo con núcleos de ML configurables que realiza procesamiento de ML multitarea en nombre de dispositivos IoT que tienen recursos de ML limitados por sí solos. En algunas realizaciones, las funciones de servidor proxy de ML se implementan en puertas de enlace de banda ancha residenciales (tales como módem de cable, línea de abonado digital (DSL) o puerta de enlace de red óptica pasiva (PON), nodo de acceso de banda ancha (por ejemplo, dispositivo PHY remoto DOCSIS/dispositivo MACPHY remoto, Multiplexor de acceso a línea de abonado digital (DSLAM), terminación de línea óptica (OLT)), o en cualquier dispositivo dedicado independiente en una red de área local o de acceso de banda ancha.
Algunas realizaciones utilizan cualquier protocolo de IoT, tal como el protocolo de transporte de telemetría MQ (MQTT), el protocolo de aplicación restringida (CoAP), versión 3 del protocolo de transferencia de hipertexto (HTTP/3), etc. Como ejemplo, varias realizaciones pueden utilizar el protocolo MQTT y el protocolo CoAP que se implementan comúnmente en dispositivos IoT. Aunque se describen varias realizaciones de la presente divulgación utilizando una red de cable, también es aplicable a otras infraestructuras tales como aquellas para tecnologías xDSL y xPON. Además, aunque varias realizaciones de la presente divulgación se dirigen a aplicaciones de ML residenciales masivas, especialmente aquellas que se pueden habilitar en dispositivos IoT residenciales, la funcionalidad también puede ser aplicable en un entorno empresarial u otros dispositivos del cliente que tengan características similares.
En algunas realizaciones, hay dos esquemas para procesar la solicitud del cliente 150, compartir capacidades de aprendizaje automático y/o compartir características de recursos informáticos (por ejemplo, la lista de recursos 120). El primer esquema puede incluir una asignación distribuida de modelos ML. Para una aplicación de ML determinada en un dispositivo IoT (por ejemplo, los dispositivos del cliente 102), se asigna dinámicamente (por ejemplo, en tiempo de ejecución) un servidor proxy de ML particular (por ejemplo, el dispositivo de red 112) para admitir una sesión de procesamiento de ML completa para la aplicación de ML. Por ejemplo, se puede distribuir un conjunto de modelos de ML entre los servidores Proxy de ML (por ejemplo, el dispositivo de red 116, 112 y 106) a través de las capas de borde/puerta de enlace (por ejemplo, capa 1 y capa N), y las solicitudes de ML (por ejemplo, que incluye la solicitud 150) se enrutan desde varias aplicaciones de ML y se enrutan a los servidores proxy o dispositivos de red que alojan sus modelos correspondientes (por ejemplo, la solicitud 150 solo es procesada por el núcleo de aprendizaje automático 114 del dispositivo de red 112 y ninguno de los otros dispositivos de red). La distribución de los modelos se puede realizar de tal manera que las capacidades de los servidores proxy de alojamiento sean compatibles con los modelos alojados.
En algunas realizaciones, el segundo esquema se denomina "partición distribuida de modelos ML". En estas realizaciones, múltiples servidores proxy de ML o dispositivos de red a través de la red operan colectivamente para realizar una tarea de inferencia o estadística de decisión determinada, utilizando los datos de entrada locales de un conjunto de dispositivos IoT distribuidos. En estas realizaciones, se pueden utilizar múltiples modelos de aprendizaje automático para generar una inferencia final o una estadística de decisión. Por ejemplo, un modelo clasificador alojado en un primer dispositivo de red puede ser un modelo multimodal (recibe entradas heterogéneas, tal como datos de imágenes y caracteres de lenguaje natural) que clasifica datos en base a predicciones realizadas por otros modelos. Este esquema también se denomina "inferencia distribuida". En estas realizaciones, los datos de entrada se distribuyen entre los dispositivos IoT (por ejemplo, dispositivos del cliente 102) mientras que el procesamiento de ML (por ejemplo, inferencia) asociado con un modelo de ML determinado se realiza colectivamente mediante múltiples servidores proxy de ML. Por ejemplo, la solicitud 150 puede ser procesada tanto por el núcleo de aprendizaje automático 118 del dispositivo de red 116 como por el núcleo de aprendizaje automático 114 del dispositivo de red 112. Este esquema es útil para aplicaciones de ML que requieren modelos de ML a gran escala y datos de entrada distribuidos en la red.
La Figura 2 es un diagrama esquemático de una arquitectura de entorno operativo de ejemplo 200 para la cual se emplean algunas realizaciones de la presente divulgación. En algunas realizaciones, el entorno operativo 100 representa la arquitectura del entorno operativo 200 o está incluido en el entorno operativo 100. Por ejemplo, los dispositivos de red 203, 205, 207 y/o 210 representan uno o más de los dispositivos de red de la Figura 1.
Como se ilustra en la Figura 2, varios núcleos o procesos de aprendizaje automático están alojados en varios dispositivos de servidores proxy y distribuidos en múltiples capas en una infraestructura de red de datos jerárquica. La Figura 2 ilustra que las capas incluyen una capa de nube, una capa de borde, una capa de CPE y una capa de IoT. La capa de IoT incluye dispositivos IoT, tales como la lavadora 220, el automóvil 222 y el sensor 224 (por ejemplo, un sensor ponible que mide la saturación de oxígeno). Se entiende que estos dispositivos IoT son solo representativos y que se puede utilizar cualquier dispositivo IoT adecuado, tal como un sistema de cerradura inteligente para el hogar, un sistema de iluminación inteligente, un asistente virtual (por ejemplo, un altavoz inteligente), un timbre inteligente y/o similares. Un "dispositivo IoT" o "dispositivo IoE" es cualquier artículo de fabricación o máquina adecuado que esté programado para aplicaciones particulares (por ejemplo, encender un termostato, lavar ropa, encender una luz) y que esté equipado con un transmisor para transmitir muestras o datos detectados a otro dispositivo de red para procesar los datos muestreados o detectados.
La capa de CPE (es decir, "equipo de las instalaciones del cliente") del entorno 200 incluye los dispositivos CPE 203, 205 y 207, que corresponden al hardware de telecomunicaciones típicamente ubicado en un hogar, negocio u otra ubicación de un cliente. Por ejemplo, los dispositivos CPE pueden incluir decodificadores de televisión por cable o satélite, línea de abonado digital (DSL) u otros enrutadores de Internet de banda ancha, estaciones base VoIp, teléfonos u otro hardware personalizado utilizado por un proveedor de servicios de telecomunicaciones en particular.
La capa de borde del entorno 200 incluye diferentes nodos de borde, incluido el nodo de borde 209. Un "nodo de borde" es un dispositivo informático de procesamiento local que está configurado para almacenar y procesar, a través de una red, un subconjunto o todos los conjuntos de datos recibidos o respectivos antes de enrutar los datos a la capa de nube.
En algunas realizaciones, la capa de borde representa una malla u otra red de centros de microdatos o nodos de borde que procesan y almacenan datos locales recibidos de la capa de IoT y envían o transmiten algunos o todos los datos a un dispositivo en la nube o un centro de datos corporativo. En algunas realizaciones, los nodos de borde almacenan todos los datos y solo transmiten datos seleccionados (por ejemplo, datos que alcanzan un umbral) o datos importantes a la capa de nube. Por ejemplo, los datos que no son importantes o los datos que están en un grupo que no alcanza un umbral no se transmiten. Por ejemplo, un sensor lidar, radar y/o cámara puede muestrear datos de mapas pero solo enviar una parte de los datos de mapas. En consecuencia, solo después de que se haya cumplido la condición o umbral, los nodos de borde transmiten los datos que cumplen o exceden el umbral a los nodos en la nube, de manera que los nodos en la nube puedan tomar acciones de respuesta, tal como notificar a un dispositivo del cliente indicando que se ha cumplido el umbral.
Los datos que no alcanzan o superan el umbral no se transmiten a la capa de nubes en realizaciones particulares. En diversas realizaciones en las que no se cumple el umbral o condición, se generan y transmiten periódicamente informes diarios o de otro período de tiempo desde los nodos de borde a la capa de nube que indican todas las lecturas de datos recogidas y procesadas en los nodos de borde. En algunas realizaciones, los nodos de borde actúan como un búfer o puerta de enlace entre su red y una red más amplia, tal como la ubicada en la capa de nube. En consecuencia, en estas realizaciones, los nodos de borde pueden asociarse con uno o más dispositivos de puerta de enlace que traducen protocolos de comunicación propios en otros protocolos, tales como protocolos de Internet.
La Figura 2 ilustra que los dispositivos de red 203, 205, 207, 209 y 211 tienen cada uno núcleos de aprendizaje automático 206, 204, 202, 208 y 210 respectivamente. En consecuencia, como se describe en la presente memoria, una solicitud se puede enrutar a dispositivos de red particulares basándose, al menos en parte, en las capacidades básicas de ML. Por ejemplo, una solicitud que se origina desde el dispositivo IoT 220 se puede enrutar al dispositivo de red 203, y desde el dispositivo de red 203 al nodo de borde 209, y desde el nodo de borde 209 al nodo en la nube 211 en base a las capacidades de aprendizaje automático del dispositivo de red 203, 209 y/o 211.
La Figura 2 ilustra una infraestructura de red de datos jerárquica. Ejemplos de dicha infraestructura de red incluyen una red de acceso de banda ancha. En estas redes de acceso de banda ancha, el dispositivo de servidor proxy puede ser, por ejemplo, una puerta de enlace de banda ancha residencial, un nodo de acceso de banda ancha o ambos en combinación. Ejemplos de sistemas de acceso de banda ancha incluyen cable, xDSL, xPON, etc.
Las Figuras 3A a 3C ilustran diferentes ubicaciones donde se puede colocar un dispositivo de servidor proxy de ML (por ejemplo, un dispositivo de red). Más específicamente, dado que los dispositivos de servidores proxy de ML incluyen un núcleo de aprendizaje automático, las Figuras 3A a 3C ilustran dónde pueden residir diferentes núcleos de aprendizaje automático. En algunas realizaciones, el entorno operativo 100 incluye o representa los componentes de las Figuras 3A a 3C. Por ejemplo, el(los) dispositivo(s) del cliente 102 pueden incluir el cliente de ML 302. En otro ejemplo, cada uno de los dispositivos de red 116, 112 y 106 puede estar representado por los dispositivos de red 306, 308 y 310.
La Figura 3A es un diagrama de bloques que ilustra cómo los servidores proxy de ML se integran en (o se conectan a) un módem por cable (CM), de acuerdo con algunas realizaciones. Específicamente, por ejemplo, el servidor proxy de ML 304 está integrado o conectado al dispositivo de puerta de enlace CM 306 (por ejemplo, el dispositivo de red 116 de la Figura 1 o en la capa de CPE de la Figura 2). En consecuencia, el dispositivo de puerta de enlace 306 sirve a los clientes de ML (por ejemplo, almacenados en uno o más dispositivos del cliente 102) conectados al dispositivo de puerta de enlace CM 306 (por ejemplo, a través de una LAN).
Como se ilustra en la Figura 3A, el dispositivo PHY remoto (RPD)/dispositivo(s) MAC remoto(s) (RMD) 308 y el dispositivo de plataforma de acceso por cable convergente (CCAP) 310 no incluyen la función de servidor proxy de ML. El(los) dispositivo(s) 308 corresponden a un enfoque de arquitectura de acceso distribuido (DAA). Estos dispositivos 308 alejan los componentes de la cabecera CMTS. PHY mueve la capa física al borde de la red, mientras que MAC-PHY, por ejemplo, mueve la capa de Control de acceso a medios (MAC) al borde. La capa PHY o capa física define las características físicas y eléctricas de una red. La capa física es responsable de gestionar el hardware que modula y demodula los bits de RF. La capa MAC es responsable de enviar y recibir tramas de RF. Normalmente, como parte de cada paquete de datos, hay un encabezado de datos de capa MAC que tiene información de direccionamiento así como opciones de paquete. La capa MAC implementa acuses de recibo de paquetes (ACK), seguimiento de paquetes para eliminar duplicados y similares.
La Figura 3B es un diagrama de bloques que ilustra que el servidor proxy de ML 348 está integrado o conectado al dispositivo RPD/RMD 350 (a diferencia de la puerta de enlace CM 346, como se ilustra en la Figura 3A), de acuerdo con algunas realizaciones. El servidor proxy de ML 348 sirve a los clientes de ML (por ejemplo, el cliente de ML 340) en dispositivos del cliente conectados a la puerta de enlace CM (por ejemplo, la puerta de enlace CM 346). La Figura 3C es un diagrama de bloques que ilustra varios servidores proxy de Ml 376, 378 y 384 que residen o están conectados a las puertas de enlace CM 380 y 374, así como al RPD/RMD 382.
Como se ilustra en las Figuras 3A, 3B y 3C, los recursos de procesamiento de ML (por ejemplo, núcleos de ML y/o dispositivos de servidores proxy de ML) se distribuyen entre varios dispositivos de red. Los servidores proxy de ML pueden servir a cada cliente de ML y pueden ser compartidos por los clientes de ML a través de los límites de la puerta de enlace de CM. En algunas realizaciones, el dispositivo de servidor proxy de ML puede integrarse con el CPE de la red de datos y los dispositivos de nodo, así como implementarse como un dispositivo independiente dedicado que se conecta a un CPE o un dispositivo de nodo y reside en la red LAN o de acceso de banda ancha. En algunas realizaciones, la Figura 3A, la Figura 3B y la Figura 3 indican que una solicitud se puede enrutar a los diferentes servidores proxy de ML o dispositivos de red en base a las capacidades de aprendizaje automático y/o las características de los recursos informáticos de los núcleos de ML dentro de cada servidor proxy de ML, como se describe por ejemplo, con respecto a la Figura 1.
La Figura 4 es un diagrama de bloques de un entorno operativo de ejemplo 400 para el cual se pueden emplear realizaciones de la presente divulgación. En algunas realizaciones, el entorno operativo 100 de la Figura 1 incluye o representa el entorno operativo 400 de la Figura 4. En el entorno operativo 400 de la Figura 4, la información de recursos de aprendizaje automático (por ejemplo, la lista de recursos 120) se distribuye en tres subredes: la subred de servidor proxy de ML en la nube 403, las subredes de servidores proxy de ML de borde (que incluyen las subredes 405, 407 y 409) y las subredes de servidor proxy de ML de puerta de enlace (que incluyen las subredes 411 y 413).
La subred de servidor proxy en la nube 403 es una subred de nivel superior que incluye un servidor proxy de ML en la nube 420 (por ejemplo, el dispositivo de red 106) y un conjunto de servidores proxy de ML de borde conectados 424, 428 y 432 (por ejemplo, el dispositivo de red 112). Los servidores proxy de M<l>de borde 424, 428 y 432 ponen a disposición del servidor proxy de ML en la nube 420 su propia información de recursos de ML (por ejemplo, la lista de subrecursos 120-1) y/o características de recursos informáticos. El servidor proxy de ML en la nube 420 expone y comparte su información de recursos de ML disponible (por ejemplo, la lista de subrecursos 120-2) y/o características de recursos informáticos con todos los servidores proxy de ML de borde 426, 428 y 432 en la subred de servidor proxy de ML de borde. En algunas realizaciones, dicha información de recursos de ML incluye la información de recursos propia del servidor proxy de ML en la nube 420, así como la expuesta por los servidores proxy de ML de borde 424, 428 y 432. En consecuencia, la siguiente información de recursos de ML está físicamente disponible en cada servidor proxy de ML de borde: (1) la información de recursos propia del servidor proxy de borde (por ejemplo, capacidades de ML e información de recursos informáticos, tal como utilización de CPU, ancho de banda de red, disponibilidad de memoria, etc.), (2) la información de recursos propia del servidor proxy de ML en la nube 420, (3) la información de recursos expuesta por el servidor proxy en la nube 420 de otros servidores proxy de borde, y similares. En algunas realizaciones, el servidor proxy de ML en la nube 420 es responsable de autenticar los servidores proxy de ML de borde (por ejemplo, 424, 428 o 432) que solicitan cualquier información de recursos de ML disponible del servidor proxy de ML en la nube 420. De esta manera, cada dispositivo de red dentro de la subred de servidor proxy de ML en la nube 403 puede incluir su propio cliente de ML (es decir, los clientes 422, 426, 430 y 434) para solicitar y obtener información de recursos de cada dispositivo de red de manera que cada dispositivo de red tenga una lista completa de la información de recursos de cada uno (por ejemplo, la lista completa de recursos 120). Esto permite que cada uno de los dispositivos de red 424, 428, 432 y 420 sean candidatos para enrutar solicitudes (por ejemplo, la solicitud 150) en base a la información de recursos.
Cada una de las subredes de servidor proxy de borde (405, 407 y 409) incluye un servidor proxy de ML de borde (es decir, 424, 428 y 432) y un conjunto de servidores proxy de ML de puerta de enlace 440 y 442 conectados. Cada uno de los servidores proxy de ML de puerta de enlace 440 y 442 en la subred pone a disposición de cada servidor proxy de ML de borde 424, 428 y 432 su propia información de recursos. Cada servidor proxy de ML de borde 424, 428 y 432 expone y comparte su información de recursos de ML disponible con todos los servidores proxy de ML de puerta de enlace 440 y 442 en la subred. Por ejemplo, dicha información de recursos puede incluir los recursos disponibles de cada servidor proxy de ML de borde (por ejemplo, consumo de memoria, CPU, etc.), así como aquellos agrupados desde todos los servidores proxy de ML de puerta de enlace 440 y 442. Por lo tanto, en algunas realizaciones, la siguiente información de recursos de ML está disponible de forma recursiva en cada servidor proxy de ML de puerta de enlace en las subredes 405, 407 y 409: una información de recursos propia de los servidores proxy de Ml de puerta de enlace (por ejemplo, lista de subrecursos 120-3), la información de recursos propia del servidor proxy de ML de puerta de enlace, la información de recursos propia del servidor proxy en la nube 402, los dispositivos de red expuestos por el servidor proxy de ML de borde de otros servidores proxy de ML de puerta de enlace en la subred del servidor proxy de ML de borde y las expuestas por el servidor proxy de ML de borde 402 de otros servidores proxy de ML de borde. En algunas realizaciones, cada servidor proxy de ML de borde es responsable de autenticar el servidor proxy de ML de puerta de enlace que solicita cualquiera de sus recursos de ML disponibles.
Las subredes de servidor proxy de puerta de enlace (411 y 413) incluyen los servidores proxy de ML de puerta de enlace 440 y 442 y un conjunto de clientes IoT conectados (por ejemplo, clientes 450 y 460). Los servidores proxy de ML de puerta de enlace 440 y 442 anuncian y comparten información de recursos con todos los clientes IoT en la subred. En algunas realizaciones, la siguiente información de recursos está disponible de forma recursiva en los servidores proxy de ML de puerta de enlace 440 y 442: La información de recursos propia del servidor proxy de ML de puerta de enlace 440 y 442, la información de recursos propia de los servidores proxy de borde conectados a la puerta de enlace (por ejemplo, 424), la información de recursos propia del servidor proxy de ML en la nube 420, la información de recursos expuesta por el servidor proxy de ML de borde (por ejemplo, 424) de otros servidores proxy de ML de puerta de enlace (por ejemplo, 440) en la subred de servidor proxy de borde, la información de recursos expuesta por el servidor proxy de ML en la nube 420 de otros servidores proxy de ML de borde (por ejemplo, 428). En esta subred y en algunas realizaciones, el servidor proxy de ML de puerta de enlace (por ejemplo, 440) es responsable de autenticar a los clientes IoT (por ejemplo, 460) que solicitan cualquiera de su información de recursos disponible.
Como se ilustra en la Figura 4, los clientes de ML, tales como 422, 426, 430, 434, 460 y 450 no solo están alojados en los dispositivos IoT (por ejemplo, los dispositivos del cliente 102), sino también en los servidores proxy de Ml de borde 424, 428 y 432, y el servidor proxy de ML en la nube 420. Cada cliente de ML puede ser responsable de solicitar que se procesen datos (por ejemplo, a través de la funcionalidad de aprendizaje automático) y/o solicitar información de recursos de otro dispositivo de red para su enrutamiento.
La Figura 5 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático, de acuerdo con algunas realizaciones. En algunas realizaciones, el dispositivo de red 116, 112 y/o 106 de la Figura 1 (y/o cualquier dispositivo de red descrito en la presente memoria) se representa como el dispositivo de red 502.
Como se ilustra en la Figura 5, varias realizaciones de la presente divulgación integran un núcleo de aprendizaje automático 508 en un procesador de red 506 en un sistema en un chip (SoC) de red de acceso. ASoC es un circuito integrado que integra todos o la mayoría de los componentes de un ordenador (por ejemplo, CPU, memoria, puertos de E/S, almacenamiento secundario, etc.) en un único sustrato o microchip. La integración de estos diversos componentes en un único sustrato o chip tiene varias ventajas, tal como un menor consumo de energía y una geometría más pequeña, lo que puede ser beneficioso cuando estos chips se integran en dispositivos más pequeños o de menor potencia, tal como decodificadores, enrutadores y similares.
El núcleo de aprendizaje automático 508 está configurado para procesar ML, dentro de la infraestructura de la red de acceso, cuyas capacidades o información se pueden compartir con otros dispositivos de red para permitir que los clientes de ML distribuidos a través de la red de acceso reciban datos en respuesta a sus solicitudes.
Los módulos de procesamiento utilizados por el núcleo de ML integrado 508 (por ejemplo, el núcleo de ML 114) incluyen un módulo de preprocesamiento 514, un módulo de inferencia local 512 y un módulo de posprocesamiento 510. Las fuentes de datos de SoC 516 se alimentan, como datos de entrada, al módulo de preprocesamiento 514. Ejemplos de fuentes de datos SoC 516 incluyen interfaces, módulos funcionales y entidades de software. En algunas realizaciones, los datos en las fuentes de datos de SoC 516 incluyen cualquier dato utilizado para entrenar un modelo de aprendizaje automático, tal como imágenes para la detección de objetos, firmas de programas malignos para detectar programas malignos y similares.
El módulo de preprocesamiento 514 está configurado para reformatear, normalizar y/o cualquier otra función de ingeniería de características de ML. Por ejemplo, el módulo de preprocesamiento 514 puede convertir datos de entrada sin procesar de las fuentes de datos de SoC 516 en un conjunto de datos limpios (por ejemplo, utilizable). En algunos ejemplos, el preprocesamiento puede incluir o ir seguido de una organización de datos (o manipulación de datos). Por ejemplo, un componente de entrenamiento puede utilizar la organización de datos durante el proceso de entrenamiento para generar un modelo entrenado. La organización de datos se puede utilizar para transformar y/o mapear los datos de entrenamiento sin procesar en un formato diferente que sea más apropiado y/o valioso para fines posteriores (por ejemplo, análisis). Por ejemplo, a medida que el componente de entrenamiento está entrenando el modelo (por ejemplo, después de una o más iteraciones), se puede determinar que un formato diferente para uno o más tipos de datos de entrenamiento sin procesar y/o datos de entrenamiento sea más adecuado para fines posteriores que el formato que se utiliza actualmente. Al reformatear estos datos, el rendimiento de un modelo entrenado puede ser más eficaz. En una ilustración de ejemplo, una palabra en lenguaje natural se puede cambiar a un número real (por ejemplo, 0 o 1) para representarlo como un valor característico en el espacio vectorial.
El módulo de inferencia local 512 es generalmente responsable de generar una estadística o inferencia de decisión. Por ejemplo, si se utiliza un modelo de clasificación, la inferencia local es una predicción de clasificación (por ejemplo, el objeto X se detecta como clase Y). Si se utiliza un modelo de agolpamiento (por ejemplo, K-medias), la inferencia local es una predicción de agolpamiento. Si se utiliza un modelo de regresión, la inferencia local es una predicción de regresión. En algunas realizaciones, la inferencia realizada por un modelo de ML se aprovisiona en la memoria no volátil del SoC de la red de acceso 504 o se descarga dinámicamente durante el tiempo de ejecución.
El módulo de posprocesamiento 510 es generalmente responsable de reformatear los datos de salida de inferencia de ML. Por ejemplo, el posprocesamiento puede incluir la anonimización de datos (por ejemplo, ofuscación, cifrado, enmascaramiento, etc.) de nombres de usuario u otros datos confidenciales (por ejemplo, números de seguridad social, direcciones, etc.).
En diversas realizaciones, los resultados del procesamiento por el núcleo de ML 508 se utilizan para activar directamente la interacción con dispositivos de usuario locales (por ejemplo, a través de una expresión de voz en un asistente virtual, vídeo en un televisor, gestos, gráficos, notificación de control remoto, etc.), tal como uno o más dispositivos del cliente 102. Por ejemplo, en respuesta al módulo de posprocesamiento 510 que realiza su funcionalidad, el dispositivo de red 502 puede alertar a un dispositivo de usuario local de eventos detectados (por ejemplo, un objeto o programa maligno detectado) y sugerir acciones que el usuario local puede tomar (por ejemplo, ampliar el objeto). En algunas realizaciones, el núcleo de ML 508 (o el dispositivo de red asociado 502) genera notificaciones en base a los resultados del procesamiento local del núcleo de ML 508 y transmite las notificaciones a un servidor en la nube (por ejemplo, 211 de la Figura 2) para su posterior análisis. En algunas realizaciones, dicho análisis puede ser para un dispositivo de red de acceso específico. En algunas realizaciones, las notificaciones de dispositivos de red de acceso multipolar también se pueden usar para análisis conjunto (por ejemplo, para análisis de correlación). El análisis de correlación puede analizar la fuerza de la relación entre dos o más variables continuas y medidas numéricamente, tal como la altura y el peso.
El núcleo de ML 508 se puede utilizar en una variedad de aplicaciones de ML. Por ejemplo, se pueden desarrollar aplicaciones utilizando núcleos de ML integrados para ayudar al operador de red a diagnosticar los problemas relacionados con la red para mejorar la eficiencia operativa y/o detectar una anomalía de audio/servicio para mejorar la satisfacción del cliente. En otro ejemplo, la información de recursos de ML disponible dentro de la infraestructura de la red de acceso se puede utilizar para admitir varias aplicaciones de ML que se ejecutan en los dispositivos CPE dentro de hogares residenciales o empresas, como se describe en la presente memoria. Las Figuras 6 a 10 a continuación ilustran diversas aplicaciones o funcionalidades de aprendizaje automático que un núcleo de aprendizaje automático puede realizar, de acuerdo con varias realizaciones.
La Figura 6 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático para detectar anomalías, de acuerdo con algunas realizaciones. En algunas realizaciones, el dispositivo de red 502 de la Figura 5 incluye los componentes y la funcionalidad descritos con respecto a la Figura 6.
Como se ilustra en la Figura 6, el núcleo de ML 608 procesa los datos de la red de pila de IP 616 para diagnosticar, a través de las solicitudes de procesamiento de M<l>(por ejemplo, la solicitud 150), una o más anomalías y/o actividades de la red de acceso. En estas realizaciones, el núcleo de ML 608 y la pila IP 615 (parámetros de datos de red) están ubicados conjuntamente en el mismo SoC de red de acceso 604. Específicamente, los parámetros de datos de la red IP dentro de la pila IP 616 se pasan al módulo de preprocesamiento 614, luego al módulo de inferencia local 614, luego al módulo de posprocesamiento 610 para generar una notificación o enviar datos.
Una "anomalía" puede ser una desviación dentro de los datos (por ejemplo, la pila IP 616) fuera de cierto umbral. Los ejemplos incluyen conectividad, filtración de contenido multimedia, intrusión maliciosa en la red y similares que están fuera de cierto umbral. Ejemplos de la inferencia local realizada por el módulo de inferencia local 612 pueden ser los siguientes. Un diagnóstico de un problema de conectividad para las subredes constituyentes (por ejemplo, red IoT, red doméstica, red de borde, etc.). Los problemas de conectividad, por ejemplo, pueden incluir una falla inesperada de la red en un dispositivo de red (por ejemplo, debido a una falla en una de las etapas SYN, ACK, SYN-ACK para el establecimiento de enlace), direcciones IP duplicadas, agotamiento de la dirección IP, problemas de DNS, una sola estación de trabajo no puede conectarse, etc. Otros ejemplos de una inferencia local realizada por el módulo de inferencia local 612 pueden ser una detección de fuga de contenido multimedia (por ejemplo, medios que se transmiten a dispositivos no autorizados), violaciones de privacidad de datos (por ejemplo, nombres, números de seguridad social u otra información de privacidad filtrada), detección de intrusiones maliciosas en la red (por ejemplo, detección de programa maligno, tal como un ataque de inyección), identificación de sitios web de origen y destino para el contenido multimedia de audio/vídeo que se transporta a través de la red de acceso.
La Figura 7 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático para detectar problemas PHY específicos del dispositivo y/o de toda la red, de acuerdo con algunas realizaciones. En algunas realizaciones, el dispositivo de red 502 de la Figura 5 incluye los componentes y la funcionalidad descritos con respecto a la Figura 7. Los parámetros de datos PHY en la interfaz PHY 716 se pasan al núcleo de ML 708, y el núcleo de ML 908 procesa la solicitud de procesamiento ML (a través del módulo de preprocesamiento 714, el módulo de inferencia local 712 y el módulo de posprocesamiento 712).
PHY es una forma abreviada de capa física o medio. Normalmente es la capa 1 de la pila OSI. Interconecta el medio físico con MAC y las capas superiores. El medio físico puede ser alambre de cobre, cable de fibra óptica, par trenzado y/o canal inalámbrico. Más específicamente, PHY es una unidad de circuitos que conecta un dispositivo de capa de enlace (por ejemplo, un MAC) a un medio físico, como se describió anteriormente. Un dispositivo PHY normalmente incluye una subcapa de codificación física (PCS) y una capa dependiente del medio físico (PMD). La PCS codifica y decodifica los datos que se transmiten y reciben. En consecuencia, se pueden realizar inferencias locales o estáticas de decisión a partir de modelos de aprendizaje automático para la PHY o el medio físico en base a diversas características del medio físico, PHY y/o MAC.
Ejemplos de la inferencia local realizada por el módulo de inferencia local 712 pueden ser los siguientes: detección y clasificación (por ejemplo, mediante un modelo de aprendizaje automático basado en clasificación) de deterioros de la red, tales como clasificaciones de: constelación de señales (por ejemplo, en base a símbolos), espectro de RF (por ejemplo, clasificación de un valor de RF particular), ruido del canal (por ejemplo, una clasificación de un valor o categoría de ruido particular, tal como un nivel de rango de frecuencia particular), una métrica de condición del canal de clasificación (por ejemplo, SNR, MER, etc.). Otros ejemplos incluyen la estimación y recomendación de parámetros operativos de la red (por ejemplo, margen SNR, perfil de carga de bits OFDM). Otros ejemplos incluyen la caracterización de las condiciones de la subred (por ejemplo, entorno de WiFi RF, condiciones del cableado del hogar, etc.). En algunas realizaciones, las predicciones de deterioro de la red incluyen la predicción del tiempo o la existencia de: retraso, fluctuación, pérdida de paquetes y similares. Ejemplos de problemas específicos del dispositivo incluyen una predicción de que un medio físico (por ejemplo, un cable) está dañado debido a "estrellas fugaces" o destellos en un vídeo, una imagen borrosa o borrosa (por ejemplo, la resolución de la pantalla está fuera de un umbral), sin imágenes o imágenes intermitentes (por ejemplo, fuera de un umbral) en un vídeo, sin sonido o sonido intermitente (por ejemplo, fuera de un umbral), colores fuera de un umbral de color ordinario, y similares.
La Figura 8 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático para detectar anomalías operativas particulares, de acuerdo con algunas realizaciones. En algunas realizaciones, el dispositivo de red 502 de la Figura 5 incluye los componentes y la funcionalidad descritos con respecto a la Figura 8. Específicamente, los parámetros de datos operativos de estado de los módulos funcionales de SoC 816 se pasan al módulo de preprocesamiento 814, luego al módulo de inferencia local 812, luego al módulo de posprocesamiento 210 para generar una notificación o enviar datos.
Como se ilustra en la Figura 8, el núcleo de ML 808 procesa los módulos funcionales de SOC 816 para diagnosticar o detectar, a través de las solicitudes de procesamiento de ML (por ejemplo, la solicitud 150), una o más anomalías en el SoC. Específicamente, los parámetros de datos operativos de estado de los módulos funcionales de SoC 816 se pasan al módulo de preprocesamiento 814, luego al módulo de inferencia local 814, luego al módulo de posprocesamiento 810 para generar una notificación o enviar datos basados en base a la solicitud de procesamiento de Ml . De esta manera, se pueden detectar anomalías en el chip (la red de acceso SoC 806) (por ejemplo, en un dispositivo de usuario).
Varios dispositivos tienen acceso o almacenan importantes datos personales confidenciales, incluida nuestra información bancaria y de tarjetas de crédito, contactos de correo electrónico, historial de navegación, ubicación e incluso información fisiológica íntima, tal como frecuencia cardíaca y patrones de sueño. Además de la información personalizada del usuario final, estos dispositivos contienen garantías altamente confidenciales de arquitectura, diseño y fabricación, tal como claves criptográficas y de gestión de derechos digitales (DRM), fusibles programables, instrumentación de depuración en el chip, bits de desactivación, etc. El acceso malicioso o no autorizado a activos seguros en un dispositivo informático puede resultar en robos de identidad, filtración de secretos comerciales de la empresa y similares. En consecuencia, las realizaciones descritas en la presente memoria pueden predecir que se producirá una anomalía particular en el chip (es decir, en la red de acceso SoC 806).
Los ejemplos incluyen la detección y predicción de una violación de seguridad particular, tal como la predicción de una firma de programa maligno particular (por ejemplo, en base a firmas de programas malignos históricas) que se almacena en un dispositivo. En algunas realizaciones, se pueden hacer recomendaciones de acciones de regulación térmica de SoC después de una predicción. Normalmente, la limitación térmica incluye limitar la frecuencia máxima a la que puede funcionar un SoC. La aceleración ayuda a garantizar que el SoC no alcance altas temperaturas. Cuando las temperaturas superan un umbral, el sistema puede acelerar el rendimiento, lo que reduce el calor. Con algunos programas malignos (por ejemplo, virus), por ejemplo, el resultado malicioso provoca altas temperaturas en los ordenadores. Sin embargo, como se describe en la presente memoria, algunas realizaciones pueden predecir que un programa maligno particular se almacena en un dispositivo en base a las características de firma de programa maligno aprendidas y acelerar el sistema en respuesta.
Algunas realizaciones realizan adicionalmente equilibrio de carga de tráfico o enrutamiento en base a la predicción de una anomalía particular a nivel de SoC. De esta manera, las solicitudes se pueden enrutar a un dispositivo de red diferente al de la anomalía detectada en el SoC 806 de la red de acceso para que no se inyecten datos maliciosos en las solicitudes y/o para reducir el calor o compartir de otro modo las cargas de solicitudes a través del equilibrio de carga.
La Figura 9 es un diagrama de bloques de un dispositivo de red de ejemplo que ilustra cómo funciona un núcleo de aprendizaje automático para detectar y rastrear objetos particulares, de acuerdo con algunas realizaciones. En algunas realizaciones, el dispositivo de red 502 de la Figura 5 incluye los componentes y la funcionalidad descritos con respecto a la Figura 9. La Figura 9 ilustra que el núcleo 908 de Ml se aplica para habilitar aplicaciones de ML de extremo a extremo con una canalización de tres (o más) etapas distintas de operaciones de inferencia, a través del módulo 918 de detección de objetos, el módulo 912 de seguimiento de objetos y el módulo de ampliación de objetos 910. Un "objeto", como se describe en la presente memoria, se refiere a un concepto lógico que representa cualquier entidad lógica con una firma única (por ejemplo, un conjunto de características) incorporada en los datos de entrada de ML. Por ejemplo, un objeto puede hacer referencia a un conjunto único de píxeles que representan un automóvil, un edificio u otro objeto en los datos de la imagen.
La detección de objetos es el proceso de detectar y clasificar objetos particulares. Las realizaciones particulares utilizan uno o más modelos de aprendizaje automático (por ejemplo, una red neuronal convolucional (CNN)) para generar un cuadro delimitador que define los límites y abarca un objeto de ordenador que representa las ubicaciones o características particulares de la ubicación (por ejemplo, edificios, paisaje, arbustos, etc.). Un cuadro delimitador describe o define los límites del objeto en términos de la posición (por ejemplo, coordenadas 2D o 3D) del cuadro delimitador (y también la altura y el ancho del cuadro delimitador). Por ejemplo, el cuadro delimitador puede ser un cuadro rectangular determinado por las coordenadas de sus ejesx y y.Esto proporciona a los sistemas de reconocimiento de objetos indicadores de la distinción espacial entre objetos para ayudar a detectarlos. En algunas realizaciones, se pueden usar y entrenar uno o más modelos de aprendizaje automático para generar cuadros delimitadores más estrictos para cada objeto. De esta manera, los cuadros delimitadores pueden cambiar de forma y los niveles de confianza para la clasificación/predicción se pueden aumentar en base al aumento de las sesiones de entrenamiento. Por ejemplo, la salida de una red neuronal convolucional (CNN) o cualquier otro modelo de aprendizaje automático descrito en la presente memoria puede ser uno o más cuadros delimitadores sobre cada característica de ubicación donde cada cuadro delimitador incluye la predicción de clasificación (por ejemplo, este objeto es un edificio) y el nivel de confianza (por ejemplo, 90 % de probabilidad).
En consecuencia, el módulo de detección de objetos 918 detecta y clasifica los objetos presentes en los datos de entrada de ML (por ejemplo, las fuentes de datos de SoC 916 y la solicitud de procesamiento de ML en tiempo de ejecución) detectando firmas asociadas con los objetos. En diversas realizaciones, la detección y clasificación incluye la determinación de la presencia de un objeto, así como cualquier atributo asociado con el objeto (por ejemplo, su ubicación geométrica y forma dentro de una imagen de entrada, los indicadores de calidad de la señal dentro de datos de entrada de una capa PHY, etc.).
El módulo de seguimiento de objetos 912 es generalmente responsable de rastrear un objeto en respuesta a la detección de objetos a través del módulo de detección de objetos 918. En diversas realizaciones, el módulo de seguimiento de objetos rastrea el objeto de forma continua o periódica a través de las muestras de datos de entrada. De esta manera, un cuadro delimitador, por ejemplo, se puede colocar continuamente sobre un objeto en varias ventanas o secuencias de tiempo. En algunas realizaciones, el seguimiento de objetos incluye determinar los atributos actualizados del objeto (por ejemplo, las nuevas ubicaciones y formas del objeto en el flujo de imágenes de entrada, los indicadores de señal actualizados de los datos PHY de entrada, muestras, etc.).
El módulo de ampliación de objetos 910 es generalmente responsable de ampliar el objeto detectado escalando los atributos asociados (por ejemplo, ampliando las imágenes rastreadas o los píxeles de las imágenes) y/o detectando atributos más detallados (por ejemplo, indicadores y métricas de calidad de señal de capa PHY adicionales u objetos de subimagen adicionales de un objeto más grande).
En algunas realizaciones, el módulo de posprocesamiento 910 incorpora los resultados de los módulos 918 y 912 y produce los resultados y/o notificaciones finales de salida de ML, aplicando cualquier regla de privacidad de datos necesaria. Por ejemplo, el dispositivo de red 902 puede hacer que los datos de imagen se transmitan a un dispositivo del cliente con un cuadro delimitador sobre un objeto en los datos de imagen mientras el objeto se está moviendo y con el objeto ampliado en relación con los otros datos de imagen fuera del objeto. Por ejemplo, un usuario puede desear obtener un primer plano de un corredor en particular para ver los movimientos biomecánicos del corredor. En consecuencia, un dispositivo del cliente puede recibir una solicitud para ampliar el corredor particular como se describe y en consecuencia reenviar la solicitud a un dispositivo de red que tiene las capacidades de aprendizaje automático particulares y/o recursos informáticos disponibles para procesar la solicitud, como se describe, por ejemplo, con respecto a la Figura 1.
La Figura 10 es un diagrama de serie temporal que ilustra que se puede detectar un tipo de flujo de vídeo y que se usa una ventana deslizante para determinar la presencia continua de un objeto dentro de un flujo de vídeo, de acuerdo con algunas realizaciones. En algunas realizaciones, la Figura 10 ilustra un ejemplo de procesamiento de ML de extremo a extremo mediante un núcleo de ML (por ejemplo, el núcleo de ML 908 de la Figura 9) para clasificar o predecir de otro modo un tipo de flujo de vídeo (por ejemplo, películas, deportes, noticias) utilizando recuentos de paquetes de series temporales (por ejemplo, cantidad de paquetes TCP/UDP recibidos/transmitidos a través de un dispositivo de puerta de enlace, tal como un módem por cable) como datos de entrada de ML, tal como se ilustra en la Figura 10. Una "serie temporal" se refiere a una serie de datos en cualquier duración o intervalo de tiempo, tal como incrementos de tiempo de X segundos.
La Figura 10 ilustra que los recuentos de paquetes de series temporales se muestrean para un conjunto determinado de tipos de flujos de vídeo y se utilizan para entrenar un modelo de ML, que clasifica o predice cualquier flujo de vídeo muestreada en uno de los tipos de flujos de vídeo (es decir, tipo de flujo de vídeo 1 (por ejemplo, deportes), tipo de un flujo de vídeo 2 (por ejemplo, películas), tipo de un flujo de vídeo 3 (por ejemplo, dibujos animados) y tipo de un flujo de vídeo 4 (por ejemplo, noticias)) en el conjunto de datos de entrenamiento. En algunas realizaciones, si la probabilidad de clasificación o predicción para un tipo de flujo de vídeo excede un cierto umbral (por ejemplo, 60 %), el objeto que representa el tipo de flujo de vídeo se considera "detectado". En algunas realizaciones, en respuesta al tipo de flujo de vídeo que se detecta, se rastrea ejecutando el modelo de ML sobre los datos de entrada de series temporales dentro de una ventana deslizante 1003, como se ilustra en la Figura 10. En algunas realizaciones, la ventana deslizante 1003 tiene la misma duración que la de los datos de entrada de una serie temporal. Por ejemplo, la serie temporal 0 puede tener una duración de 5 minutos. Asimismo, la ventana deslizante 1003 también puede tener una duración de 5 minutos. La ventana deslizante 1003 permite por lo tanto el seguimiento de un objeto dentro de un flujo de vídeo en una serie temporal particular para determinar las presencias continuas del objeto en el flujo de vídeo. En algunas realizaciones, el objeto rastreado se puede ampliar (por ejemplo, a través del componente de ampliación del objeto 910 de la Figura 9) activando procesamiento de ML adicional o estocástico para producir información más detallada sobre el objeto rastreado. Por ejemplo, en un evento deportivo de salto de vallas, se puede detectar un corredor en particular, con un cuadro delimitador sobre el corredor. Ciertas realizaciones pueden ampliar los píxeles dentro del cuadro delimitador o "ampliar" al corredor mientras el corredor corre un evento de salto de vallas a lo largo de una serie temporal.
En algunas realizaciones, el procesamiento estocástico o de ML adicional incluye indicar o clasificar los subtipos de un flujo de vídeo muestreado particular. Por ejemplo, un tipo de película puede tener un subtipo, tal como "dibujos animados", "película del viejo oeste", película de "acción", "comedia", "romántica", "drama" y similares. De manera similar, los tipos de eventos deportivos pueden tener subtipos, tales como "fútbol americano", "fútbol", "tenis", "hockey", "baloncesto", "béisbol" y similares. En algunas realizaciones, este procesamiento de ML de extremo a extremo se habilita mediante el acceso dirigido del núcleo de ML integrado a los datos requeridos dentro del SoC.
La Figura 11 es un diagrama esquemático que ilustra cómo se procesan los datos de series temporales (por ejemplo, flujos de vídeo) usando un modelo 1100 de Memoria a Largo Corto Plazo (LSTM), de acuerdo con algunas realizaciones. En algunas realizaciones, la LSTM 1100 representa la funcionalidad realizada a través de los núcleos de aprendizaje automático 908 de la Figura 9 y/o con respecto a la Figura 10. Aunque la Figura 11 ilustra una LSTM, se entiende que esto es sólo ilustrativo y que puede existir cualquier cantidad o tipo de componentes adecuados. Por ejemplo, en algunas realizaciones, se pueden usar alternativamente otros modelos (por ejemplo, una CNN o un modelo oculto de Markov (HMM)) en lugar de una LSTM.
La Figura 11 ilustra cómo se pueden agregar y concatenar secuencialmente vectores de características (por ejemplo, que representan flujos de vídeo). La función del modelo LSTM supone que un evento posterior (o un evento posterior en el tiempo, tal como la última característica de celda de una fila) depende de, y es una función de, uno o más eventos anteriores (por ejemplo, una imagen anterior) del mismo flujo de vídeo). En otras palabras, LSTM es un modelo que comparte pesos a lo largo del tiempo. En un contexto de codificación de tabla, el modelo puede aprender patrones de características de celda a lo largo del tiempo en base a observaciones pasadas de características de celda (por ejemplo, determinar que las primeras tres series temporales indican objetos específicos, por lo que la siguiente celda de la misma fila probablemente sea un objeto específico también).
El elemento o celda 1101 representa un vector de características que representa valores de series temporales de un conjunto de datos particular u otro elemento. En un ejemplo ilustrativo, la celda 1101 puede representar una serie temporal particular de un flujo de vídeo particular, como se describe con respecto a la Figura 10. El estado de la celda 1103 corresponde a la memoria selectiva de estados de celda pasados (es decir, toma datos (por ejemplo, valores vectoriales) que se han olvidado o ignorado y datos que se han recordado o conservado) y pasa los datos recordados a la siguiente celda o etapa (por ejemplo, una siguiente parte de un flujo de vídeo en una próxima serie temporal). Cuando los datos llegan a la última celda (por ejemplo, que representa la última parte de un flujo de vídeo en una última serie temporal), C<í>se combina linealmente conht+ide manera queht+ies el resultado final.
En diversas realizaciones, la primera operación se produce cuando la capa de puerta de olvido 1105 (una capa sigmoidea) determina qué valores vectoriales se eliminan del estado de la celda 1103, como se representa porft=o (Wf[ht-<1>,xt]+bf).Se necesitaht-i(por ejemplo, el estado de la celda anterior correspondiente a valores de características anteriores en una serie temporal anterior y una porción de flujo de vídeo) yxt(valores vectoriales actuales) y genera un número entre 0 y 1. Un valor cercano o dentro de un umbral de valor de 1 indica verdadero o mantener estos datos, mientras que un 0 o un valor dentro de un valor umbral de 0 indica olvidar o deshacerse de los datos. Un estado de la celda anterior indica al menos una parte de los valores vectoriales que se pasaron desde la celda anterior, a diferencia del estado general de la celda que indica al menos una parte de los datos que se pasaron para al menos una parte de las celdas hasta un punto particular.
En diversas realizaciones, la siguiente operación es determinar qué información se almacenará o moverá a lo largo del estado de la celda 1103, como se representa porit=o(W [ht-<1>,xt]+bi); Ct=tanh (Wc[ht-<1>,xt]+ be). Esto se produce a través de la capa de puerta de entrada 1107 (otra capa sigmoidea) y la capa tanh 1109. La capa de puerta 1107 determina qué valores de vector se actualizarán y la capa tanh 1109 genera un único vector de nuevos candidatos Ct. En una ilustración de ejemplo, las realizaciones pueden olvidar valores de características de entrada de tabla o representaciones vectoriales que son: duplicadas, ruidosas, están por debajo y/o por encima de cierto umbral, tal como que superan un número de palabras predefinidas u otra secuencia de caracteres, y/o contienen información extraña no analizadas ni codificadas, tal como ciertos símbolos y similares.
Ciertas realizaciones luego actualizan el antiguo estado de la celda 1103(Ct-i)al nuevo estado de la celdaCt.,representado porCt=ft *Ct<-1>+it * Ct.En consecuencia, el antiguo estado de la celda(Ct-i)se multiplica por 1105, olvidándose de los valores vectorizados descritos anteriormente. Luego, la capa de puerta de entrada 1107 * se añade la capa tanh 1109. En el último etapa, se determina qué se genera, que está representado porot=a (Wo [ht-<1>,xt]+bo) ;ht=at * tanh (Ct).El resultado se basa en el nuevo estado de la celda Ct, que es una versión filtrada del estado de la celda. Una capa sigmoidea determina qué partes del estado de la celda 1103(Cr-1)se generará. El estado de la celda 1103 se ejecuta a través de tanh para que los valores estén entre -1 y 1, representado por la salida finalht+i.Y esto se multiplica por la puerta sigmoidea 1111 para que solo se generen los valores necesarios. En diversas realizaciones, el resultado finalht+iincluye un vector de características concatenado o un vector contextualizado que agrega algunos o cada uno de los valores de características de flujo de vídeo de una o más series temporales, como se describe en la presente memoria. Por ejemplo, la salida puede ser un vector de características concatenado que represente cada serie temporal de un flujo de vídeo particular, con valores olvidados particulares.
Como alternativa (o además) al uso de una LSTM como se ilustra en la Figura 11, algunas realizaciones utilizan otros modelos, tales como un modelo oculto de Markov (HMM) y/o un modelo de mezcla gaussiana (GMM) para procesar datos basados en el tiempo, tales como flujos de vídeo.
La Figura 12 es un diagrama esquemático que ilustra cómo se genera una estadística de decisión usando uno o más modelos de aprendizaje automático, de acuerdo con algunas realizaciones. En algunas realizaciones, la Figura 12 representa los datos y la funcionalidad utilizados por cualquier núcleo de aprendizaje automático descrito en la presente memoria, tal como el núcleo de aprendizaje automático 508 de la Figura 5. La Figura 12 ilustra que una o más de las entradas en tiempo de ejecución 1203 se alimentan o procesan a través de los modelos de aprendizaje automático 1205 para generar una estadística de decisión en base a los modelos de aprendizaje automático 1205 que se han entrenado previamente en la entrada de entrenamiento 1215. Aunque la(s) entrada(s) en tiempo de ejecución 1203 indican entradas específicas, son sólo representativas y se pueden usar más o menos entradas.
El uno o más modelos de aprendizaje automático 1205 genera una o más predicciones estadísticas de decisión particulares 1207 (por ejemplo, una predicción de clasificación de un modelo clasificador, una predicción de agrupamiento de un modelo de agrupamiento o una predicción de regresión para un modelo de regresión) dada la entrada en tiempo de ejecución (s) 1203. Dicho(s) modelo(s) de aprendizaje automático 1205 pueden ser cualquier modelo adecuado de cualquier tipo adecuado. Por ejemplo, dichos modelos de aprendizaje automático pueden ser supervisados o no supervisados y pueden ser o incluir una red neuronal (por ejemplo, una red neuronal convolucional (CNN) o una red neuronal siamesa), árboles de decisión, bosques aleatorios, máquina de vectores de soporte, Naive Bayes o agrupamiento (por ejemplo, agrupamiento de K-medias). En consecuencia, aunque el/los modelo(s) de aprendizaje automático 1205 se representan como una red neuronal, se entiende que se puede utilizar de forma alternativa o adicional cualquier modelo de aprendizaje automático adecuado (o combinación de modelos). En un ejemplo ilustrativo de la(s) estadística(s) de decisión 1207, el(los) modelo(s) de aprendizaje automático 505 pueden agrupar o clasificar un vector de características que representa un flujo de vídeo de la(s) entrada(s) 1203 en una agrupación o grupo que representa un tipo de flujo de vídeo particular (por ejemplo, una transmisión de "deportes").
En ciertas realizaciones, las estadísticas de decisión 1207 pueden ser estrictas (por ejemplo, la pertenencia a una clase es un "sí" o "no" binario) o blandas (por ejemplo, hay una probabilidad adjunta a las etiquetas). Alternativa o adicionalmente, puede producirse el aprendizaje por transferencia. El aprendizaje por transferencia es el concepto de reutilizar un modelo previamente entrenado para un nuevo problema relacionado.
En algunas realizaciones, los modelos de aprendizaje automático 1205 convierten o codifican las entradas en tiempo de ejecución 1203 y/o las entradas de datos de entrenamiento 1215 en vectores de características correspondientes en el espacio de características. Un "vector de características" (también denominado "vector") como se describe en la presente memoria incluye uno o más números reales, tales como una serie de valores flotantes o números enteros (por ejemplo, [0, 1, 0, 0]) que representan uno u otros números reales, una palabra en lenguaje natural (por ejemplo, inglés) y/u otra secuencia de caracteres (por ejemplo, un símbolo (por ejemplo, @,!, #), una frase y/u oración, etc.). Dichas palabras en lenguaje natural y/o secuencias de caracteres corresponden al conjunto de características y se codifican o convierten en vectores de características correspondientes para que los ordenadores puedan procesar las características extraídas correspondientes. Por ejemplo, las realizaciones pueden analizar, tokenizar y codificar cada palabra del lenguaje natural dentro de las entradas 503 en tiempo de ejecución en un único vector de características.
En diversas realizaciones, los modelos de aprendizaje automático 1205 aprenden, mediante entrenamiento, parámetros o pesos para que características similares estén más cerca (por ejemplo, a través de distancia euclidiana o coseno) entre sí en el espacio de características. En algunas realizaciones, este entrenamiento se realiza de manera supervisada utilizando una función de pérdida (por ejemplo, pérdida de triplete o pérdida de GE2E) que intenta mapear características similares en una clasificación o agrupación. El entrenamiento puede producirse en cualquier entrada de datos de entrenamiento 1215 adecuada, tales como tipos de un flujo de vídeo etiquetados (por ejemplo, como se indica en la Figura 10), tipos de imágenes etiquetadas (por ejemplo, como se indica en la Figura 9), atributos de pila de IP etiquetados (por ejemplo, como se indica en la Figura 6), datos PHY etiquetados (por ejemplo, como se indica en la Figura 7) y/o datos de SoC etiquetados (por ejemplo, como se indica en la Figura 8). Algunas o cada una de estas entradas indican si los datos correspondientes son indicativos de una clase o agrupación particular en base a las características (por ejemplo, características de imagen, firmas de programa maligno, etc.) de las entradas.
Varias realizaciones pueden representar uno o más vectores de características que representan la(s) entrada(s) 1215 en el espacio vectorial agregando (por ejemplo, media/mediana o producto escalar) los valores del vector de características para llegar a un punto particular en el espacio de características. Por ejemplo, en contextos de aprendizaje supervisado, un componente de entrenamiento puede recibir una firma de programa maligno particular y una etiqueta específica, tal como "versión Rootkit X" y similares, que indican que las características de la entrada de datos de entrenamiento son indicativas del programa maligno Rootkit en particular.
Las realizaciones pueden luego ejecutar las entradas de entrenamiento 1203 con las etiquetas correspondientes a través de los modelos de aprendizaje automático 1205 para que se aprendan diferentes valores y pesos de características de acuerdo con la etiqueta. De esta manera, cuando se reciben entradas de entrenamiento 1215, se pueden aprender los pesos o características correspondientes. En algunas realizaciones, el componente de entrenamiento de los modelos de aprendizaje automático 1205 aprende características de las entradas de datos de entrenamiento 1215 y las pondera de manera sensible durante el entrenamiento. Un "peso" en el contexto del aprendizaje automático representa la importancia o significancia de una característica o valor de característica para la predicción. Por ejemplo, cada característica puede estar asociada con un número entero u otro número real donde cuanto mayor sea el número real, más significativa es la característica para su predicción. En algunas realizaciones, un peso en una red neuronal u otra aplicación de aprendizaje automático puede representar la fuerza de una conexión entre nodos o neuronas desde una capa (una entrada) a la siguiente capa (una salida). Un peso de 0 puede significar que la entrada no cambiará la salida, mientras que un peso mayor que 0 cambia la salida. Cuanto mayor sea el valor de la entrada o cuanto más cerca esté el valor de 1, más cambiará o aumentará la salida. Asimismo, puede haber ponderaciones negativas. Las ponderaciones negativas reducen proporcionalmente el valor de la producción. Por ejemplo, cuanto más aumenta el valor de la entrada, más disminuye el valor de la salida. Las ponderaciones negativas pueden contribuir a puntuaciones negativas.
En otro ejemplo ilustrativo del componente de entrenamiento, algunas realizaciones aprenden una incorporación de vectores de características en base al aprendizaje (por ejemplo, aprendizaje profundo) para detectar características similares entre las entradas de datos de entrenamiento 1215 en el espacio de características usando medidas de distancia, tales como coseno (o distancia euclidiana). Por ejemplo, cada entrada de datos de entrenamiento etiquetada 1215 se convierte de una cadena u otra forma en un vector (por ejemplo, un conjunto de números reales) donde cada valor o conjunto de valores representa las características individuales del resultado de búsqueda candidato o consulta en el espacio de características. El espacio de características (o espacio vectorial) es una colección de vectores de características, cada uno de los cuales está orientado o incrustado en el espacio en base a una similitud agregada de características del vector de características. A lo largo de varias etapas o épocas de entrenamiento, se pueden aprender o ponderar ciertas características de cada entrada 1215. Por ejemplo, para una primera firma de programa maligno etiquetada, la característica más destacada puede ser un primer comportamiento (por ejemplo, una URL particular), mientras que otras características cambian considerablemente o no están presentes, tal como que provocan la aparición de anuncios emergentes. En consecuencia, los patrones del primer comportamiento pueden ponderarse (por ejemplo, una conexión nodal se fortalece hasta un valor cercano a 1), lo que es indicativo de que la etiqueta adopta esta característica (mientras que otras conexiones nodales que representan el segundo conjunto de síntomas se debilitan hasta un valor más cercano a 0). De esta manera, las realizaciones aprenden pesos correspondientes a diferentes características, de manera que características similares encontradas en las entradas contribuyan positivamente a las predicciones.
En diversas realizaciones, después del entrenamiento del modelo de aprendizaje automático 1205 en la entrada de datos de entrenamiento 1215 (y/o prueba), el modelo de aprendizaje automático 1205 (por ejemplo, en un estado implementado) recibe entrada(s) en tiempo de ejecución 1203 (por ejemplo, recibidas de dispositivos IoT). En diversas realizaciones, las entradas 1203 se convierten automáticamente en uno o más vectores de características y se asignan en el mismo espacio de características que los vectores que representan las entradas de datos de entrenamiento 1215. En respuesta, algunas realizaciones determinan una distancia (por ejemplo, una distancia euclidiana) entre uno o más vectores de características y otros vectores que representan la(s) entrada(s) de datos de entrenamiento 1215, que se usa para generar la(s) estadística(s) de decisión 1207.
En un ejemplo ilustrativo de la estadística de decisión 1207, un vector de características que representa valores de píxeles de una imagen de las entradas en tiempo de ejecución 1203 puede ser el más cercano a un vector de características que representa una clasificación o agrupación de "personas". En consecuencia, en este ejemplo, la estadística de decisión 1207 puede ser una predicción de que el objeto asociado con la(s) entrada(s) en tiempo de ejecución 1203 se clasifica como una "persona" (por ejemplo, en base a la comparación de características de una imagen en tiempo de ejecución con imágenes de entrenamiento).
La Figura 13 es un diagrama de bloques de un entorno informático de topología de ejemplo 1300 de dispositivos de servidores proxy de ML y clientes de ML en una infraestructura de red de acceso de banda ancha, de acuerdo con algunas realizaciones. En algunas realizaciones, el entorno informático 100 de la Figura 1 representa el entorno 1300. En algunas realizaciones, el entorno informático 1300 representa cualquier entorno adecuado descrito en la presente memoria, tal como el entorno informático 200 de la Figura 2. Una red de acceso de banda ancha proporciona acceso a Internet de alta velocidad a través de múltiples tipos de tecnologías, tal como fibra óptica inalámbrica, cable, DSL y satélite. Las velocidades mínimas de carga normalmente son un mínimo de 25 Mbps de descarga y 3 Mbps.
El entorno 1300 incluye el dispositivo IoT 1302, los dispositivos de puerta de enlace 1304, 1312, los dispositivos de borde 1306, 1310 y el servidor en la nube 1308, cada uno de los cuales está acoplado comunicativamente a través de las redes 1322, 1338, 1340 y 1342. En algunas realizaciones, los dispositivos de servidores proxy de ML (es decir, 1306, 1308, 1310) primero anuncian o comparten sus recursos de Ml disponibles (es decir, capacidades de aprendizaje automático y características de recursos informáticos). Posteriormente, un dispositivo del cliente de ML (por ejemplo, 1302) con los dispositivos de servidores proxy de ML se conecta (por ejemplo, 1306), y entre los dispositivos de servidores proxy de ML, para establecer una sesión de ML entre la aplicación de ML y un recurso de ML seleccionado. Posteriormente, un dispositivo del cliente de ML y un dispositivo de servidor proxy de ML transportan datos de aplicación de ML en la ruta de datos de aplicación de ML entre la aplicación de ML en el dispositivo del cliente de ML y el recurso ML en el servidor proxy seleccionado.
Como se ilustra en la Figura 13, cuando los datos de una aplicación de ML se transportan a lo largo de una ruta de datos, varios componentes los procesan. Por ejemplo, el dispositivo IoT 1302 envía una solicitud para procesar datos a través de la aplicación de ML 1314. Dicha solicitud se procesa y codifica a través de la pila de protocolos IoT 1316, la pila de red de área local 1318 y luego a través de la capa MAC/PHY de nivel inferior 1320. Una pila de protocolos de IoT se considera una extensión del modelo de protocolo en capas TCP/IP. Una pila de protocolos de IoT incluye una capa física, una capa de enlace, una capa de red, una capa de transporte, una capa de protocolo de aplicación y una capa de servicios de aplicación. En respuesta a la solicitud procesada por la capa MAC/PHY 1320, se enruta, a través de la red de área local doméstica 1322 (por ejemplo, ordenadores conectados a través de Ethernet), a la capa MAC/PHY 1334, que luego decodifica parcialmente el mensaje y pasa el mensaje a la pila de protocolos de red de área local 1330, que decodifica aún más el mensaje y lo pasa a la pila de protocolos de IoT 1328, que convierte el mensaje a un formato que el componente de gestión de servicios de ML 1326 puede procesar. Como se ilustra en la Figura 13, cada dispositivo de red tiene componentes similares para buscar, codificar y decodificar una solicitud correspondiente.
Cada dispositivo de red incluye componentes de gestión de servicios de ML (por ejemplo, 1326), que es responsable de gestionar la información de recursos de ML (por ejemplo, 1304), así como de enrutar solicitudes de clientes particulares. Por ejemplo, antes de una solicitud del cliente a través de la aplicación de ML 1314, el dispositivo de puerta de enlace 1306 puede compartir su información de capacidad de ML e información de recursos informáticos con los dispositivos 1324, 1308 y 1310 a través del componente de gestión de servicios de ML 1326. Cada uno de los otros dispositivos también puede compartir su información de capacidad de ML e información de recursos informáticos con los otros dispositivos a través de su respectivo componente de gestión de servicios de ML 1326. Posteriormente, por ejemplo, la aplicación de ML 1314 puede emitir una solicitud para procesar datos a través de uno o más procesos de aprendizaje automático. Cuando dicha solicitud se enruta al dispositivo de red 1306, el componente de gestión de servicios de ML 1326 puede examinar sus propios recursos de ML 1304, así como otros recursos de ML de los otros dispositivos de red para determinar a qué dispositivo de red enrutar la solicitud.
La Figura 14 es un diagrama de secuencia de ejemplo que ilustra dispositivos de red que comparten información de recursos de ML, de acuerdo con algunas realizaciones. En la etapa 1 de la Figura 14, cada dispositivo de red (es decir, 1402, 1404 y 1406) anuncia sus servicios de ML -anuncio de descubrimiento de servicios de ML 1408- (por ejemplo, información de capacidad de aprendizaje automático y/u otra información de recursos informáticos) a la otra red dispositivo a la que están conectados (por ejemplo, acoplados comunicativamente). Esta comunicación estricta de los dispositivos de red conectados tiene en cuenta que, en algunas realizaciones, los servicios de ML solo permiten que los dispositivos secundarios se actualicen únicamente desde el dispositivo principal al que están conectados. La red de banda ancha, por ejemplo, es una red jerárquica (física) estricta donde los dispositivos "de niños" solo pueden comunicarse directamente con su dispositivo "del padre" (por ejemplo, el dispositivo IoT con los GW, los<g>W con los dispositivos de borde y los dispositivos de borde al Servidor en la nube). En estas realizaciones, debido a la arquitectura jerárquica y por razones de escalabilidad, los dispositivos secundarios no tienen conocimiento de toda la red de recursos de ML (por ejemplo, la lista de recursos de enrutamiento 120) sino solo de los recursos de ML anunciados por su dispositivo principal. En varios casos, un dispositivo IoT siempre enviará una solicitud de recurso de ML a su propio GW, que podría manejar la solicitud con sus propios recursos locales (por ejemplo, el núcleo de ML) o propagar la solicitud a su dispositivo principal (por ejemplo, el Borde que, a su vez, podría hacer lo mismo, pero esto estará oculto para los dispositivos de los niños). En consecuencia, cada dispositivo de red a lo largo de la cadena toma sus propias determinaciones de "enrutamiento" para establecer el canal de servicio virtual entre la aplicación de ML y el modelo de ML.
En la etapa 2 de la Figura 14, en respuesta a la recepción del mensaje de anuncio de servicio de ML de la etapa 1, los respectivos dispositivos de red (es decir, 1404 y 1406) propagan el mensaje (el anuncio de servicio de ML) a los dispositivos correspondientes. Continuando con la etapa 2, en respuesta a recibir un mensaje de anuncio de servicio de ML desde el servidor en la nube 1406, los dispositivos de borde 1404 propagan el mensaje a los dispositivos GW 1402 a los que están conectados. En la etapa 3, en respuesta a la recepción del mensaje de anuncio del servicio de ML, los dispositivos de red correspondientes (es decir, 1404 y 1406) almacenan la información del servicio de ML anunciada en sus correspondientes bases de datos del servicio de ML. En la etapa 4, en respuesta a la recepción de un mensaje de anuncio de servicio de ML, el servidor proxy de ML 1402 (y todos los dispositivos GW) almacenan la información de ML anunciada en sus bases de datos de servicios de ML.
La Figura 15 es un diagrama de secuencia de ejemplo que ilustra dispositivos de red que establecen un canal de servicio de ML y procesan una solicitud del cliente para procesar datos a través de uno o más procesos de aprendizaje automático, de acuerdo con algunas realizaciones. En algunas realizaciones, las etapas de la Figura 15 se producen después de las etapas de la Figura 14 y los dispositivos de red son los mismos dispositivos de red. Por ejemplo, el servidor proxy de ML 1402 puede representar el servidor proxy de ML 1504, el servidor proxy de ML 1404 puede representar el servidor proxy de ML 1506, el servidor proxy de ML 1406 puede representar el servidor proxy de ML 1508.
Después de que la capa de anuncio de descubrimiento de servicio de ML (por ejemplo, Figura 14) realice su funcionalidad, la capa de establecimiento de canal de servicio de ML 1530 se realiza para establecer una sesión de comunicación entre dispositivos del cliente y uno o más dispositivos de red y tomar decisiones de enrutamiento para solicitudes. En diversas realizaciones, el canal de comunicación es una conexión virtual de extremo a extremo entre el dispositivo del cliente de la aplicación de ML y el dispositivo que ejecuta el modelo de ML para la aplicación particular. Como tal, después de que se establece el canal, los dispositivos de red entre estos dos extremos actúan como puentes. Específicamente, según la etapa 5 (que se produce después de la etapa 4 en la Figura 14), la aplicación de ML en los dispositivos IoT 1502 solicita el servicio de ML a los servidores proxy de puerta de enlace 1504 a los que están acoplados comunicativamente. Según la etapa 6, en respuesta a recibir la solicitud de servicio de ML desde los dispositivos IoT 1502, los dispositivos GW 1504 consultan sus bases de datos de servicios de ML para recuperar una lista de los servidores proxy de ML (dispositivos de red) que admiten este servicio (por ejemplo, detección de objetos) y selecciona el más adecuado. Según la etapa 7, si el dispositivo GW en la etapa 6 no es el servidor proxy de ML seleccionado, el servidor proxy de ML establece un canal lógico con el servidor proxy de ML seleccionado a través del dispositivo de borde y la red de enrutamiento del servidor en la nube.
Según la etapa 8, en respuesta a la recepción del mensaje de establecimiento de canal lógico, si los dispositivos de borde 1506 y el servidor en la nube 1508 son los servidores proxy de ML a los que se dirige el mensaje, los dispositivos de borde 1506 y el servidor en la nube 1508 configuran el canal con su propia entidad de servicio de ML. Según la etapa 9, si los dispositivos de borde 1506 y el servidor en la nube 1508 no son los servidores proxy de ML direccionados por el mensaje, los dispositivos de borde 1508 y el servidor en la nube 1508 reenvían el mensaje de establecimiento de canal de servicio de ML recibido al servidor proxy de ML direccionado.
En respuesta a que la capa de establecimiento de canal de servicio de ML 1530 realice su funcionalidad, los datos de aplicación de ML en realidad se procesan a través de la capa de datos de aplicación de ML 1540. Específicamente, en la etapa 10, las aplicaciones de ML en los dispositivos IoT 1502 intercambian datos de entrada y datos de salida (toman algunos datos como parámetros, devuelven algunos datos como salida) para un servicio de ML determinado con los servidores proxy de puerta de enlace 1506 a los que están acoplados comunicativamente. Según la etapa 11, si el canal lógico para el servicio de ML se estableció (por ejemplo, a través del establecimiento del canal de servicio de ML 1530) con un servicio de ML local, los dispositivos de puerta de enlace 1504 intercambian datos de entrada y datos de salida de aplicaciones con e(los) dispositivo(s) IoT 1502. Según la etapa 12, si el canal lógico para el servicio de ML no se estableció con el servicio de ML local, los dispositivos de puerta de enlace 1504 representan o enrutan la entrada de datos y salida de datos de aplicación de ML a los servidores proxy de ML remotos a través del dispositivo de borde (s) 1506 y la red de enrutamiento del servidor en la nube 1508.
Según la etapa 13, si el canal lógico para el servicio de ML se estableció con su servicio de ML local, los dispositivos de borde 1506 y los servidores proxy en la nube 1508 intercambian la entrada de datos y salida de datos de su aplicación con los dispositivos de puerta de enlace 1506. Según la etapa 14, si no se estableció el canal lógico para el servicio de ML, los dispositivos de borde 1506 y el servidor en la nube 1508 representan o enrutan la entrada de datos y salida de datos de aplicación de ML a los dispositivos de puerta de enlace remota del canal 1504 a los que están acoplados comunicativamente. Según la etapa 15, si el canal lógico se estableció con un servicio de ML local, los dispositivos de puerta de enlace 1504 intercambian datos de entrada y datos de salida de aplicaciones de ML con los servidores proxy de ML de puerta de enlace remota a través de la red de enrutamiento de los dispositivos de borde 1506.
La Figura 16 es un diagrama de bloques que ilustra cómo se enruta una solicitud de ML desde un cliente a un dispositivo del cliente de destino, de acuerdo con algunas realizaciones. Como se describe en la presente memoria, los recursos de procesamiento de ML (es decir, capacidades de ML y características de los recursos informáticos) se distribuyen por toda la red y se comparten de manera óptima entre todos los clientes de ML que residen dentro de la red de ML. El intercambio óptimo se logra enrutando la solicitud de ML desde los clientes de ML a los servidores proxy de ML o dispositivos de red más adecuados que alojan los recursos de ML para procesar las solicitudes. En algunas realizaciones, dichas decisiones de enrutamiento se toman de acuerdo con las políticas de enrutamiento configuradas en los servidores proxy de ML a lo largo de la ruta de datos desde el cliente de ML hasta el servidor proxy de ML de destino que aloja los recursos de ML correspondientes.
La Figura 16, por ejemplo, ilustra un servidor proxy intermedio 1606 entre el servidor proxy de ML 1604 que está conectado directamente con el cliente de ML solicitante 1602 y el servidor proxy de ML de destino 1609. Específicamente, la Figura 16 ilustra que el cliente de ML solicitante 1602 (por ejemplo, un dispositivo IoT o dispositivo del cliente 102), después de leer un almacén de datos de descubrimiento de servidor proxy de ML 1602 1, enruta la solicitud de ML 1603 al servidor proxy de ML 1604 directamente conectado (por ejemplo, dispositivo de red 116). El servidor proxy 1604 puede usar las políticas de enrutamiento 1604-1 para enrutar la solicitud 1605 al servidor proxy de ML intermedio 1606, que puede usar sus políticas de enrutamiento 1606 para enrutar la solicitud de ML 1607 al servidor proxy de ML de destino 169.
La "ruta óptima" para el enrutamiento y las "políticas de enrutamiento" como se describen en la presente memoria pueden referirse a cualquier política adecuada como se describe en la presente memoria, tales como políticas basadas en capacidades de aprendizaje de ML y/o características de recursos informáticos (es decir, recursos de ML). En algunas realizaciones, las políticas de enrutamiento predeterminadas se asignan a los servidores proxy de ML durante la inicialización (por ejemplo, anuncios de servicios de ML) y se pueden configurar dinámicamente durante las operaciones de acuerdo con múltiples factores, incluido el estado del tráfico de la red y el estado operativo de los servidores proxy de ML, tales como cargas de procesamiento de ML (por ejemplo, en términos de consumo de CPU y memoria). En algunas realizaciones, las políticas de enrutamiento tienen en cuenta los factores de optimización (que pueden incluirse todos en la lista de recursos de enrutamiento 120) tales como: latencias para el procesamiento de ML y la transmisión de datos (requeridos por los clientes de ML); capacidades de procesamiento de ML (por ejemplo, modelos de ML admitidos y rendimiento del modelo); prioridades de las solicitudes de ML, que pueden asignarse por cliente de ML o por aplicación de ML; requisitos de QoS (incluidos requisitos de tiempo real, latencia y velocidad de datos) de las aplicaciones de ML; y ubicaciones de entrada y salida de ML dentro de la red.
En algunas realizaciones, las decisiones de enrutamiento están determinadas por el determinante de enrutamiento 104 de la Figura 1. En algunas realizaciones, las decisiones de enrutamiento se toman salto por salto, comenzando en el servidor proxy de ML directo (por ejemplo, 1604) con el que está conectado el cliente de ML solicitante. Este servidor proxy decide si puede procesar o no la solicitud del cliente de ML de acuerdo con sus políticas de enrutamiento configuradas. De lo contrario, selecciona otro servidor proxy de ML (por ejemplo, 1606) con el que está conectado directamente, de nuevo de acuerdo con las políticas de enrutamiento configuradas, y reenvía la solicitud al servidor proxy de ML seleccionado. Dichas decisiones encadenadas se propagan hacia el servidor proxy de ML de destino (por ejemplo, el servidor proxy 1609) que procesará la solicitud original.
Las solicitudes de ML (por ejemplo, 1603) de los clientes de ML contienen información sobre las aplicaciones de ML solicitantes. Esta información permite decisiones de enrutamiento dependientes de la aplicación, como se describe anteriormente. En algunas realizaciones, cuando la solicitud se reenvía de un salto al siguiente, puede incluir cualquier información de enrutamiento apropiada que refleje las decisiones de enrutamiento acumulativas que se han tomado hasta el momento, de manera que el siguiente salto pueda tener en cuenta dicha información al realizar su propia decisión de enrutamiento. Como ejemplo, la solicitud de ML original 1603 del cliente de ML 1602 puede contener un presupuesto vinculado a latencia que es requerido por la aplicación de ML. En este caso, cada servidor proxy de ML determina la latencia para su procesamiento interno, así como la latencia para transmitir la solicitud al siguiente salto que seleccionó. Luego deduce estas latencias del presupuesto limitado de latencia en la solicitud de ML antes de transmitir la solicitud al siguiente salto. Otro ejemplo de la información de enrutamiento agregada a la solicitud de ML son las direcciones de enrutamiento (por ejemplo, dirección IP, número de puerto y nombre de dominio) de todos los dispositivos de red a lo largo de la ruta de extremo a extremo desde el cliente de Ml solicitante hasta el servidor proxy de ML de destino 1609. Esta información se puede utilizar para enrutar la respuesta desde el servidor proxy de ML de destino 1609 de regreso al cliente de ML solicitante 1602.
La Figura 17 es un diagrama de bloques que ilustra la red de ML (a) y la red de ML (b) en una infraestructura de red de acceso de banda ancha por cable, de acuerdo con algunas realizaciones. La Figura 17 ilustra que los decodificadores de protocolo de Internet (IP STB) 1711 y 1721 son los clientes de ML 1709 y 1719 (por ejemplo, los dispositivos del cliente 102) respectivamente, mientras que los módems de cable 1707 y 1717 y el dispositivo PHY remoto (RPD) 1705 y 1715 son servidores proxy de ML (por ejemplo, los dispositivos de red 116, 112 y 106).
Suponiendo que hay dos aplicaciones MML en el IP STB, para el cliente de ML 1709, se incluye la siguiente información en las solicitudes de ML: (1) el presupuesto para las latencias totales de procesamiento y comunicación incurridas por los representantes de ML, indicado por L; y (2) el modelo de ML requerido, indicado por Ma. Si se supone que el servidor proxy de ML dentro de los módems de cable 1707 y/o 1717 admite solo el modelo Ma, y la latencia de procesamiento total para este modelo dentro del modelo de cable es Lcm < L, el propio módem de cable puede atender las solicitudes desde el cliente de ML 1709, sin reenviar las solicitudes a ningún otro servidor proxy.
Para el cliente de ML 1719 (correspondiente a la red de recursos de ML (b)), la siguiente información se incluye en las solicitudes de ML: (1) el presupuesto para las latencias totales de procesamiento y comunicación incurridas por los representantes de ML, indicado por L; y (2) el modelo de ML requerido, indicado por Mb. En diversas realizaciones, se supone que el servidor proxy de ML dentro del RPD 1715 admite el modelo Mb y la latencia de procesamiento dentro del RPD 1715, y la latencia de comunicación entre el módem por cable 1717 y el RPD 1715 es Lrpd y Lcom, respectivamente. Además, en algunas realizaciones se supone que Lcm Lrpd Lcom < L. En este caso, el módem por cable 1717 en sí no puede atender las solicitudes del cliente de ML 1719, ya que no admite el modelo Mb. En algunas realizaciones, a través del proceso de descubrimiento de recursos de ML, como se describe en la presente memoria (por ejemplo, 1420 de la Figura 14), el servidor proxy de ML dentro del modelo de cable 1717 se da cuenta de que el modelo Mb es compatible con el RPD conectado directamente (por ejemplo, conectado directamente). Por lo tanto, el módem por cable 1717 reenvía la solicitud para esta aplicación al RPD 1715, con Lcom disminuyendo la latencia incluida. En algunas realizaciones, también se incluye en la solicitud la dirección de contacto (por ejemplo, dirección IP) para el módem por cable 1717. Al recibir la solicitud de ML, el RPD 1715 concluye que puede atender la solicitud ya que admite M y Lcm Lrpd Lcom < L.
La Figura 18 es un diagrama de bloques de un ejemplo de dispositivo de servidor proxy de ML 1800, de acuerdo con algunas realizaciones. En diversas realizaciones, los mensajes del protocolo de Procesamiento Distribuido ML 1801 enviados por un dispositivo de servidor proxy de ML (o dispositivo del cliente) al dispositivo de servidor proxy de ML 1800 (y a los dispositivos del cliente de ML) a través del medio de red son encapsulados por la entidad de protocolo IoT 1805 que se ejecuta en el CPU 1823, en unidades de datos de transporte de IoT. Estas unidades de datos son (opcionalmente cifradas y) encapsuladas por el controlador del servicio de transporte de red (no mostrado) de la interfaz de red 1803 en unidades de datos de protocolo de red enviadas al controlador de interfaz de red (no mostrado) de la red I/F 1803. En algunas realizaciones, los mensajes del protocolo de Procesamiento Distribuido de ML recibidos desde otros dispositivos del cliente de ML y servidor proxy de ML a través del medio de red (opcionalmente descifran y) se presentan a la entidad de protocolo de IoT 1805 a través de la interfaz de socket de red.
En algunas realizaciones, la entidad de protocolo IoT 1805 desencapsula estas unidades de datos para recuperar la carga útil de datos que podrían ser mensajes de control de procesamiento distribuido de ML (por ejemplo, mensajes para enrutar ciertas solicitudes a ciertos dispositivos de red) y/o datos de entrada de la aplicación de ML (por ejemplo, un flujo de vídeo de objetos). Si los datos de carga útil son datos de entrada de la aplicación de ML, se almacenan en la RAM de datos 1815 para ser preprocesados por el preprocesador 1817 de ML antes de presentarse a los núcleos 1819 de ML para el procesamiento de ML. Los datos de salida de la aplicación de ML 1821 son creados por el(los) núcleo(s) Ml 1819, posprocesados por el posprocesador de ML 1815 y almacenados en la RAM de datos 1813, luego encapsulados por la entidad de protocolo IoT 1805 para su transmisión como se describió anteriormente.
Específicamente, los datos de entrada de la aplicación de ML 1801 se envían al búfer NIC 1809 y al búfer de socket 1811 de la red I/F 1803. Un búfer de tarjeta de interfaz de red (NIC) es un área de almacenamiento de memoria que está configurada para almacenar paquetes en espera de transmisión a través de redes o almacenar paquetes recibidos a través de redes. Un búfer de socket es un área o estructura de almacenamiento de memoria que controla y almacena información de estado para una capa de socket. La solicitud 1801 se enruta en respuesta al búfer del protocolo IoT 1813. Un búfer de protocolo de IoT es un área o estructura de almacenamiento de memoria que contiene o almacena temporalmente datos en preparación para ser procesados por un núcleo de aprendizaje automático. En respuesta, la solicitud 1801 se enruta al preprocesamiento de ML 1817 (por ejemplo, 514 de la Figura 5), y luego al núcleo o núcleos de aprendizaje automático 1819. En respuesta al procesamiento por el(los) núcleo(s) de aprendizaje automático 1819, los datos procesados van al proceso posterior de ML 1815 (por ejemplo, 810 de la Figura 8), y los datos de salida de la aplicación de ML resultantes 1821 se enrutan a otro dispositivo de red o de regreso al dispositivo del cliente.
La Figura 19 es un diagrama de bloques de un dispositivo del cliente de ejemplo, de acuerdo con algunas realizaciones. La Figura 19 ilustra que una solicitud del cliente (es decir, datos de entrada de aplicación de ML 1909) que solicita que uno o más procesos de aprendizaje automático sean realizados por uno o más dispositivos de red se envía desde el dispositivo del cliente 1900. En respuesta a la solicitud que se enruta y procesa por los dispositivos de red, los datos (es decir, los datos de salida de la aplicación de ML 1911) se devuelven al dispositivo del cliente 1900.
Específicamente, los datos de entrada de la aplicación de ML 1909 desde la aplicación de ML, que se ejecuta en la CPU 1907, se envían a través del protocolo de procesamiento distribuido de m L 1905 por el dispositivo del cliente de ML 1900 a los dispositivos de servidores proxy de ML (por ejemplo, el dispositivo de servidor proxy 1800) a través del medio de red. Estos datos junto con los mensajes del protocolo de Procesamiento Distribuido de ML son encapsulados por la entidad de protocolo loT 1905 que se ejecuta en la CPU 1907 en unidades de datos de Transporte de IoT. Estas unidades de datos son (opcionalmente cifradas y) encapsuladas por el controlador del servicio de transporte de red en unidades de datos de protocolo de red enviadas a través de la interfaz de socket de red 1903 al controlador de interfaz de red. Los datos del protocolo de procesamiento distribuido de ML recibidos desde dispositivos de servidores proxy de ML a través del medio de red (opcionalmente se descifran y) se presentan a la entidad de protocolo de IoT a través de la interfaz de socket de red 1903.
Los datos de salida de la aplicación de ML 1911 se reciben y procesan primero a través del búfer NIC 1913 y el búfer de socket 1915. La entidad de protocolo IoT 1905 desencapsula estas unidades de datos para recuperar la carga útil de datos que podrían ser mensajes de control de procesamiento distribuido de ML (por ejemplo, una señal de control) o datos de aplicación de ML (por ejemplo, datos de objetos detectados y aumentados).
Si los datos de carga útil son datos de aplicación de ML, se almacenan en la RAM de datos 1919 para ser presentados a la Aplicación de ML. La entidad de protocolo IoT 1905 desencapsula estas unidades de datos para recuperar la carga útil de datos que podrían ser mensajes de control de procesamiento distribuido de ML o datos de aplicaciones de ML. Si los datos de carga útil son datos de entrada de la aplicación de ML, se almacenan en la RAM de datos 1919 para ser preprocesados por el preprocesador de ML antes de presentarse a los Núcleos de ML para el procesamiento de ML.
Cuando la carga útil son mensajes de control de procesamiento distribuido de ML, se envían a los actuadores de IoT 1921, lo que provoca alguna acción tangible en un dispositivo a través de una señal de control. Un actuador de IoT toma la entrada eléctrica y la convierte en una acción física. Por ejemplo, los actuadores de IoT 1921 pueden establecer físicamente la temperatura en un termostato inteligente, encender/apagar físicamente las luces, hacer que un televisor se encienda/apague, encender/apagar una lavadora, hacer que un altavoz inteligente emita una expresión, y similares.
La Figura 20 es un diagrama de flujo de un proceso de ejemplo 2000 para generar o actualizar un objeto de datos con datos que especifican la información de característica de los recursos informáticos y la información de la capacidad de aprendizaje automático para los dispositivos de red, de acuerdo con algunas realizaciones. En algunas realizaciones, el proceso 2000 representa un proceso fuera de línea o no en tiempo de ejecución antes de que se procese una solicitud del cliente (por ejemplo, a través del proceso 2100 de la Figura 21). En algunas realizaciones, el proceso 200 representa un proceso en línea o en tiempo de ejecución que se realiza en respuesta a una solicitud de un cliente. En algunas realizaciones, el proceso 200 es una combinación de procesos en línea y fuera de línea. Por ejemplo, en el bloque 2004, la información de capacidad de aprendizaje automático se puede recibir fuera de línea antes de una solicitud de un cliente y la información de característica del recurso informático se puede recibir en respuesta a una solicitud del cliente para determinar características del recurso informático en tiempo real (o casi en tiempo real) de un dispositivo de red en particular.
El proceso 2000 (y/o cualquiera de las funciones descritas en la presente memoria (por ejemplo, el proceso 2100)) se puede realizar mediante lógica de procesamiento que comprende hardware (por ejemplo, circuitos, lógica dedicada, lógica programable, microcódigo, etc.), software (por ejemplo, instrucciones ejecutadas en un procesador para realizar simulación de hardware), microprograma o una combinación de los mismos. Aunque se hace referencia a bloques particulares descritos en esta divulgación en un orden particular en una cantidad particular, se entiende que cualquier bloque puede producirse sustancialmente en paralelo con, antes o después de cualquier otro bloque. Además, pueden existir más (o menos) bloques de los que se ilustran. Dichos bloques agregados pueden incluir bloques que incorporan cualquier funcionalidad descrita en la presente memoria. El procedimiento implementado por ordenador, el sistema y/o el producto de programa informático/medio de almacenamiento legible por ordenador como se describe en la presente memoria puede realizar o se puede hacer que realice los procesos 2000 y/o 2100 o cualquier otra funcionalidad descrita en la presente memoria.
Según el bloque 2002, un dispositivo de red difunde su propia información de característica de recursos informáticos e información de capacidad de aprendizaje automático a uno o más dispositivos de red. Se describen ejemplos de esto con respecto a las etapas de la capa de descubrimiento de servicios de ML 120 de la Figura 14 y la capa de anuncio de descubrimiento de servicios de ML 1520 de la Figura 15. Por ejemplo, el dispositivo GW 1414 de la Figura 14 en la etapa uno transmite un "anuncio de servicio de ML" al dispositivo de borde 1412. En otro ejemplo, el dispositivo de red 116 de la Figura 1 puede difundir su lista de subrecursos 120-3 a los otros dispositivos de red 106 y 112 para que estos otros dispositivos de red 106 y 112 tengan información de recursos de m L relacionada con el dispositivo de red 116.
Según el bloque 2004, el dispositivo de red recibe información de característica de recursos informáticos e información de capacidad de aprendizaje automático del otro o más dispositivos de red. Se describen ejemplos de esto con respecto a las etapas de la capa de descubrimiento de servicios de ML 120 de la Figura 14 y la capa de anuncio de descubrimiento de servicios de ML 1520 de la Figura 15. Por ejemplo, en la etapa 3, el dispositivo GW 1414 puede recibir la información de características de recursos informáticos y la información de capacidad de aprendizaje automático del dispositivo de borde 1412 desde el dispositivo de borde 1412. En otro ejemplo, el dispositivo de red 116 puede recibir las sublistas 120-1 y 120-2 del dispositivo de red 112 y 106 respectivamente.
Según el bloque 2006, el dispositivo de red genera y/o actualiza un objeto de datos (por ejemplo, una lista u otra estructura de datos) que especifica la información de característica del recurso informático y la información de capacidad de aprendizaje automático para uno o más dispositivos de red y los dispositivos de red. Se describen ejemplos de esto con respecto a las etapas de la capa de descubrimiento de servicios de ML 120 de la Figura 14 y la capa de anuncio de descubrimiento de servicios de ML 1520 de la Figura 15. Por ejemplo, las etapas de "agregar" de la Figura 14 pueden incluir esta funcionalidad (por ejemplo, la etapa 5 de "Agregar (Ml_ í) a la base de datos del servicio de ML). En otro ejemplo, la lista de recursos final 120 puede corresponder a una lista actualizada, siendo las sublistas 120-1 y 120-2 las actualizaciones.
La Figura 21 es un diagrama de flujo de un proceso de ejemplo 2100 para ejecutar una solicitud del cliente para procesar datos a través de uno o más procesos de aprendizaje automático, de acuerdo con algunas realizaciones. En algunas realizaciones, el proceso 2100 representa el tiempo de ejecución o funcionalidad en línea y se produce después del proceso 2000 de la Figura 20.
Según el bloque 2103, se recibe una solicitud del cliente para procesar datos a través de uno o más procesos de aprendizaje automático. La solicitud del cliente puede originarse desde un dispositivo del cliente (por ejemplo, un dispositivo IoT). En un ejemplo ilustrativo, un dispositivo de red puede recibir una solicitud del cliente transmitida, que es una solicitud para detectar y seguir un objeto en un flujo de vídeo. En algunas realizaciones, el bloque 2103 incluye establecer un canal de servicio de ML entre un dispositivo del cliente y uno o más dispositivos de red. Se describen ejemplos de esto con respecto a las etapas de creación del canal de servicio de ML en la creación del canal de servicio de ML 1430 y/o la capa de establecimiento del canal de servicio de ML 1530. En un ejemplo ilustrativo del bloque 2103, después de la etapa 7 de la Figura 14, el dispositivo GW 1406 recibe la solicitud de servicio de ML para establecer una conexión con el dispositivo GW 1406, y todos los demás canales se abren mediante las etapas 8, 9, 10 y 11. En otro ejemplo del bloque 2103, pueden producirse las etapas 8, 9, 10 y/o 11.
Alternativa o adicionalmente, el bloque 2103 puede incluir recibir la carga útil real (por ejemplo, una solicitud para detectar y seguir un objeto en un flujo de vídeo) de la solicitud después de que se haya establecido un canal entre el dispositivo del cliente y el(los) dispositivo(s) de red. Los ejemplos de estas realizaciones incluyen las etapas de recepción realizadas por los dispositivos de servidores proxy de ML en la capa de datos de aplicación de ML 1440 de la Figura 14 (por ejemplo, el dispositivo GW 1406 recibe los datos de aplicación de ML transmitidos en la etapa 12 por el dispositivo IoT 1402), y las etapas de recepción en la capa de datos de aplicación de ML 1540 de la Figura 15 (por ejemplo, el intercambio de entrada de datos y salida de datos en las etapas 13 y 14). Otros ejemplos incluyen cuando el dispositivo de red 1800 recibe los datos de entrada de la aplicación de ML 1801, o cuando el dispositivo de red 116 recibe la solicitud 150 del dispositivo del cliente 102.
En algunas realizaciones, el dispositivo del cliente que transmite la solicitud en el bloque 2103 es un dispositivo de Internet de las cosas (IoT) y/o un dispositivo de Internet de todo (IoE). Por ejemplo, un dispositivo del cliente puede ser un aparato conectado (por ejemplo, una lavadora inteligente, un lavavajillas inteligente, un termostato inteligente), un sistema de seguridad inteligente para el hogar, un televisor inteligente, un monitor de salud portátil, un sistema de iluminación inteligente, personas (por ejemplo, teléfonos inteligentes), automóviles y similares.
Según el bloque 2105, se determina un primer conjunto de atributos asociados con un primer dispositivo de red y un segundo conjunto de atributos asociados con un segundo dispositivo de red. El primer conjunto de atributos y el segundo conjunto de atributos incluyen características de recursos informáticos de un dispositivo de red respectivo y/o capacidades de procesamiento de aprendizaje automático de un dispositivo de red respectivo. Por ejemplo, el dispositivo de red 116 de la Figura 1 puede determinar estas características de sí mismo y del dispositivo de red 112 leyendo las sublistas 120-1 y 120-3. En algunas realizaciones, el bloque 2105 se produce en respuesta al bloque 2103.
En algunas realizaciones, el bloque 2105 alternativa o adicionalmente "compara" al menos una primera parte del primer conjunto de atributos con al menos otra parte de los segundos atributos. Por ejemplo, en respuesta a recibir la solicitud en el bloque 2103, un dispositivo del cliente puede comparar atributos de dispositivos de red para determinar dónde enrutar la solicitud en base a qué dispositivo de red es más eficiente en cuanto a recursos informáticos o tiene una funcionalidad de aprendizaje automático más capaz de atender la solicitud. En un ejemplo ilustrativo, el dispositivo de red 116 de la Figura 1 puede comparar la capacidad de memoria en tiempo real, la CPU u otras características del ordenador del dispositivo de red 112 (a través de la lista de subrecursos 120-1) con sus propias características del ordenador (a través de la sublista de recursos 120-3). En otro ejemplo ilustrativo, el dispositivo de red 116 de la Figura 1 puede comparar capacidades de ML (por ejemplo, hiperparámetros de tipo de modelo de ML, etc.) de diferentes dispositivos de red. Alternativa o adicionalmente, el bloque 2015 puede incluir "comparar" la carga útil de la solicitud con los atributos de cada dispositivo de red (por ejemplo, la lista de recursos 120) para determinar dónde enrutar la solicitud.
En algunas realizaciones, el primer dispositivo de red está ubicado en una primera capa (por ejemplo, la capa N de la Figura 1) de una red informática jerárquica, donde el primer dispositivo de red tiene un primer núcleo de aprendizaje automático (por ejemplo, el núcleo de ML 114 de la Figura 1). Por ejemplo, volviendo a la Figura 2, la primera capa puede ser la "capa de borde" (o "subred de servidor proxy de ML de borde" de la Figura 4) y el primer dispositivo de red puede ser el dispositivo de borde 209 que existe dentro de una red de acceso de banda ancha que es un ejemplo de una red jerárquica. En algunas realizaciones, el segundo dispositivo de red está ubicado en al menos una de la primera capa o una segunda capa de la red informática jerárquica, donde el segundo dispositivo de red tiene un segundo núcleo de aprendizaje automático. Por ejemplo, la segunda capa puede ser la "capa de CPE" de la Figura 2 y el segundo dispositivo de red puede ser el decodificador 203 de la Figura 2. Como alternativa a estos ejemplos, las capas o dispositivos de red pueden ser cualquiera de las capas y dispositivos de red adecuados descritos con respecto a la Figura 1, la Figura 2 o la Figura 3. Como se describe en la presente memoria, los términos "primera" y "segunda" capa o dispositivo de red no indican orden de procesamiento, sino que más bien indican que son capas o dispositivos separados o distinguibles.
En algunas realizaciones, la una o más características del ordenador incluyen una o más de una velocidad de transmisión de datos (por ejemplo, megabits por segundo), capacidad de procesamiento (número de operaciones que un procesador puede realizar en un período de tiempo determinado), protocolo de transporte (por ejemplo, TCP/IP, UDP, IoT, etc.), latencia (por ejemplo, tiempo de ida y vuelta (RTT) o tiempo hasta el primer byte (Tt FB)), ancho de banda, capacidad o disponibilidad de memoria y seguridad. La seguridad se refiere a los diferentes atributos o capacidades de seguridad que emplea un dispositivo de red (por ejemplo, si un dispositivo de red emplea cifrado, ofuscación, el tipo de autenticación, el tipo de programa maligno que un dispositivo de red puede detectar, etc.).
En algunas realizaciones, la una o más capacidades de aprendizaje automático incluyen uno o más de un tipo de modelo de aprendizaje automático alojado en un dispositivo de red respectivo (por ejemplo, CNN, bosque aleatorio, memoria a corto plazo (LSTM), red neuronal recurrente (RNN), Modelo de mezcla gaussiana (GMM), BERT, WORD2vec, aprendizaje supervisado, aprendizaje no supervisado, clasificador, modelo de agrupamiento, modelo de regresión, etc.), hiperparámetros utilizados en un modelo de aprendizaje automático respectivo, funciones de preprocesamiento de datos de entrada, funciones de posprocesamiento de datos de salida, y rutas de datos para flujos de datos de entrada y datos de salida.
En el aprendizaje automático, un hiperparámetro es un parámetro cuyo valor se utiliza para controlar el proceso de aprendizaje. Por el contrario, los valores de otros parámetros (normalmente pesos de nodos) se obtienen mediante entrenamiento. Los hiperparámetros se pueden clasificar como hiperparámetros del modelo, que no se pueden inferir al ajustar la máquina al conjunto de entrenamiento debido a que se refieren a la tarea de selección del modelo, o hiperparámetros del algoritmo, que en principio no tienen influencia en el rendimiento del modelo, pero sí afectan la velocidad y calidad del proceso de aprendizaje. Un ejemplo de hiperparámetro de modelo es la topología y el tamaño de una red neuronal. Ejemplos de hiperparámetros de algoritmos son la tasa de aprendizaje y el tamaño del mini lote. "Rutas de datos" se refiere al hardware (unidades funcionales) que realiza todas las operaciones requeridas, por ejemplo, ALU, registros y buses internos dentro de una CPU.
Las "funciones de preprocesamiento de entrada" convierten los datos sin procesar en un conjunto de datos limpios en preparación para ser procesados a través de un modelo de aprendizaje automático. Estas funciones pueden indicar si el preprocesamiento emplea lo siguiente o tipo de: adquirir el conjunto de datos, importar todas las bibliotecas cruciales, importar el conjunto de datos, identificar y manejar los valores faltantes, codifica los datos categóricos, divide el conjunto de datos, indica si el preprocesamiento transforma los datos utilizando un umbral binario. Todos los valores por encima del umbral se marcan con 1 y todos los iguales o inferiores se marcan con 0, lo que indica la estandarización de los datos y cómo se realiza el escalado o la normalización de características. Las funciones de "posprocesamiento de datos de salida" normalmente incluyen el tipo o la manera de: varias rutinas de poda, procesamiento de calidad de reglas, filtrado de reglas, combinación de reglas, combinación de modelos o incluso integración de conocimientos. El posprocesamiento de datos de salida actúa como un filtro para el conocimiento ruidoso e impreciso derivado de un modelo de aprendizaje automático.
En algunas realizaciones, el primer dispositivo de red y el segundo dispositivo de red son al menos uno de: un dispositivo informático de borde (por ejemplo, 424 de la Figura 4), un nodo en la nube (por ejemplo, 420), una puerta de enlace residencial, un conmutador de red, un teléfono, un decodificador, un televisor, un adaptador de red doméstica y una puerta de enlace de acceso a Internet.
Según el bloque 2107, se selecciona el primer dispositivo de red al que enrutar la solicitud del cliente. En algunas realizaciones, el bloque 2107 se basa al menos en parte en la solicitud del cliente y la determinación del primer conjunto de atributos y el segundo conjunto de atributos en el bloque 2105. Por ejemplo, la solicitud del cliente puede especificar que necesita un objeto particular detectado en un flujo de vídeo. En respuesta, el dispositivo de red 116 de la Figura 1 puede determinar, a través de la lista de recursos 120, que el único dispositivo de red que tiene funcionalidad de detección de objetos es el dispositivo de red 112. En consecuencia, se selecciona el dispositivo de red 112 para enrutar la solicitud.
En algunas realizaciones, el bloque 2107 se basa al menos en parte en la comparación, como se describió anteriormente con respecto al bloque 2104. Por ejemplo, volviendo a la Figura 1, el determinante de enrutamiento 104 puede comparar, a través de la lista de recursos 120, la CPU y la memoria del dispositivo de red 112 con la CPU y la memoria del dispositivo de red 106, así como sus capacidades de aprendizaje automático. En base a que el dispositivo de red 112 tiene más disponibilidad de memoria, menos utilización de CPU y/o un modelo de aprendizaje automático más adecuado, por ejemplo, se selecciona el dispositivo de red 112 para enrutar la solicitud del cliente.
Algunas realizaciones además se abstienen de seleccionar el segundo dispositivo de red para el enrutamiento. Por ejemplo, usando la ilustración anterior con respecto a la Figura 1, el dispositivo de red 116 puede abstenerse afirmativamente de seleccionar el dispositivo de red 106 para el enrutamiento en base a la comparación o determinación de que sus capacidades de aprendizaje automático y/o características de recursos informáticos no son tan adecuadas para dar servicio a la solicitud del cliente. Alternativamente, algunas realizaciones eligen ambos dispositivos de red para atender la solicitud del cliente. Por ejemplo, se puede seleccionar el primer dispositivo de red para procesar información a través de un primer modelo de aprendizaje automático, y se puede seleccionar el segundo dispositivo de red para procesar otra información a través de un segundo modelo de aprendizaje automático.
Según el bloque 2109, realizaciones particulares hacen que el primer dispositivo de red procese la solicitud. En algunas realizaciones, el bloque 2109 se basa al menos en parte en la selección en el bloque 2107. En algunas realizaciones, el bloque 2109 incluye o está precedido por el enrutamiento de la solicitud del cliente al primer dispositivo de red en base a la selección del bloque 2107.
En algunas realizaciones, el procesamiento de la solicitud del bloque 2109 incluye detectar, en el primer dispositivo de red y a través de uno o más modelos de aprendizaje automático alojados en el primer dispositivo de red, actividad anómala. Se describen ejemplos de esto con respecto a la Figura 6, que describe el diagnóstico de problemas de conectividad, la detección de fugas de contenido multimedia y/o la detección de intrusiones maliciosas en la red, entre otras cosas.
En algunas realizaciones, el procesamiento de la solicitud del bloque 2109 incluye detectar, en el primer dispositivo de red, y a través de uno o más modelos de aprendizaje automático alojados en el primer dispositivo de red, problemas de capa física específicos del dispositivo y de toda la red. Se describen ejemplos de esto con respecto a la Figura 7, que describe la detección y clasificación de degradaciones de la red, la caracterización de las condiciones de la subred y similares.
En algunas realizaciones, el procesamiento de la solicitud del bloque 2109 incluye detectar, en el primer dispositivo de red y mediante uno o más modelos de aprendizaje automático alojados en el primer dispositivo de red, uno o más objetos en una o más imágenes. Se describen ejemplos de esto con respecto a la Figura 9 y/o la Figura 10, que describen cómo detectar y rastrear un objeto y luego ampliar el objeto, por ejemplo.
En algunas realizaciones, al menos parcialmente en respuesta al enrutamiento o procesamiento en el bloque 2109, algunas realizaciones enrutan la solicitud a un tercer dispositivo de red, donde el primer dispositivo de red, el segundo dispositivo de red y el tercer dispositivo de red están ubicados en un red jerárquica, y donde el primer dispositivo de red y el segundo dispositivo de red están ubicados en una primera capa de la red jerárquica y el tercer dispositivo de red está ubicado en una segunda capa de la red jerárquica, estando la segunda capa más aguas abajo con respecto a la primera capa en la red jerárquica. Estar "aguas abajo" significa que una capa está configurada para procesar una solicitud más adelante en el tiempo en relación con otra capa. Se describen ejemplos de esta red jerárquica con respecto a la Figura 2 y la Figura 4. Por ejemplo, con respecto a la Figura 2, el decodificador 203 de la Figura 2 puede procesar primero una solicitud del cliente en la capa de CPE, y la capa que se encuentra en la parte superior, la capa de borde, puede procesar posteriormente la solicitud a través del nodo de borde 209.
En algunas realizaciones, una primera parte de los datos que se procesan en el bloque 2109 se procesa en el primer dispositivo de red y una segunda parte de los datos se procesa en un tercer dispositivo de red. Por ejemplo, como se describió anteriormente, se pueden usar múltiples dispositivos de red para atender una solicitud del cliente. Por ejemplo, la primera parte puede ser datos de un flujo de vídeo que se procesarán para la detección de objetos y la segunda parte puede ser datos de paquetes para comprobar si hay programa maligno u otra actividad maliciosa. Según el bloque 2111, algunas realizaciones provocan una transmisión de datos al dispositivo del cliente. En algunas realizaciones, esto es al menos parcialmente en respuesta al procesamiento de la solicitud del cliente en el bloque 2109. Por ejemplo, en respuesta a que el primer dispositivo de red detecta y rastrea un objeto a través de la solicitud del cliente, las realizaciones provocan una transmisión del objeto detectado y ampliado (por ejemplo, provocando que aparezca un cuadro delimitador visual sobre el objeto y ampliando los píxeles para una imagen ampliada). En algunas realizaciones, la transmisión de los datos incluye transmitir una alerta, al dispositivo del cliente, de cualquier detección realizada, por ejemplo, con respecto a la Figura 6, Figura 7, Figura 8, Figura 9 y/o Figura 10. Por ejemplo, la alerta puede transmitir una indicación o notificación de actividad anómala (por ejemplo, un mensaje en lenguaje natural de que se ha detectado programa maligno).
Las realizaciones de la divulgación pueden describirse en el contexto general de código informático o instrucciones utilizables por máquina, incluidas instrucciones utilizables por ordenador o ejecutables por ordenador, tales como módulos de programa, que se ejecutan por un ordenador u otra máquina, tal como un asistente de datos personales, un teléfono inteligente, una tableta u otro dispositivo portátil. Generalmente, los módulos de programa que incluyen rutinas, programas, objetos, componentes, estructuras de datos y similares se refieren a códigos que realizan tareas particulares o implementan tipos particulares de datos abstractos. Las realizaciones de la divulgación se pueden llevar a la práctica en una variedad de configuraciones de sistemas, incluidos dispositivos portátiles, electrónica de consumo, ordenadores de uso general, dispositivos informáticos más especializados, etc. Las realizaciones de la divulgación también se pueden llevar a la práctica en entornos informáticos distribuidos, donde las tareas se realizan mediante dispositivos de procesamiento remoto que se conectan a través de una red de comunicaciones. En un ambiente informático distribuido, los módulos de programa se pueden localizar tanto en un medio de almacenamiento de ordenador remoto como local incluyendo un medio que incluye dispositivos de almacenamiento en memoria.
Con referencia a la Figura 22, el dispositivo informático 2200 incluye un bus 10 que acopla directa o indirectamente los siguientes dispositivos: memoria 12, uno o más procesadores 14, uno o más componentes de presentación 16, uno o más puertos de entrada/salida (E/S) 18, uno o más componentes de E/S 20 y una fuente de alimentación ilustrativa 22. El bus 10 representa lo que puede ser uno o más buses (tal como un bus de direcciones, un bus de datos o una combinación de los mismos). Aunque los diversos bloques de la Figura 22 se muestran con líneas para mayor claridad, en realidad, estos bloques representan componentes lógicos, no necesariamente reales. Por ejemplo, se puede considerar que un componente de presentación, tal como un dispositivo de visualización, es un componente de E/S. Además, los procesadores tienen memoria. Los inventores de la presente reconocen que tal es la naturaleza de la técnica y reiteran que el diagrama de la Figura 22 es meramente ilustrativo de un dispositivo informático de ejemplo que puede usarse en relación con una o más realizaciones de la presente divulgación. No se hace distinción entre categorías como "estación de trabajo", "servidor", "ordenador portátil", "dispositivo portátil", etc., ya que cada una se contempla dentro del ámbito de la Figura 22 y con referencia al "dispositivo informático".
El dispositivo informático 2200 puede incluir típicamente una variedad de medios legibles por ordenador. Los medios legibles por ordenador pueden ser cualquier medio disponible al que se pueda acceder mediante el dispositivo informático 2200 e incluye medios volátiles y no volátiles, y medios extraíbles y no extraíbles. A modo de ejemplo, y no de limitación, los medios legibles por ordenador pueden comprender medios de almacenamiento informático y medios de comunicación. Los medios de almacenamiento informáticos pueden incluir medios volátiles y no volátiles, y medios extraíbles y no extraíbles implementados en cualquier procedimiento o tecnología para almacenar la información, tal como instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento informáticos incluyen, pero sin limitarse a, RAM, ROM,<e>E<p>ROM, memoria flash u otra tecnología de memoria, CD-ROM, Disco Versátil Digital (DVD) u otro almacenamiento de disco óptico, casete magnético, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnéticos, o cualquier otro medio que puede usarse para almacenar la información deseada o datos y a los cuales puede accederse mediante el dispositivo informático 2200. Los medios de almacenamiento informático no comprenden señales per se. Los medios de comunicación típicamente incorporan instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada como una onda portadora, u otro mecanismo de transporte e incluyen cualquier medio de entrega de información. El término "señal de datos modulados" significa una señal que tiene una o más de sus características establecidas o cambiadas de tal manera que codifica información en la señal. A modo de ejemplo, y no de limitación, los medios de comunicación incluyen medios cableados, tal como una red cableada o una conexión directa, y medios inalámbricos, tal como acústicos, RF, infrarrojos y otros medios inalámbricos. Las combinaciones de cualquiera de los anteriores pueden incluirse además dentro del ámbito de los medios legibles por ordenador.
La memoria 12 incluye medios de almacenamiento informático en forma de memoria volátil y/o no volátil. La memoria puede ser extraíble, no extraíble o una combinación de ambas. Los dispositivos de hardware de ejemplo incluyen memoria de estado sólido, discos duros, unidades de discos ópticos, etc. El dispositivo informático 2200 incluye uno o más procesadores 14 que leen datos de diversas entidades tales como la memoria 12 o los componentes de E/S 20. Los componentes de presentación 16 presentan indicaciones de datos a un usuario u otro dispositivo. Otros ejemplos de componentes de presentación pueden incluir un dispositivo de visualización, un altavoz, un componente de impresión, un componente vibratorio y similares.
Los puertos de E/S 18 permiten que el dispositivo informático 2200 se acople lógicamente a otros dispositivos, incluidos los componentes de E/S 20, algunos de los cuales pueden estar integrados. Los componentes ilustrativos incluyen un micrófono, una palanca de mando, un mando para juegos, una antena parabólica, un escáner, una impresora, un dispositivo inalámbrico, etc. Los componentes de E/S 20 pueden proporcionar una interfaz de usuario natural (NUI) que procesa gestos aéreos, voz u otras entradas fisiológicas generadas por un usuario. En algunos casos, las entradas pueden transmitirse a un elemento de red apropiado para su posterior procesamiento. Una NUI puede implementar cualquier combinación de reconocimiento de voz, reconocimiento táctil y de lápiz, reconocimiento facial, reconocimiento biométrico, reconocimiento de gestos tanto en la pantalla como adyacente a la pantalla, gestos aéreos, seguimiento de la cabeza y los ojos, y reconocimiento táctil asociado con pantallas en el dispositivo informático 2200. El dispositivo informático 2200 puede estar equipado con cámaras de profundidad, tales como sistemas de cámaras estereoscópicas, sistemas de cámaras infrarrojas, sistemas de cámaras RGB y combinaciones de estos, para la detección y el reconocimiento de gestos. Además, el dispositivo informático 2200 puede estar equipado con acelerómetros o giroscopios que permiten la detección de movimiento. La salida de los acelerómetros o giroscopios se puede proporcionar a la pantalla del dispositivo informático 2200 para representar realidad aumentada o realidad virtual inmersiva.
Algunas realizaciones del dispositivo informático 2200 pueden incluir una o más radios 24 (o componentes de comunicación inalámbrica similares). La radio 24 transmite y recibe comunicaciones por radio o inalámbricas. El dispositivo informático 2200 puede ser un terminal inalámbrico adaptado para recibir comunicaciones y medios a través de varias redes inalámbricas. El dispositivo informático 2200 puede comunicarse a través de protocolos inalámbricos, tales como acceso múltiple por división de código ("CDMA"), sistema global para móviles ("GSM") o acceso múltiple por división de tiempo ("TDMA"), así como otros, para comunicarse con otros dispositivos. Las comunicaciones por radio pueden ser una conexión de corto alcance, una conexión de largo alcance o una combinación de una conexión de telecomunicaciones inalámbricas de corto y largo alcance. Cuando nos referimos a tipos de conexiones "cortas" y "largas", no nos referimos a la relación espacial entre dos dispositivos. En cambio, generalmente nos referimos a corto y largo alcance como diferentes categorías o tipos de conexiones (es decir, una conexión primaria y una conexión secundaria). Una conexión de corto alcance puede incluir, a modo de ejemplo y no limitación, una conexión Wi-Fi® a un dispositivo (por ejemplo, punto de acceso móvil) que proporciona acceso a una red de comunicaciones inalámbricas, tal como una conexión WLAN que utiliza el protocolo 802.11; una conexión Bluetooth a otro dispositivo informático es un segundo ejemplo de conexión de corto alcance o conexión de comunicación de campo cercano. Una conexión de largo alcance puede incluir una conexión que utiliza, a modo de ejemplo y sin limitación, uno o más protocolos CDMA, GPRS, GSM, TDMA y 802.16.
Tal como se utiliza en la presente memoria, el término "conjunto" puede emplearse para referirse a una colección de objetos (o elementos) ordenados (es decir, secuenciales) o desordenados (es decir, no secuenciales), tales como, pero sin limitarse a, elementos de datos (por ejemplo, eventos, celdas, filas y similares). Un conjunto puede incluir N elementos, donde N es cualquier número entero no negativo que sea 1 o mayor. Es decir, un conjunto puede incluir 1, 2, 3...N objetos y/o elementos, donde N es un entero positivo sin límite superior. Un conjunto puede incluir sólo un único elemento. En otras realizaciones, un conjunto puede incluir una cantidad de elementos que sea significativamente mayor que uno, dos o tres elementos. Por ejemplo, diversas realizaciones y ejemplos descritos en la presente memoria se refieren a un "conjunto" de características o un "conjunto" de vectores de características. Esto se refiere a una o más características y uno o más vectores de características respectivamente.
[0069] Muchas disposiciones diferentes de los diversos componentes representados, así como los componentes no mostrados, son posibles sin apartarse del ámbito de las reivindicaciones siguientes. Se han descrito las realizaciones de la presente descripción con la intención de que sean ilustrativas en lugar de restrictivas. Las realizaciones alternativas resultarán evidentes para los lectores de esta descripción después de su lectura y debido a ella. Se pueden completar medios de implementación alternativos a lo anterior sin apartarse del ámbito de las reivindicaciones siguientes. Ciertas características y subcombinaciones son de utilidad y pueden emplearse sin referencia a otras características y subcombinaciones y se contemplan dentro del ámbito de las reivindicaciones.

Claims (15)

REIVINDICACIONES
1. Un procedimiento implementado por un ordenador que comprende:
recibir una solicitud del cliente (150) para procesar datos a través de uno o más procesos de aprendizaje automático, estando asociada la solicitud del cliente (150) con un dispositivo de cliente (102);
comparar un primer conjunto de atributos asociados con un primer dispositivo de red con un segundo conjunto de atributos asociados con un segundo dispositivo de red, el primer conjunto de atributos y el segundo conjunto de atributos incluyen una o más características de recursos informáticos de un dispositivo de red respectivo y una o más capacidades de procesamiento de aprendizaje automático de un dispositivo de red respectivo;
en base al menos en parte a la comparación, seleccionar el primer dispositivo de red para enrutar la solicitud del cliente (150) y abstenerse de seleccionar el segundo dispositivo de red;
en base al menos en parte a la selección, hacer que el primer dispositivo de red procese la solicitud del cliente (150); y
al menos parcialmente en respuesta al procesamiento de la solicitud del cliente (150), realizar una transmisión de datos al dispositivo del cliente (102).
2. El procedimiento de la reivindicación 1, en el que la una o más características de recursos informáticos incluyen al menos una característica de un grupo de características que consiste en: una velocidad de transmisión de datos, capacidad de procesamiento, protocolo de transporte, latencia, ancho de banda, capacidad de memoria, tipos de redes neuronales o estructuras de redes neuronales y seguridad.
3. El procedimiento de la reivindicación 1 o 2, en el que una o más capacidades de procesamiento de aprendizaje automático incluyen al menos una capacidad de un grupo de capacidades que consiste en: un tipo de modelo de aprendizaje automático alojado en un dispositivo de red respectivo, hiperparámetros usados en un modelo de aprendizaje automático respectivo, funciones de preprocesamiento de datos de entrada, funciones de posprocesamiento de datos de salida y rutas de datos para flujos de datos de entrada y datos de salida.
4. El procedimiento de cualquiera de las reivindicaciones 1 a 3, en el que el primer dispositivo de red y el segundo dispositivo de red incluyen al menos un dispositivo de red de un grupo de dispositivos de red que consiste en: un dispositivo informático de borde, un nodo en la nube, una puerta de enlace residencial, un conmutador de red, un teléfono, un decodificador, un televisor, un adaptador de red doméstica y una puerta de enlace de acceso a Internet.
5. El procedimiento de la reivindicación 4, en el que el dispositivo del cliente (102) y el primer dispositivo de red o el segundo dispositivo de red son módulos ubicados en un mismo dispositivo.
6. El procedimiento de cualquiera de las reivindicaciones 1 a 5, en el que el procesamiento de la solicitud del cliente (150) incluye detectar, en el primer dispositivo de red y mediante uno o más modelos de aprendizaje automático alojados en el primer dispositivo de red, actividad anómala.
7. El procedimiento de cualquiera de las reivindicaciones 1 a 6, que comprende al menos una de las siguientes características:
en el que la solicitud está precedida por una solicitud de control inicial enviada a un servicio del operador en la nube, y en el que el primer dispositivo de red y el segundo dispositivo de red están configurados, por el servicio en la nube, para admitir el procesamiento de ML para el dispositivo del cliente, y en el que los datos para el procesamiento de ML se envían directamente al primer dispositivo de red;
en el que los resultados del procesamiento del procesamiento ML de los datos se envían a: el dispositivo del cliente por razones de privacidad, el servicio en la nube para diagnóstico de red o dispositivo del cliente, y tanto el servicio en la nube como el dispositivo del cliente con fines de servicio;
en el que el procesamiento de la solicitud del cliente incluye detectar, en el primer dispositivo de red y mediante uno o más modelos de aprendizaje automático alojados en el primer dispositivo de red, uno o más objetos en una o más imágenes.
8. El procedimiento de cualquiera de las reivindicaciones 1 a 7, que comprende además, al menos parcialmente en respuesta al enrutamiento, enrutar la solicitud a un tercer dispositivo de red, en el que el primer dispositivo de red, el segundo dispositivo de red y el tercer dispositivo de red están ubicados en una red jerárquica, y en el que el primer dispositivo de red y el segundo dispositivo de red están ubicados en una primera capa de la red jerárquica y el tercer dispositivo de red está ubicado en una segunda capa de la red jerárquica, estando la segunda capa más aguas abajo con respecto a la primera capa en la red jerárquica.
9. El procedimiento de la reivindicación 8, en el que una primera parte de los datos se procesa en el primer dispositivo de red y en el que una segunda parte de los datos se procesa en el tercer dispositivo de red.
10. Un sistema que comprende:
un dispositivo del cliente (102) configurado para transmitir una solicitud del cliente (150) para procesar datos a través de uno o más procesos de aprendizaje automático;
un primer dispositivo de red ubicado en una primera capa de una red informática jerárquica, teniendo el primer dispositivo de red un primer núcleo de aprendizaje automático; y
un segundo dispositivo de red ubicado en al menos una de la primera capa o una segunda capa de la red informática jerárquica, teniendo el segundo dispositivo de red un segundo núcleo de aprendizaje automático, el segundo dispositivo de red está configurado para determinar un primer conjunto de atributos asociados con el primer dispositivo de red y determinar un segundo conjunto de atributos asociados con el segundo dispositivo de red, el primer conjunto de atributos y el segundo conjunto de atributos incluyen una o más características de recursos informáticos de un dispositivo de red respectivo y una o más capacidades de procesamiento de aprendizaje automático de un dispositivo de red respectivo;
en el que el segundo dispositivo de red está configurado además para:
en base al menos en parte a la determinación del primer conjunto de atributos y el segundo conjunto de atributos, seleccionando el primer dispositivo de red para procesar la solicitud del cliente (150), y en base a la selección, enrutar la solicitud del cliente (150) al primer dispositivo de red.
11. El sistema de la reivindicación 10, que comprende además al menos una de las siguiente características:
en el que la selección se basa además en una o más características de recursos informáticos del primer dispositivo de red y del segundo dispositivo de red;
en el que la una o más capacidades de procesamiento de aprendizaje automático incluyen al menos una capacidad de un grupo de capacidades que consiste en: un tipo de modelo de aprendizaje automático alojado en un dispositivo de red respectivo, hiperparámetros usados en un modelo de aprendizaje automático respectivo, funciones de preprocesamiento de datos de entrada, funciones de posprocesamiento de datos de salida y rutas de datos para flujos de datos de entrada y datos de salida;
en el que el primer dispositivo de red y el segundo dispositivo de red incluyen al menos un dispositivo de red de un grupo de dispositivos de red que consiste en: un dispositivo informático de borde, un nodo en la nube, una puerta de enlace residencial, un conmutador de red, un teléfono, un decodificador, un televisor, un adaptador de red doméstica y una puerta de enlace de acceso a Internet;
en el que el dispositivo del cliente (102) es un dispositivo de Internet de las cosas, IoT o un dispositivo de Internet de todo, IoE.
12. El sistema de la reivindicación 10 u 11, en el que el primer núcleo de aprendizaje automático permite el procesamiento de extremo a extremo asociado con un objeto, en el que el objeto representa cualquier entidad lógica con una firma única incrustada en los datos de entrada de ML, y en el que el primer núcleo de aprendizaje automático está configurado para:
detectar y clasificar un objeto presente en los datos de entrada de ML detectando una firma asociada con el objeto,
rastrear el objeto de forma continua o periódica a través de un flujo de datos de entrada de ML,
ampliar el objeto escalando los atributos asociados del objeto o detectando atributos detallados adicionales, y posprocesar los datos generando resultados a partir de la detección, el seguimiento y la ampliación y transmitiendo una notificación que aplica una regla particular de privacidad de datos.
13. El sistema de la reivindicación 12, en el que el primer dispositivo de red está configurado además para transmitir datos al dispositivo del cliente (102) en respuesta al procesamiento de la solicitud del cliente (150), en el que la transmisión de los datos incluye transmitir una alerta, al dispositivo del cliente (102), de la actividad anómala.
14. Uno o más medios de almacenamiento informático que almacenan instrucciones utilizables por ordenador que, cuando son utilizados por uno o más procesadores, hacen que uno o más procesadores realicen un procedimiento, comprendiendo el procedimiento:
recibir una solicitud del cliente (150) para procesar datos a través de uno o más procesos de aprendizaje automático, originándose la solicitud del cliente (150) desde un dispositivo de cliente (102);
determinar un primer conjunto de atributos asociados con un primer dispositivo de red y determinar un segundo conjunto de atributos asociados con un segundo dispositivo de red, el primer conjunto de atributos y el segundo conjunto de atributos incluyen una o más capacidades de procesamiento de aprendizaje automático de un dispositivo de red respectivo ;
en base al menos en parte a la solicitud del cliente (150) y la determinación del primer conjunto de atributos y el segundo conjunto de atributos, seleccionar el primer dispositivo de red y el segundo dispositivo de red para enrutar la solicitud del cliente (150); y
en base al menos en parte a la selección, hacer que el primer dispositivo de red procese una primera parte de los datos y hacer que el segundo dispositivo de red procese una segunda parte de los datos.
15. El uno o más medios de almacenamiento informático de la reivindicación 14, en los que la selección se basa además en una o más características de recursos informáticos del primer dispositivo de red y del segundo dispositivo de red.
ES22152437T 2021-01-22 2022-01-20 Compartición distribuida de recursos de aprendizaje automático y enrutamiento de solicitudes Active ES2967675T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US17/155,780 US11516311B2 (en) 2021-01-22 2021-01-22 Distributed machine-learning resource sharing and request routing

Publications (1)

Publication Number Publication Date
ES2967675T3 true ES2967675T3 (es) 2024-05-03

Family

ID=80447157

Family Applications (1)

Application Number Title Priority Date Filing Date
ES22152437T Active ES2967675T3 (es) 2021-01-22 2022-01-20 Compartición distribuida de recursos de aprendizaje automático y enrutamiento de solicitudes

Country Status (4)

Country Link
US (2) US11516311B2 (es)
EP (2) EP4274191A3 (es)
CN (1) CN114885029A (es)
ES (1) ES2967675T3 (es)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11943245B2 (en) * 2021-07-05 2024-03-26 Allot Ltd. System, device, and method of protecting electronic devices against fraudulent and malicious activities
US20230032925A1 (en) * 2021-07-29 2023-02-02 Meta Platforms Technologies, Llc Improved architecture for coupling digital pixel sensors and computing components
US20230034011A1 (en) * 2021-07-29 2023-02-02 Hewlett Packard Enterprise Development Lp Natural language processing workflow
US11671480B2 (en) * 2021-07-30 2023-06-06 Cisco Technology, Inc. Network topology model generation and deployment for machine learning systems
US11582326B1 (en) * 2021-08-05 2023-02-14 Paypal, Inc. Scalable messaging framework for providing machine learning services across multiple availability zones
US11956129B2 (en) * 2022-02-22 2024-04-09 Ciena Corporation Switching among multiple machine learning models during training and inference
CN115952426B (zh) * 2023-03-10 2023-06-06 中南大学 基于随机采样的分布式噪音数据聚类方法及用户分类方法

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805072A (en) * 1994-12-12 1998-09-08 Ultra-High Speed Network VC connection method
US6917625B1 (en) * 2001-01-16 2005-07-12 At&T Corp. Intelligent peripheral concentrator
MX2009008376A (es) * 2007-02-08 2009-12-14 Behavioral Recognition Systems Sistema de reconocimiento conductual.
US10264102B2 (en) * 2011-11-03 2019-04-16 Aaron Nahumi System, methods and computer readable medium for augmented personalized social network
US9860140B2 (en) * 2013-02-05 2018-01-02 Cisco Technology, Inc. Dynamically adjusting a set of monitored network properties using distributed learning machine feedback
US9436917B2 (en) * 2013-02-05 2016-09-06 Cisco Technology, Inc. Accelerating learning by sharing information between multiple learning machines
US9152870B2 (en) * 2013-03-15 2015-10-06 Sri International Computer vision as a service
US20140358828A1 (en) * 2013-05-29 2014-12-04 Purepredictive, Inc. Machine learning generated action plan
US20150077550A1 (en) * 2013-09-17 2015-03-19 Star Management Services, LLC Sensor and data fusion
US9977926B2 (en) * 2015-03-31 2018-05-22 Alcatel Lucent Proximity-based localization of wireless tags based on wireless gateway association information
US9929913B2 (en) * 2016-03-28 2018-03-27 International Business Machines Corporation Automatic finding and sharing of IoT connected devices
US10432722B2 (en) * 2016-05-06 2019-10-01 Microsoft Technology Licensing, Llc Cloud storage platform providing performance-based service level agreements
US20200348662A1 (en) * 2016-05-09 2020-11-05 Strong Force Iot Portfolio 2016, Llc Platform for facilitating development of intelligence in an industrial internet of things system
WO2018089456A1 (en) * 2016-11-09 2018-05-17 Gamalon, Inc. Machine learning data analysis system and method
US11196623B2 (en) * 2016-12-30 2021-12-07 Intel Corporation Data packaging protocols for communications between IoT devices
US10721239B2 (en) * 2017-03-31 2020-07-21 Oracle International Corporation Mechanisms for anomaly detection and access management
US11204815B2 (en) * 2017-05-09 2021-12-21 Microsoft Technology Licensing, Llc Creation of modular applications with corresponding twins in the cloud
EP3625689A4 (en) * 2017-05-17 2021-04-28 Sigopt, Inc. SYSTEMS AND PROCESSES IMPLEMENTING AN INTELLIGENT OPTIMIZATION PLATFORM
JP7212266B2 (ja) * 2017-06-05 2023-01-25 バランスド メディア テクノロジー エルエルシー タスクを共同処理するためのプラットフォーム
US10796228B2 (en) * 2017-09-29 2020-10-06 Oracle International Corporation Machine-learning-based processing of de-obfuscated data for data enrichment
US11593865B2 (en) * 2017-09-29 2023-02-28 X Development Llc Customer experience
US10587521B2 (en) * 2017-11-07 2020-03-10 Facebook, Inc. Hierarchical orchestration of a computer network
US11270201B2 (en) * 2017-12-29 2022-03-08 Intel Corporation Communication optimizations for distributed machine learning
CN110033013B (zh) * 2018-01-08 2023-06-30 国际商业机器公司 创建用于识别特定机器学习模型的签名
CN113098773B (zh) 2018-03-05 2022-12-30 华为技术有限公司 数据处理方法、装置及系统
US20190317825A1 (en) * 2018-04-16 2019-10-17 Kazuhm, Inc. System for managing deployment of distributed computing resources
US11362910B2 (en) * 2018-07-17 2022-06-14 International Business Machines Corporation Distributed machine learning for anomaly detection
US10848974B2 (en) * 2018-12-28 2020-11-24 Intel Corporation Multi-domain trust establishment in edge cloud architectures
US11556839B1 (en) * 2019-01-15 2023-01-17 Amazon Technologies, Inc. Auditing system for machine learning decision system
US11386791B2 (en) * 2019-03-29 2022-07-12 GM Cruise Holdings, LLC Autonomous vehicle fleet management system
US11580335B2 (en) * 2019-04-02 2023-02-14 General Electric Company Transaction management of machine learning algorithm updates
US11295239B2 (en) 2019-04-17 2022-04-05 International Business Machines Corporation Peer assisted distributed architecture for training machine learning models
US11711268B2 (en) * 2019-04-30 2023-07-25 Intel Corporation Methods and apparatus to execute a workload in an edge environment
US20200394455A1 (en) * 2019-06-15 2020-12-17 Paul Lee Data analytics engine for dynamic network-based resource-sharing
US11425059B2 (en) * 2019-06-18 2022-08-23 Accenture Global Solutions Limited Chatbot support platform
US20190392296A1 (en) * 2019-06-28 2019-12-26 John Brady Hardware agnostic deep neural network compiler
US20190391796A1 (en) * 2019-06-28 2019-12-26 Intel Corporation Control of scheduling dependencies by a neural network compiler
US10785177B1 (en) * 2019-07-22 2020-09-22 Capital One Services, Llc Systems and methods for screening electronic communications
US11443240B2 (en) * 2019-09-06 2022-09-13 Oracle International Corporation Privacy preserving collaborative learning with domain adaptation
US11681796B2 (en) * 2019-09-10 2023-06-20 International Business Machines Corporation Learning input preprocessing to harden machine learning models
US20210142259A1 (en) * 2019-11-07 2021-05-13 International Business Machines Corporation Evaluating sensor data to allocate workspaces to worker entities based on context and determined worker goals
US11429434B2 (en) * 2019-12-23 2022-08-30 International Business Machines Corporation Elastic execution of machine learning workloads using application based profiling
US20220092412A1 (en) * 2020-09-23 2022-03-24 Uatc, Llc Systems and Methods for Segregating Machine Learned Models for Distributed Processing
US20220129787A1 (en) * 2020-10-27 2022-04-28 Paypal, Inc. Machine learning model verification for assessment pipeline deployment

Also Published As

Publication number Publication date
EP4033736B1 (en) 2023-09-13
EP4274191A2 (en) 2023-11-08
US11968281B2 (en) 2024-04-23
US20230020939A1 (en) 2023-01-19
CN114885029A (zh) 2022-08-09
US11516311B2 (en) 2022-11-29
EP4274191A3 (en) 2023-12-06
US20220239758A1 (en) 2022-07-28
EP4033736A1 (en) 2022-07-27

Similar Documents

Publication Publication Date Title
ES2967675T3 (es) Compartición distribuida de recursos de aprendizaje automático y enrutamiento de solicitudes
Nour et al. A survey of Internet of Things communication using ICN: A use case perspective
Ali et al. Internet of Things (IoT): definitions, challenges and recent research directions
US11876833B2 (en) Software defined networking moving target defense honeypot
US10243980B2 (en) Edge-based machine learning for encoding legitimate scanning
Abdulqadder et al. Multi-layered intrusion detection and prevention in the SDN/NFV enabled cloud of 5G networks using AI-based defense mechanisms
US10320824B2 (en) Anomaly detection using network traffic data
Valdivieso Caraguay et al. SDN: Evolution and opportunities in the development IoT applications
US10178131B2 (en) Entity identification for enclave segmentation in a network
US20210152578A1 (en) System and method for protecting a communication device against identification outside a computer network by routing traffic through a smart hub
Jamshidi The Applications of Machine Learning Techniques in Networking
US11647000B2 (en) System and method for protecting a communication device against identification outside a computer network by generating random and normalized non-IoT traffic
Ding et al. Detection of packet dropping attack based on evidence fusion in IoT networks
MohanaPriya et al. Restricted Boltzmann machine‐based cognitive protocol for secure routing in software defined wireless networks
Sivanesan et al. Detecting distributed denial of service (DDoS) in SD-IoT environment with enhanced firefly algorithm and convolution neural network
CN114401199A (zh) 一种层次化的网络能力模型
Lamba et al. Embedding Machine & Deep Learning for Mitigating Security & Privacy Issues in IoT Enabled Devices & Networks
Chandraprabha et al. Wireless network confidence level improvement via fusion adaptive resonance theory
Chen et al. Drug delivery via nanomachines
Soukup et al. Behavior anomaly detection in IoT networks
Shi et al. Distributed Community Detection in Opportunistic Networks
Xu et al. Data Center Networking (DCN): Infrastructure and Operation
Qi et al. Data Center Network in Cloud Computing
He et al. Data-Driven QoE Measurement
Li Data-driven mobile social networks