Docentes a cargo: Augusto y Gustavo González Bonorino

Duración: 6 semanas

Carga horaria estimada: 60 horas

Modalidad: A distancia, dictado en la plataforma virtual del Centro REDES.

Este curso se desarrolla completamente en formato virtual con lo cual permite realizar la capacitación desde cualquier parte del país y de la región. Este formato habilita a que cada alumno ingrese a la plataforma en el momento y horario que le resulte más productivo, ya que el material permanece en la plataforma y no existen restricciones de ingreso.

..... Más Información y Aranceles

Descripción general del curso:

El conocimiento se concreta en datos, y los datos tienen valor de mercado. Las redes sociales, las empresas de encuestas y de marketing, cualquier negocio grande o pequeño, trabaja con datos, y esos datos tienen valor. Se pueden comprar para mejorar una campaña publicitaria, y se pueden vender al mejor postor. Es decir, los datos se trafican. Sin embargo, los datos por sí solos no son tan valiosos como lo son si están eficientemente almacenados y organizados, de manera que se pueda acceder a ellos con facilidad y con seguridad. Este valor agregado se logra implementando bases de datos (BD), estructuras de almacenamiento eficientes, seguras, que pueden gestionarse computacionalmente. SQL es el lenguaje preferido para gestionar BD. Así, pues, es necesario saber programar en SQL para aprovechar la sostenida y creciente oferta laboral en este campo de las BD.

No obstante, no es suficiente saber SQL para lograr ese objetivo laboral. Tan importante como saber SQL es aprender de BD. Si uno aprende Python, o R, puede exitosamente escribir programas en esos lenguajes sin otro requerimiento. Pero por mucho que sepa de SQL, si lo aplica a una BD mal diseñada obtendrá resultados poco útiles. El aprendizaje de SQL debe necesariamente ir aparejado con aprender qué es una BD eficientemente diseñada, y cómo rediseñarla si fuere necesario. Encontrarán muchos cursos que enseñan SQL pero omiten hablar de BD. Estos cursos ofrecen la mitad de la solución. Convencidos de que esta es una omisión muy relevante, en hemos creado este curso con el doble propósito de enseñar SQL y el diseño de BD. En resumen, tienen dos cursos en uno.

El curso se divide en dos secciones mayores. La primera está dedicada casi exclusivamente al lenguaje SQL. Cómo recuperar la información que necesitamos de una tabla y cómo crear nuevas tablas de datos y poblarlas con información. En esta sección se trabaja con una única tabla. La segunda sección se dedica a bases de datos relacionales. Se enseña cómo diseñar una base de datos eficiente minimizando la redundancia y la dependencia funcional de información. Y también se introducen varios comandos no vistos previamente debido a que operan con más de una tabla.

Numerosos ejercicios distribuídos a lo largo del curso les servirán para fijar lo aprendido. Y al final, un proyecto guiado les permitirá poner en práctica todo lo aprendido. En este proyecto diseñarán una base de datos y aplicarán SQL para gestionarla mediante consultas.

Por conveniencia didáctica se emplea SQLite como sistema de gestión, pero la presentación facilita la migración a otros sistemas de gestión de BD.

ChatGPT:
Se incorpora ChatGPT para consultas generales y para ayuda con la codificación. La primera clase da ejemplos sobre el modo de uso y de posibles aplicaciones en el curso.

Contenidos

Módulo 1 Presentación de SQL y SQLiteStudio

¿Qué es SQL?

Sistemas de gestión de bases de datos relacionales

Variantes de SQL

Operación interna de SQL

SQLite

SQLiteStudio

 

Módulo 2 Operar con SQL

Datos y tablas de datos

La sintaxis SQL

Nomenclatura

Cuestiones de estilo

Categorías de sentencias

Sentencias con SELECT

SELECT con expresiones

Cláusula LIMIT

Cláusula DISTINCT

Cláusula WHERE

