Fundamentos · Semana 1
Tokens, Embeddings
e Inferencia
Duración estimada
~45 minutos
Fuente principal
Hands-on LLMs — Cap. 2 & 3
Por qué importa
Sin esto, RAG y los agentes son cajas negras
Aplicación directa
DentalTrading · Hermos · Magna
01 — El primer paso
¿Qué es un Token?
Cuando envías texto a un LLM, lo primero que ocurre nuncaes que el modelo “lee” tu mensaje como tú lo harías. Antes de cualquier procesamiento, el texto pasa por un tokenizador que lo fragmenta en piezas llamadas tokens.
Un token no es una palabra. Puede ser una palabra completa, parte de una palabra, un signo de puntuación, o incluso un espacio en blanco. El tokenizador de GPT-4, por ejemplo, convierte la frase “¡Hola mundo!” en algo así:
Dato clave
Las 3 decisiones de diseño de un tokenizador
Cuando evalúas un modelo para producción, el tokenizador importa tanto como la arquitectura. Hay tres variables que determinan su comportamiento:
| Variable | Qué controla | Impacto práctico |
|---|---|---|
AlgoritmoBPE, WordPiece, SentencePiece | Cómo se fragmentan las palabras en subunidades | Afecta idiomas no ingleses — crítico para WhatsApp en español |
VocabularioTamaño, tokens especiales | Cuántos tokens distintos existen | GPT-4 tiene ~100k tokens. Más tokens = menos fragmentación del texto |
Dataset de entrenamientoCorpus usado para entrenar | Qué idiomas y dominios representa bien | Modelos entrenados en inglés usan más tokens para el mismo texto en español |
~4
Caracteres promedio por token en inglés
~2–3
Caracteres por token en español (menos eficiente)
02 — La representación numérica del significado
Embeddings: Ideas
como Vectores
Una vez que el texto está tokenizado, el modelo necesita convertir cada token en un número que capture su significado. Eso es un embedding: un vector de cientos o miles de números de punto flotante que posiciona conceptualmente una palabra (o frase) en un espacio multidimensional.
El ejemplo de las tres frases
Supongamos embeddings simplificados de 3 dimensiones para visualizar la idea:
"El rápido zorro marrón salta sobre el perro perezoso"
[0.80, 0.10, 0.30]
Frase 1 — Referencia
"Un veloz zorro oscuro salta sobre un canino dormido"
[0.79, 0.14, 0.32]
Frase 2 — Muy similar ↑
"Las manzanas son dulces y crujientes"
[0.20, 0.90, 0.50]
Frase 3 — Diferente ↓
Las frases 1 y 2 tienen vectores casi idénticos a pesar de usar palabras diferentes. Eso es exactamente lo que hace útil un buen embedding para búsqueda semántica — no busca por coincidencia de palabras, sino por proximidad de significado.
Dos tipos de embeddings que debes distinguir
| Tipo | Qué representa | Uso principal | Ejemplo |
|---|---|---|---|
| Token Embedding | Un token individual en contexto | Clasificación, NER, entender el estado interno del modelo | La palabra "banco" tiene vectores distintos según si hablas de dinero o de río |
| Text Embedding | Una frase, párrafo o documento completo | Búsqueda semántica, RAG, recomendadores | sentence-transformers genera un único vector para "¿Cómo cancelo mi pedido?" |
⚠ Impacto en producción — Hermos
El modelo guarda un embedding por cada token del vocabulario
Cuando descargas un modelo preentrenado, parte de su peso es una matriz de embeddings: una tabla gigante donde cada fila corresponde a un token del vocabulario. Al inicio del entrenamiento esos vectores son aleatorios; al final del entrenamiento capturan relaciones semánticas del lenguaje. Por eso un LLM y su tokenizador son inseparables — no puedes cambiar uno sin reentrenar el otro.
03 — El proceso de generación
Inferencia: Cómo
Genera el Modelo
Ya sabes que el texto se tokeniza y que los tokens se convierten en vectores. Ahora: ¿cómo el modelo genera una respuesta token a token?
El modelo genera un token a la vez. En cada paso, produce una distribución de probabilidad sobre todo el vocabulario (los logits). Luego una estrategia de muestreo selecciona el siguiente token. Ese token se agrega al contexto y el proceso se repite hasta que el modelo genera un token de fin de secuencia.
Los parámetros de control que realmente importan
| Parámetro | Qué hace | Cuándo ajustarlo |
|---|---|---|
temperature | Controla la aleatoriedad. 0 = siempre el token más probable. 1= distribución original. >1 = más random | Agente de soporte → temp baja (0.2). Generación creativa → temp alta (0.8+) |
top_p | Nucleus sampling: solo considera tokens cuya probabilidad acumulada llega a p | Alternativa o complemento a temperature. top_p=0.9 es un buen default |
max_tokens | Límite duro de tokens a generar | Siempre ponerlo. Sin límite, el modelo puede generar indefinidamente y explotar costos |
stop sequences | Tokens o strings que detienen la generación anticipadamente | Respuestas estructuradas, JSON outputs, agentes con múltiples pasos |
Python — llamada básica con parámetros controlados
from anthropic import Anthropic client = Anthropic() response = client.messages.create( model="claude-sonnet-4-6", max_tokens=512, # Siempre ponerlo en producción temperature=0.2, # Bajo para respuestas consistentes system="Eres el asistente de DentalTrading.", messages=[ {"role": "user", "content": "¿Cuándo llega mi pedido?"} ] ) # El modelo generó token a token, pero aquí ves el resultado final print(response.content[0].text)
Los límites reales que debes conocer
Knowledge Cutoff
Context Window
⚠ Alucinación — el riesgo más crítico
04 — Por qué importa para tu trabajo
Conectando los conceptos
con tus proyectos
Estos fundamentos no son teoría pura. Cada decisión que tomas al construir agentes y pipelines RAG depende de entender qué ocurre debajo del capó:
| Situación real | Concepto aplicado | Decisión correcta |
|---|---|---|
| El agente de DentalTrading da precios incorrectos | Knowledge cutoff + alucinación | Siempre inyectar precios desde la DB via tool call — nunca confiar en el conocimiento interno del modelo |
| El RAG de Hermos recupera documentos irrelevantes | Text embeddings + similitud coseno | Revisar el modelo de embeddings, el tamaño de chunk, y la estrategia de indexado |
| Las respuestas del agente son inconsistentes entre llamadas | Temperature / sampling | Bajar temperature a 0.1–0.3. Considerar top_p=0.9 con temperature baja |
| El contexto del chat se "olvida" en conversaciones largas | Context window limit | Implementar summarization de historial o sliding window |
| El modelo tarda mucho en responder | Inferencia token a token | Usar streaming para UX. Evaluar modelos más pequeños (Haiku) para pasos intermedios del agente |
Validación de conocimiento
¿Cuánto absorbiste?
6 preguntas. Selecciona tu respuesta — la explicación aparece al confirmar.
PREGUNTA 01
¿Qué ve realmente un LLM cuando le envías el mensaje "¿Cuál es el precio?"
- AEl texto completo como cadena de caracteres
- BUna secuencia de IDs numéricos que corresponden a fragmentos del texto
- CUna imagen del texto
- DEl texto convertido directamente a embeddings sin tokenizar primero
PREGUNTA 02
Estás construyendo búsqueda semántica sobre el catálogo de Hermos. ¿Qué tipo de embedding necesitas generar para los documentos de producto?
- AToken embeddings — uno por cada palabra del documento
- BLos embeddings internos del LLM durante la generación
- CText embeddings — un vector por chunk de documento que capture su significado completo
- DEmbeddings de caracteres individuales
PREGUNTA 03
El agente de WhatsApp de DentalTrading le dice a un cliente que un producto cuesta $45, pero en la DB el precio es $62. ¿Cuál es la causa raíz?
- AEl modelo tiene knowledge cutoff y alucinó un precio plausible de su entrenamiento
- BTemperature demasiado alta causó variabilidad en la respuesta
- CEl tokenizador fragmentó mal el número
- DEl context window no fue suficiente para procesar el prompt
PREGUNTA 04
Para el agente de soporte de Magna Perfumes quieres respuestas consistentes y factuales. ¿Qué configuración de temperatura es la más adecuada?
- Atemperature = 1.5 — máxima creatividad
- Btemperature = 1.0 — distribución natural del modelo
- Ctemperature = 0.7 — balance entre creatividad y consistencia
- Dtemperature = 0.1 o 0.2 — respuestas casi deterministas
PREGUNTA 05
¿Por qué un LLM entrenado principalmente en inglés es "menos eficiente" con texto en español, en términos de costo y velocidad?
- APorque el modelo no entiende el español
- BPorque el tokenizador fragmenta el español en más tokens que el inglés para el mismo contenido
- CPorque los embeddings del español son de menor dimensión
- DPorque los LLMs solo generan texto en el idioma del prompt
PREGUNTA 06
En el RAG de Hermos, los chunks de producto son demasiado pequeños (50 palabras). ¿Qué problema específico genera esto en los embeddings?
- ALos embeddings son más lentos de calcular
- BEl modelo de embeddings no acepta inputs tan cortos
- CEl vector embedding pierde contexto: un fragmento sin su encabezado o especificación completa no representa el concepto correctamente
- DEl context window del LLM se excede más rápido
Próxima lección — Semana 2
RAG: De Naive a Producción
