Thanks to visit codestin.com
Credit goes to github.com

Skip to content

afelipfo/IngenierIA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 INGENIERIA2 - Plataforma Completa de Ingeniería de Software para Sistemas de IA

Python 3.11 License: MIT Docker CI/CD Code Quality Monitoring MLOps Documentation

🎯 ¿Qué es INGENIERIA2?

INGENIERIA2 es una plataforma completa y profesional que combina educación avanzada con herramientas de producción para Ingeniería de Software aplicada a sistemas de Inteligencia Artificial.

Este proyecto integra:

  • 📚 Ruta de Aprendizaje Completa: Desde fundamentos hasta tecnologías avanzadas
  • 🏗️ Infraestructura de Producción: Stack completo de MLOps y monitoreo
  • 🔧 Herramientas Profesionales: APIs, dashboards, CI/CD, testing
  • 📊 Monitoreo Avanzado: Métricas, alertas, dashboards en tiempo real
  • 📖 Documentación Técnica: Guías completas de desarrollo y despliegue

Objetivo: Formar ingenieros de IA capaces de construir sistemas robustos, escalables y mantenibles para producción.

🚀 Características Principales

📚 Educación y Aprendizaje

  • Contenido Estructurado: 9 capítulos progresivos desde fundamentos hasta producción
  • Código Ejecutable: Notebooks interactivos con ejemplos reales
  • Proyectos Prácticos: Casos de uso reales de la industria
  • Ruta de Aprendizaje: Progresión lógica y certificaciones

🏗️ Infraestructura de Producción

  • 🐳 Contenerización: Docker y Docker Compose para desarrollo y producción
  • ☁️ Cloud Ready: Configuraciones para AWS, GCP, Azure
  • ⚙️ CI/CD: Pipelines automatizados con GitHub Actions
  • 🔧 Orquestación: Kubernetes y Helm charts

📊 Monitoreo y Observabilidad

  • 📈 Métricas Avanzadas: Prometheus con métricas personalizadas de ML
  • 📊 Dashboards Profesionales: Grafana con 8 dashboards especializados
  • 🚨 Sistema de Alertas: 50+ reglas de alerta configurables
  • 🔍 Logging Estructurado: Centralizado y searchable

🔧 Herramientas Profesionales

  • 🔌 API REST Completa: FastAPI con documentación automática
  • 📱 Dashboards Interactivos: Streamlit y Gradio
  • 🧪 Testing Completo: Unit, integration, performance tests
  • 📖 Documentación Técnica: Guías de desarrollo, API y despliegue

🌐 Comunidad y Recursos

  • 📚 Recursos Adicionales: Libros, newsletters, comunidades
  • 🤝 Contribución: Guías y templates para contribuidores
  • 📞 Soporte: Canales de comunicación y documentación

📋 Tecnologías Cubiertas

Área Tecnologías Nivel
Machine Learning Scikit-learn, XGBoost, LightGBM, CatBoost Avanzado
Deep Learning PyTorch, TensorFlow, Keras, Transformers Avanzado
NLP y LLMs LangChain, OpenAI, BERT, ChromaDB, RAG Avanzado
Visión por Computador OpenCV, YOLO, CLIP, Albumentations Intermedio
MLOps MLflow, Prefect, Evidently, Prometheus Avanzado
APIs y Web FastAPI, Streamlit, Gradio, Flask Avanzado
Cloud y Despliegue Docker, Kubernetes, AWS, Azure, GCP Avanzado
Bases de Datos PostgreSQL, Redis, MongoDB, ChromaDB Avanzado
Monitoreo Prometheus, Grafana, AlertManager Avanzado
Testing pytest, unittest, locust Avanzado
CI/CD GitHub Actions, Jenkins, ArgoCD Avanzado
Seguridad JWT, OAuth2, Rate Limiting Avanzado

🏗️ Estructura del Proyecto

