Evaluación de modelos Ollama
Qué cubre este artículo sobre evaluación en Ollama
- Por qué evaluar modelos.
- Qué métricas y benchmarks existen.
- Cómo crear tus propias tareas de prueba.
- Cómo comparar modelos automáticamente.
- Consejos para comparaciones justas y significativas.
Introducción: Evaluar modelos Ollama
Ollama ofrece muchos modelos, pero ninguno es igualmente bueno para todas las tareas. Uno puede destacar en programación, otro en matemáticas o en resúmenes multilingües. Si evalúas modelos regularmente, encuentras más rápido el adecuado para tu caso de uso y evitas basar decisiones en impresiones subjetivas.
Este artículo muestra cómo evaluar sistemáticamente modelos Ollama, qué métricas tienen sentido y cómo construir tus propias tareas de prueba.
Conceptos clave
- Evaluation: Valoración de un modelo.
- Benchmark: Prueba estandarizada para evaluar modelos.
- Metric: Medida cuantificable de una propiedad específica.
- Perplexity: Medida de la incertidumbre del modelo.
- BLEU / ROUGE: Métricas para textos generados.
- Human Evaluation: Valoración manual por personas.
- Few-Shot: Pocos ejemplos en el prompt.
- Zero-Shot: Sin ejemplos en el prompt.
Por qué evaluar modelos
- No todo modelo es adecuado para todas las tareas.
- Los modelos más grandes no siempre son mejores.
- La cuantización afecta la calidad de formas distintas.
- Las aplicaciones en producción requieren resultados reproducibles.
- Comparas alternativas más rápidamente.
Dimensiones de evaluación
Conocimiento general
Preguntas de historia, geografía, ciencias naturales y cultura general.
Programación
Tareas de codificación, explicaciones de código, refactoring y corrección de bugs.
Matemáticas y lógica
Problemas aritméticos, ecuaciones de texto, acertijos lógicos.
Multilingüismo
Traducciones, resúmenes y respuestas en diferentes idiomas.
Hechos y alucinaciones
Verificación de si el modelo genera información inventada.
Velocidad y recursos
Tokens por segundo, consumo de RAM y VRAM, tiempo de carga.
Benchmarks conocidos
- MMLU: Conocimiento general en muchas disciplinas.
- HumanEval: Tareas de programación.
- GSM8K: Problemas matemáticos de texto.
- TruthfulQA: Detección de información errónea.
- MT-Bench: Conversaciones de múltiples turnos.
Frecuentemente puedes ejecutar estos benchmarks con herramientas locales como lm-evaluation-harness.
Crear tus propias tareas de prueba
Una colección simple de tareas para tu caso de uso específico:
[
{
"id": 1,
"category": "coding",
"prompt": "Schreibe eine Python-Funktion, die die ersten n Primzahlen zurückgibt.",
"expected": ["def primes(n):", "for", "return"]
},
{
"id": 2,
"category": "summarization",
"prompt": "Fasse den folgenden Text in drei Sätzen zusammen: ...",
"expected": ["main", "topic"]
}
]
Evaluación automatizada en Python
import ollama
import json
def ask(model, prompt):
response = ollama.generate(model=model, prompt=prompt)
return response["response"]
def evaluate(model, tasks):
results = []
for task in tasks:
answer = ask(model, task["prompt"])
score = check_keywords(answer, task["expected"])
results.append({
"id": task["id"],
"category": task["category"],
"score": score
})
return results
def check_keywords(answer, expected):
matches = [kw for kw in expected if kw.lower() in answer.lower()]
return len(matches) / len(expected)
tasks = json.load(open("tasks.json"))
print(evaluate("llama3.1", tasks))
Comparación de modelos
models = ["llama3.1", "qwen2.5:14b", "mistral"]
for model in models:
scores = evaluate(model, tasks)
avg = sum(r["score"] for r in scores) / len(scores)
print(f"{model}: {avg:.2f}")
Métricas para textos generados
- Exact Match: La respuesta coincide exactamente con la respuesta esperada.
- Keyword Match: Los términos esperados aparecen en la respuesta.
- ROUGE: Superposición de n-gramas.
- BERTScore: Similitud semántica de las respuestas.
- LLM-as-a-Judge: Un modelo más potente evalúa las respuestas.
Medir velocidad
import time
start = time.time()
answer = ask("llama3.1", prompt)
end = time.time()
print(f"Dauer: {end - start:.2f} s")
print(f"Tokens pro Sekunde: {len(answer.split()) / (end - start):.1f}")
Para mediciones más precisas de tokens, usa ollama ps o la respuesta de la API con eval_count y eval_duration.
Consejos para comparaciones justas
- Usa prompts idénticos para todos los modelos.
- Mantén la temperatura igual, generalmente baja como 0.1.
- Hardware y entorno de software consistentes.
- Múltiples ejecuciones por tarea.
- Tareas propias basadas en tu uso real.
- Documenta la cuantización y el tag.
- Registra también velocidad y consumo de recursos.
Problemas típicos
- Prompts diferentes: Los resultados no son comparables.
- Temperatura demasiado alta: Las respuestas varían mucho.
- Muy pocas tareas de prueba: Los resultados carecen de validez.
- Depender solo de benchmarks: El comportamiento en producción puede ser distinto.
- El hardware influye en las mediciones: Una GPU más lenta distorsiona la comparación.
- No verificar alucinaciones: Los errores fácticos pasan desapercibidos.
Enlaces e información adicional
- BotServ.de Ollama Performance
- BotServ.de Ollama Befehle
- BotServ.de Ollama Modell-Lebenszyklus
- BotServ.de Lokale Coding-Modelle
FAQ: Evaluación de Ollama
¿Debo evaluar modelos por mi cuenta? No siempre, pero para tus casos de uso específicos es muy recomendable.
¿Cuáles son los benchmarks más importantes? Depende del caso de uso: MMLU para conocimiento general, HumanEval para programación, GSM8K para matemáticas.
¿Puedo probar dos modelos simultáneamente? Sí, pero no en la misma GPU si ambos son grandes.
¿Cuántos casos de prueba necesito? Mejor 50 que 5, pero incluso algunas docenas de tareas propias ayudan bastante.
¿Qué es LLM-as-a-Judge? Otro modelo evalúa la calidad de las respuestas.
Fuentes y referencias
- EleutherAI lm-evaluation-harness: https://github.com/EleutherAI/lm-evaluation-harness
- HELM: https://crfm.stanford.edu/helm/
- BigBench: https://github.com/google/BIG-bench
- MMLU: https://paperswithcode.com/dataset/mmlu
Resumen: Evaluación de modelos Ollama
La evaluación es la mejor forma de encontrar el modelo Ollama correcto para una tarea. Las tareas de prueba propias, los benchmarks conocidos y métricas simples como keyword match o tokens por segundo ofrecen comparaciones objetivas. Lo importante es mantener condiciones iguales, temperaturas bajas y una buena cobertura de tus casos de uso reales. Si evalúas regularmente, puedes elegir deliberadamente entre tamaños de modelo, cuantizaciones y arquitecturas.


