True ML Talks #4: plataforma de aprendizaje automático en Salesforce

Diseñado para la velocidad: ~ 10 ms de latencia, incluso bajo carga
¡Una forma increíblemente rápida de crear, rastrear e implementar sus modelos!
- Gestiona más de 350 RPS en solo 1 vCPU, sin necesidad de ajustes
- Listo para la producción con soporte empresarial completo
Volvemos con otro episodio de True ML Talks. En esto, nos sumergimos profundamente De Salesforce ML Platform, y estamos hablando con Arpet Male.
Arpeet formó parte del equipo de ingeniería de Salesforce que creó toda la plataforma ML. Es uno de los fundadores de Fondo de constructores, donde él y sus colegas invierten y asesoran a empresas de ML/AI de todo el mundo. Y, al mismo tiempo, es el jefe de infraestructura de Esquife.
📌
Nuestras conversaciones con Arpeet abordarán los siguientes aspectos:
- Casos de uso de ML en Salesforce
- Estructura del equipo de Salesforce ML
- Descripción general de la infraestructura de aprendizaje automático de Salesforce
- Creación de prototipos de modelos de aprendizaje automático en Salesforce
- Gestión de los costos de proyectos de aprendizaje automático a gran escala en la nube
- Flujo automatizado para modelos en movimiento
- Creación de un servicio de predicción en tiempo real para múltiples inquilinos
- Optimización de modelos para la IA empresarial
- Medidas de seguridad y confiabilidad en la plataforma Salesforce AI
- Plataforma de infraestructura ML frente a plataforma de implementación de software
Mira el episodio completo a continuación:
Por qué el aprendizaje automático es importante para Salesforce
- Experiencias de cliente personalizadas → El aprendizaje automático permite a Salesforce ofrecer experiencias personalizadas a los clientes, ya que les permite analizar los datos de los clientes y generar información para mejorar las interacciones con los clientes.
- Automatización de campañas de marketing → Ayuda a los clientes de Salesforce a automatizar sus campañas de marketing mediante el análisis de imágenes, texto y datos de redes sociales, lo que les permite centrarse en las personas de sus clientes y optimizar su estrategia de marketing.
- Chatbots para una atención al cliente eficiente → Los chatbots impulsados por ML ayudan a las empresas a automatizar la atención al cliente, lo que reduce los tiempos de espera y los costos para la empresa.
- Identificación y mitigación de los riesgos de seguridad → El aprendizaje automático ayuda a Salesforce a identificar y mitigar los posibles riesgos de seguridad mediante el análisis de datos y la detección de anomalías.
- Mejora continua de los productos y servicios → Al aprovechar el aprendizaje automático, Salesforce puede mejorar continuamente sus productos y servicios mediante el análisis de los comentarios de los clientes y el uso de esa información para desarrollar nuevas funciones y mejoras.
Estructura del equipo de Salesforce ML
En Salesforce, el equipo de aprendizaje automático se dividió en tres equipos:
- Equipo de investigación: El equipo de investigación estaba formado por cientos de investigadores que se centraron en problemas de investigación novedosos y publicaron artículos de investigación
- Equipo de ciencias aplicadas: El equipo de ciencias aplicadas fue responsable de los casos de uso del producto puro y la ciencia de datos
- Equipo de ingeniería: El equipo de ingeniería fue responsable de crear la infraestructura de la plataforma ML que pudiera respaldar a los equipos de investigación y ciencias aplicadas.
Hemos encontrado este interesante blog sobre cómo Salesforce utiliza el aprendizaje automático:
Descripción general de la infraestructura de aprendizaje automático de Salesforce
La infraestructura de aprendizaje automático de Salesforce se creó sobre una pila tecnológica que se eligió para proporcionar una plataforma escalable y confiable. Estos son algunos de los consejos más relevantes y únicos sobre la infraestructura:
- La infraestructura se ejecutaba en AWS y Kubernetes se utilizaba para administrar todo el procesamiento. El uso de Kubernetes permitía implementar fácilmente cualquier tipo de marco de aprendizaje automático, ya fuera TensorFlow o Pytorch.
- Hubo una separación de grupos entre el equipo de investigación, el equipo de ciencias aplicadas y el equipo de ingeniería. Esto permitió una mejor administración de la capacidad y los recursos informáticos.
- La plataforma se creó en torno a un orquestador para el entrenamiento, un servicio de predicción en tiempo real, un servicio de predicción por lotes y una API de interfaz para administrar las operaciones de los usuarios, como la autenticación y la autorización.
- La infraestructura consistía en una base de datos SQL estructurada y un almacén de archivos no estructurado como S3, que se utilizaban para administrar los datos. La plataforma era responsable de administrar los datos entre las dos.
- Había una combinación de clústeres de GPU, según el caso de uso. Esto permitió un uso eficiente de los recursos y un mejor rendimiento.