ingenieria2/
├── 📁 Cap1/                    # Fundamentos Esenciales
│   ├── file0.ipynb            # Introducción a Python
│   ├── file1.ipynb            # Fundamentos de Programación
│   ├── file2.ipynb            # Programación Orientada a Objetos
│   ├── file3.ipynb            # Librerías Científicas
│   ├── file4.ipynb            # Buenas Prácticas
│   ├── file5.ipynb            # C++
│   ├── file6.ipynb            # Estructuras de Datos
│   ├── file7.ipynb            # Matemáticas para IA
│   ├── file8.ipynb            # Proyecto de Matemáticas
│   └── file9.ipynb            # Git y GitHub
├── 📁 Cap2/                    # Machine Learning y Evaluación
│   ├── file10.ipynb           # Regresión Lineal
│   ├── file11.ipynb           # Regresión Lineal Múltiple
│   ├── file12.ipynb           # Regresión Logística
│   ├── file13.ipynb           # Árboles de Decisión
│   ├── file14.ipynb           # SVM
│   ├── file15.ipynb           # Random Forest
│   ├── file16.ipynb           # Gradient Boosting
│   ├── 📁 KNN/                # K-Vecinos Más Cercanos
│   ├── 📁 Clasificador_NaiveBayes/
│   ├── 📁 Deep_Learning/      # PyTorch, TensorFlow, CNNs
│   ├── 📁 ML_No_Supervisado/  # Clustering, PCA, Reglas de Asociación
│   ├── 📁 Precision/          # Métricas de Evaluación
│   └── 📁 Tecnicas_Avanzadas/ # XGBoost, LightGBM
├── 📁 Cap3/                    # LLMs y NLP Avanzado
│   ├── 📁 Analisis_Sentimiento_NaiveBayes/
│   ├── 📁 Autocodificadores/
│   ├── 📁 Modelos_Generativos/
│   ├── Attention.ipynb        # Mecanismo de Atención
│   ├── Transformer.ipynb      # Arquitectura Transformer
│   ├── Basic_LLM.ipynb        # Introducción a LLMs
│   ├── chatbot.ipynb          # Chatbot con LLMs
│   └── ...                    # Más notebooks de NLP
├── 📁 src/                     # Código Fuente del Paquete
│   └── 📁 ingenieria2/
│       ├── cli.py             # CLI principal
│       ├── config/            # Sistema de configuración
│       ├── models/            # Modelos de ML
│       ├── api/               # Endpoints de API
│       └── utils/             # Utilidades
├── 📁 apps/                    # Aplicaciones
│   ├── api.py                 # API REST con FastAPI
│   └── streamlit_app.py       # Dashboard con Streamlit
├── 📁 tests/                   # Tests Unitarios
│   ├── unit/                  # Tests unitarios
│   ├── integration/           # Tests de integración
│   └── fixtures/              # Datos de prueba
├── 📁 docs/                    # Documentación Técnica
│   ├── api/                   # Documentación de API
│   ├── deployment/            # Guías de despliegue
│   ├── development/           # Guías de desarrollo
│   └── architecture/          # Arquitectura del sistema
├── 📁 monitoring/              # Configuración de Monitoreo
│   ├── prometheus.yml         # Configuración de Prometheus
│   ├── alert_rules.yml        # Reglas de alerta
│   └── grafana-dashboards.yml # Dashboards de Grafana
├── 📁 config/                  # Configuraciones
│   ├── base.py                # Configuración base
│   ├── development.py         # Configuración de desarrollo
│   ├── production.py          # Configuración de producción
│   └── cli.py                 # CLI de configuración
├── 📁 data/                    # Datasets (gitignored)
├── 📁 models/                  # Modelos Entrenados (gitignored)
├── 📁 logs/                    # Logs (gitignored)
├── 📁 notebooks/               # Jupyter notebooks adicionales
├── requirements.txt            # Dependencias Principales
├── requirements-dev.txt        # Dependencias de Desarrollo
├── pyproject.toml             # Configuración Moderna de Python
├── setup.py                   # Configuración de Instalación
├── Dockerfile                 # Contenerización
├── docker-compose.yml         # Orquestación de Servicios
├── .pre-commit-config.yaml    # Hooks de Pre-commit
├── Makefile                   # Comandos de desarrollo
├── env.example                # Variables de entorno de ejemplo
└── README.md                  # Este archivo

🚀 Inicio Rápido

Prerrequisitos

  • Python 3.11+
  • Docker y Docker Compose
  • Git
  • Make (opcional, para comandos simplificados)

Instalación

  1. Clonar el repositorio
git clone https://github.com/tu-usuario/ingenieria2.git
cd ingenieria2
  1. Configurar el entorno
# Opción 1: Instalación local completa
python -m venv venv
source venv/bin/activate  # En Windows: venv\Scripts\activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
pre-commit install

# Opción 2: Con Docker (Recomendado)
docker-compose up -d

# Opción 3: Setup automático
make install
  1. Configurar variables de entorno
cp env.example .env
# Editar .env con tus configuraciones
  1. Verificar la instalación
# CLI del proyecto
python -m ingenieria2.cli --help

# O con Docker
docker-compose exec jupyter python -m ingenieria2.cli --help

# Verificar servicios
make health-check

