Hoy vamos a hablar sobre un tema muy relevante en el mundo de la inteligencia artificial: el despliegue de LLMs.
Nos centraremos en qué significa desplegar este tipo de modelos, por qué es importante, y exploraremos algunas de las plataformas más utilizadas para realizar este despliegue. El objetivo es entender cómo llevar nuestros modelos de desarrollo a producción de forma eficiente y hacerlos accesibles ya sea por los usuarios finales como para nuestra propia empresa.
Los LLMs (Large Language Models o Modelos de Lenguaje de Gran Tamaño) son sistemas de inteligencia artificial entrenados con enormes cantidades de texto para comprender y generar lenguaje humano de manera natural. Estos modelos, como GPT (Generative Pre-trained Transformer), pueden realizar tareas como responder preguntas, redactar textos, traducir idiomas o resumir información. Funcionan prediciendo la siguiente palabra en una oración según el contexto, lo que les permite mantener conversaciones coherentes y realizar tareas complejas relacionadas con el lenguaje.
El despliegue (deployment) en machine learning o desarrollo de software es el proceso de llevar un modelo o aplicación desde un entorno de desarrollo a un entorno de producción, donde puede ser utilizado por usuarios reales. Implica preparar el sistema para que sea accesible, escalable y estable, ya sea a través de una API, una aplicación web o un servicio en la nube. Es un paso crucial para poner en práctica los modelos entrenados y permitir su uso en el mundo real.
La aplicación se aloja en servidores de terceros como AWS, Azure, Google Cloud, etc.
- Características:
- Accesible desde internet.
- Alta escalabilidad y disponibilidad.
- Menor necesidad de infraestructura propia.
- Ventajas:
- Rápido despliegue.
- Costos iniciales bajos (pago por uso).
- Mantenimiento y actualizaciones gestionadas por el proveedor.
- Desventajas:
- Dependencia de la conexión a internet.
- Menor control directo sobre la infraestructura.
El software se instala y ejecuta en servidores propios, dentro de la empresa.
- Características:
- Control total sobre la infraestructura y datos.
- No depende de conexión a internet externa.
- Ventajas:
- Mayor control y personalización.
- Puede cumplir más fácilmente con requisitos de seguridad o normativas específicas.
- Desventajas:
- Costoso en infraestructura y mantenimiento.
- Escalabilidad más limitada.
- Requiere personal técnico interno.
El software se ejecuta cerca del lugar donde se generan o se usan los datos (por ejemplo, dispositivos IoT, gateways, microcentros de datos).
- Características:
- Procesamiento local de datos.
- Minimiza la latencia y el uso de ancho de banda.
- Ventajas:
- Muy baja latencia.
- Mejora la privacidad y seguridad de los datos.
- Funciona incluso con conectividad limitada a internet.
- Desventajas:
- Gestión distribuida más compleja.
- Puede requerir hardware especializado.
Cloud VS On-Promise VS Edge deploy
Opción de Despliegue | Metáfora | Explicación Sencilla |
---|---|---|
Cloud (Nube) | 🍽 Pedir comida por delivery | Todo se hace fuera de tu casa. Solo recibes el servicio listo, sin preocuparte. |
On-Premise | 👨🍳 Cocinar en tu propia cocina | Tú haces todo: compras, cocinas, limpias. Tienes el control total. |
Edge (En el borde) | 🥪 Tener una mini cocina en tu habitación o escritorio | Preparas la comida justo donde la vas a comer, al instante. Rápido y sin esperar. |
Plataforma | Tipo | Ventajas clave | Desventajas | Precios (aprox.) |
---|---|---|---|---|
Replicate | Hosted pay-per-use | Super simple, rapidez, autoescalado | No control infra, costoso a largo plazo | GPU T4: ~$0.36/h; A100: ~$2.6‑5.0/h; tokens según modelo |
Hugging Face | Hosted / Serverless | Ecosistema completo, fine-tuning, comunidad | Cuotas en Spaces, menos plug‑and‑play generativos | CPU desde $0.03/h; TPU/Inf2 desde $0.75‑12/h |
Runpod | GPU rent-serverless | Flexibilidad total, buen precio GPU | Gestión manual, disponibilidad variable | RTX4090 ~$0.34‑0.40/h; A100 ~$1.99/h; Spot más barato |
BentoML | Framework open-source | Control total, portable, CI/CD friendly | No hospedado, necesitas infra propia | Gratuito; costos de infraestructura externa |
Northflank | Self-host / CI/CD | Orquesta apps + modelos + pipelines | Más complejo, menos inmediato | Freemium/demo; precios acorde a uso |
SageMaker / Vertex AI | Infraestructura gestionada (AWS / GCP) | MLOps completa, integración nube | Costes elevados, complejidad | Variable según instancia / región |
- Entrenamiento del modelo sin sesgos ni discriminatorias.
- Implementar filtros de prompts y moderación para evitar el mal uso, creación de noticias falsas, uso dañino, etc.
- Indicar a los usuarios que están interactuando con una IA.
- Ofrecer transparencia, explicabilidad, privacidad, imparcialidad y soldiez.
Despliegue de LLM en replicate.com paso a paso
Replicate.com es una plataforma que permite a desarrolladores y empresas ejecutar modelos de inteligencia artificial en la nube sin necesidad de configurar servidores ni preocuparse por la infraestructura. Ofrece una amplia variedad de modelos ya entrenados, como modelos de texto, imagen o audio, que se pueden utilizar a través de simples llamadas a una API. Es especialmente útil para integrar modelos de machine learning en proyectos de forma rápida y sencilla.
En este ejercicio vamos a descrubrir todo el flujo de trabajo que se necesita para desplegar nuestro LLM en replicate.com.
Para ello he creado un archivo predict.py que utiliza el modelo tiiuae/falcon-rw-1b
de HuggingFace. Este modelo es gratuito, rápido, requiere poco RAM, compatible con transformers, y a diferencia de otros modelos como pueden ser "mistral-7B-Instruct-v01" que dependen de token de acceso personal (PAT) este modelo es de libre uso.
Para poder desplegar nuestro modelo primero debemos crear una cuenta tanto en HuggingFace.co como en replicate.com y crear nuestras variables de entorno y tenerlos presentes para poder usar el CLI de nuestro terminal:
HUGGINGFACE_HUB_TOKEN
replicate CLI auth Token
modelo_llm/
├── .env
├── predict.py # setup del modelo
├── requirements.txt # nuestras dependencias
- Crea y activa el entorno virtual
python3 -m venv .venv && source .venv/bin/activate
- Instala las dependencias:
pip install -r requirements.txt
pip install torch
pip install transformers
pip install accelerate
# importante oara el device_amap="auto"
pip install cog
# herramienta oficial de replicate para empaquetar modelos en Docker y subirlos
pip install replicate
huggingface-cli login
- Pega en el terminal tu token personal
- Add token as git credential? y
5. Crea el modelo en replicate.com
Models > Create new model > Create
sudo curl -o /usr/local/bin/cog -L https://github.com/replicate/cog/releases/latest/download/cog_$(uname -s)_$(uname -m)
- Ingresa la clave de tu ordenador
sudo chmod +x /usr/local/bin/cog
cog init
Note
Este comando creará los archivos cog.yaml y predict.py (archivo que ya teníamos creado y nombrado con nuestro modelo)
modelo_llm/
├── .env
├── predict.py # setup del modelo
├── requirements.txt # nuestras dependencias
├── cog.yaml # empaquetador para ejecutarlo en replicate
├── replicate.yaml # archivo con información sobre el modelo
build:
python_version: "3.13"
python_requirements: requirements.txt
predict: "predict.py:Predictor"
cog build
Note
Te tiene que imprimir en el terminal "Image build as cog-nombre-modelo"
cog predict -i pregunta="Dime un producto de limpieza que blanquee la ropa"
Note
Esto debería devolverte en el terminal la respuesta del modelo, y eso significa que el modelo funciona correctamente y está listo para desplegar.
cog login
- Presiona Enter en el terminal
- Pega el CLI Token de tu cuenta de replicate
cog push r8.im/tu-usuario/nombre-modelo
Una vez subido, verás una URL como: https://replicate.com/tu-usuario/nombre-modelo
Desde ahí podrás:
- Probar el modelo con inputs reales
- Compartir la demo con otros
- Obtener el endpoint de la API REST
También puedes hacer llamadas desde Python:
import replicate
output = replicate.run(
"tu-usuario/nombre-modelo:version",
input={"pregunta": "Dime un producto de limpieza que blanquee la ropa"}
)
print(output)