Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
El objetivo de utilizar aplicaciones basadas en el aprendizaje automático
En la última década, el aprendizaje automático (AM) se ha utilizado cada vez más para impulsar diversos productos, como sistemas de asistencia automatizada, servicios de traducción, motores de recomendación, modelos de detección de fraudes y muchos, muchos más.
Sorprendentemente, no hay muchos recursos disponibles para enseñar a los ingenieros y científicos a crear este tipo de productos. Muchos libros y clases enseñan a entrenar modelos de ML o a crear proyectos de software, pero pocos combinan ambos mundos para enseñar a crear aplicaciones prácticas basadas en ML.
La Implementación de ML como parte de una aplicación requiere una mezcla de creatividad, sólidas prácticas de ingeniería y una mentalidad analítica. Los productos de ML son notoriamente difíciles de construir porque requieren mucho más que el simple entrenamiento de un modelo en un conjunto de datos. Elegir el enfoque de ML adecuado para una función determinada, analizar los errores del modelo y los problemas de calidad de los datos, y validar los resultados del modelo para garantizar la calidad del producto, son problemas desafiantes que están en el centro del proceso de construcción de ML.
Este libro recorre cada paso de este proceso y pretende ayudarte a cumplir cada uno de ellos compartiendo una mezcla de métodos, ejemplos de código y consejos míos y de otros profesionales experimentados. Cubriremos las habilidades prácticas necesarias para diseñar, construir e implementar aplicaciones basadas en ML. El objetivo de este libro es ayudarte a tener éxito en cada parte del proceso de ML.
Utiliza el ML para crear aplicaciones prácticas
Si lees habitualmente artículos sobre ML y blogs corporativos de ingeniería, puede que te sientas abrumado por la combinación de ecuaciones de álgebra lineal y términos de ingeniería. La naturaleza híbrida del campo hace que muchos ingenieros y científicos que podrían aportar sus diversos conocimientos se sientan intimidados por el campo del ML. Del mismo modo, los empresarios y líderes de producto a menudo luchan por unir sus ideas para un negocio con lo que es posible con el ML hoy (y lo que puede ser posible mañana).
Este libro recoge las lecciones que he aprendido trabajando en equipos de datos en múltiples empresas y ayudando a cientos de científicos de datos, ingenieros de software y gestores de productos a crear proyectos de ML aplicado a través de mi trabajo al frente del programa de inteligencia artificial en Insight Data Science.
El objetivo de este libro es compartir una guía práctica paso a paso para construir aplicaciones potenciadas por ML. Es práctico y se centra en consejos y métodos concretos para ayudarte a crear prototipos, iterar e implementar modelos. Como abarca una amplia gama de temas, sólo entraremos en los detalles necesarios en cada paso. Siempre que sea posible, proporcionaré recursos para ayudarte a profundizar en los temas tratados, si así lo deseas.
Los conceptos importantes se ilustran con ejemplos prácticos, incluido un caso práctico que pasará de la idea al modelo desplegado al final del libro. La mayoría de los ejemplos irán acompañados de ilustraciones, y muchos contendrán código. Todo el código utilizado en este libro puede encontrarse en el repositorio GitHub del libro.
Como este libro se centra en describir el proceso del ML, cada capítulo se basa en conceptos definidos en los anteriores. Por ello, te recomiendo que lo leas en orden, para que puedas comprender cómo encaja cada paso sucesivo en el proceso completo. Si buscas explorar un subconjunto del proceso de ML, quizá te convenga más un libro más especializado. Si ese es el caso, comparto algunas recomendaciones.
Recursos adicionales
-
Si quieres conocer el ML lo suficientemente bien como para escribir tus propios algoritmos desde cero, te recomiendo Data Science from Scratch, de Joel Grus. Si lo que buscas es la teoría del aprendizaje profundo, el libro de texto Deep Learning (MIT Press), de Ian Goodfellow, Yoshua Bengio y Aaron Courville, es un recurso muy completo.
-
Si te preguntas cómo entrenar modelos de forma eficaz y precisa en conjuntos de datos específicos, Kaggle y fast.ai son lugares estupendos en los que buscar.
-
Si quieres aprender a crear aplicaciones escalables que necesiten procesar muchos datos, te recomiendo que le eches un vistazo a Designing Data-Intensive Applications (O'Reilly), de Martin Kleppmann.
Si tienes experiencia en codificación y algunos conocimientos básicos de ML y quieres crear productos basados en ML, este libro te guiará por todo el proceso, desde la idea del producto hasta el prototipo enviado. Si ya trabajas como científico de datos o ingeniero de ML, este libro añadirá nuevas técnicas a tu herramienta de desarrollo de ML. Si no sabes codificar pero colaboras con científicos de datos, este libro puede ayudarte a comprender el proceso de ML, siempre que estés dispuesto a saltarte algunos de los ejemplos de código en profundidad.
Empecemos por profundizar en el significado del ML práctico.
ML práctico
Para el propósito de esta introducción, piensa en el ML como el proceso de aprovechar los patrones en los datos para ajustar automáticamente los algoritmos. Se trata de una definición general, por lo que no te sorprenderá saber que muchas aplicaciones, herramientas y servicios están empezando a integrar el ML en el núcleo de su funcionamiento.
Algunas de estas tareas están orientadas al usuario, como los motores de búsqueda, las recomendaciones en plataformas sociales, los servicios de traducción o los sistemas que detectan automáticamente caras conocidas en fotografías, siguen instrucciones de comandos de voz o intentan proporcionar sugerencias útiles para terminar una frase en un correo electrónico.
Algunos trabajan de formas menos visibles, filtrando silenciosamente correos spam y cuentas fraudulentas, sirviendo anuncios, prediciendo patrones de uso futuros para asignar recursos de forma eficiente, o experimentando con la personalización de experiencias de sitios web para cada usuario.
Muchos productos aprovechan actualmente el ML, y aún más podrían hacerlo. El ML práctico se refiere a la tarea de identificar problemas prácticos que podrían beneficiarse del ML y ofrecer una solución satisfactoria a estos problemas. Pasar de un objetivo de producto de alto nivel a resultados impulsados por ML es una tarea difícil que este libro trata de ayudarte a realizar.
Algunos cursos de ML enseñan a los estudiantes métodos de ML proporcionándoles un conjunto de datos y haciéndoles entrenar un modelo con ellos, pero entrenar un algoritmo con un conjunto de datos es una pequeña parte del proceso de ML. Los productos convincentes impulsados por el ML dependen de algo más que de una puntuación de precisión agregada y son el resultado de un largo proceso. Este libro comenzará con la ideación y continuará hasta la producción, ilustrando cada paso en una aplicación de ejemplo. Compartiremos herramientas, buenas prácticas y errores comunes aprendidos trabajando con equipos aplicados que están implementando este tipo de sistemas cada día.
De qué trata este libro
Para cubrir el tema de la creación de aplicaciones potenciadas por ML, el enfoque de este libro es concreto y práctico. En concreto, este libro pretende ilustrar todo el proceso de creación de aplicaciones potenciadas por ML.
Para ello, primero describiré métodos para abordar cada paso del proceso. Después, ilustraré estos métodos utilizando un proyecto de ejemplo como estudio de caso. El libro también contiene muchos ejemplos prácticos de ML en la industria y presenta entrevistas con profesionales que han construido y mantenido modelos de ML de producción.
Todo el proceso de ML
Para ofrecer con éxito un producto ML a los usuarios, necesitas hacer algo más que entrenar un modelo. Tienes que traducir cuidadosamente la necesidad de tu producto a un problema de ML, reunir los datos adecuados, iterar eficazmente entre modelos, validar tus resultados e implementarlos de forma sólida.
Construir un modelo a menudo representa sólo una décima parte de la carga de trabajo total de un proyecto de ML. Dominar todo el proceso de ML es crucial para construir con éxito los proyectos, tener éxito en las entrevistas de ML y ser un colaborador destacado en los equipos de ML.
Un estudio de caso técnico y práctico
Aunque en no reimplementaremos algoritmos desde cero en C, seguiremos siendo prácticos y técnicos utilizando bibliotecas y herramientas que proporcionan abstracciones de alto nivel. Recorreremos este libro construyendo juntos una aplicación de ML de ejemplo, desde la idea inicial hasta el producto implementado.
Ilustraré los conceptos clave con fragmentos de código cuando proceda, así como con figuras que describen nuestra aplicación. La mejor forma de aprender ML es practicándolo, así que te animo a que recorras el libro reproduciendo los ejemplos y adaptándolos para construir tu propia aplicación potenciada por ML.
Aplicaciones empresariales reales
A lo largo de este libro, incluiré conversaciones y consejos de líderes en ML que han trabajado en equipos de datos en empresas tecnológicas como StitchFix, Jawbone y FigureEight. Estas conversaciones incluirán consejos prácticos obtenidos tras crear aplicaciones de ML con millones de usuarios y corregirán algunas ideas erróneas populares sobre lo que hace que los científicos de datos y los equipos de ciencia de datos tengan éxito.
Requisitos previos
Este libro de presupone cierta familiaridad con la programación. Utilizaré principalmente Python para los ejemplos técnicos y asumo que el lector está familiarizado con la sintaxis. Si quieres refrescar tus conocimientos de Python, te recomiendo The Hitchhiker's Guide to Python (O'Reilly), de Kenneth Reitz y Tanya Schlusser.
Además, aunque definiré la mayoría de los conceptos de ML a los que se hace referencia en el libro, no cubriré el funcionamiento interno de todos los algoritmos de ML utilizados. La mayoría de estos algoritmos son métodos de ML estándar que se tratan en recursos de ML de nivel introductorio, como los mencionados en "Recursos adicionales".
Nuestro caso práctico: Escritura asistida por ML
Para ilustrar concretamente esta idea, construiremos juntos una aplicación de ML a medida que avancemos en este libro.
Como estudio de caso, elegí una aplicación que puede ilustrar con precisión la complejidad de la iteración y la implementación de los modelos de ML. También quería cubrir un producto que pudiera producir valor. Por eso implementaremos un asistente de escritura potenciado por el aprendizaje automático.
Nuestro objetivo es construir un sistema que ayude a los usuarios a escribir mejor. En concreto, nuestro objetivo será ayudar a la gente a escribir mejores preguntas. Puede parecer un objetivo muy vago, y lo definiré más claramente a medida que ampliemos el alcance del proyecto, pero es un buen ejemplo por algunas razones clave.
- Los datos de texto están en todas partes
-
Los datos de texto están disponibles en abundancia para la mayoría de los casos de uso que se te ocurran y son fundamentales para muchas aplicaciones prácticas de ML. Tanto si tratamos de comprender mejor las reseñas de nuestro producto, como de categorizar con precisión las solicitudes de asistencia entrantes, o de adaptar nuestros mensajes promocionales a audiencias potenciales, consumiremos y produciremos datos de texto.
- Los ayudantes de redacción son útiles
-
Desde la función de predicción de texto de Gmail hasta el corrector ortográfico inteligente de Grammarly, los editores basados en ML han demostrado que pueden aportar valor a los usuarios de diversas formas. Esto hace que nos resulte especialmente interesante explorar cómo construirlos desde cero.
- La escritura asistida por ML es autónoma
-
Muchas aplicaciones de ML sólo pueden funcionar cuando están estrechamente integradas en un ecosistema más amplio, como la predicción del tiempo estimado de llegada para las empresas de transporte por carretera, los sistemas de búsqueda y recomendación para los minoristas online, y los modelos de puja publicitaria. Sin embargo, un editor de texto, aunque podría beneficiarse de su integración en un ecosistema de edición de documentos, puede resultar valioso por sí solo y exponerse a través de un simple sitio web.
A lo largo del libro, este proyecto nos permitirá destacar los retos y las soluciones asociadas que sugerimos para construir aplicaciones potenciadas por ML.
El proceso ML
El camino desde una idea hasta una aplicación de ML implementada es largo y sinuoso. Después de ver a muchas empresas y particulares construir proyectos de este tipo, he identificado cuatro etapas sucesivas clave, cada una de las cuales se tratará en una sección de este libro.
-
Identificar el enfoque de ML adecuado: El campo del ML es amplio y a menudo propone multitud de formas de abordar un determinado objetivo de producto. El mejor enfoque para un problema determinado dependerá de muchos factores, como los criterios de éxito, la disponibilidad de datos y la complejidad de la tarea. Los objetivos de esta etapa son establecer los criterios de éxito correctos e identificar un conjunto de datos inicial adecuado y la elección del modelo.
-
Construir un prototipo inicial: Empieza construyendo un prototipo de extremo a extremo antes de trabajar en un modelo. Este prototipo debe tratar de abordar el objetivo del producto sin ML de por medio, y te permitirá determinar la mejor forma de aplicar el ML. Una vez construido el prototipo, deberías tener una idea de si necesitas ML, y deberías poder empezar a reunir un conjunto de datos para entrenar un modelo.
-
Iterar los modelos: Ahora que tienes un conjunto de datos, puedes entrenar un modelo y evaluar sus deficiencias. El objetivo de esta etapa es alternar repetidamente entre el análisis de errores y la implementación. Aumentar la velocidad a la que se produce este bucle de iteración es la mejor forma de aumentar la velocidad de desarrollo del ML.
-
Implementación y monitoreo: Una vez que un modelo muestra un buen rendimiento, debes elegir una opción de implementación adecuada. Una vez implementados, los modelos suelen fallar de forma inesperada. Los dos últimos capítulos de este libro tratarán de los métodos para mitigar y monitorizar los errores de los modelos.
Hay mucho terreno que cubrir, ¡así que vamos a sumergirnos de lleno y empezar con el Capítulo 1!
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Utilizar ejemplos de código
Puedes descargarte ejemplos de código complementarios para este libro en https://oreil.ly/ml-powered-applications.
Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a bookquestions@oreilly.com.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo: Building Machine Learning Powered Applications por Emmanuel Ameisen (O'Reilly). Copyright 2020 Emmanuel Ameisen, 978-1-492-04511-3".
Si crees que el uso que haces de los ejemplos de código queda fuera del uso justo o del permiso aquí concedido, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos, conferencias y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.
Cómo contactar con nosotros
Por favor, dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Puedes acceder a la página web de este libro, donde se recogen erratas, ejemplos y cualquier información adicional, en https://oreil.ly/Building_ML_Powered_Applications.
Envía un correo electrónico a bookquestions@oreilly.com para comentar o hacer preguntas técnicas sobre este libro.
Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en http://www.oreilly.com.
Encuéntranos en Facebook: http://facebook.com/oreilly
Síguenos en Twitter: http://twitter.com/oreillymedia
Míranos en YouTube: http://www.youtube.com/oreillymedia
Agradecimientos
El proyecto de escribir este libro comenzó como consecuencia de mi trabajo como mentor de becarios y supervisando proyectos de ML en Insight Data Science. Por darme la oportunidad de dirigir este programa y por animarme a escribir sobre las lecciones aprendidas haciéndolo, me gustaría dar las gracias a Jake Klamka y Jeremy Karnowski, respectivamente. También me gustaría dar las gracias a los cientos de becarios con los que he trabajado en Insight por permitirme ayudarles a superar los límites de lo que puede ser un proyecto de ML.
Escribir un libro es una tarea desalentadora, y el personal de O'Reilly ayudó a hacerla más manejable en cada paso del camino. En particular, me gustaría dar las gracias a mi editora, Melissa Potter, que me proporcionó incansablemente orientación, sugerencias y apoyo moral durante todo el viaje que supone escribir un libro. Gracias a Mike Loukides por convencerme de algún modo de que escribir un libro era una empresa razonable.
Gracias a los revisores técnicos que revisaron los primeros borradores de este libro, señalando errores y ofreciendo sugerencias para mejorarlo. Gracias a Alex Gude, Jon Krohn, Kristen McIntyre y Douwe Osinga por sacar tiempo de sus apretadas agendas para ayudar a hacer de este libro la mejor versión posible de sí mismo. A los profesionales de los datos a los que pregunté sobre los retos del ML práctico que consideraban que necesitaban más atención, gracias por vuestro tiempo y vuestras ideas, y espero que consideréis que este libro los cubre adecuadamente.
Por último, por su inquebrantable apoyo durante la serie de ajetreados fines de semana y trasnochadas noches que conllevó escribir este libro, me gustaría dar las gracias a mi inquebrantable compañera Mari, a mi sarcástico compinche Eliott, a mi sabia y paciente familia y a mis amigos que se abstuvieron de denunciar mi desaparición. Habéis hecho realidad este libro.
Get Creación de aplicaciones basadas en el aprendizaje automático now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.