📌
Las principales razones por las que es importante separar los clústeres en la infraestructura de aprendizaje automático son:
1. Seguridad: La separación de los clústeres reduce el riesgo de filtraciones de datos y de acceso no autorizado a datos confidenciales. Cada equipo puede trabajar en su propio entorno con las medidas de seguridad necesarias.
2. Cumplimiento de datos: Los diferentes equipos pueden tener diferentes requisitos de cumplimiento de datos, que se pueden cumplir separando los clústeres. Esto garantiza que cada equipo trabaje con datos que cumplan con los requisitos reglamentarios necesarios.
3. Administración de recursos: La separación de los clústeres permite a los equipos disponer de los recursos que necesitan para completar sus tareas sin interferir con los recursos de otros equipos. Esto garantiza un uso eficiente de los recursos y evita la contención de recursos.
Creación de prototipos en Salesforce: un enfoque obstinado
En Salesforce, el marco de creación de prototipos se creó en torno a Jupyter Notebooks, lo que permite a los científicos de datos realizar experimentos a corto plazo de forma interactiva y en tiempo real. Luego, los experimentos pasaron a ser un trabajo de larga duración en un clúster a gran escala, que generaba métricas en tiempo real a medida que se ejecutaba el trabajo.
El SDK de entrenamiento y experimentación se creó para reducir la complejidad de programar trabajos, extraer y enviar datos y las dependencias del sistema. Los científicos de datos podrían recurrir a una API o función de Python para realizar estas tareas y realizar un seguimiento del progreso de los experimentos, las métricas, los registros y mucho más en el panel de control de Workbench.
El marco era obstinado, ya que ofrecía una solución abstracta, pero aún permitía cierta flexibilidad en la forma en que los científicos de datos elegían usar la plataforma. Sin embargo, no se trataba de un experimento completamente libre y había que seguir directrices y normas internas.
📌
Desafíos de alojar ordenadores portátiles Jupyter a gran escala con datos confidenciales:
Al alojar Jupyter Notebooks a gran escala con datos confidenciales, los principales desafíos implican los flujos de trabajo de aprobación para la autenticación. Los científicos de datos deben obtener la aprobación de una determinada persona o gerente para acceder a los datos. El entorno del portátil es efímero y se destruye una vez finalizados los experimentos, pero todos los artefactos generados persisten. La autenticación se basa en una API y se integra con los sistemas internos.
Cómo administrar los costos de proyectos de aprendizaje automático a gran escala en la nube
Los proyectos de aprendizaje automático a gran escala pueden volverse costosos rápidamente, especialmente cuando se utilizan recursos de GPU en la nube. Para gestionar los costos durante la fase de creación de prototipos, se pueden emplear algunas estrategias.
- Capacidad reservada: Si sabe cuánta capacidad necesita, puede reservarla con antelación y obtener un descuento en el precio. Esto funciona bien si tiene una buena idea de cuáles serán sus necesidades de recursos a largo plazo.
- Escalado automático: Si no estás seguro de cuánta capacidad necesitarás o si tus requisitos de recursos fluctúan, el escalado automático puede ayudarte. Al aumentar o reducir automáticamente los recursos en función de la demanda, puedes evitar tener que pagar por la capacidad no utilizada.
Si bien existen otras estrategias para reducir los costos, como la utilización de instancias puntuales, estas suelen requerir mucho esfuerzo de ingeniería y pueden no resultar prácticas para trabajos de larga duración. Además, es posible que las instancias puntuales no siempre estén disponibles en regiones con recursos de GPU.
Al utilizar la capacidad reservada y el escalado automático, puede administrar los costos de manera efectiva y, al mismo tiempo, contar con los recursos que necesita para sus proyectos de aprendizaje automático. Estas estrategias siguen siendo relevantes en la actualidad y se pueden aplicar a cualquier proveedor de nube pública.
Flujo automatizado para modelos en movimiento
El flujo de promoción de Salesforce para mover modelos de un entorno a otro se basó en la noción de conjuntos de datos dorados para cada dominio. Los científicos de datos podían evaluar el rendimiento del modelo en estos conjuntos de datos y también en conjuntos de datos aleatorios para evaluar la capacidad del modelo para funcionar correctamente en diferentes tipos de datos. Esto les ayudó a decidir si promover un modelo en entornos superiores o no.
El proceso de promoción se llevó a cabo a través del banco de trabajo, pero intencionalmente se mantuvo un poco manual para garantizar que el modelo funcionara más allá de un cierto umbral en n+1 tipos de conjuntos de datos. Esto supuso un desafío porque Salesforce es un sistema multiusuario y cada cliente tiene un conjunto de datos diferente, que a veces asciende a cientos de miles. Salesforce creó cientos de miles de modelos, cada uno específico para un cliente y un conjunto de datos, y automatizó el proceso en la medida de lo posible.
En general, el flujo de promoción en Salesforce se diseñó para garantizar que los modelos se evaluaran minuciosamente y tuvieran un buen rendimiento en diversos conjuntos de datos antes de promocionarlos a entornos superiores.
Creación de un servicio de predicción en tiempo real para múltiples usuarios para modelos complejos
La creación de un servicio de predicción en tiempo real para varios usuarios es una tarea compleja que implica atender una gran cantidad de modelos con diferentes tamaños y arquitecturas en tiempo real y, al mismo tiempo, cumplir con los requisitos de SLA específicos. Para abordar este desafío, el equipo de ingeniería de Salesforce desarrolló una capa de servicio que se sometió a varias iteraciones.
Inicialmente, el equipo se basó en una base de datos estructurada para los metadatos y en un almacén de archivos para los artefactos modelo. Sin embargo, este enfoque no era escalable para modelos más grandes y complejos. Para resolver este problema, dividieron sus clústeres en función de la complejidad del modelo y del tipo de cálculo requerido. Por ejemplo, los modelos más pequeños funcionaban con CPU, mientras que los modelos más grandes necesitaban GPU. Los clústeres se dedicaban a tipos específicos de modelos, como los modelos de PNL, los modelos de LSTM, los modelos de transformadores, los modelos de clasificación de imágenes, los modelos de detección de objetos y los modelos de OCR.
El equipo también desarrolló una capa que organizaba la implementación de servicios en diferentes clústeres y grupos de nodos. Implementaron el almacenamiento en caché para garantizar que los modelos solicitados con frecuencia tuvieran latencias más bajas. Inicialmente, a los científicos de datos e investigación se les permitía usar su marco preferido, lo que dificultaba la distribución uniforme de los modelos. El equipo redujo los marcos a uno o dos y optimizó los modelos para estos marcos.
Por último, el equipo convirtió los modelos en un formato uniforme independientemente del marco de formación original, lo que les permitió optimizar el código de servicio para cada tipo de modelo. En general, los esfuerzos del equipo dieron como resultado un servicio de predicción en tiempo real escalable, eficiente y confiable.
Lo que más me gustaba era trabajar en la inferencia en tiempo real. Y creo que, al final, también pudimos presentar una patente sobre ella. Por lo tanto, fue una excelente función de ingeniería la que agregamos a la plataforma. De hecho, era la función más utilizada. Hacíamos millones de predicciones de dos dígitos al día, por lo que fue muy, muy satisfactorio ver que tantos clientes la utilizaban.
- Alparra
Encontramos este interesante blog sobre ML Lakes y la arquitectura de la plataforma de datos de Salesforce:
Optimización de modelos para la IA empresarial
Hicieron una evaluación comparativa exhaustiva de los modelos y su objetivo era mantenerse dentro de los límites de los operadores y otras operaciones con un amplio respaldo dentro de un marco que garantizara una fácil conversión. Los operadores personalizados eran una conversión de alta fricción y requerían un enfoque de alto nivel de intervención, pero el equipo descubrió que el 95% de los casos de uso se resolvían fácilmente con modelos disponibles en el mercado que no requerían técnicas novedosas. Esto les permitió optimizar la mayoría de los casos de uso y dedicar tiempo al 5% restante de los modelos que no se utilizaban con tanta frecuencia.
Arpeet también señaló que marcos como Onyx, Triton y el servidor de inferencia de NVIDIA han logrado avances significativos en la estandarización de los formatos de modelos y la evaluación comparativa, lo que los convierte en herramientas valiosas para grandes casos de uso de inferencias en tiempo real.
Medidas de seguridad y confiabilidad en la plataforma Salesforce AI
Aprobaciónflujos de trabajo: Antes de implementar el modelo en producción, había flujos de trabajo de aprobación en torno al conjunto de datos para garantizar la privacidad de los datos.- Aislamiento de seguridad: El entorno de producción estaba completamente aislado y tenía certificaciones como la conformidad con HIPAA e ISO.
- Tenencia múltiple: Auth cubrió a todos los inquilinos para garantizar que solo un cliente en particular pudiera acceder a sus propios datos.
- Redundancia y alta disponibilidad: Se incorporaron suficientes medidas de redundancia y alta disponibilidad en la plataforma para garantizar la confiabilidad.
Plataforma de infraestructura ML frente a plataforma de implementación de software
Las plataformas de infraestructura de aprendizaje automático y las plataformas de implementación de software tienen mucho en común, según el debate entre Anuraag y Arpeet. Estas son las principales conclusiones:
- Similitudes: Ambos requieren una capa de datos, una capa de procesamiento, una capa de orquestación, un servicio de autenticación y una puerta de enlace de API, y un servicio de backend. El servicio de backend puede ejecutar una carga de trabajo de análisis o ingeniería de datos en una infraestructura estándar, mientras que en la infraestructura de aprendizaje automático, ejecuta una carga de trabajo de aprendizaje automático.
- Diferencias: La infraestructura de aprendizaje automático puede tener un lago de datos o un lago de aprendizaje automático para una carga de trabajo de aprendizaje automático, mientras que la infraestructura estándar puede no requerirlo. La infraestructura de aprendizaje automático también puede usar sistemas de orquestación especializados.
- Utillaje: Las herramientas de ambas plataformas de infraestructura son diferentes. La infraestructura de aprendizaje automático puede requerir herramientas especializadas para la orquestación, mientras que la infraestructura estándar puede usar herramientas más simples. Sin embargo, la herramienta de implementación para ambas plataformas de infraestructura es la misma en la mayoría de los casos, especialmente cuando se implementa en un clúster de Kubernetes.
En general, no hay diferencias significativas entre las plataformas de infraestructura de aprendizaje automático y las plataformas de implementación de software, excepto por la naturaleza de la carga de trabajo y las herramientas necesarias para la orquestación.
Reflexiones adicionales de Arpeet
MLOps: Construir frente a comprar
- Utilice las alternativas disponibles que proporcionan muchas funciones listas para usar al crear una infraestructura de aprendizaje automático para empresas medianas y nuevas empresas.
- Para las empresas emergentes en fase inicial, utilice scripts de Python sencillos, entrene en una máquina con varias GPU e implemente algún tipo de orquestación para ahorrar costos.
- Para los flujos de trabajo de aprendizaje automático establecidos en pequeñas y medianas empresas, utilice directamente las herramientas de código abierto, pero considere la posibilidad de utilizar una solución lista para usar, como TrueFoundry.
Consejos para ingenieros de ML
Creo que diría que centrarse en un nicho en este momento, en términos de poner en práctica un flujo de trabajo de IA a gran escala, probablemente sea el próximo conjunto de desafíos difíciles.
- Alparra
Lea nuestros blogs anteriores de la serie TrueML
Sigue viendo el TrueML serie youtube y leyendo todo el TrueML serie de blogs.
True Foundry es un PaaS de implementación de aprendizaje automático sobre Kubernetes para acelerar los flujos de trabajo de los desarrolladores y, al mismo tiempo, permitirles una flexibilidad total a la hora de probar e implementar modelos, al tiempo que garantiza una seguridad y un control totales para el equipo de Infra. A través de nuestra plataforma, permitimos a los equipos de aprendizaje automático implementar y supervisar modela en 15 minutos con un 100% de confiabilidad, escalabilidad y la capacidad de revertirse en segundos, lo que les permite ahorrar costos y lanzar los modelos a la producción más rápido, lo que permite obtener un verdadero valor empresarial.
TrueFoundry AI Gateway ofrece una latencia de entre 3 y 4 ms, gestiona más de 350 RPS en una vCPU, se escala horizontalmente con facilidad y está listo para la producción, mientras que LitellM presenta una latencia alta, tiene dificultades para superar un RPS moderado, carece de escalado integrado y es ideal para cargas de trabajo ligeras o de prototipos.
La forma más rápida de crear, gobernar y escalar su IA

















.png)


.webp)




.webp)