Cláusula ORDER BY.

Funciones de agregación

La función COUNT()

Cláusula GROUP BY.

Cláusula HAVING

Funciones de cadenas

Inserción de comentarios

Ejercicios 1

 

Módulo 3 Crear una BD y poblarla con datos

Tipos de dato en SQLite

Operar en la interfaz de SQLiteStudio

Operar en el editor de SQLiteStudio

Restricciones (constraints)

Sentencias de manipulación de datos (DML)

Cláusula INSERT

Cláusula UPDATE

Cláusula DELETE

Cláusula ALTER TABLE

Cláusula DROP

Gestión de fechas y hora

Comandos transaccionales (TCL)

Ejercicios 2

 

Módulo 4 Diseño de bases de datos

Sistema de archivos o de ficheros

Tipos de bases de datos

BD relacionales

Diseño de una base de datos relacional

Entidades

Atributos

Relaciones o dependencias

Cardinalidad

Participación

Representación gráfica de relaciones entre entidades - Diagramas ER

Clave primaria (PRIMARY KEY)

Clave ajena (FOREIGN KEY)

De diagramas ER a esquemas relacionales

Normalización de una BD

Formas normales

 

Módulo 5 Operar con múltiples tablas

Operar con la BD chinook.db

Introducción a Lucid Chart

Crear el diagrama ER para chinook.db

Integridad referencial (referential integrity)

Consultar más de una tabla

El operador UNION

El operador INTERSECT

El operador EXCEPT

Cláusula JOIN

Cláusula INNER JOIN

Cláusula LEFT JOIN

Cláusula CROSS JOIN)

Self join

Subconsultas (subqueries)

Orden de ejecución de una consulta

 

Módulo 6 Tópicos avanzados

La sentencia PRAGMA

Cláusula VIEW

Cláusula WITH

Disparadores (TRIGGER)

La expresión CASE WHEN

Limitaciones de SQLite

Más Información y Aranceles

Duración: Seis (6) semanas. La carga horaria total se estima en 96 horas.

Descripción general del curso:

Python y Excel son dos potentes programas para el procesamiento de datos. Aunque sus prestaciones se superponen, las diferencias son marcadas. Excel tiene a su favor mil millones de usuarios, 100 veces más que Python, lo cual hace que la difusión de informes en formato de planilla Excel sea lugar común (SENACEA, 2021). Como contrapeso a esta popularidad, Excel tiene limitaciones en el volumen de datos que puede procesar, en aspectos de seguridad informática y, sobre todo, en que la ejecución de tareas repetitivas es tarea engorrosa (CambridgeSpark, Abril, 2022).

Python, por su parte, supera a Excel en poder de cálculo, capacidad de gestión de datos, seguridad cibernética, y recursos gráficos, en parte gracias a miles de bibliotecas asociadas. Python opera con scripts que pueden ser reutilizados indefinidamente en tareas reiterativas, como consolidación de planillas, homogeneización de datos y compilación de informes, entre otras.

Este curso se basa en la premisa de que la simbiosis entre Python y Excel es de beneficio mutuo. El usuario de Excel se beneficia al incorporar recursos de Python para automatizar muchas tareas y mejorar las presentaciones, sin dejar de usar Excel. El usuario de Python se beneficia al aprender a manipular datos en planillas Excel y multiplicar la potencial audiencia difundiendo los resultados por Excel, una plataforma de fácil acceso y enorme aceptación.

En este curso se ve cómo combinar Excel y Python. En breve, se ve cómo transferir información de Excel a Python, procesarla en Python y devolver los resultados a Excel en un formato adecuado para la difusión. Se trabaja con dos bibliotecas de Python: pandas y openpyxl

ChatGPT:
Se incorpora ChatGPT para consultas generales y para ayuda con la codificación. La primera clase da ejemplos sobre el modo de uso y de posibles aplicaciones en el curso. 

Modalidad

