Cursos / Datos grandes, paralelo e IA con R
Nivel Avanzado
100% online
Datos grandes, paralelo e IA con R
Saque el máximo rendimiento a su propia computadora: Parquet, arrow y DuckDB para datos que no caben en memoria, cómputo en paralelo con mirai y targets, y modelos de lenguaje locales o gratuitos para codificar textos y redactar boletines a escala, siempre validados.
Requisito previoRecomendado: Pronóstico de series de tiempo con R
Lo que aprenderá
Proyecto final
Un pipeline en su propia laptop que procesa el panel del OIJ y genera, verificado, el boletín de cada cantón.
Conocer los límites de su computadora. Medir núcleos, memoria y tiempos antes de optimizar, y saber por qué se acaban 4 GB.
Trabajar con datos que no caben en memoria. Pasar a Parquet por lotes y consultarlo con arrow y DuckDB sin cargarlo entero.
Usar todos los núcleos. Paralelizar en una sola máquina con mirai y future, y organizar el trabajo en un pipeline de targets.
Usar la IA con criterio profesional. Pedirle a un modelo el SQL de DuckDB y verificarlo contra dplyr; codificar miles de textos con modelos validados.
Escalar sin gastar de más. Llamadas en paralelo y por lotes, el costo calculado antes de lanzar y embeddings guardados en Parquet.
Redactar a escala sin inventar cifras. Un boletín por cantón con Quarto, verificado: el modelo redacta y las cifras salen de los datos.
Ver los objetivos detallados11 objetivos
- Diagnosticar su equipo (núcleos, memoria, disco, GPU), declarar su perfil (A–D) y predecir el tiempo, la memoria y el costo de una corrida antes de lanzarla, para luego medirlos y explicar la diferencia
- Escribir funciones que señalan errores con clase y en español, reintentan pedidos a un servicio con httr2 y se comprueban con pruebas de testthat que fallan cuando deben, dentro de un proyecto y sin crear un paquete
- Reemplazar ciclos por map() y su familia para leer muchos archivos y servicios paginados, fallar sin detenerse y rectangular JSON anidado
- Explicar por qué se acaban 4 GB de memoria (copiar al modificar, tipos, columnas que no hacen falta) y medir con bench y profvis antes de optimizar
- Convertir un CSV mayor que la memoria a Parquet particionado, por lotes, y consultarlo con arrow y DuckDB sin cargarlo entero, con límites de memoria e hilos que no cuelgan una laptop, incluido un Parquet remoto por HTTPS
- Repartir trabajo entre los núcleos de una máquina con mirai y purrr::in_parallel() (y leer código con future y furrr), con memoria por trabajador, semillas reproducibles y sin anidar paralelismo; y usar la máquina de un laboratorio por SSH
- Convertir un análisis en un flujo de targets con ramificación dinámica y crew local, que se puede reanudar y que solo recalcula lo que cambió
- Usar con criterio profesional un modelo de lenguaje desde R, como un instrumento medido: salida estructurada con ellmer, modelo fijado, registro de cada llamada, semáforo de datos como código y validación contra un conjunto de oro (kappa y F1 por estrato territorial), comparada con el método clásico
- Elegir con números entre un modelo abierto en el propio equipo (Ollama, cuantización, tokens por segundo) y una API (en paralelo o por lotes, dentro de límites gratuitos), según privacidad, costo, tiempo y calidad
- Calcular embeddings en CPU, guardarlos en Parquet y buscar por similitud en DuckDB, validando la búsqueda con exhaustividad en k
- Redactar con apoyo de un modelo 84 boletines cantonales con Quarto con parámetros, renderizados en paralelo a partir de borradores congelados, con la prosa verificada por pruebas, cada cifra calculada por código, una plantilla de referencia para medir el aporte del modelo y la declaración de uso de IA generada desde el registro, como la pide una revista o un comité de tesis
Temario
01Su máquina es el laboratorio2 videos
- Qué podrá hacer al terminar · 5 min
- Diagnóstico: núcleos, memoria, disco y GPU · 5 min
02Funciones que aguantan escala3 videos
- cli_abort() con clase · 15 min
- Condiciones y reintentos con httr2 · 15 min
- testthat en un proyecto, sin paquete · 15 min
03purrr y datos anidados4 videos
- map() y su familia · 15 min
- Muchos archivos del OIJ y del MEP · 15 min
- Fallar sin detenerse: safely() y .progress · 5 min
- JSON paginado de la capa del MEP · 15 min
04Programar con el tidyverse2 videos
- Abrazar con {{ }} · 15 min
- across() y pick() a fondo · 15 min
05Medir y entender la memoria3 videos
- bench y profvis · 15 min
- Por qué se acaban 4 GB · 15 min
- El disco como memoria · 5 min
06Parquet y arrow5 videos
- Del CSV inflado a Parquet por lotes · 15 min
- Particiones y filtros que no leen todo · 15 min
- Esquemas distintos y el número de filas · 5 min
- Tipos que ahorran memoria · 5 min
- nanoparquet para archivos pequeños · 5 min
07DuckDB5 videos
- dbplyr sobre Parquet y show_query() · 15 min
- duckplyr y cuándo vuelve a R · 15 min
- Uniones y ventanas grandes · 15 min
- memory_limit, threads y temp_directory · 5 min
- Pídale a un modelo el SQL de DuckDB y verifíquelo contra dplyr · 15 min
08Integradora A: el panel del OIJ en el perfil A1 videos
- Práctica integradora A: del panel al agregado cantonal · 30 min
09Paralelo en una máquina6 videos
- Procesos, núcleos y memoria por trabajador · 15 min
- mirai::daemons() y purrr::in_parallel() · 15 min
- future, furrr y future.mirai; tune con mirai · 15 min
- Semillas en paralelo · 5 min
- daemons(sync = TRUE) para depurar · 5 min
- No anidar paralelismo · 5 min
10targets y crew local4 videos
- De script a _targets.R · 15 min
- Ramificación dinámica sobre fragmentos Parquet · 15 min
- crew_controller_local() según el perfil · 15 min
- Qué se invalida · 5 min
11Más allá de su laptop, sin nube2 videos
- La máquina del laboratorio por SSH · 15 min
- Parquet remoto por HTTPS · 5 min
12IA responsable: el modelo de lenguaje como instrumento validado4 videos
- ellmer con un modelo local, gratuito o de pago, y el semáforo de datos como código · 15 min
- Salida estructurada que el código valida · 15 min
- Conjunto de oro, kappa y F1 por estrato · 15 min
- El prompt como código · 5 min
13IA responsable: elegir con datos un modelo abierto en su equipo4 videos
- Ollama por dentro · 15 min
- Medir tokens por segundo y elegir el modelo más pequeño que pasa el oro · 15 min
- Cuándo acelera Ollama en paralelo: CPU frente a GPU · 5 min
- Corridas largas reanudables y datos protegidos: retención y borrado · 15 min
14IA responsable: muchas llamadas a APIs, con el costo estimado3 videos
- parallel_chat_structured() dentro de los límites de una capa gratuita · 15 min
- batch_chat_structured(): lotes más baratos y reanudables · 15 min
- Estimar tiempo y costo antes de lanzar · 5 min
15IA responsable: embeddings en Parquet y búsqueda validada4 videos
- Qué es un embedding; trocear y calcular en CPU · 15 min
- Guardar en Parquet y cuentas de memoria · 15 min
- Usos: buscar, encontrar duplicados, agrupar · 15 min
- Validar la búsqueda con exhaustividad en k · 5 min
16IA responsable: redactar 84 boletines con un modelo y verificarlos5 videos
- Hechos por cantón y una plantilla de referencia · 15 min
- Borradores estructurados ligados a hecho_id · 15 min
- El verificador como pruebas · 15 min
- 84 boletines en paralelo desde borradores congelados, con su declaración · 5 min
- Revisión humana y vitals: cuánto aporta el modelo frente a la plantilla · 5 min
17Integradora B: la cobertura de las zonas alejadas1 videos
- Práctica integradora B: la cascada sobre el corpus de prensa · 30 min
18Proyecto final y cierre3 videos
- Presentación del proyecto y pruebas que fallan · 15 min
- Resolución guiada de un proyecto paralelo: la ficha de cada DRE del MEP · 30 min
- Cierre de la serie · 5 min