A medida que las organizaciones comienzan a hacer un uso más amplio del aprendizaje automático, necesitan administrar no solo sus datos y los modelos de aprendizaje automático que los utilizan, sino también las funciones que organizan los datos sin procesar en conceptos con los que los modelos pueden trabajar.
VER: Política de Ética de Inteligencia Artificial (TechRepublic Premium)
A principios de este año, LinkedIn abrió el código pluma, la tienda de características que utiliza internamente para cientos de diferentes servicios impulsados por aprendizaje automático que utilizan petabytes de datos, como mostrar trabajos interesantes o publicaciones de blog que tal vez desee leer. Es la tecnología detrás del servicio Azure Feature Store y ahora se ha convertido en parte del Fundación Linux IA y base de datos para que sea más útil para una gama más amplia de equipos de desarrollo.
“Las tiendas de características y Feathr son una parte importante de cómo hacer MLOps y cómo implementar modelos de aprendizaje automático de manera eficiente, efectiva y compatible al cubrir todas las cosas en las que la empresa debe pensar”, David Stein, ingeniero de personal sénior. trabajando en Feathr en LinkedIn le dijo a TechRepublic.
Cómo encuentra características el aprendizaje automático
En términos de aprendizaje automático, una función es una entrada de datos específica para un modelo de aprendizaje automático; considérelo como una columna en una base de datos o una variable en el código.
“Si está tratando de predecir si una persona va a comprar un automóvil, y tiene una persona y un automóvil como entrada para el modelo, y la predicción es una probabilidad de comprar o no querer comprar, características que el El modelo podría estar diseñado para usar puede incluir cosas como el nivel de ingresos de la persona o su color favorito: cosas que sabe sobre ellos y cosas sobre el automóvil”, dijo Stein. «Si tiene un conjunto de datos gigante con mil millones de filas, querrá elegir un conjunto de columnas como punto de partida y luego diseñará su modelo sobre cómo usar esas funciones para hacer la predicción».
Algunas de las funciones están ahí en los datos, como los ID de productos y las fechas, pero otras deben procesarse, por lo que es más complicado que simplemente señalar las columnas que desea en una base de datos.
“Es posible que todas las demás características útiles que va a necesitar deban calcularse, unirse y agregarse a partir de varios otros activos de datos”, explicó Stein.
Si su modelo de aprendizaje automático funciona con transacciones, el valor promedio de las transacciones en restaurantes durante los últimos tres meses sería ese tipo de característica. Si está creando un sistema de recomendaciones, los datos son tablas de usuarios, artículos y compras, y la función sería algo que puede usar para hacer recomendaciones, como qué productos se compraron durante la última semana o mes, si alguien compró el producto en un día de semana o fin de semana, y cómo estaba el clima cuando lo compraron.
Los sistemas complejos de aprendizaje automático tienen cientos o miles de características, y construir la canalización que convierte los datos en esas características requiere mucho trabajo. Deben conectarse a múltiples fuentes de datos, combinar las funciones con los datos etiquetados y conservar cosas como corrección de “punto en el tiempo”guarde esas funciones en un almacenamiento de latencia baja y asegúrese de que las funciones se manejen de la misma manera cuando use esos modelos para hacer predicciones.
“En LinkedIn, hay muchos, muchos activos de datos como bases de datos y almacenes de datos ETL y diferentes tipos de información sobre ofertas de trabajo, publicidad, elementos de noticias, usuarios de LinkedIn, empresas, habilidades y trabajos, y todas estas cosas, así como la economía de LinkedIn. gráfica”, dijo Stein. «Hay una gran cantidad de entidades diferentes que pueden estar relacionadas con un problema de predicción en particular».
Solo encontrar y conectarse a todos esos conjuntos de datos es mucho trabajo, antes de comenzar a elegir y calcular las diversas características que contienen.
“Los ingenieros que construirían los modelos de aprendizaje automático tendrían que hacer todo lo posible para encontrar los detalles de los diversos activos de datos de los que deberían provenir esas señales”, dijo Stein. También tienen que dedicar tiempo a normalizar cómo acceder a los datos: diferentes fuentes de datos pueden etiquetar la misma información como ID de usuario, ID de perfil o UID.
Dos personas que usan los mismos datos para entrenar diferentes modelos pueden terminar creando la misma característica para sus diferentes proyectos. Eso es un esfuerzo inútil, y si las definiciones de características son ligeramente diferentes, podrían dar respuestas confusamente diferentes. Además, cada equipo tiene que crear una canalización de ingeniería de funciones compleja para cada proyecto.
Feather: una plataforma para características
Una tienda de funciones es un registro de funciones que le permite hacer todo el trabajo una vez. Cada proyecto puede usar la misma canalización, y si necesita una función que otro desarrollador ya ha creado, puede reutilizarla. Esta es la función de Feather (Figura A).
Figura A
Stein sugiere pensar en ellos como administradores de paquetes.
“Las tiendas de características tratan de simplificar y facilitar la importación de los datos que necesita en su aplicación de aprendizaje automático y modelo de aprendizaje automático”, dijo. “A menudo, puede ser una configuración muy compleja, especialmente para proyectos grandes que se ejecutan durante un período de tiempo, y especialmente en empresas donde hay muchos proyectos que utilizan conjuntos de datos similares. Queremos que sea fácil para el ingeniero de aprendizaje automático importar sus características como sus entradas y luego escribir su código modelo”.
En lugar de encontrar el conjunto de datos correcto y escribir el código para agregar datos en funciones, Stein explicó además que «al ingeniero de aprendizaje automático le gustaría poder decir ‘bien, quiero la cantidad de años de experiencia del usuario, quiero algo sobre su empresa’ y simplemente hacer que aparezca como columnas en una tabla de entrada». De esa forma, pueden dedicar su tiempo a trabajar en el modelo en lugar de en la infraestructura de características.
Esto significa mucho menos trabajo para los desarrolladores en cada proyecto de aprendizaje automático; en un caso, miles de líneas de código se convirtieron en solo diez líneas gracias a Feathr. En otro, lo que habrían sido semanas de trabajo se terminó en un par de horas porque la tienda de características tiene operadores integrados.
Cuantos menos procesos manuales haya en cualquier tubería de desarrollo, menos frágil será, porque no le estás pidiendo a alguien que haga algo complicado a mano perfectamente cada vez. Tener esas características incorporadas significa que más personas pueden usar estas técnicas sofisticadas.
“Feathr brinda la capacidad de definir señales de actividad de ventana deslizante en datos de eventos sin procesar”, dijo Stein. “Eso solía ser difícil de hacer sin una plataforma que sepa cómo hacerlo correctamente. Hacerlo bien usando herramientas más básicas fue lo suficientemente difícil como para que muchos equipos ni siquiera experimentaran con el uso de señales como esa”.
Feathr también hace el trabajo de almacenar características en un caché de baja latencia para que estén listas para usar en producción.
“Cuando la aplicación está tratando de hacer una inferencia, solicita los valores de algunas características para poder ejecutar eso a través de su modelo para hacer alguna predicción”, agregó Stein. «Desea que la maquinaria de la tienda de características responda rápidamente para que esa consulta pueda responderse muy rápidamente».
No necesita esa latencia baja cuando está entrenando su modelo de aprendizaje automático, por lo que puede extraer datos de otras ubicaciones como Spark, pero con Feathr no tiene que escribir un código diferente para hacerlo.
“Desde el punto de vista del ingeniero de aprendizaje automático que escribe el código modelo, queremos que esas cosas se vean iguales”, dijo Stein.
La precisión y la repetibilidad son importantes para el aprendizaje automático, al igual que saber cómo los modelos producen sus resultados y qué datos están utilizando. Una tienda de funciones facilita la auditoría (la tienda de funciones de Azure tiene una interfaz de usuario fácil de usar que muestra de dónde provienen los datos y dónde se usan) y también puede hacer que sea más fácil de entender porque ve nombres simplificados en lugar de todos los diferentes identificadores de datos (Figura B).
Figura B
Aunque el acceso a los datos está centralizado a través de un almacén de funciones, Feathr utiliza el control de acceso basado en roles para asegurarse de que solo las personas que deberían tener acceso a un conjunto de datos puedan usarlo para su modelo. El código abierto Feathr usa Azure Purview, lo que significa que puede establecer controles de acceso una vez y hacer que se apliquen de manera constante y segura en todas partes.
Aprendizaje automático empresarial eficaz
Debido a que se creó para la tecnología y las configuraciones que usa LinkedIn internamente, el código abierto de Feathr también significó hacerlo más generalizado, por lo que sería útil para las empresas que usan tecnologías diferentes a las de LinkedIn.
“Hay un número creciente de personas en la industria que tienen este tipo de problema”, señaló Stein. “Cada organización individual que crea canalizaciones de funciones necesita descubrir cómo resolver esos desafíos de ingeniería, cómo asegurarse de que las cosas se utilicen de la manera correcta; estas son cosas que puede construir una vez y construir bien en una solución de plataforma”.
El primer paso fue trabajar con Microsoft para que Feathr funcionara bien en Azure. Eso incluye soporte para más fuentes de datos más comunes en la industria en general que en LinkedIn (Figura C).
Figura C
Si usa Feathr en Azure, puede extraer datos de Azure Blob Storage, Azure Data Lake Storage, bases de datos Azure SQL y almacenes de datos. Una vez que se han definido las características, se pueden generar con Spark ejecutándose en Azure Databricks o Azure Synapse Analytics.
Las funciones se almacenan en una caché de Azure Redis para servir con baja latencia y se registran en Azure Purview para compartirlas entre equipos. Cuando quiera usar características en un modelo de aprendizaje automático, puede llamarlas desde dentro de Azure Machine Learning: implemente el modelo en un clúster de Azure Kubernetes Service y podrá recuperar características de la memoria caché de Redis.
Llevar el proyecto a LF AI & Data Foundation es el siguiente paso y llevará a Feathr más allá del ecosistema de Azure.
“La colaboración y la afiliación mejoran la red de personas que trabajan en Feathr”, dijo Stein. “Tenemos acceso a recursos y oportunidades de colaboración con proyectos relacionados”.
La colaboración y la contribución son importantes porque las tiendas de características son una idea bastante nueva.
“La industria está creciendo hacia una comprensión más sólida de los detalles de lo que deben ser estas herramientas y lo que deben hacer, y estamos tratando de contribuir a eso en función de lo que hemos aprendido”, agregó.
Como sucede a menudo cuando se abre un proyecto, ese trabajo también mejoró a Feathr para LinkedIn.
“La ingeniería de LinkedIn tiene una cultura de fuente abierta de nuestras cosas que creemos que son generalmente útiles y serían de interés para la industria”, dijo Stein.
Los nuevos usuarios son una oportunidad para que las personas que construyeron la herramienta aprendan más sobre lo que la hace útil al ver cómo se puede usar para resolver problemas cada vez más diversos. También es una función forzada para hacer que la documentación sea lo suficientemente buena como para que un nuevo usuario pueda retomar el proyecto y comprender cómo usarlo para resolver un problema y cómo se compara con las alternativas, señaló.
“Hay muchas cosas que pertenecen a un producto completo”, dijo Stein. “El código abierto y poner una solución a la vista del público es una gran oportunidad para hacer esas cosas para hacer que el producto sea excelente. Llevar Feathr a la comunidad de código abierto y ahora a la Fundación Linux es parte del proceso de continuar evolucionando para convertirlo en una mejor herramienta que funcione para una variedad más amplia de casos de uso y aprendizaje automático. Es el camino para hacerlo mejor: Egoístamente, para LinkedIn, pero también para la comunidad”.