Taller de Python + IA para todos
¡Haz tu propio ChatGPT!
Sebastián Flores, Francisco Alfaro, & Valeska Canales

Programa del taller

  • Algunos conceptos: tokens, LLMs, y APIs.
  • 5 actividades prácticas

¿Qué dicen los diarios de la IA?

SI presten atención al hombre tras la cortina

Recuerden:

Toda tecnología suficientemente avanzada parece magia. Arthur C. Clarke

Parte 1

La ilusión de la continuidad

Desafío

¿Qué contiene la siguiente cadena de bits?

00000000 00101010

00000000 00101010

Podría ser el número 42 escrito en binario…

00000000 00101010

Podría ser el carácter * en la convención ascii…

00000000 00101010 00000101 00000101 00000101 00000101

Podría ser parte de un número decimal, 0.4523 o \(\pi\)

10000101 00100001 01000111 00001000 00101010 01000101 11111111 11001101 01000111 00000101 00000101 01110111

Podría ser parte de un archivo multimedia (video, imagen, audio, etc.)…

En el computador TODO se representa con bits.

bits + contexto = representación

Aprendizaje

En el computador todo es discreto. No existe ni el infinito ni lo continuo.

Alta fidelidad no es continuidad.

Alta fidelidad no es continuidad.

Alta fidelidad no es continuidad.

Alta fidelidad no es continuidad.

Alta fidelidad no es continuidad.

Alta fidelidad no es continuidad. Pero puede ser suficiente…

No necesitamos la realidad, necesitamos una buena aproximación.

Una película de 24 FPS es suficiente para engañar al ojo humano.

Necesitamos aproximaciones suficiente para engañar a los sentidos.

¿Qué aprendimos?

  • Ninguna representación en el computador es perfecta.
  • LLMs no son perfectos, pero ya son suficientemente útiles.

Preguntas

Parte 2

El computador parlanchín

¿Cómo representar una palabra?

  • Representación textual
  • Representación semántica

Representación textual

Si solo queremos transcribir texto, basta con representar cada letra con una secuencia de bits, y almacenarla.

ASCII

  • 1 byte (8 bits): 128 carácteres posibles
  • 0 (48) … 9 (57)
  • A (65) … Z (90)
  • a (97) … z (122)
  • Problema: Faltan muchos carácteres: Ññáéíóúü

UTF-8

  • 1 a 4 bytes (8 a 32 bits)
  • Mantiene ASCII sin cambios
  • Permite representar alfabetos latinos, griego, cirílico, copto, armenio, hebreo, árabe, siríaco, thaana, y n’ko, además de caracteres chinos, japoneses y coreanos.
  • Incluye emojis 😁, simbolos ✅ y mil cosas más 🗿

Representación semántica

Semántica: relativo al significado de las palabras.

Si quieres que el computador pueda interpretar el sentido de cada palabra, es necesario almacenar cada palabra como un todo. No puede descomponerse en sus letras.

Necesitamos una mejor REPRESENTACIÓN.

La palabra se guarda entera o se descompone en sus partes representativas (tokens)

Analogía

Lenguaje de señas: permite representar palabras textuales (letra a letra) y semánticas (completas).

Actividad 2.1

  • Actividad: Ir a https://cittripio.streamlit.app/t
  • Objetivo: Evaluar distintos textos, en distintos idiomas.
    • Español: La informática,​ también llamada computación, es el área de la ciencia que se encarga de estudiar la administración de métodos, técnicas y procesos con el fin de almacenar, procesar y transmitir información y datos en formato digital.
    • Inglés: Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both hardware and software. Computing has scientific, engineering, mathematical, technological, and social aspects.
  • Tiempo: 5 minutos

Nota: Definiciones extraídas de wikipedia.

Aprendizajes

  • Palabra != Token
  • Cada token tiene un identificador único
  • En inglés, 100 tokens ~= 75 palabras.
  • Si tienen la misma representación, tienen el mismo token (ejemplo: el papa y la papa)

