Backend optimizado para GPU A40 en RunPod con PokeeAI/pokee_research_7b (7B parΓ‘metros).
ssh root@<POD_IP> -p <SSH_PORT>
cd /workspace
git clone https://github.com/LuisNSantana/ai-backend-cleo-model.git backend_ai_local
cd backend_ai_local
# Copiar configuraciΓ³n del servidor
cp .env.server .env
# Hacer ejecutables los scripts
chmod +x start_server.sh finetune_server.sh
# Iniciar servidor
./start_server.sh
Β‘Listo! El servidor estarΓ‘ corriendo en el puerto 8000.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β RUNPOD SERVER (A40) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β FastAPI Backend (Port 8000) β β
β β βββ /v1/chat/completions (OpenAI compatible) β β
β β βββ /health (Health check) β β
β β βββ /docs (Swagger UI) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PokeeAI/pokee_research_7b β β
β β βββ LoRA Adapter (Fine-tuned - Cleo) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β NVIDIA A40 GPU (40GB VRAM) β β
β β βββ CUDA 11.8 + FP16 β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
.env.server - ConfiguraciΓ³n optimizada para RunPod A40requirements.txt - Dependencias Python con CUDA supportstart_server.sh - Script automatizado de iniciofinetune_server.sh - Script de fine-tuningscripts/finetune_cleo_gpu.py - Fine-tuning con LoRA (optimizado para A40)scripts/combine_datasets.py - Utilidad para combinar datasetsdatasets/cleo_combined_training.jsonl - 40 ejemplos bilingΓΌes (EN/ES)
# Modelo
HF_DEFAULT_MODEL=PokeeAI/pokee_research_7b
# GPU
HF_DEVICE=cuda
HF_TORCH_DTYPE=float16
# Servidor
HOST=0.0.0.0
PORT=8000
# Fine-tuning
LORA_R=16
LORA_ALPHA=32
BATCH_SIZE=4
NUM_EPOCHS=3
Ver .env.server para todas las opciones.
./finetune_server.sh
Tiempo estimado: ~15-20 minutos en A40 (vs 89 min en Mac M4)
# 1. Editar .env
nano .env
# 2. Actualizar modelo
HF_DEFAULT_MODEL=/workspace/backend_ai_local/models/cleo_finetuned_7b
# 3. Reiniciar servidor
pkill -f uvicorn
./start_server.sh
curl https://your-pod-url:8000/health
curl -X POST "https://your-pod-url:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "PokeeAI/pokee_research_7b",
"messages": [
{"role": "user", "content": "ΒΏQuiΓ©n eres y quΓ© haces?"}
],
"temperature": 0.7,
"max_tokens": 500
}'
Accede a la documentaciΓ³n interactiva:
https://your-pod-url:8000/docs
| MΓ©trica | Mac M4 (anterior) | RunPod A40 |
|---|---|---|
| GPU | Apple M4 (MPS) | NVIDIA A40 |
| VRAM | 16GB compartido | 40GB dedicado |
| Modelo | Qwen2.5-3B | pokeeResearch-7B |
| Fine-tuning | 89 minutos | ~15-20 minutos |
| Batch Size | 1 | 4-8 |
| PrecisiΓ³n | float32 | float16 |
| Inferencia | ~2-3 tok/s | ~20-30 tok/s |
tail -f logs/server.log
nvidia-smi
watch -n 1 nvidia-smi # ActualizaciΓ³n cada segundo
curl http://localhost:8000/health
Reducir batch size:
# En .env
BATCH_SIZE=2
O activar cuantizaciΓ³n 4-bit:
# En scripts/finetune_cleo_gpu.py
USE_4BIT = True
# Ver proceso
lsof -i :8000
# Matar proceso
pkill -f uvicorn
# O cambiar puerto en .env
PORT=8001
Verificar token de HuggingFace:
# En .env (si es necesario)
HF_TOKEN=tu_token_aqui
# O login manual
huggingface-cli login
backend_ai_local/
βββ app/ # FastAPI application
β βββ main.py # Entry point
β βββ routers/ # API routes
β β βββ chat.py # Chat endpoints
β β βββ health.py # Health checks
β βββ services/ # Business logic
β βββ huggingface_service.py # Model inference
βββ datasets/ # Training datasets
β βββ cleo_combined_training.jsonl # 40 bilingual examples
βββ scripts/ # Utility scripts
β βββ finetune_cleo_gpu.py # GPU fine-tuning
β βββ combine_datasets.py # Dataset tools
βββ models/ # Fine-tuned models (gitignored)
β βββ cleo_finetuned_7b/ # Output after fine-tuning
βββ .env.server # Server config template
βββ requirements.txt # Python dependencies
βββ start_server.sh # Server startup
βββ finetune_server.sh # Fine-tuning script
βββ README.md # This file
Para producciΓ³n, configura:
# En .env
API_KEY=tu_api_key_secreta
# En .env
CORS_ORIGINS=["https://tu-frontend.com"]
Usa reverse proxy (nginx) o SSL de RunPod.
Este es un proyecto de Huminary Labs (Madrid, EspaΓ±a).
Este proyecto usa:
README_DEPLOYMENT_DETAILED.md - GuΓa detallada de deploymentFINE_TUNING_GUIDE.md - GuΓa de fine-tuningHUMINARY_TRAINING_GUIDE.md - Dataset y personalidadReporta bugs o solicita features en:
# 1. Clonar
git clone https://github.com/LuisNSantana/ai-backend-cleo-model.git
cd ai-backend-cleo-model
# 2. Configurar
cp .env.server .env
chmod +x start_server.sh
# 3. Ejecutar
./start_server.sh
Β‘Disfruta de Cleo! π
Hecho con β€οΈ por Huminary Labs en Madrid, EspaΓ±a
Backend optimizado para GPU A40 en RunPod con PokeeAI/pokee_research_7b (7B parΓ‘metros).
ssh root@<POD_IP> -p <SSH_PORT>
cd /workspace
git clone https://github.com/LuisNSantana/ai-backend-cleo-model.git backend_ai_local
cd backend_ai_local
# Copiar configuraciΓ³n del servidor
cp .env.server .env
# Hacer ejecutables los scripts
chmod +x start_server.sh finetune_server.sh
# Iniciar servidor
./start_server.sh
Β‘Listo! El servidor estarΓ‘ corriendo en el puerto 8000.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β RUNPOD SERVER (A40) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β FastAPI Backend (Port 8000) β β
β β βββ /v1/chat/completions (OpenAI compatible) β β
β β βββ /health (Health check) β β
β β βββ /docs (Swagger UI) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PokeeAI/pokee_research_7b β β
β β βββ LoRA Adapter (Fine-tuned - Cleo) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β NVIDIA A40 GPU (40GB VRAM) β β
β β βββ CUDA 11.8 + FP16 β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
.env.server - ConfiguraciΓ³n optimizada para RunPod A40requirements.txt - Dependencias Python con CUDA supportstart_server.sh - Script automatizado de iniciofinetune_server.sh - Script de fine-tuningscripts/finetune_cleo_gpu.py - Fine-tuning con LoRA (optimizado para A40)scripts/combine_datasets.py - Utilidad para combinar datasetsdatasets/cleo_combined_training.jsonl - 40 ejemplos bilingΓΌes (EN/ES)
# Modelo
HF_DEFAULT_MODEL=PokeeAI/pokee_research_7b
# GPU
HF_DEVICE=cuda
HF_TORCH_DTYPE=float16
# Servidor
HOST=0.0.0.0
PORT=8000
# Fine-tuning
LORA_R=16
LORA_ALPHA=32
BATCH_SIZE=4
NUM_EPOCHS=3
Ver .env.server para todas las opciones.
./finetune_server.sh
Tiempo estimado: ~15-20 minutos en A40 (vs 89 min en Mac M4)
# 1. Editar .env
nano .env
# 2. Actualizar modelo
HF_DEFAULT_MODEL=/workspace/backend_ai_local/models/cleo_finetuned_7b
# 3. Reiniciar servidor
pkill -f uvicorn
./start_server.sh
curl https://your-pod-url:8000/health
curl -X POST "https://your-pod-url:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "PokeeAI/pokee_research_7b",
"messages": [
{"role": "user", "content": "ΒΏQuiΓ©n eres y quΓ© haces?"}
],
"temperature": 0.7,
"max_tokens": 500
}'
Accede a la documentaciΓ³n interactiva:
https://your-pod-url:8000/docs
| MΓ©trica | Mac M4 (anterior) | RunPod A40 |
|---|---|---|
| GPU | Apple M4 (MPS) | NVIDIA A40 |
| VRAM | 16GB compartido | 40GB dedicado |
| Modelo | Qwen2.5-3B | pokeeResearch-7B |
| Fine-tuning | 89 minutos | ~15-20 minutos |
| Batch Size | 1 | 4-8 |
| PrecisiΓ³n | float32 | float16 |
| Inferencia | ~2-3 tok/s | ~20-30 tok/s |
tail -f logs/server.log
nvidia-smi
watch -n 1 nvidia-smi # ActualizaciΓ³n cada segundo
curl http://localhost:8000/health
Reducir batch size:
# En .env
BATCH_SIZE=2
O activar cuantizaciΓ³n 4-bit:
# En scripts/finetune_cleo_gpu.py
USE_4BIT = True
# Ver proceso
lsof -i :8000
# Matar proceso
pkill -f uvicorn
# O cambiar puerto en .env
PORT=8001
Verificar token de HuggingFace:
# En .env (si es necesario)
HF_TOKEN=tu_token_aqui
# O login manual
huggingface-cli login
backend_ai_local/
βββ app/ # FastAPI application
β βββ main.py # Entry point
β βββ routers/ # API routes
β β βββ chat.py # Chat endpoints
β β βββ health.py # Health checks
β βββ services/ # Business logic
β βββ huggingface_service.py # Model inference
βββ datasets/ # Training datasets
β βββ cleo_combined_training.jsonl # 40 bilingual examples
βββ scripts/ # Utility scripts
β βββ finetune_cleo_gpu.py # GPU fine-tuning
β βββ combine_datasets.py # Dataset tools
βββ models/ # Fine-tuned models (gitignored)
β βββ cleo_finetuned_7b/ # Output after fine-tuning
βββ .env.server # Server config template
βββ requirements.txt # Python dependencies
βββ start_server.sh # Server startup
βββ finetune_server.sh # Fine-tuning script
βββ README.md # This file
Para producciΓ³n, configura:
# En .env
API_KEY=tu_api_key_secreta
# En .env
CORS_ORIGINS=["https://tu-frontend.com"]
Usa reverse proxy (nginx) o SSL de RunPod.
Este es un proyecto de Huminary Labs (Madrid, EspaΓ±a).
Este proyecto usa:
README_DEPLOYMENT_DETAILED.md - GuΓa detallada de deploymentFINE_TUNING_GUIDE.md - GuΓa de fine-tuningHUMINARY_TRAINING_GUIDE.md - Dataset y personalidadReporta bugs o solicita features en:
# 1. Clonar
git clone https://github.com/LuisNSantana/ai-backend-cleo-model.git
cd ai-backend-cleo-model
# 2. Configurar
cp .env.server .env
chmod +x start_server.sh
# 3. Ejecutar
./start_server.sh
Β‘Disfruta de Cleo! π
Hecho con β€οΈ por Huminary Labs en Madrid, EspaΓ±a