El curso es fuertemente práctico e incluye videos complementados con scripts en cuadernos Jupyter.

Quienes deseen un certificado con calificación numérica deben presentar un Proyecto Personal al finalizar el curso.

Habrá una clase sincrónica en horario a convenir, para brindar orientación y para aclarar dudas sobre el Proyecto Personal.

Destinatarios:

Si usted es usuario de Excel y sabe/sospecha que Python puede ayudarle a automatizar tareas y fortalecer la capacidad de cálculo y gráfica de Excel, entonces este curso le será útil. Si usted es desarrollador de Python y sabe/sospecha que Excel le puede ampliar por un factor de diez la llegada a potenciales clientes gracias a la facilidad de uso, la plataforma interactiva y la enorme difusión que tiene Excel, entonces este curso le será útil. No se trata de remplazar un programa por otro. Se trata de combinarlos para crear un recurso mucho más potente.

Nivel y requisitos

El nivel del curso es básico a intermedio. No se presupone conocimiento previo en Python ni en programacion en general

 Requerimientos de computación:

Python es un programa de acceso libre y gratuito. Es poco exigente en espacio físico en el disco duro y de uso de la memoria RAM.  Una PC con procesador Intel i5, o equivalente, es suficiente para trabajar sin dificultad.

Programa del curso

ChatGPT: modo de uso y aplicaciones

Instalación de los programas empleados

Conformación del entorno de trabajo

Bases de datos utilizadas

Python y Excel: los programas

Presentación de Python

Biblioteca openpyxl

Biblioteca pandas

Preparación de informes y miscelánea

Más información

En 2018 las publicaciones diarias buscando gerentes con conocimientos de Python crecieron un 80%. El aprendizaje de Python constituye un paso inicial para introducirse en la Ciencia de datos.

Duración: 6 semanas

El curso se extiende por seis semanas. En las primeras cuatro semanas se presenta todo el contenido. Las últimas dos semanas se emplean en repaso, puesta al día y desarrollo del Proyecto Personal, optativo. El Proyecto Personal brinda la oportunidad de desarrollar un tema de interés particular para el participante.

Destinatarios: La naturaleza multipropósito de Python, unido a la facilidad de aprendizaje, lo hacen atractivo tanto para jóvenes estudiantes como para profesionales formados. Este es un curso de introducción a Python que le llevará hasta un nivel intermedio de manejo del lenguaje. Quienes tengan nociones de Python, o provengan de otros lenguajes, también encontrarán material útil.

Nivel y requisitos

El nivel del curso es básico a intermedio. No se presupone conocimiento previo en Python ni en programacion en general

Requerimientos de computación:

Los programas que se emplean son poco exigentes en espacio físico en el disco duro y de uso de la memoria RAM. Una PC con procesador Intel i5, o de rango equivalente, es suficiente para trabajar sin dificultad.Se emplea software de acceso libre y gratuito.

Descripción general del curso:    

Python es un lenguaje de programación de alto nivel y multipropósito que opera mediante la interpretación de scripts y favorece una organización modular del código. Aclaremos esta definición. Alto nivel significa que tiene una sintaxis más cercana a la experiencia en lenguaje del usuario, en otras palabras, es más fácil de entender. El término interpretación se refiere a que el código, o script, es leido, interpretado y ejecutado línea por línea, sin pasar por una etapa de compilación, como es el caso de lenguajes como FORTRAN. Organización modular indica que un script puede dividirse en módulos independientes entre sí de tal manera que un determinado módulo puede ser reutilizado en otros scripts. Adicionalmente, Python es un lenguaje de acceso libre y gratuito.

Python es un lenguaje de programación estructurada y también un lenguaje de programación orientada a objetos. Este curso se enfoca en la programación estructurada.

¿En qué se usa Python?

  • Minería de datos
  • Aprendizaje automatizado
  • Inteligencia artificial
  • Desarrollo web
  • Creación de juegos
  • Creación de aplicaciones de escritorio
     