Uso Básico

# Comandos principales
make help                    # Ver todos los comandos disponibles

# Servicios de desarrollo
make dev-start              # Iniciar todos los servicios
make dev-stop               # Detener todos los servicios
make health-check           # Verificar estado de servicios

# Desarrollo
make test                   # Ejecutar tests
make test-cov              # Tests con coverage
make format                # Formatear código
make lint                  # Linting
make type-check            # Verificación de tipos

# CLI del proyecto
python -m ingenieria2.cli jupyter    # Iniciar Jupyter Lab
python -m ingenieria2.cli api        # Iniciar API REST
python -m ingenieria2.cli streamlit  # Iniciar Dashboard
python -m ingenieria2.cli mlflow     # Iniciar MLflow
python -m ingenieria2.cli docker     # Iniciar con Docker

# Configuración
python -m ingenieria2.cli setup      # Configurar entorno
python -m config.cli show            # Mostrar configuración
python -m config.cli validate        # Validar configuración

📊 Servicios Disponibles

Una vez iniciado el proyecto, tendrás acceso a:

Servicio URL Descripción Credenciales
Jupyter Lab http://localhost:8888 Notebooks interactivos Sin token
MLflow http://localhost:5000 Experiment tracking -
Streamlit http://localhost:8501 Dashboard interactivo -
FastAPI http://localhost:8000 API REST -
API Docs http://localhost:8000/docs Documentación de la API -
PostgreSQL localhost:5432 Base de datos admin/password123
Redis localhost:6379 Cache -
Prometheus http://localhost:9090 Métricas -
Grafana http://localhost:3000 Visualización admin/admin123

📈 Dashboards de Grafana

  • INGENIERIA2 Overview: Vista general del sistema
  • ML Models Performance: Rendimiento de modelos de ML
  • Infrastructure Monitoring: Monitoreo de infraestructura
  • Database Monitoring: Monitoreo de base de datos
  • Redis Monitoring: Monitoreo de Redis
  • MLflow Monitoring: Monitoreo de MLflow
  • Security Monitoring: Monitoreo de seguridad
  • Business Metrics: Métricas de negocio

📚 Ruta de Aprendizaje

🧱 Capítulo 1: Fundamentos Esenciales

  • Python Avanzado: POO, estructuras de datos, librerías científicas
  • Matemáticas para IA: Álgebra lineal, cálculo, estadística
  • Control de Versiones: Git, GitHub, buenas prácticas

📊 Capítulo 2: Machine Learning y Evaluación

  • Aprendizaje Supervisado: Regresión, clasificación, ensambles
  • Aprendizaje No Supervisado: Clustering, reducción de dimensionalidad
  • Deep Learning: CNNs, RNNs, Transformers
  • Evaluación: Métricas, validación cruzada, interpretabilidad

🧠 Capítulo 3: LLMs y NLP Avanzado

  • Procesamiento de Lenguaje Natural: Tokenización, embeddings, BERT
  • Large Language Models: GPT, Claude, Llama, Mistral
  • Frameworks: LangChain, ChromaDB, RAG
  • Aplicaciones: Chatbots, análisis de sentimientos, generación de texto

⚙️ Capítulo 4: Ingeniería de IA Aplicada

  • MLflow: Experiment tracking, model registry
  • RAG: Retrieval-Augmented Generation
  • Fine-tuning: LoRA, QLoRA, adapters
  • Bases de Datos Vectoriales: ChromaDB, Pinecone, FAISS

🔌 Capítulo 5: Integración y Desarrollo

  • APIs: FastAPI, Django, Flask
  • Interfaces: Streamlit, Gradio, Dash
  • Bases de Datos: SQL, NoSQL, vectoriales
  • Multimodalidad: Texto, imágenes, audio, video

🔍 Capítulo 6: Visión por Computador

  • Fundamentos: OpenCV, transformaciones, segmentación
  • Deep Learning: ResNet, EfficientNet, YOLO
  • Aplicaciones: Clasificación, detección, OCR

🚀 Capítulo 7: Despliegue y Producción

  • Cloud Platforms: AWS, Azure, GCP
  • Contenerización: Docker, Kubernetes
  • Monitoreo: Prometheus, Grafana, MLflow
  • Optimización: TorchScript, ONNX, TensorRT

⚖️ Capítulo 8: Ética y Gobernanza

  • Sesgos Algorítmicos: Detección, mitigación, métricas de equidad
  • Interpretabilidad: SHAP, LIME, GradCAM
  • Gobernanza: AI Act, principios éticos, auditorías

