- Resumen del contenido de las respuestas
schmookeeg
- Lo que más me gusta de trabajar actualmente como ingeniero de aprendizaje automático es colaborar con personas sin formación técnica
- Incluso personas que no pueden abrir MS Outlook más de 3 de cada 5 veces tienen una profundidad y una capacidad de análisis sorprendentes sobre su propio campo de especialidad
- Eso te vuelve muy humilde
- Las personas sin formación técnica me ven como un mago, y yo las veo como sacerdotes vudú
- Cuando entrenamos lo que nos gusta y hacemos predicciones, es muy gratificante para ambas partes
- La mayor parte del modelado está relacionada con el sector salud
- Extraemos insights de enormes data lakes de reclamaciones, recetas, notas médicas, signos vitales, imágenes diagnósticas y más
- También es impresionante lo fácil que es acceder a esta información (dejando HIPAA de lado)
- Realidad del tiempo
- Unas 3 horas a la semana se van en reuniones
- Unas 3 horas se van en preparación del trabajo, resolver problemas de ETL y hacer consultas puntuales para el negocio
- El resto del tiempo exploro datos para encontrar una pequeña ventaja al predecir ingresos de varios millones de dólares
- Es como buscar a Wally con matemáticas
- Y la escena de Wally mide como 50 TB :D
burnedout_dc4e3
- He trabajado en aprendizaje automático desde mediados de los 2000
- La mitad del tiempo se me va en limpiar datos para entrenar y usar modelos, es decir, en “mantener funcionando el pipeline de datos”
- La otra mitad del tiempo se me va en dar soporte técnico a “científicos de IA” que casi no saben programar
- Se la pasan copiando y pegando cosas en distintos servicios de chatbot
- Mi trabajo principal es explicarles cómo instalar paquetes de Python y cómo usar Git
- No tienen ningún plan de cómo su trabajo va a aplicarse al proyecto en el que estamos
- Pero insisten en que los modelos transformer van a resolver todos nuestros problemas de procesamiento de datos
- Estoy pensando en renunciar y no buscar un nuevo trabajo hasta que termine este ciclo de hype
tambourineman88
- La realidad fue lo opuesto de lo que esperaba cuando estudiaba aprendizaje automático
- El 95% de este trabajo es limpieza de datos, unión de datasets y feature engineering
- Ajustar y probar modelos es apenas el 5%
- Respuesta #1 a esta publicación
- Siempre ha sido así desde el principio, y seguirá siéndolo, amén
- Puntos importantes en nivel staff/principal
- Es importante mantener la “impedancia de datos” entre las funciones de producto que dependen de modelos de inferencia y la captura de datos
- Esto es para evitar que la instrumentación y la granularidad de los datos que alimentan al almacén de datos y al corpus de entrenamiento se rompan cuando cambie el producto o una funcionalidad
- Puntos importantes en problemas de aprendizaje por refuerzo (RL)
- Es importante asegurarse de que se hayan capturado las variables correctas para las tuplas del espacio de estados y acciones
- Después de eso, lo siguiente es encontrar cómo ajustar la interfaz o el modelo del entorno para obtener retroalimentación de recompensa
davedx
- Ejecutar
pip install pytorch
- El entorno se rompe
- Perder 4 horas arreglando el entorno de Python
- Ejecutar
pip install Pillow
- Aparece un error diciendo que no coincide con la arquitectura de CPU de la MacBook
- Perder otras 4 horas borrando todo lo relacionado con Python e instalándolo de nuevo desde cero
- Intentar ejecutar
pip install ..., ¡pero ya es hora de salir!
Xenoamorphous
- Soy desarrollador de software generalista, pero tuve que hacer trabajo de ML por necesidad
- Me da curiosidad cómo los expertos “de verdad” en ML manejan los resultados probabilísticos / de descenso por gradiente y las expectativas de la gente
- En el trabajo normal de software, algo funciona o no funciona, y si no funciona, puedes explicar por qué y, con suerte, arreglarlo
- Pero en ML te preguntan “¿por qué este clasificador de texto no clasificó correctamente este texto?”
- Y lo único que puedes decir es “le faltaron 0.004 puntos para alcanzar el umbral” o “no lo alcanzó por la elección o el orden de las palabras”
- Eso parece dejar a todo el mundo insatisfecho
angarg12
- Mi puesto es ingeniero de ML, pero en la práctica mi trabajo se parece mucho más a ingeniería de software pura
- Mi trabajo principal es construir sistemas que soporten sistemas de ML en producción
- Como mencionaron otros, eso incluye sobre todo transformación de datos, entrenamiento de modelos y model serving
- También incluye construir herramientas o modificar sistemas existentes para que los científicos puedan hacer su trabajo
- Pero visto desde afuera, parece que mi empresa es una excepción
- En la industria, las expectativas para un ingeniero de ML parecen alinearse más con lo que hacen los científicos de datos / científicos aplicados (por ejemplo, construir y probar modelos)
- Eso genera mucha ambigüedad sobre lo que se espera de cada rol en cada empresa
runban
- Un conserje muy bien pagado
- Con datos sucios no vas a obtener resultados decentes
- Por cierto, para este trabajo Perl es muchísimo mejor que Python
- Un solucionador de problemas de motherboards muy bien pagado
- Incluso con cooling por agua, las H100 se calientan muchísimo
- Porque no tenemos a nadie dedicado al hardware
- Y, como todos, pelear con dependencias de terceros que hacen lo que quieren
primaprashant
- He trabajado como MLE durante los últimos 5 años y, como dijeron otros comentarios, gran parte del trabajo se parece a SWE
- Dependiendo de la etapa del proyecto, las tareas diarias varían, pero suelen caer en alguna de estas categorías:
- Colaborar con stakeholders y TPM para desarrollar hipótesis que resuelvan problemas de negocio de alta prioridad mediante análisis de datos
- Estructurar un problema de negocio como un problema de ML y crear métricas adecuadas para el modelo de ML y para el problema de negocio
- Construir PoC y prototipos para validar la viabilidad técnica de nuevas funciones e ideas
- Escribir documentos de diseño para arquitectura y decisiones técnicas
- Trabajar con el equipo de plataforma para configurar y mantener pipelines de datos según las necesidades de proyectos nuevos y existentes de ML
- Construir, desplegar y mantener microservicios de ML para inferencia
- Ejecutar pruebas A/B y escribir documentos de diseño para el análisis posterior
- Configurar pipelines para reentrenar modelos de ML
jackspawn
- Dedico más del 50% de mi tiempo a ingeniería backend
- Porque ML se usa dentro de una API más grande
- Soy responsable de la experiencia end-to-end de esa API
- Así que hago lo que dé el mejor valor por el tiempo invertido
- Y muchas veces eso no tiene nada que ver con el modelo de ML
mardifoufs
- Trabajo en optimización de código de inferencia y en “productizar” modelos ya entrenados
- Actualmente trabajo con entrenamiento e inferencia local porque estoy en una industria donde los servicios en la nube todavía no son de uso común
- Como no se trata de LLM, no hay tantas herramientas ya hechas, así que resulta interesante
- Hay que construir muchas cosas por cuenta propia
- Hago de todo, desde evaluar la calidad de los datos (la parte local es desafiante) hasta usar CUDA directamente
- Porque existen bibliotecas de procesamiento de señales construidas sobre CUDA que ya podemos aprovechar
- A veces también incluye construir herramientas internas para el equipo (un equipo mixto de investigadores y MLE)
- Como es un campo muy de nicho, tenemos que construir nuestras propias herramientas para visualizar datos e inferencia
- Tengo libertad total en relación con herramientas y diseño de software interno, así que he podido tener bastante impacto en la organización
- Una de las herramientas improvisadas que construí ahora va a incorporarse también al producto principal
hirako2000
- No es mi tarea principal, pero paso la mayor parte del tiempo “pegando cosas entre sí”
- Ajustar open source existente
- Encontrar formas de optimizar recursos
- Reentrenar modelos con otros datasets
- Intentar ejecutar código Python mal escrito
- Agregar archivos de requirements faltantes
- Limpiar datos
- Pienso en qué cosas podrían resolverse de forma realmente útil con ML que no se hayan hecho ya hace años
- Reviso los precios más recientes de GPU y calculo si vale la pena comprar una en lugar de alquilar tiempo caro a un proveedor de hosting
- Leo papers hasta que me duele la cabeza
- Lo que toma tiempo es leer el abstract y revisar por encima algunos diagramas del medio
tenache
- Estudié machine learning y originalmente me contrataron para ese rol, pero la empresa cambió de rumbo y ahora trabajo con LLM
- Paso la mayor parte del tiempo en cosas como:
- Entender cómo funcionan distintos LLM
- Encontrar los parámetros óptimos
- Cómo hacer RAG (Retrieval-Augmented Generation)
- Cómo integrarlo con otros bots
trybackprop
- En una semana cualquiera, normalmente hago lo siguiente:
- 15%: reuniones de discusión técnica o 1:1
- Generalmente hablamos de ideas, planes sobre modelos o soporte a productos de ML
- 40%: desarrollo de ML
- En etapas iniciales del proyecto, entender los requerimientos del producto
- Discutir con el equipo qué modelos o algoritmos de ML podrían ayudar a alcanzar los objetivos del producto o del negocio
- Recolectar datasets existentes de analistas y científicos de datos
- Crear pipelines que usen esos datasets para generar conjuntos de entrenamiento y validación
- Mientras espero a que se llenen esos conjuntos de entrenamiento/validación (puede tomar hasta 2 semanas), trabajo al mismo tiempo en otros proyectos que estén más adelantados o más atrasados en desarrollo
- También trabajo en modelos nuevos (escritos en PyTorch), los pruebo con una pequeña cantidad de datos para evaluar el rendimiento offline y ver si se comportan como espero
- Ejecuto algunas pruebas manuales usando el modelo para completar información del producto y verificar que el modelo tenga sentido (sin experimentos a gran escala no queda más remedio que confiar en la intuición propia y del equipo)
- Cuando ya están listos los datasets de entrenamiento/validación, entreno el modelo con un gran volumen de datos, reviso los resultados offline y, si hay problemas, ajusto el modelo o cambio la arquitectura
- Si los resultados offline son buenos o prometedores, despliego el modelo a producción para experimentar
- Al mismo tiempo, puedo modificar el código de producto/infraestructura para probar el nuevo modelo que construí
- Ejecuto el experimento y aumento el tráfico lentamente hasta llegar a una asignación de 1-5%, y lo dejo corriendo por varias semanas o un mes
- Mientras tanto, observo los resultados y monitoreo todos los pipelines relevantes para asegurar que el modelo se esté entrenando correctamente y que factores inesperados de infraestructura / bugs / producto no alteren los resultados del experimento
- Si los resultados se ven como esperaba y coinciden con la hipótesis inicial, discuto con el equipo si lo lanzamos y, si decidimos hacerlo, ¡se lanza!
- (Nota: el desarrollo del modelo incluye escribir features, preparar datasets, análisis, crear el modelo de ML en sí e implementar cambios en código de producto/infraestructura)
- 20%: mantenimiento
- Que esté desarrollando un modelo nuevo no significa que ignore los ya existentes
- Los reviso todos los días para asegurarme de que no estén degradándose ni cambiando su rendimiento de formas inesperadas
- También arreglo pipelines y los hago más eficientes
- 15%: papers de investigación y aprendizaje técnico
- El mundo de AI/ML cambia muy rápido, así que leo papers nuevos constantemente y pruebo nuevas técnicas en casa para mantenerme al día
- Como me divierte, no se siente como una carga
- Ni siquiera lo veo como trabajo necesario para estar actualizado
- 10%: investigación interna
- Uso este tiempo para aprender más sobre otros productos del equipo o de la empresa y ver cómo nuestro equipo puede ayudar o qué técnicas/métodos podemos tomar prestados de ellos
- También uso este tiempo para anotar insights obtenidos al mirar hacia atrás el trabajo de los últimos 6 meses / 1 año
4 comentarios
La expresión "La gente sin formación técnica me ve como un mago, y yo los veo como sacerdotes vudú" me pareció divertida.
Datos... datos... me identifico.
Más o menos hacen exactamente lo que vagamente imaginaba que hacían.
¡Qué interesante!