ChatGPT:
Se incorpora ChatGPT para consultas generales y para ayuda con la codificación. La primera clase da ejemplos sobre el modo de uso y de posibles aplicaciones en el curso.

Más Información

Duración: 6 semanas

Horas de curso: 96 horas

. ....  

Destinatarios: Para quien desee aprender a programar en R, o simplemente utilizarlo en sus labores profesionales, este curso les dará el conocimiento necesario para hacerlo.

Modalidad: A distancia.

Requisitos: Se utiliza software de distribución libre y gratuita.

Este curso no requiere conocimientos previos de R. Se parte de cero y se construye conocimiento hasta un nivel intermedio avanzado. R no es un lenguaje difícil de aprender pero de todos modos requiere incorporar una cantidad importante de conceptos y de comandos propios de un lenguaje complejo.

Descripción general del curso:

R es el lenguaje ideal para trabajar en análisis y modelado estadístico. La compacidad de código y la versatilidad para procesar datos numéricos y categóricos son virtudes que lo colocan por sobre otros lenguajes en ese campo de aplicación. Por este motivo, aprender a programar en R es el primer paso hacia la Ciencia de Datos, un universo de aplicaciones en continua expansión. Para muchos empleos, programar en R agrega valor a sus antecedentes profesionales. R también opera en otros campos, como web scraping y análisis de datos espaciales, de lo cual se dan ejemplos hacia el final de este curso, pero en estos hay competencia.

Programación en R les enseñará a desarrollar sus propios scripts. Para ello se apoya en numerosos ejemplos, y especialmente en ejercicios de codificación que les invitan a ser protagonistas, ayudados por escuetas guías. De este modo, en seis semanas aprenderán programar en R.

Adicionalmente, un conjunto de scripts aplicados a problemas reales y detalladamente comentados, les guiará hacia un nivel intermedio alto de conocimiento de R, al tiempo que les impartirá las buenas prácticas de programación.

Un último módulo presenta una breve introducción a la aplicación de R en el manejo de datos espaciales, que podrá servir para encaminarles en ese tema.

Programa del curso

Primera Parte

Conceptos fundamentales

  • R y RStudio
    Descarga e instalación
    Operación
  • Paquetes
  • Estructuras y Tipos de datos
    Vector
    Matriz
    Array
    Lista
    Marco de datos
    Factor
    Coerción
    Función
    Inspección de las propiedades
  • Fundamentos de programación en R
    Scripts
    Iteración
    Condiciones
  • Gráficos avanzados
  • Operando con datos
    Ingresar/Exportar datos
    Manejo de fechas
    Manejo de tablas
    Valores faltantes
    Valores extremos
    Minería de datos

Segunda Parte

Aplicaciones

  • Fundamentos de las técnicas aplicadas
    Algebra vectorial y matricial
    Programación lineal
    Series temporales
    Correlación y regresión
    Clasificación, Matriz de distancia, Análisis de agrupamiento
    Componentes principales, Análisis factorial
  • Campos de aplicación
    Agricultura
    Ciencias de la Tierra y Ambientales
    Delito
    Demografía
    Finanzas
    Ingeniería
    Medicina
    Aprendizaje automatizado
  • Nociones de análisis espacial

 

Dinámica de la cursada:

Este curso se desarrolla completamente en formato virtual con lo cual permite realizar la capacitación desde cualquier parte del país y de la región. De la misma forma, el formato habilita a que cada alumno ingrese a la plataforma en el momento y horario que le resulte más productivo, ya que el material queda subido a la misma y no existen restricciones de ingreso ni obligación de horarios o encuentros virtuales.

Más información y arancelesDocentes a cargo: Augusto y Gustavo González Bonorino

Duración: 6 semanas

Carga horaria estimada: 60 horas

A distancia, dictado en la plataforma virtual del Centro REDES.