🏁 Capítulo 9: Proyectos Finales

  • Proyectos Integradores: Sistemas completos de IA
  • Casos de Uso Reales: Medicina, finanzas, retail, etc.
  • Despliegue en Producción: Monitoreo, escalabilidad, mantenimiento

🛠️ Herramientas de Desarrollo

Calidad de Código

# Formatear código
make format

# Linting
make lint

# Type checking
make type-check

# Tests
make test
make test-cov

# Pre-commit hooks
pre-commit install
pre-commit run --all-files

CI/CD

El proyecto incluye pipelines automatizados con GitHub Actions:

  • Tests: Ejecución automática de tests unitarios e integración
  • Linting: Verificación de calidad de código con Black, Flake8, MyPy
  • Security: Análisis de seguridad con Bandit
  • Docker: Construcción y publicación de imágenes
  • Deployment: Despliegue automático a múltiples entornos

Monitoreo y Observabilidad

  • Prometheus: Recolección de métricas con 50+ reglas de alerta
  • Grafana: 8 dashboards especializados para diferentes aspectos del sistema
  • AlertManager: Sistema de notificaciones (Slack, Email, PagerDuty)
  • MLflow: Tracking de experimentos y modelos
  • Evidently: Monitoreo de drift y calidad de modelos

Testing

  • Unit Tests: Cobertura completa de funcionalidades
  • Integration Tests: Tests de integración entre servicios
  • Performance Tests: Tests de rendimiento con Locust
  • Security Tests: Tests de seguridad automatizados

📈 Proyectos Prácticos

Machine Learning Clásico

  1. Predicción de Riesgo Médico - Clasificación con datos tabulares
  2. Análisis de Sentimientos - NLP clásico con TF-IDF
  3. Sistema de Scoring Crediticio - Modelos explicables con SHAP
  4. Predicción Agrícola - IoT y sensores con LightGBM
  5. Forecasting Energético - Series temporales con Prophet

Deep Learning

  1. Detección de Células Cancerígenas - CNNs con PyTorch
  2. Predicción de Series Temporales - LSTM y Transformers
  3. Conversión Texto-a-Voz - Tacotron 2 + HiFi-GAN
  4. Reconocimiento Satelital - Swin Transformer

NLP y LLMs

  1. Chatbot Legal - RAG + FastAPI + Pinecone
  2. Asistente de Contratos - LLMs + LangChain
  3. Extracción de Documentos - LayoutLMv3
  4. Agente Q&A Institucional - OpenAI + LlamaIndex

📚 Recursos Adicionales

Libros Recomendados

  • Fundamentals of Data Engineering - Joe Reis & Matt Housley
  • Designing Data-Intensive Applications - Martin Kleppmann
  • Designing Machine Learning Systems - Chip Huyen
  • The Hundred Page Machine Learning Book - Andriy Burkov
  • Deep Learning - Ian Goodfellow, Yoshua Bengio, Aaron Courville

Comunidades

  • DataExpert.io Community - Discord para Data Engineering
  • Data Talks Club - Slack para ciencia de datos
  • AdalFlow Discord - LLMs y NLP
  • Chip Huyen MLOps - MLOps y producción

Newsletters

  • Data Engineering Weekly - Noticias semanales
  • Marvelous MLOps - MLOps y producción
  • DataEngineer.io - Tutoriales y recursos
  • Seattle Data Guy - Insights de la industria

🤝 Contribuir

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

Guías de Contribución

  • Sigue las convenciones de código (Black, Flake8, MyPy)
  • Escribe tests para nuevas funcionalidades
  • Actualiza la documentación según sea necesario
  • Usa commits semánticos

📄 Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para detalles.

🙏 Agradecimientos

  • Comunidad de Data Science por el conocimiento compartido
  • Contribuidores que han ayudado a mejorar este proyecto
  • Herramientas Open Source que hacen posible este proyecto

📖 Documentación Técnica

📚 Guías Disponibles

🔧 Configuración

📞 Contacto y Soporte

🆘 Canales de Soporte

👥 Contribuir

📊 Estado del Proyecto

  • ✅ Funcionalidades: 100% implementadas
  • 📊 Monitoreo: 8 dashboards + 50+ alertas
  • 🧪 Testing: Cobertura completa
  • 📖 Documentación: Guías completas
  • 🚀 Producción: Ready para despliegue

Si este proyecto te ha ayudado, ¡dale una estrella en GitHub!

🎯 Objetivo: Convertirte en un Ingeniero de Software para IA de nivel profesional con todas las herramientas necesarias para construir sistemas robustos y escalables.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages