Guia para Llama en Windows con Hugging Face
PARTE 1: DIAGNÓSTICO SYSTEM AVANZADO
1
Detectar Hardware
import torch
import subprocess
import psutil
import os
from pathlib import Path
def diagnose_system():
"""Diagnóstico completo Windows + PyTorch"""
print("=" * 60)
print("DIAGNÓSTICO SISTEMA - LLAMA LOCAL")
print("=" * 60)
# 1. CPU
print("\n📊 CPU")
print(f" Cores físicos: {psutil.cpu_count(logical=False)}")
print(f" Threads lógicos: {psutil.cpu_count(logical=True)}")
print(f" Frecuencia: {psutil.cpu_freq().current:.1f} MHz")
# 2. RAM
print("\n💾 MEMORIA")
ram = psutil.virtual_memory()
print(f" Total: {ram.total / (1024**3):.1f} GB")
print(f" Disponible: {ram.available / (1024**3):.1f} GB")
print(f" Uso: {ram.percent}%")
# 3. Disco
print("\n💿 ALMACENAMIENTO")
disk = psutil.disk_usage('/')
print(f" Total: {disk.total / (1024**3):.1f} GB")
print(f" Libre: {disk.free / (1024**3):.1f} GB")
print(f" Uso: {disk.percent}%")
# 4. GPU
print("\n🎮 GPU")
if torch.cuda.is_available():
print(f" ✓ CUDA disponible")
print(f" Device: {torch.cuda.get_device_name(0)}")
print(f" VRAM: {torch.cuda.get_device_properties(0).total_memory / (1024**3):.1f} GB")
print(f" VRAM disponible: {torch.cuda.mem_get_info()[0] / (1024**3):.1f} GB")
print(f" CUDA version: {torch.version.cuda}")
print(f" cuDNN version: {torch.backends.cudnn.version()}")
else:
print(f" ✗ CUDA NO disponible (CPU only)")
# 5. PyTorch
print("\n⚙️ PYTORCH")
print(f" Version: {torch.__version__}")
print(f" Backend: {'CUDA' if torch.cuda.is_available() else 'CPU'}")
# 6. Python
print("\n🐍 PYTHON")
print(f" Version: {os.sys.version.split()[0]}")
print(f" Ejecutable: {os.sys.executable}")
# 7. Recomendación
print("\n🎯 RECOMENDACIÓN")
ram_gb = ram.total / (1024**3)
if torch.cuda.is_available():
vram_gb = torch.cuda.get_device_properties(0).total_memory / (1024**3)
print(f" ✓ GPU disponible ({vram_gb:.1f} GB VRAM)")
if vram_gb >= 24:
print(f" → Usa: Llama-3.1-70B-Instruct (sin quantización)")
elif vram_gb >= 16:
print(f" → Usa: Llama-3.1-70B-Instruct (q4_0)")
elif vram_gb >= 8:
print(f" → Usa: Llama-3.1-8B-Instruct (sin quantización)")
else:
print(f" → Usa: Llama-3.1-8B-Instruct (q4_0)")
else:
print(f" ✗ GPU NO disponible (CPU only)")
if ram_gb >= 32:
print(f" → Usa: Llama-3.1-8B-Instruct (q5_0)")
elif ram_gb >= 16:
print(f" → Usa: Llama-3.1-8B-Instruct (q4_0)")
else:
print(f" → Usa: Llama-3.1-3B-Instruct (q4_0)")
print("\n" + "=" * 60)
if __name__ == "__main__":
diagnose_system()python diagnose.pyPARTE 2: SETUP ENVIRONMENT AVANZADO
Virtual Environment Management
# Crear environment específico para Llama
python -m venv llama-env
# Activar
llama-env\Scripts\activate # Windows
# Verificar
python --version
pip --version# Descargar Miniconda desde https://docs.conda.io/projects/miniconda/
# Crear environment
conda create -n llama python=3.11 -y
# Activar
conda activate llama
# Instalar CUDA + cuDNN (si GPU NVIDIA)
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia# En WSL2 (Ubuntu dentro Windows)
wsl --install
# Dentro WSL:
python -m venv llama-env
source llama-env/bin/activate
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118Paso 2.2: Instalar Dependencias
PARTE 3: DESCARGA INTELIGENTE DE MODELOS
Autenticación Hugging Face
Descarga con Resume Automático
PARTE 4: INFERENCE OPTIMIZADO
Pipeline
PARTE 5: CHAT CONVERSACIONAL AVANZADO
Chat Multi-Turno con Contexto
PARTE 6: API REST PRODUCTION-READY
FastAPI + Transformers
PARTE 7: MONITOREO GPU EN TIEMPO REAL
Monitor GPU + RAM
PARTE 8: CUANTIZACIÓN Y OPTIMIZACIÓN
Cargar modelo con Cuantización
PARTE 9: COMPLIANCE LFPDPPP
Data Protection Framework
PARTE 10: CASOS PRÁCTICOS MIPYMES
Caso: Asistente Legal Compliance
PARTE 11: FINE-TUNING FRAMEWORK
LoRA Fine-tuning
PARTE 12: DEPLOYMENT DOCKER
Dockerfile
PARTE 13-15: TROUBLESHOOTING, BENCHMARKING, ROADMAP
CONCLUSIÓN: Repaso en guía
Aspecto
Esta Guía
AnteriorGuía para descargar y correr Llama localmenteSiguienteGuía para descargar y correr Llama localmente
Última actualización