Este curso se desarrolla completamente en formato virtual con lo cual permite realizar la capacitación desde cualquier parte del país y de la región. De la misma forma, el formato habilita a que cada alumno ingrese a la plataforma en el momento y horario que le resulte más productivo, ya que el material queda subido a la misma y no existen restricciones de ingreso ni obligación de horarios o encuentros virtuales.

Descripción general del curso

ChatGPT es sin duda el producto de IA más conocido. La mayoría de ustedes lo han probado y han ya apreciado la habilidad de ChatGPT para dar atinadas respuestas a las más variadas consultas. Y quizás también hayan ya descubierto algunas de sus debilidades. Si le consultan sobre eventos recientes o sobre información privada, como los apuntes de este curso, ChatGPT no podrá dar respuestas adecuadas. La razón de ello es sencilla: en ambos casos la información no estaba disponible al momento del entrenamiento, ya sea por confidencialidad, ya sea porque el evento tuvo lugar con posterioridad a la última actualización de ChatGPT. La generación de respuestas erróneas, o imprecisas, por parte de un modelo de lenguaje se conoce como alucinación.

El propósito de este curso es mostrarles cómo construir un chatbot, es decir, un programa capaz de simular una conversación con el usuario, que responda a consultas referidas a datos que ustedes inyectan al modelo, datos que no fueron incluidos en el entrenamiento del modelo. Un chatbot es interactivo, establece una relación con el usuario. Las aplicaciones de este tipo de chatbot son múltiples. Puede distribuirse como manual de uso de un producto que su negocio vende, o como instructivo para un curso que ustedes dictan. Puede servir para rápidamente recuperar información sobre la Constitución de Argentina, o sobre la información contable de su empresa. También se emplean para gestionar la atención a clientes, respondiendo a consultas sobre su negocio o empresa, o sobre los requisitos para comprar un automóvil. Y así siguiendo ...

Nuestro chatbot empleará un modelo de lenguaje de gran escala (LLM) como motor del procesamiento de los datos. Durante el desarrollo de los LLM se descubrió que son capaces de aprender sobre datos nuevos. Dicha capacidad se implementa mediante un proceso denominado RAG (Retrieval Augmented Generation), libremente traducido como generación de respuestas por recuperación de texto aumentada. Gran parte del curso se dedica a explicar cómo se construye un sistema RAG y el resto a aplicarlo en la construcción de chatbots. Al concluir el curso habrán incorporado varios ejemplos de chatbots que podrá adaptar a requerimientos particulares.

 

Modalidad

El curso es fuertemente práctico. Videos complementados con scripts en cuadernos Jupyter, y ejercicios de codificación les guiarán hacia la construcción de un chatbot adaptado a sus requerimientos, en seis semanas.

Quienes deseen un certificado con calificación numérica deben presentar un Proyecto Personal al finalizar el curso.

Se ofrecen dos reuniones sincrónicas en horario a convenir, para brindar orientación y para aclarar dudas sobre el Proyecto Personal.

El acceso al material del curso permanece abierto por unos seis meses después del cierre.

 

Destinatarios:

Son potenciales interesados quienes puedan imaginar una aplicación para un chatbot conversacional que responda consultas que ChatGPT no puede responder.

  

Nivel y requisitos

El curso requiere un nivel de conocimiento básico de Python. Deben estar cómodos con funciones y lectura-escritura de datos.

  

Requerimientos de computación:

Los programas que se usan son de acceso libre y gratuito. Es poco exigente en espacio físico en el disco duro y de uso de la memoria RAM. Una PC con procesador Intel i3, o equivalente, es suficiente para trabajar sin dificultad.

   

Temario del curso