¿LLM?

LLM = Large Language Model = Grandes Modelos de Lenguaje

Diagrama técnico de un LLM

Diagrama de funcionamiento de un LLM que se filtró de OpenAI:

¡¡¡No difundir!!!

Diagrama técnico de un LLM

Ok, ok, en realidad es así:

Actividad 2.2

Aprendizajes

  • El LLM no reflexiona sobre la próxima palabra: sugiere los tokens estadísticamente más probables.
  • Se predice token a token: es secuencial.
  • El LLM no tiene memoria. Siempre empieza a predecir desde el mismo estado inicial.

El negocio de los LLMs

  • Los LLMs hoy en día tienen cientos de miles de millones de parámetros: 100,000,000,000.
  • Cada parámetro se determina en un proceso de entrenamiento basado en enormes conjuntos de texto (esencialmente TODO el internet y libros escritos).
  • Entrenar una LLM requiere muchas horas de uso de tarjetas gráficas (GPUs).
  • Un LLM open source puede descargarse (son bits), y ejecutarse localmente - si tu hardware lo permite.

El negocio de los LLMs

No existe solo chatGPT (OpenAI): todos quieren un pedazo de la torta:

De pago:

  • GPT-4 (OpenAI)
  • Gemini (Google)
  • Claude (Anthropic)

Código abierto:

  • Llama (Meta)
  • Qwen (Baidu)
  • DeepSeek (China)

Y están quienes no desarrollan pero entregan LLM como un servicio: Amazon (Bedrock), OpenRouter, etc.

Preguntas

Parte 3

¡Hazlo tu mismo!

¿Cómo podemos emular chatGPT?

¿Cómo acceder a un LLM?

Ejecutar localmente LLM:

  • Configuración compleja
  • Hardware costoso
  • Hacer todos los pasos del proceso

¿Cómo podemos emular chatGPT?

¿Cómo acceder a un LLM?

Consumir una API de LLM:

  • Simple: entrega un texto, recibe un texto.
  • Pagar lo que consumes
  • Múltiples proveedores y alternativas

Actividad 3.1

Aprendizajes

  • El LLM responde en función del prompt.
  • El prompt puede pedir cualquier cosa.
  • Prompts cortos entregan resultados muy variables.

Actividad 3.2

Aprendizajes

  • Separar en contexto y pregunta permite imponer una “personalidad” o ciertas características.
  • Un LLM no tiene memoria.

¿Porqué chatGPT si tiene memoria?

¿Cómo solucionarían ustedes este problema?

Pasémosle la historia de la conversación en cada prompt.

  • Opción 1: Pasarle todo el texto.
  • Opción 2: Pasarle un resumen de la conversación.

¿Temperatura?

¿Qué es la temperatura en un LLM?

  • Es un parámetro que controla que tan aleatoria es la elección del siguiente token.
    • Temperatura = 0: Muy determinista.
    • Temperatura = 1: Muy aleatorio.

Actividad 3.3

  • Actividad: Ir a https://cittripio.streamlit.app/vf
  • Objetivo:
    • O1: Lograr que cittripio le responda a Luke Skywalker que es su padre.
    • O2: Cambiar la personalidad de cittripio por cualquier otro personaje (no necesariamente de Star Wars).
  • Tiempo: 5 minutos

Aprendizajes

  • El LLM necesita tener como input todo el contexto e historia en el prompt.
  • Las APIs agregan muchas opciones para simplificar y manejar todo esto convenientemente.

Conclusión

  • LLMs no son magia: es tecnología.
  • Cualquiera puede comenzar a crear soluciones con LLMs.
  • Conocer como funcionan LLMs permite usarlos mejor.
  • Existen muchos recursos gratuitos para aprender y jugar.

Preguntas & Retroalimentación

Taller de Python + IA para todos
¡Haz tu propio ChatGPT!
Sebastián Flores, Francisco Alfaro, & Valeska Canales