Antes de escribir un , entrenar un o levantar un servidor, alguien eligió un modelo. Esa elección fija qué puede hacer tu sistema, cuánto cuesta, adónde viajan los datos y qué permite la licencia, y muchas veces se toma por popularidad.
Veamos cómo elegir con criterio: familias, licencias, , formatos y el ecosistema de Hugging Face. El caso de estudio es Adapta, que descarga modelos base del Hub para entrenarlos y servirlos.
Familias y licencias
Hay dos maneras de acceder a un modelo. Con un solo tienes una API: los pesos nunca salen del proveedor. Con un (open weights) puedes descargar los parámetros y ejecutarlos donde quieras.
| Cerrados (API) | Pesos abiertos | |
|---|---|---|
| Ejemplos de proveedores | OpenAI, Anthropic, Google (Gemini) | Meta (Llama), Mistral, Alibaba (Qwen), DeepSeek, Google (Gemma) |
| Acceso | endpoint hospedado | archivo descargable, o un tercero que lo hospeda |
| Control de versión | el proveedor retira y actualiza | tú fijas la versión exacta |
| Personalización | la que ofrezca la API | fine-tuning, cuantización, adapters |
Las familias cambian cada pocos meses; la distinción no.
Pesos abiertos no es lo mismo que open source
La Open Source AI Definition de la OSI exige, además de los parámetros, el código completo de e e información sobre los datos que alcance para que una persona experta construya un sistema sustancialmente equivalente. La mayoría de los modelos populares publica pesos, no datos ni pipeline.
La licencia define lo que puedes hacer con esos pesos:
- Apache-2.0 o MIT: permisivas. Por ejemplo, DeepSeek-R1 se publicó con MIT y algunos modelos de Mistral con Apache-2.0.
- Licencias comunitarias propias: la licencia de Llama 3.1 exige pedir permiso a Meta si tus productos superaban 700 millones de usuarios activos mensuales, pide mostrar "Built with Llama" e incorpora una política de uso aceptable.
- Términos con usos prohibidos, como los Gemma Terms of Use.
- Licencias de investigación o no comerciales, que impiden usar el modelo en un producto sin un acuerdo aparte.
Cómo leer un modelo
El nombre dice mucho. Tomemos Qwen2.5-3B-Instruct-GGUF:
- Tamaño (
3B): miles de millones de parámetros. Define la memoria y, en buena medida, la calidad y la latencia. Los small models caben en una GPU de consumo y conviene probarlos primero. - Base o instruct: un modelo base solo continúa texto; uno instruct (o chat) recibió ajuste adicional para seguir instrucciones y usar una plantilla de chat. Una aplicación casi siempre usa el instruct.
- Modalidad: los modelos multimodales (visión-lenguaje,
VL) aceptan imágenes además de texto. - Razonamiento: los reasoning models generan una cadena de pasos antes de responder. Aciertan más en problemas difíciles, pero gastan más y tardan más.
- Formato (
GGUF): cómo están guardados los pesos.
Los dos formatos que más verás son , que solo contiene tensores y es el formato recomendado del ecosistema de Hugging Face, y , que empaqueta tensores y metadatos en un archivo pensado para llama.cpp y motores compatibles, normalmente cuantizado. La y los motores se tratan en Servir modelos.
La model card es el README.md del repositorio: describe usos previstos, limitaciones, datos, evaluación y, en sus metadatos, la licencia y el . Léela antes de descargar.
Hugging Face y sus alternativas
Hugging Face funciona como un registro de paquetes para modelos. Sus piezas principales:
- Hub: repositorios git de modelos, datasets y Spaces, con model cards, dataset cards e historial de commits.
- Librerías:
transformers(arquitecturas y carga de modelos),datasets,tokenizers,PEFT(adapters como ) yTRL(entrenamiento con preferencias y refuerzo). - Spaces: demos alojadas.
- Inferencia: Inference Endpoints para desplegar un modelo dedicado, e Inference Providers, un proxy con API compatible con OpenAI delante de varios proveedores externos. TGI, su servidor de inferencia, está en modo mantenimiento, y el propio proyecto recomienda vLLM, SGLang o llama.cpp.
- Leaderboards: el Open Leaderboard se cerró en marzo de 2025; sus autores argumentaron que ya empujaba a optimizar en direcciones poco relevantes.
Descargar pesos es confiar en alguien
Un archivo de modelo puede ejecutar código. Los checkpoints clásicos de PyTorch usan pickle, y Hugging Face advierte que deserializar un pickle puede ejecutar código arbitrario. safetensors existe precisamente para guardar solo tensores. Segundo vector: trust_remote_code=True permite que transformers ejecute el código Python que trae el repositorio. La documentación recomienda, en ese caso, fijar revision a un commit concreto.
# Illustrative: pin what you download
model = AutoModelForCausalLM.from_pretrained(
"org/model",
revision="<commit-sha>", # not a moving branch
use_safetensors=True, # refuse pickle weights
trust_remote_code=False, # only if the architecture is built in
)
Cómo elegir un modelo
| Criterio | Pregunta concreta |
|---|---|
| Tarea | ¿Texto, código, visión, tool calling, razonamiento largo? |
| Latencia | ¿Cuánto espera el usuario? Un modelo grande o de razonamiento tarda más |
| Costo | ¿Precio por token o hardware propio? ¿Qué volumen esperas? |
| Privacidad | ¿Los datos pueden salir de tu infraestructura? |
| Licencia | ¿Permite uso comercial y tu escala de usuarios? |
| Ventana de contexto | ¿Cabe tu prompt más el material recuperado? |
Los benchmarks públicos sirven para armar una lista corta, no para decidir. Una razón es la contaminación: si las preguntas de prueba aparecieron en los datos de entrenamiento, la puntuación mide memoria y no capacidad (Xu et al., 2024). Otra, que tu tarea no se parece a la del benchmark. La decisión se toma con tu propio conjunto de evaluación (Evaluar modelos).
Para CTOs
- La licencia se revisa antes que el benchmark. Un modelo excelente con licencia no comercial es un bloqueo legal para tu producto.
- Cerrado o abierto es una decisión de datos y de operación, no solo de calidad: con ganas control de versión y privacidad, y asumes la infraestructura.
- Los pesos son parte de tu cadena de suministro: pide versiones fijadas, formatos seguros y un registro de qué modelo corre en cada entorno.
Fuentes
- OSI: Open Source AI Definition
- Licencia de Llama 3.1 y Gemma Terms of Use
- Model card de DeepSeek-R1 y Qwen Research License
- Hugging Face: model cards, GGUF, seguridad de pickle, modelos personalizados, Inference Providers, TGI
- Cierre del Open LLM Leaderboard
- Xu et al., Benchmark Data Contamination of Large Language Models: A Survey
Para llevar
- Pesos abiertos no significa open source: la OSI también exige código e información suficiente sobre los datos.
- La licencia es un requisito, no un detalle; en una misma familia de modelos puede cambiar según el tamaño.
- Nombre, model card y formato dicen tamaño, tipo (base o instruct), modalidad y cómo se carga el modelo.
- Descargar pesos es incorporar una dependencia: fija la revisión, prefiere safetensors y evita
trust_remote_codesi no lo necesitas. - Los benchmarks arman la lista corta; tus deciden.
Comprueba lo aprendido
Un modelo publica sus pesos con una licencia no comercial. ¿Es open source?
No. Para la OSI, un sistema de IA open source debe ofrecer parámetros, código completo e información sobre los datos bajo términos que permitan usar, estudiar, modificar y compartir con cualquier fin. Una restricción no comercial lo excluye.
¿Por qué safetensors es más seguro que un checkpoint basado en pickle?
Porque solo almacena tensores y metadatos, mientras que deserializar un pickle puede ejecutar código arbitrario incluido en el archivo.
Un modelo encabeza un benchmark público. ¿Por qué eso no basta para elegirlo?
Porque la puntuación puede estar inflada por contaminación y porque el benchmark no mide tu tarea, tu latencia, tu costo ni tu licencia. La elección se valida con un conjunto de evaluación propio.