Modelos de Lenguaje
Luciano Del Corro
lucianodelcorro@[Link]
1
Modelos de Lenguaje
Un modelo de lenguaje predice la probabilidad de una secuencia de palabras
gato
Cuando llegue a casa me tengo que acordar de darle de comer al perro
silla
Modelos de Lenguaje
Modelos de Lenguaje
Modelos de Lenguaje
Modelos de Lenguaje Unidireccionales
Cómo calcular la probabilidad de una secuencia de palabras?
p(w1w2w3...wn)
Modelos de Lenguaje Unidireccionales
Cómo calcular la probabilidad de una secuencia de palabras?
p(w1w2w3...wn) = p(w1) * p(w2|w1) * p(w3|w1w2) * p(w4|w1w2w3) * … * p(wn|w1w2w3 … wn-1)
Modelos de Lenguaje Unidireccionales
Cómo calcular la probabilidad de una secuencia de palabras?
p(w1w2w3...wn) = p(w1) * p(w2|w1) * p(w3|w1w2) * p(w4|w1w2w3) * … * p(wn|w1w2w3 … wn-1)
Modelos de Lenguaje Unidireccionales
Cómo calcular la probabilidad de una secuencia de palabras?
p(w1w2w3...wn) = p(w1) * p(w2|w1) * p(w3|w1w2) * p(w4|w1w2w3) * … * p(wn|w1w2w3 … wn-1)
p("Cuando llegue a casa me tengo que acordar de darle de comer al gato") =
p(cuando) * p(llegue | Cuando) * p(a | Cuando llegue) * … * p(gato | Cuando llegue ... al)
Modelos de Lenguaje
refrigerador [0.5]
freezer [0.3]
heladera [0.1]
Voy a guardar el queso en el horno [0.05]
termotanque [0.0001]
…
Callao [0.0000000001]
Modelos de Lenguaje
Voy a guardar el queso en el refrigerador
Modelos de Lenguaje Generativos
Voy a guardar el queso en el
Un modelo de Lenguaje generativo produce una secuencia de palabras basado en
patrones aprendidos en grandes cantidades de datos
Modelos de Lenguaje Generativos
Voy a guardar el queso en el refrigerador
Modelos de Lenguaje Generativos
Voy a guardar el queso en el refrigerador para
Modelos de Lenguaje Generativos
Voy a guardar el queso en el refrigerador para conservarlo
Modelos de Lenguaje Generativos
Voy a guardar el queso en el refrigerador para conservarlo fresco
Modelos de Lenguaje Generativos
Voy a guardar el queso en el refrigerador para conservarlo fresco .
Modelos de Lenguaje Generativos
Voy a guardar el queso en el refrigerador para conservarlo fresco . <end>
Modelos de Lenguaje Generativos
Voy a guardar el queso en el refrigerador para conservarlo fresco . <end>
Para pensar: Consideraciones Clave
Representación Semántica:
● Captura y representación del significado.
Contextualización:
● Efecto del largo de la secuencia.
● Interpretación del contexto.
Generalización:
● Transferencia del aprendizaje entre contextos.
Importancia de Palabras:
● Relevancia relativa de palabras en el texto.
Interacción Entre Palabras:
● Relaciones semánticas y sintácticas.
Impacto del Vocabulario:
● Tamaño y diversidad del vocabulario.
Costo Computacional:
● Generación palabra por palabra.
Propagación de Errores:
● Cómo los errores iniciales pueden afectar la salida.
N-grams
Contando Palabras
Problema: ¿Cómo contamos cuántas veces aparece una frase en el lenguaje?
- Solución (antes de deep learning):
- Tomamos un corpus de texto grande, y contamos
- Suponemos que ese corpus es representativo de “el lenguaje”
Contando Palabras
Podemos calcularlo como:
p( "gato" | "Cuando llegue a casa me tengo que acordar de darle de comer al") =
#("Cuando llegue a casa me tengo que acordar de darle de comer al gato")
#("Cuando llegue a casa me tengo que acordar de darle de comer al")
Contando Palabras
Problema: ¿Cómo contamos cuántas veces aparece una frase en el lenguaje?
- Solución:
- Tomamos un corpus de texto grande, y contamos
- Suponemos que ese corpus es representativo de “el lenguaje”
- Nuevos Problemas:
- Tenemos que almacenar todas las subcadenas existentes y su frecuencia de
aparición
- Es probable que (h,w) no exista en todo mi corpus
N-grams
Problema: Es probable que (h,w) no exista
N-grams
Problema: Es probable que (h,w) no exista
- Solución:
- Mirar solo las últimas N palabras (n-gram)
- Esto también nos simplifica el alamcenamiento del conteo
N-grams
Problema: Es probable que (h,w) no exista
- Solución:
- Mirar solo las últimas N palabras (n-gram)
- Esto también nos simplifica el alamcenamiento del conteo
p(gato | Cuando llegue a casa me tengo que acordar de darle de comer al) ~ p(gato | darle de comer al)
N-grams
Problema: Es probable que (h,w) no exista
- Solución:
- Mirar solo las últimas N palabras (n-gram)
- Esto también nos simplifica el alamcenamiento del conteo
p(gato | Cuando llegue a casa me tengo que acordar de darle de comer al) ~ p(gato | darle de comer al)
5-gram
Problema: pérdida de contexto, memoria corta
N-grams
Problema: Es probable que (h,w) no exista
- Solución:
- Mirar solo las últimas N palabras (n-gram)
- Esto también nos simplifica el alamcenamiento del conteo
p(gato | Cuando llegue a casa me tengo que acordar de darle de comer al) ~ p(gato | darle de comer al)
5-gram
N-grams
Problema: Es probable que (h,w) no exista
- Solución:
- Mirar solo las últimas N palabras (n-gram)
- Esto también nos simplifica el alamcenamiento del conteo
p(gato | Cuando llegue a casa me tengo que acordar de darle de comer al) ~ p(gato | darle de comer al)
5-gram
N-grams
● Unigram (1-gram): Palabras individuales.
● Ejemplo: "gato", "comer", "casa"
● Bigram (2-gram): Pares de palabras consecutivas.
● Ejemplo: "darle de", "comer al"
● Trigram …
Prediciendo con n-grams
● Predecir la última palabra: Utilizamos los n-grams para determinar cuál es la palabra más probable que siga
después de una serie dada de palabras.
● Ejemplo: Después de "comer al", el bigram más probable podría sugerir "gato".
● Estimar la probabilidad de una secuencia usando unigrams y bigrams:
● Unigrams: p("darle") * p("de") * p("comer") * p("al") * p("gato")
● Bigrams: p("darle de") * p("de comer") * p("comer al") * p("al gato")
N-grams
Estimador de Máxima Verosimilitud (MLE):
N-grams
Estimador de Máxima Verosimilitud (MLE):
Qué rol juega el vocabulario y la lematización?
Vocabulario
● Conjunto de palabras o tokens que un modelo de lenguaje puede reconocer y generar.
● Determina el espacio de búsqueda del modelo.
● Influye en la precisión y capacidad de generalización.
● Vocabularios más grandes permiten capturar más información pero aumentan la
complejidad computacional.
● Un buen vocabulario permite a los modelos capturar y generalizar patrones
lingüísticos de manera efectiva.
Tokenización
● Proceso de dividir el texto en palabras, frases, símbolos u otros elementos
● Palabras vs. Tokens:
○ Palabras: Elementos lingüísticos con significado.
○ Tokens: Cualquier secuencia de caracteres considerada como una unidad en el proceso
de tokenización. Puede ser una palabra, puntuación, número, etc.
○ Ejemplo: "¡Decímelo, che!" -> Palabras: ["¡Decímelo,", "che!"], Tokens: ["¡", "Decí", "me",
"lo", ",", "che", "!"] (dependiendo del tokenizador).
● Define la granularidad de la información con la que trabaja el modelo.
● Una tokenización inapropiada puede introducir ruido y reducir la precisión del modelo.
● Afecta directamente al tamaño del vocabulario.
● Elegir el tipo de tokenización adecuado es crucial.
● Los nuevos modelos de Deep learning utilizan tokenizadores pre entrenados.
● Los desafíos de tokenización varían: palabras compuestas, números, signos de puntuación o
contracciones, etc.
Lematización
● Proceso de reducir las palabras a su forma base o raíz. Por ejemplo, "corriendo" se
convierte en "correr".
● Ejemplos:
○ Corriendo -> Correr
○ Anduvieron -> Andar
○ Fueron -> Ser
● Reduce la variabilidad lingüística y simplifica el texto.
● Permite que el modelo trate palabras con formas diferentes pero con significados
similares como una sola entidad.
● Puede reducir el tamaño del vocabulario y aumentar la eficiencia del modelo.
● Ayuda a los modelos de n-gramas a generalizar mejor y a evitar redundancias
innecesarias en el vocabulario.
Cocinando un modelo NGRAM
1. Recopilación de Datos: Adquirir un corpus representativo.
2. Limpieza: Convertir a minúsculas, caracteres no deseados, etc.
3. Tokenización: Dividir en palabras. Ejemplo: "Me encanta el chocolate." -> ["Me", "encanta", "el", "chocolate"].
4. Eliminación de Stop Words: Descartar palabras comunes (e.g., "y", "de").
5. Lematización: Convertir palabras a su forma base. Ejemplo: "corriendo" -> "correr".
6. Creación de n-grams: Formar combinaciones según 'n', ej. para bigrams -> ["<start> Me", "Me encanta",
"encanta el", "chocolate .", ". <end>"].
7. Establecer Vocabulario: Determinar palabras/n-grams basados en frecuencia.
8. Estimación de Probabilidades: Calcular basado en ocurrencias, ej. p("chocolate" | "el").
Evaluación de LM
Selección de Modelos y Métricas (I)
●
Selección de Modelos y Métricas (I)
●
Selección de Modelos y Métricas (II)
●
Selección de Modelos y Métricas (II)
●
Selección de Modelos y Métricas (II)
●
Evaluación de LM
Evaluación de LM
Proceso para determinar la calidad y eficacia de un modelo de lenguaje en tareas específicas.
Evaluación de LM
Proceso para determinar la calidad y eficacia de un modelo de lenguaje en tareas específicas.
Evaluación extrínseca: Se enfoca en evaluar el modelo en tareas específicas.
- Métricas varían según la tarea: precisión, recall, bleu, rouge, etc.
- Ejemplo: Usar un modelo de lenguaje para reconocer entidades (NER)
Evaluación de LM
Proceso para determinar la calidad y eficacia de un modelo de lenguaje en tareas específicas.
Evaluación extrínseca: Se enfoca en evaluar el modelo en tareas específicas.
- Métricas varían según la tarea: precisión, recall, bleu, rouge, etc.
- Ejemplo: Usar un modelo de lenguaje para reconocer entidades (NER)
Evaluación intrínseca: Evaluar el modelo en la tarea general en que fue entrenado (gen de texto).
- Cuán bien las probabilidades predichas por el modelo se alinean con los datos reales.
- Para evaluar usamos perplexity
Perplexity
● Medida de cuán bien las probabilidades predichas por un modelo de lenguaje se
alinean con los datos reales.
● Es una métrica comúnmente usada para evaluar y seleccionar modelos de lenguaje
y monitorear su entrenamiento.
● Inversa de la probabilidad de una secuencia (en un set de testeo), normalizada por
la cantidad de palabras
Perplexity
Probabilidades, inversas
y productorias, no se
llevan bien
Perplexity
Perplexity
Perplexity
PP: Inversa de la probabilidad de una secuencia (en un set de testeo), normalizada por la
cantidad de palabras
CUIDADO: La perplexity solo es comparable si dos modelos fueron entrenados con el mismo corpus y con el mismo
preprocesamiento
- Esto se debe al tratamiento que se le da a los <UNK>
- Si tenemos vocabulario chico y asignamos alta probabilidad a <UNK>, la PP va a ser muy alta
Perplexity
● Una perplejidad baja indica que el modelo de lenguaje es bueno en predecir la
muestra.
● Es esencialmente el tamaño promedio del conjunto de palabras que el modelo
considera como candidatos en cada paso.
● Dada la gran cantidad de parámetros en LLMs, es crucial tener una métrica robusta
como la perplejidad para evaluar su rendimiento y evitar el sobreajuste.
● Sin embargo, una baja perplejidad no siempre garantiza un buen rendimiento en
tareas específicas. Es importante complementar con evaluaciones extrínsecas.
Detalles de implementación
- Usar log probability
- Marcar inicio y final de oración (<s> </s>)
- Cuidar el género de los textos
- Cuidar los dialectos de los textos
- Tratamiento de las palabras no vistas en el train
- Marcar como <unk> en traning todas las que tienen muy baja frecuencia
- Tratar a todos los <unk> igual
- Tratamiento de probabilidades iguales a 0 (smoothing)
Smoothing
Training set:
Cuando llegue a casa me tengo que acordar de darle de comer al gato
El perro me comió la tarea
Me olvidé de darle de comer al canario
Test set:
Cuando llegue a casa me tengo que acordar de darle de comer al perro
p(perro | darle de comer al) = ?
Smoothing: redistribución de las probabilidades
Smoothing
Laplace smoothing (add-one)
Add-K smoothing
Backoff and Interpolation: usando menos contexto (n mas chico) cuando no existe el n-grama
¿Cómo generalizamos en N-gram?
Entrenamiento: "Cuando llegue a casa me tengo que acordar de darle de comer al gato"
¿Cuál es la probabilidad 5-gram de "gato" dada la siguiente frase?
Testeo: "Me estaba yendo a dormir y justo me acordé de darle la comida al ___"
¿Cómo generalizamos en N-gram?
Entrenamiento: "Cuando llegue a casa me tengo que acordar de darle de comer al gato"
¿Cuál es la probabilidad 5-gram de "gato" dada la siguiente frase?
Testeo: "Me estaba yendo a dormir y justo me acordé de darle la comida al ___"
N-gram no puede generalizar a palabras similares.
Los embeddings y las redes neuronales (feed forward) nos pueden ayudar
Modelos de Lenguaje con redes
(Neural Language Models)
Neural LM
Neural LM
Neural LM
Cuando llegue a casa me tengo que acordar de darle comida al perro
Neural LM
Cuando llegue a casa me tengo que acordar de darle comida al perro
Neural LM
Cuando llegue a casa me tengo que acordar de darle comida al perro
Neural LM
Embeddings
(ej: word2vec)
Cuando llegue a casa me tengo que acordar de darle comida al perro
Neural LM
Capa salida
(one hot encoding)
U
softmax
Capa Oculta
W
sigmoidea
Embeddings
(ej: word2vec)
Cuando llegue a casa me tengo que acordar de darle comida al perro
Neural LM
Podemos usar embeddings
pre-entrenados
Estos embeddings ya tienen
codificadas las relaciones
semánticas
Pero no están calculados
para optimizar la tarea para
la cual creamos la red (ej.
Predicción)
Neural LM
Para mejorar nuestra red podemos
agregarle una capa donde se calcule
el embedding.
La primera capa va a tomar los
one-hot encodings de las palabras,
pasa por la capa de embedding y
luego a la capa oculta.
El backpropagation incluye a los
embeddings, por lo que se calcular
teniendo en cuenta la tarea
Bengio, Y., Ducharme, R., Vincent, P., &
Janvin, C. (2003). A neural probabilistic
language model. The journal of machine
learning research.
Neural LM
Para mejorar nuestra red podemos
agregarle una capa donde se calcule
el embedding.
La primera capa va a tomar los
one-hot encodings de las palabras,
pasa por la capa de embedding y
luego a la capa oculta.
El backpropagation incluye a los
embeddings, por lo que se calcular
teniendo en cuenta la tarea
Bengio, Y., Ducharme, R., Vincent, P., &
Janvin, C. (2003). A neural probabilistic
language model. The journal of machine
learning research.
Neural LM
Capa salida
(one hot encoding)
U
softmax
Capa Oculta
W
sigmoidea
Embeddings
(ej: word2vec) E
sigmoidea
tanh
Cuando llegue a casa me tengo que acordar de darle comida al perro
Neural LM
Capa salida
(one hot encoding)
U
Ya sabemos
softmax
calcular estos
Capa Oculta gradientes
W
sigmoidea
Embeddings
(ej: word2vec) E
sigmoidea
tanh
Cuando llegue a casa me tengo que acordar de darle comida al perro
Neural LM
Capa salida
(one hot encoding)
U
Ya sabemos
softmax
calcular estos
Capa Oculta gradientes
W
sigmoidea
Pero este es un
Embeddings poco diferente.
(ej: word2vec) E Un mismo
sigmoidea one-hot encoding
tanh podría aparecer
dos veces
Cuando llegue a casa me tengo que acordar de darle comida al perro
Neural LM
Para cada instancia de
entrenamiento
calculamos el gradiente
teniendo en cuenta la
cantidad de apariciones
de cada palabra en la
instancia
Preguntas para discutir
1. Que es transfer Learning?
2. Por que son importantes los embeddings?
3. Que es un embedding?
4. Cómo se implementa el transfer learning en una red neuronal?
6. Cómo diseñar un sistema para clasificar reviews de hoteles?
7. Tengo un problema de Named Entity Recognition como lo resolverian?
8. Cual es la diferencia entre una red bidireccional y una unidireccional?
9. Que es un modelo de lenguaje?
Preguntas para discutir
10. Que es un modelo de lenguaje unidireccional?
11. Que es un modelo de lenguaje generativo?
12. Que es un modelo de lenguaje n-gram?
13. Cuales son las principales desventajas de un modelo ngram?
14. Cual es la importancia del vocabulario?
15. Que es la tokenización?
16. Como se pueden evaluar los modelos de lenguaje?
17. Que relacion hay entre word embeddings y redes neuronales? Por que maridan tan bien?
Reading List
Speech and Language Processing. Daniel Jurafsky & James H. Martin, Capítulo 3
([Link]
Speech and Language Processing. Daniel Jurafsky & James H. Martin, Capítulo 7
Neural net language models, Yoshua Bengio (2008)
1. Agregar Interpolation
2. Agregar Google ngram viewer