in

Feathr: la tienda de funciones de LinkedIn ahora está disponible en Azure

Figura 1: Ilustración de los problemas que resuelve la tienda de características

Esta publicación de blog es coautora de David Stein, ingeniero de software de personal sénior, Jinghui Mo, ingeniero de software de personal y Hangfei Lin, ingeniero de software de personal, todos del equipo de Feathr.

Motivación de la tienda de características

Con el avance de la IA y el aprendizaje automático, las empresas comienzan a utilizar canalizaciones complejas de aprendizaje automático en diversas aplicaciones, como sistemas de recomendación, detección de fraudes y más. Estos sistemas complejos generalmente requieren de cientos a miles de características para admitir aplicaciones comerciales sensibles al tiempo, y los conductos de características son mantenidos por diferentes miembros del equipo en varios grupos comerciales.

En estos sistemas de aprendizaje automático, vemos muchos problemas que consumen mucha energía de los ingenieros de aprendizaje automático y los científicos de datos, en particular, la ingeniería de funciones duplicadas, el sesgo en línea y fuera de línea y el servicio de funciones con baja latencia.

Figura 1: Ilustración de los problemas que resuelve la tienda de características

Figura 1: Ilustración sobre problemas que resuelve la tienda de características.

Ingeniería de características duplicadas

  • En una organización, miles de funciones están enterradas en diferentes scripts y en diferentes formatos; no se capturan, organizan ni preservan y, por lo tanto, no pueden ser reutilizados ni aprovechados por equipos que no sean los que los generaron.
  • Debido a que la ingeniería de funciones es tan importante para los modelos de aprendizaje automático y las funciones no se pueden compartir, los científicos de datos deben duplicar sus esfuerzos de ingeniería de funciones en todos los equipos.

Sesgo en línea-fuera de línea

  • Para las características, el entrenamiento fuera de línea y la inferencia en línea generalmente requieren diferentes canalizaciones de servicio de datos; garantizar características consistentes en diferentes entornos es costoso.
  • Se disuade a los equipos de utilizar datos en tiempo real para la inferencia debido a la dificultad de entregar los datos correctos.
  • Proporcionar una forma conveniente de garantizar la exactitud de los datos en un momento dado es clave para evitar la fuga de etiquetas.

Prestación de funciones con baja latencia

  • Para aplicaciones en tiempo real, obtener búsquedas de funciones de la base de datos para inferencias en tiempo real sin comprometer la latencia de respuesta y con un alto rendimiento puede ser un desafío.
  • Acceder fácilmente a las funciones con una latencia muy baja es clave en muchos escenarios de aprendizaje automático, y es necesario realizar optimizaciones para combinar diferentes llamadas de la API REST a las funciones.

Para resolver esos problemas, un concepto llamado tienda de características fue desarrollado, de modo que:

  • Las funciones están centralizadas en una organización y se pueden reutilizar
  • Las características se pueden servir de forma síncrona entre el entorno fuera de línea y en línea
  • Las características se pueden servir en tiempo real con baja latencia

Presentamos Feathr, una tienda de características probada en batalla

Desarrollar una tienda de funciones desde cero lleva tiempo, y se necesita mucho más tiempo para que sea estable, escalable y fácil de usar. Feathr es la tienda de funciones que se ha utilizado en producción y probado en batalla en LinkedIn durante más de 6 años, sirviendo a toda la plataforma de funciones de aprendizaje automático de LinkedIn con miles de funciones en producción.

En Microsoft, el equipo de LinkedIn y el equipo de Azure han trabajado muy de cerca para abrir el código fuente de Feathr, hacerlo extensible y crear una integración nativa con Azure. esta disponible en este repositorio GitHub y puedes leer más sobre Feathr en el Blog de ingeniería de LinkedIn.

Algunos de los aspectos más destacados de Feather incluyen:

  • Escalable con optimizaciones integradas. Por ejemplo, en función de algún caso de uso interno, Feathr puede procesar miles de millones de filas y datos de escala PB con optimizaciones integradas, como filtros de floración y uniones saladas.
  • Soporte enriquecido para uniones y agregaciones puntuales: Feathr tiene operadores incorporados de alto rendimiento diseñados para Feature Store, incluida la agregación basada en el tiempo, las uniones de ventanas deslizantes, las funciones de búsqueda, todo con precisión en un punto en el tiempo.
  • Funciones definidas por el usuario (UDF) altamente personalizables con compatibilidad nativa con PySpark y Spark SQL para reducir la curva de aprendizaje de los científicos de datos.
  • API pitónicas para acceder a todo con baja curva de aprendizaje; Integrado con la creación de modelos para que los científicos de datos puedan ser productivos desde el primer día.
  • Sistema de tipo rico incluida la compatibilidad con incrustaciones para escenarios avanzados de aprendizaje automático/aprendizaje profundo. Uno de los casos de uso común es crear incrustaciones para perfiles de clientes, y esas incrustaciones se pueden reutilizar en una organización en todas las aplicaciones de aprendizaje automático.
  • Integración de nube nativa con una arquitectura simplificada y escalable, que se ilustra en la siguiente sección.
  • Compartir funciones y reutilizarlas de forma sencilla: Feathr tiene un registro de funciones incorporado para que las funciones se puedan compartir fácilmente entre diferentes equipos y aumentar la productividad del equipo.

