Otorgando Superpoderes a Small Language Models con Model Context Protocol (MCP)
Introducción
Los Large Language Models (LLMs) han revolucionado la forma en que interactuamos con la inteligencia artificial (IA), pero su inteligencia tiene un coste. Los mejores modelos manejan operaciones complejas sin problemas porque tienen un profundo conocimiento sobre programación, APIs y formatos de datos estructurados. Sin embargo, esto también los hace costosos de ejecutar, ya que requieren recursos computacionales significativos, lo que se traduce en altos costes operativos.
¿Qué pasaría si pudiéramos dar a LLMs más pequeños y eficientes los mismos superpoderes sin requerir que sepan todo de antemano? Aquí es donde entran en juego Model Context Protocol (MCP) servers, un enfoque revolucionario que dota a los small language models (SLMs) de "superpoderes" al abstraer la complejidad.
El Desafío: Conocimiento vs. Eficiencia
Cuando se le pide a un LLM que realice una tarea, necesita entender la sintaxis, estructura y matices de dicha tarea.
Por ejemplo:
- Crear una lista de reproducción de Spotify requiere conocimiento de la API de Spotify, el proceso de creación de la lista de reproducción y la elaboración de la HTTP API request adecuada.
- Descargar un archivo de Google Drive requiere conocimiento de la API de Google Drive y el proceso de descarga de archivos.
- Escribir una consulta SQL requiere conocimiento del esquema de la base de datos y la sintaxis de la consulta SQL.
- Gestionar recursos de Kubernetes requiere conocimiento de la API de Kubernetes y el formato de configuración de recursos (YAML).
Los LLMs más grandes pueden realizar muchas de estas tareas porque han sido entrenados en conjuntos de datos extensos con un conocimiento técnico detallado. No obstante, esto se traduce en altos requisitos computacionales, lo que los hace imprácticos para muchos casos de uso.
Por otro lado, los modelos más pequeños, son incapaces de realizar estas tareas porque carecen del conocimiento incrustado necesario. Es posible que no conozcan las complejidades de elaborar una solicitud HTTP, las APIs de productos específicos, escribir una consulta SQL optimizada o configurar un despliegue de Kubernetes. Pero, ¿y si pudiéramos cerrar esa brecha?
MCP Servers: La Pieza Pendiente
Los servidores MCP actúan como middleware entre el LLM y el mundo real. En lugar de requerir que el modelo genere instrucciones precisas de bajo nivel, los servidores MCP pueden proporcionar herramientas que abstraen acciones complejas.
Estas herramientas pueden operar a diferentes niveles de abstracción:
1. Herramientas de Bajo Nivel
Proporcionan bloques de construcción básicos para tareas comunes, como enviar una solicitud HTTP o realizar una consulta SQL. Estas requieren que el modelo tenga un conocimiento detallado sobre una tarea.
Por ejemplo, un servidor MCP podría proporcionar una herramienta para realizar una consulta SELECT
en una base de datos, pero el modelo debe conocer la sintaxis SQL y el esquema de la base de datos para usarla correctamente.
Estas herramientas son más adecuadas para LLMs con algún conocimiento específico de dominio.
2. Herramientas de Alto Nivel
Abstraen la complejidad de una tarea, permitiendo que el modelo se centre en la intención en lugar de la implementación.
Por ejemplo, un servidor MCP podría proporcionar una herramienta para obtener la información del perfil de un usuario de una base de datos sin requerir que el modelo conozca la sintaxis SQL o el esquema de la base de datos.
Estas herramientas son más apropiadas para SLMs.
Al externalizar la complejidad a los servidores MCP, incluso los modelos de lenguaje más pequeños pueden lograr un rendimiento de nivel experto en tareas para las que nunca fueron entrenados explícitamente.
Un Caso de Uso Real: Desplegar en Kubernetes
Consideremos un escenario común: desplegar una aplicación containerizada en un clúster de Kubernetes. Según los niveles de abstracción que he definido anteriormente, hay dos formas de abordar esta tarea con un servidor MCP:
1. Enfoque de Bajo Nivel
El servidor MCP puede proporcionar una herramienta o función de bajo nivel resources_create_or_update(yaml string)
que permite al modelo crear o actualizar recursos de Kubernetes proporcionando su YAML.
A nivel de servidor, la implementación de esta herramienta sería extremadamente simple:
// pseudo-code
func resources_create_or_update(yaml string) {
yaml := parseYAML(yaml)
kubernetes.Apply(yaml)
}
Sin embargo, el modelo necesita entender completamente la sintaxis YAML de Kubernetes para usar esta herramienta de manera efectiva. Necesitaría saber cómo definir un Deployment, un Service y un Ingress, así como cómo configurarlos correctamente.
2. Enfoque de Alto Nivel
El servidor MCP proporciona una herramienta de alto nivel o función deploy_application(image string)
que abstrae la complejidad de desplegar una aplicación en Kubernetes.
A nivel de servidor, la implementación de esta herramienta sería más compleja:
// pseudo-code
func deploy_application(image string) {
// Fetch image details from a registry (exposed port, environment variables, etc.)
imageData := fetchImage(image)
// Create a Kubernetes deployment based on the provided image data
deployment := createDeployment(imageData)
// May return a service object in case there is an exposed port
service := createService(imageData)
// May return an ingress object in case there is an exposed port
ingress := createIngress(imageData)
// Apply the required resources
applyResources(deployment, service, ingress)
}
En este escenario, un modelo pequeño con cero conocimiento de Kubernetes puede desplegar aplicaciones sin esfuerzo en un clúster de Kubernetes. Es el servidor MCP el que realiza el trabajo pesado, permitiendo al modelo centrarse en la tarea de alto nivel de desplegar una aplicación.
Por qué es Importante
- Reducción de los costes de entrenamiento del LLM: Los modelos más pequeños pueden alcanzar un rendimiento de nivel experto sin requerir un extenso entrenamiento en conocimientos específicos de dominio al aprovechar las capacidades de alto nivel de los servidores MCP.
- Reducción de los costes operativos: Los modelos más pequeños son más rentables de ejecutar, lo que hace que la automatización de IA sea más accesible para un público más amplio.
- Hace que la IA sea más accesible: Incluso los modelos ligeros pueden realizar tareas complejas, lo que hace que la IA potente sea accesible en entornos con recursos limitados.
- Mejora la eficiencia: En lugar de generar código detallado o datos estructurados, los modelos pueden interactuar con herramientas de alto nivel, reduciendo las tasas de error y el tiempo de ejecución.
Consejo
Considerando las tarifas (en el momento de la redacción) de OpenAI GPT-4o vs. GPT-4o mini:
- Tokens de entrada
- 4o: $2.50/1M tokens
- 4o-mini: $0.15/1M tokens
- Tokens de salida:
- 4o: $10.00/1M tokens
- 4o-mini: $0.60/1M tokens
El coste de ejecutar el modelo más grande es casi 17 veces mayor que el del modelo más pequeño.
Conclusión
Los MCP servers están transformando la forma en la que vemos las capacidades de la IA al cerrar la brecha entre los small y large language models. En lugar de construir modelos cada vez más grandes con costes cada vez más insostenibles, podemos centrarnos en hacer que los sistemas existentes sean más inteligentes a través de la colaboración entre LLMs e infraestructuras inteligentes como los MCP servers.
A medida que evoluciona el ecosistema MCP, la línea entre los modelos "pequeños" y "grandes" se difuminará. El verdadero poder no vendrá del LLM en sí, sino de las herramientas y el contexto que proporcionamos. Con MCP, incluso los modelos más pequeños pueden convertirse en superhéroes de la IA.
Te Puede Interesar
- Introducción a Model Context Protocol (MCP)
- Introducción a Goose, el agente de IA en tu máquina
- Kubernetes MCP Server: MCP server para Kubernetes que proporciona herramientas de alto y bajo nivel para interactuar con clústers de Kubernetes u OpenShift.