Propósito del curso
Organización del curso
Definición de chatbot
LangChain
Modelos de lenguaje y LangChain
Modelos LLM
Modelos chat
Mensajes como tuplas
Parámetros de control 
Comunicación con el modelo: el prompt
Tipos de prompt: cadenas y mensajes
Plantilla PromptTemplate
Modular el comportamiento del modelo
Variables múltiples
Guardar un prompt de PromptTemplate en el disco duro
Ejemplo de uso – resumen
Ejemplo de uso – traducción
Plantilla FewShotPromptTemplate
Aprendizaje en contexto (“in-context learning”)
Plantilla ChatPromptTemplate
Modular la actitud del asistente
Plantilla MessagePromptTemplate
Recuperar las variables dinámicas
Enriquecer el prompt
Revisión del uso de variables dinámicas
El sistema RAG (Retrieval Augmented Generation)
Organización de un sistema RAG
Carga de documentos (“Document loaders”)
Carga de archivos de texto
Carga de archivos CSV
Carga de documentos en PDF
Carga de documentos de MSWord
Descarga desde YouTube
Descarga de sitios web
Descarga del sitio arXiv
Carga desde un directorio
Partición de texto (“text splitting”)
Ventana de contexto
Partición de texto (“text splitting”)
Text splitters en LangChain
CharacterTextSplitter
RecursiveTextSplitter
Tokenización
La biblioteca tiktoken
Incrustación (“embedding”)
El espacio vectorial (“vector store”)
Vector store con ChromaDB
Vector store con FAISS
Guardar el espacio vectorial
Recuperación de datos y generación de la respuesta Retrieval
Recuperación con rutinas de un vector store
Similitud semántica (semantic similarity)
Ejemplo Similitud semántica con producto escalar
Ejemplo Similitud semántica con similarity_search
MMR (Maximum marginal relevance)
Recuperación con metadatos
Recuperación con rutinas de Retrieval
VectorStoreIndexCreator
Recuperación sin vector store
Output parsers
Parser CSV
Chain
LLMChain
SimpleSequentialChain
SequentialChain
RetrievalQA
LCEL

Más información y aranceles

Duración: seis (6) semanas. La carga horaria total se estima en 96 horas.

Descripción general del curso:

Las ciencias sociales y de la salud generan anualmente enormes volúmenes de datos, y por ello son objetivos prioritarios de la ciencia de datos y, más específicamente del aprendizaje automático (“machine learning”), ya que este ofrece numerosas técnicas para la gestión y el análisis de la información que producen.
Por ejemplo, se estima que en unos 15 años dos tercios de las actividades en salud serán gestionadas por técnicas de aprendizaje automático.
Este curso introduce al aprendizaje automático y muestra cómo aplicar variadas técnicas en las ciencias sociales y de la salud.

¿Qué es el aprendizaje automático?

El aprendizaje automático (“machine learning”) es un subconjunto de la inteligencia artificial centrado en el desarrollo de algoritmos y modelos que permiten a las computadoras aprender y tomar predicciones o decisiones sin necesidad de programación explícita. Por lo tanto, en lugar de depender de sus instrucciones, los sistemas de aprendizaje automático aprenden de los datos y mejoran su rendimiento con el tiempo gracias a la experiencia.

Destinatarios:

Todo personal que integra, o aspira a integrar, el sistema de salud. También el curso es una propuesta de capacitación para otros interesados en conocer técnicas de manejo de datos orientadas a los procesos de toma de decisiones.

Modalidad:

El curso es práctico, documentado con ejemplos no triviales. Cada técnica se presenta con el mínimo necesario de teoría y enseguida se enseña paso a paso cómo aplicarla con datos reales. Los ejemplos se desarrollan en el lenguaje Python, empleando cuadernos Jupyter Notebook descargables.

El curso se desarrolla completamente en formato virtual con lo cual permite realizar la capacitación desde cualquier parte del país y de la región. De la misma forma, el formato habilita a que cada alumno ingrese a la plataforma en el momento y horario que le resulte más productivo, ya que el material queda subido a la misma y no existen restricciones de ingreso ni obligación de horarios o encuentros virtuales.

 

Requerimientos de computación:

Python es una aplicación poco exigente en materia de memoria RAM. Con una PC que cuente con un procesador Intel i3, o de rango equivalente, se puede trabajar sin dificultad.
El software utilizado en el curso es de distribución libre y gratuita. Los inscriptos recibirán las instrucciones pertinentes para la descarga.

 

Programa del curso


Parte I – Datos, Ciencia de Datos y Aprendizaje Automático

Objetivos y metodología

Algoritmos y modelos

Modos de aprendizaje automático

Bibliotecas de Python: pandas, numpy, scikit-learn

 

Parte II -Preparación para el análisis

Transferencia de datos

Inspección exploratoria

Gestión de datos faltantes, codificación de variables categóricas, normalización

 

Parte III – Técnicas de Aprendizaje Automático

Clasificación de las técnicas en AA

Organización de los datos de entrada

Función de costo

Descenso por gradiente

Propiedades de los datos

 

Aprendizaje supervisado: regresión

Regresión lineal

Regresión de Poisson: datos de conteo

 

Aprendizaje supervisado: clasificación

Regresión logística

SVM

Naive Bayes

Arbol de decisión

Bosque aleatorio

K-vecinos más próximos (K-NN)

 

Aprendizaje no supervisado

K-medias


Evaluación: La evaluación final se basará en parte en el desempeño a lo largo del curso, y en parte en la elaboración de un proyecto propio bajo tutoría.

Acreditación:  El Centro REDES emite certificados por PARTICIPACIÓN (asistencia) para quienes así lo ameriten y, opcionalmente, de APROBACIÓN con evaluación numérica. Estos últimos requieren la presentación de un Proyecto Personal sobre un tema a elección del participante.n.

Más información y arancelesDocentes a cargo: Augusto y Gustavo González Bonorino

Duración: 6 semanas

Carga horaria estimada: 60 horas

A distancia, dictado en la plataforma virtual del Centro REDES.

Este curso se desarrolla completamente en formato virtual con lo cual permite realizar la capacitación desde cualquier parte del país y de la región. De la misma forma, el formato habilita a que cada alumno ingrese a la plataforma en el momento y horario que le resulte más productivo, ya que el material queda subido a la misma y no existen restricciones de ingreso ni obligación de horarios o encuentros virtuales.

Descripción general del curso

ChatGPT es sin duda el producto de IA más conocido. La mayoría de ustedes lo han probado y han ya apreciado la habilidad de ChatGPT para dar atinadas respuestas a las más variadas consultas. Y quizás también hayan ya descubierto algunas de sus debilidades. Si le consultan sobre eventos recientes o sobre información privada, como los apuntes de este curso, ChatGPT no podrá dar respuestas adecuadas. La razón de ello es sencilla: en ambos casos la información no estaba disponible al momento del entrenamiento, ya sea por confidencialidad, ya sea porque el evento tuvo lugar con posterioridad a la última actualización de ChatGPT. La generación de respuestas erróneas, o imprecisas, por parte de un modelo de lenguaje se conoce como alucinación.

El propósito de este curso es mostrarles cómo construir un chatbot, es decir, un programa capaz de simular una conversación con el usuario, que responda a consultas referidas a datos que ustedes inyectan al modelo, datos que no fueron incluidos en el entrenamiento del modelo. Un chatbot es interactivo, establece una relación con el usuario. Las aplicaciones de este tipo de chatbot son múltiples. Puede distribuirse como manual de uso de un producto que su negocio vende, o como instructivo para un curso que ustedes dictan. Puede servir para rápidamente recuperar información sobre la Constitución de Argentina, o sobre la información contable de su empresa. También se emplean para gestionar la atención a clientes, respondiendo a consultas sobre su negocio o empresa, o sobre los requisitos para comprar un automóvil. Y así siguiendo ...

