Capítulo 2: Diferencias con respecto a MLOps tradicional
Comparación entre MLOps y LLMOps
| Aspecto | MLOps tradicional | LLMOps |
|---|---|---|
| Tamaño del modelo | MB a GB | GB a TB |
| Entrenamiento | Reentrenamiento frecuente | Fine-tuning o prompt engineering |
| Entrada | Características estructuradas | Lenguaje natural |
| Salida | Puntajes/clases | Texto generado |
| Evaluación | Métricas (AUC, F1) | Calidad, seguridad, relevancia |
| Latencia | ms | segundos |
| Factor de costo | Cómputo | Tokens |
Desafíos únicos de LLMOps
1. Ingeniería de prompts
El ML tradicional no utiliza "prompts": los LLM requieren un diseño cuidadoso del prompt:
# Simple prompt
prompt_v1 = "Summarize this document: {document}"
# Improved prompt with constraints
prompt_v2 = """You are a professional summarizer.
Summarize the following document in 3 bullet points.
Keep each point under 20 words.
Focus on key facts and figures.
Document: {document}
Summary:"""
2. Salidas no deterministas
# Same input, different outputs
for i in range(3):
response = llm.generate("Write a haiku about Python")
print(f"Attempt {i+1}: {response}")
# Output varies each time!
3. Precios basados en tokens
def calculate_cost(input_tokens: int, output_tokens: int, model: str):
pricing = {
"gpt-4": {"input": 0.03, "output": 0.06},
"gpt-3.5-turbo": {"input": 0.0005, "output": 0.0015},
"claude-3-opus": {"input": 0.015, "output": 0.075},
}
input_cost = (input_tokens / 1000) * pricing[model]["input"]
output_cost = (output_tokens / 1000) * pricing[model]["output"]
return input_cost + output_cost
Siguiente: Capítulo 3: Desafíos específicos de los LLM