Resumen
En este episodio Cris presenta un analizador de PDF construido con modelos de lenguaje (LLM). Antes de mostrar el código, el grupo conversa sobre el uso de LLM en la empresa: latencia, costo, throughput, calidad y privacidad de los datos. Se discute si usar modelos de código abierto autoalojados (como WizardCoder) o servicios como GPT. Luego se explica el flujo del analizador: PDF a texto, división en chunks, embeddings, base de datos vectorial (FAISS), búsqueda de los fragmentos más cercanos a la pregunta y respuesta de GPT con ese contexto. Todo se arma con Streamlit y LangChain. Se comentan costos reales (centavos por interacción) y el tiempo de desarrollo (unas 3 horas el ejemplo simple, más los días de estudio). El resto trata de memes, entrevistas, networking, soft skills y consejos para entrar al mundo de los datos. La segunda aplicación, más avanzada, queda para la próxima semana.
Capítulos
- 00:00IntroRepaso del episodio 54 sobre LLM y comentario sobre WizardCoder como alternativa gratuita y de código abierto para programar en Python, y la ventaja de poder autoalojar modelos por privacidad. Se discuten los requisitos de hardware (GPU) y las limitaciones de GPT con librerías nuevas. Se habla de latencia, costo, throughput y calidad como criterios para implementar aplicaciones con LLM, de GPT Enterprise y del copilot de Microsoft. También se debate si GPT pierde calidad con el tiempo, el uso de GPT-4 vs 3.5 y si los LLM son creativos o solo innovadores.
- 17:47Flujo de trabajoSe explica el flujo del analizador: cargar el PDF en Streamlit, pasarlo a texto (PyPDF2) y dividirlo en chunks por el límite de tokens. Luego se crean embeddings (modelo text-embedding-ada de OpenAI) y se guardan en FAISS, que calcula la distancia coseno. La pregunta del usuario también se convierte en embedding, se buscan los chunks más cercanos y se pasan como contexto a GPT.
- 23:40Demo en vivo de appComienza la demo de código. Se comparan bases de datos vectoriales (Pinecone, Weaviate, Chroma, FAISS) en términos de latencia, costo y throughput, y se explica por qué las de pago escalan mejor para una empresa. Se mencionan costos de unos 0,02 dólares por interacción y se comentan Vercel y Redis.
- 24:26Esquema de trabajoContinúa la comparación de bases de datos vectoriales, diferencias entre instalación local y servicios gestionados, y experiencia de Cris con un servidor que se cayó por Streamlit y nginx, no por recursos de CPU o RAM.
- 28:40Precio de algunas pruebasCris cuenta que ese día gastó unos 0,5 dólares con GPT-3.5 y que la demo en vivo del mes anterior costó cerca de 0,3 dólares. Un servidor con 4 CPU y 8 GB de RAM dejado tres semanas costó unos 40 a 50 dólares adicionales.
- 29:35Continuación de la demoCris estima tres horas para el ejemplo simple (la mitad por un bug) y varios días de estudio de documentación (LlamaIndex, LangChain, OpenAI). Se prueba la app con un artículo de Medium sobre deuda de datos (data debt), preguntando en inglés y luego pidiendo la respuesta en español. Se explica que Streamlit no tiene modo chat y habría que construirlo aparte. Se responden preguntas sobre publicar proyectos, dockerizar aplicaciones y desplegarlos en un servidor con IP pública, y sobre si los PDF quedan almacenados.
- 40:25RaidLlega un raid al stream y se saluda brevemente a la audiencia y se explica de qué trata el canal.
- 41:25Resumen y continuación de la demoSe recorre el código: Streamlit, PdfReader, text splitter de LangChain (chunk size 1000 con overlap), embeddings de OpenAI, FAISS, búsqueda de los tres textos más similares y cadena de LangChain con gpt-3.5-turbo. Se comenta un bot de WhatsApp que requirió JavaScript y se menciona una pregunta sobre aprender Python para Power BI. Se prueba una pregunta fuera del documento (ganar más dinero con data) y la app no responde porque solo usa el contexto. Se plantea poder cambiarlo con cadenas de LangChain y se describe una aplicación para generar timestamps de videos con resúmenes por minuto agrupados. También hablan de sus roles (data scientist, data manager, ML engineer) y de por qué no pueden publicar proyectos laborales.
- 59:08MemesSe comenta el prompt engineering (más simple para texto, más complejo para imágenes) y un meme sobre LLMOps. También el meme de alucinaciones de datos falsos y un ejemplo de cómo GPT entendió un mensaje muy mal escrito para armar la tabla de contenido del stream. Se habla del uso de ChatGPT en entrevistas técnicas y se comenta una meta ambiciosa planteada a GPT. Se discute el balance entre habilidades técnicas y soft skills, y consejos para entrar al mundo de los datos (full stack, analista, sistematizar procesos de Excel con Python).
- 01:11:51PreguntasPreguntas del chat: dónde buscar trabajo en datos en Chile (LinkedIn, recomendaciones, networking), cómo recomendar a alguien y por qué solo conviene recomendar a quien se conoce trabajando, visión del futuro de los datos con IA, evaluación de habilidades blandas y técnicas, y si aprender React, Next y Tailwind en 3 meses es rápido o lento.
- 01:22:03CierreDespedida: se recuerdan los links de Discord y YouTube y que los streams son los martes de 7 a 9 de la noche, hora de Chile.