Nuestro chatbot empleará un modelo de lenguaje de gran escala (LLM) como motor del procesamiento de los datos. Durante el desarrollo de los LLM se descubrió que son capaces de aprender sobre datos nuevos. Dicha capacidad se implementa mediante un proceso denominado RAG (Retrieval Augmented Generation), libremente traducido como generación de respuestas por recuperación de texto aumentada. Gran parte del curso se dedica a explicar cómo se construye un sistema RAG y el resto a aplicarlo en la construcción de chatbots. Al concluir el curso habrán incorporado varios ejemplos de chatbots que podrá adaptar a requerimientos particulares.

 

Modalidad

El curso es fuertemente práctico. Videos complementados con scripts en cuadernos Jupyter, y ejercicios de codificación les guiarán hacia la construcción de un chatbot adaptado a sus requerimientos, en seis semanas.

Quienes deseen un certificado con calificación numérica deben presentar un Proyecto Personal al finalizar el curso.

Se ofrecen dos reuniones sincrónicas en horario a convenir, para brindar orientación y para aclarar dudas sobre el Proyecto Personal.

El acceso al material del curso permanece abierto por unos seis meses después del cierre.

 

Destinatarios:

Son potenciales interesados quienes puedan imaginar una aplicación para un chatbot conversacional que responda consultas que ChatGPT no puede responder.

  

Nivel y requisitos

El curso requiere un nivel de conocimiento básico de Python. Deben estar cómodos con funciones y lectura-escritura de datos.

  

Requerimientos de computación:

Los programas que se usan son de acceso libre y gratuito. Es poco exigente en espacio físico en el disco duro y de uso de la memoria RAM. Una PC con procesador Intel i3, o equivalente, es suficiente para trabajar sin dificultad.

   

Temario del curso

Propósito del curso
Organización del curso
Definición de chatbot
LangChain
Modelos de lenguaje y LangChain
Modelos LLM
Modelos chat
Mensajes como tuplas
Parámetros de control 
Comunicación con el modelo: el prompt
Tipos de prompt: cadenas y mensajes
Plantilla PromptTemplate
Modular el comportamiento del modelo
Variables múltiples
Guardar un prompt de PromptTemplate en el disco duro
Ejemplo de uso – resumen
Ejemplo de uso – traducción
Plantilla FewShotPromptTemplate
Aprendizaje en contexto (“in-context learning”)
Plantilla ChatPromptTemplate
Modular la actitud del asistente
Plantilla MessagePromptTemplate
Recuperar las variables dinámicas
Enriquecer el prompt
Revisión del uso de variables dinámicas
El sistema RAG (Retrieval Augmented Generation)
Organización de un sistema RAG
Carga de documentos (“Document loaders”)
Carga de archivos de texto
Carga de archivos CSV
Carga de documentos en PDF
Carga de documentos de MSWord
Descarga desde YouTube
Descarga de sitios web
Descarga del sitio arXiv
Carga desde un directorio
Partición de texto (“text splitting”)
Ventana de contexto
Partición de texto (“text splitting”)
Text splitters en LangChain
CharacterTextSplitter
RecursiveTextSplitter
Tokenización
La biblioteca tiktoken
Incrustación (“embedding”)
El espacio vectorial (“vector store”)
Vector store con ChromaDB
Vector store con FAISS
Guardar el espacio vectorial
Recuperación de datos y generación de la respuesta Retrieval
Recuperación con rutinas de un vector store
Similitud semántica (semantic similarity)
Ejemplo Similitud semántica con producto escalar
Ejemplo Similitud semántica con similarity_search
MMR (Maximum marginal relevance)
Recuperación con metadatos
Recuperación con rutinas de Retrieval
VectorStoreIndexCreator
Recuperación sin vector store
Output parsers
Parser CSV
Chain
LLMChain
SimpleSequentialChain
SequentialChain
RetrievalQA
LCEL