Docentes 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.

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

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