Pluma en arquitectura Azure

El siguiente diagrama de arquitectura de alto nivel articula cómo un usuario interactúa con Feathr en Azure:

Pluma en arquitectura Azure.

Figura 2: Pluma en arquitectura Azure.

  1. Un ingeniero de aprendizaje automático o de datos crea funciones con sus herramientas preferidas (como pandas, Azure Machine Learning, Azure Databricks y más). Estas características se incorporan a las tiendas fuera de línea, que pueden ser:

    • Base de datos Azure SQL (incluyendo sin servidor), Grupo SQL dedicado de Azure Synapse (antes SQL DW).
    • almacenamiento de objetos, como Azure BLOB Storage, Azure Data Lake Store y más. El formato puede ser Parquet, Avro o lago delta.

  2. El ingeniero de datos o de aprendizaje automático puede conservar las definiciones de características en un registro central, que se construye con Ámbito Azure.
  3. El ingeniero de datos o de aprendizaje automático puede unirse a todo el conjunto de datos de características de una manera correcta en un momento dado, con Feathr Python SDK y con motores Spark como Sinapsis azul o Ladrillos de datos.
  4. El ingeniero de datos o aprendizaje automático puede materializar características en una tienda en línea como Caché de Azure para Redis con Activo-Activolo que permite una arquitectura de múltiples primarias y múltiples escrituras que garantiza la eventual coherencia entre los clústeres.
  5. Los científicos de datos o los ingenieros de aprendizaje automático consumen funciones sin conexión con sus bibliotecas de aprendizaje automático favoritas, por ejemplo, scikit-learn, PyTorch o TensorFlow para entrenar un modelo en su plataforma de aprendizaje automático favorita, como Aprendizaje automático de Azureluego implemente los modelos en su entorno favorito con servicios como Punto de conexión de Azure Machine Learning.
  6. El sistema backend realiza una solicitud al modelo desplegado, el cual realiza una solicitud al Caché de Azure para Redis para obtener las funciones en línea con SDK de Python de plumas.

Un cuaderno de muestra que contiene todo el flujo anterior se encuentra en el Repositorio de plumas para más referencia.

Feathr tiene integración nativa con Azure y otros servicios en la nube. La siguiente tabla muestra estas integraciones:











Componente de plumas

Integraciones en la nube

Tienda fuera de línea – Tienda de objetos

Almacenamiento de blobs de Azure
Azure ADLS Gen2
AWS S3


Tienda fuera de línea – SQL

Azure SQL DB
Grupos de SQL dedicados de Azure Synapse (anteriormente SQL DW)
Azure SQL en máquina virtual
Copo de nieve

Tienda en línea

Caché de Azure para Redis

Registro de características

Ámbito de Azure

Motor de cómputo

Grupos de Spark de Azure Synapse
Ladrillos de datos

Plataforma de aprendizaje automático

Aprendizaje automático de Azure
Cuaderno Jupyter

Formato de archivo

Parquet
ORCO
Avro
lago delta

Tabla 1: Pluma sobre la integración de Azure con los servicios de Azure.

Instalación y puesta en marcha

Feathr tiene una interfaz pitónica para acceder a todos los componentes de Feathr, incluida la definición de funciones y las interacciones en la nube, y es código abierto aquí. El cliente Python de Feathr se puede instalar fácilmente con pip:

pip install -U feathr

Para obtener más detalles sobre cómo comenzar, consulte el Guía de inicio rápido de Feather. El equipo de Feathr también puede ser contactado en el Comunidad de plumas.

Avanzando

En este blog, presentamos una tienda de características probada en batalla, llamada pluma, que es escalable y está preparado para empresas, con integraciones nativas de Azure. Estamos dedicados a traer más funcionalidades a las integraciones de Feathr y Feathr en Azure, y siéntase libre de darnos su opinión al plantear problemas en Repositorio de GitHub de Feathr.

Fuente

Written by TecTop

Vicarious Visions, desarrollador de Tony Hawk, se unió a Blizzard

Vicarious Visions, desarrollador de Tony Hawk, se unió a Blizzard

MitoFuerza

Beamdog revela MythForce, una aventura de Roguelite inspirada en los dibujos animados de los 80