12 KiB
AGENTS.md
Resumen del Proyecto
AI for Beginners es un plan de estudios completo de 12 semanas y 24 lecciones que cubre los fundamentos de la Inteligencia Artificial. Este repositorio educativo incluye lecciones prácticas utilizando Jupyter Notebooks, cuestionarios y laboratorios prácticos. El plan de estudios abarca:
- IA simbólica con Representación del Conocimiento y Sistemas Expertos
- Redes Neuronales y Aprendizaje Profundo con TensorFlow y PyTorch
- Técnicas y arquitecturas de Visión por Computadora
- Procesamiento de Lenguaje Natural (NLP), incluyendo transformers y BERT
- Temas especializados: Algoritmos Genéticos, Aprendizaje por Refuerzo, Sistemas Multiagente
- Ética en IA y principios de IA Responsable
Tecnologías clave: Python 3, Jupyter Notebooks, TensorFlow, PyTorch, Keras, OpenCV, Vue.js (para la aplicación de cuestionarios)
Arquitectura: Repositorio de contenido educativo con Jupyter Notebooks organizados por áreas temáticas, complementado con una aplicación de cuestionarios basada en Vue.js y soporte multilingüe extenso.
Comandos de Configuración
Entorno de Desarrollo Principal (Python/Jupyter)
El plan de estudios está diseñado para ejecutarse con Python y Jupyter Notebooks. El enfoque recomendado es usar miniconda:
# Clone the repository
git clone https://github.com/microsoft/ai-for-beginners
cd ai-for-beginners
# Create and activate conda environment
conda env create --name ai4beg --file environment.yml
conda activate ai4beg
# Start Jupyter Notebook
jupyter notebook
# OR
jupyter lab
Alternativa: Usar devcontainer
# Open in VS Code and select "Reopen in Container" when prompted
# The devcontainer will automatically set up the environment
Configuración de la Aplicación de Cuestionarios
La aplicación de cuestionarios es una aplicación separada de Vue.js ubicada en etc/quiz-app/:
cd etc/quiz-app
npm install
npm run serve # Development server
npm run build # Production build
npm run lint # Lint and fix files
Flujo de Trabajo de Desarrollo
Trabajando con Jupyter Notebooks
-
Desarrollo Local:
- Activar el entorno conda:
conda activate ai4beg - Iniciar Jupyter:
jupyter notebookojupyter lab - Navegar a las carpetas de lecciones y abrir archivos
.ipynb - Ejecutar las celdas de manera interactiva para seguir las lecciones
- Activar el entorno conda:
-
VS Code con Extensión de Python:
- Abrir el repositorio en VS Code
- Instalar la extensión de Python
- VS Code detecta automáticamente y utiliza el entorno conda
- Abrir archivos
.ipynbdirectamente en VS Code
-
Desarrollo en la Nube:
- GitHub Codespaces: Haz clic en "Code" → "Codespaces" → "Create codespace on main"
- Binder: Usa el badge de Binder en el README para lanzarlo en el navegador
- Nota: Binder tiene recursos limitados y algunas restricciones de acceso web
Soporte de GPU para Lecciones Avanzadas
Las lecciones posteriores se benefician significativamente de la aceleración por GPU:
- Azure Data Science VM: Usar VMs de la serie NC con soporte de GPU
- Azure Machine Learning: Usar características de notebooks con computación GPU
- Google Colab: Subir notebooks individualmente (tiene soporte gratuito de GPU)
Desarrollo de la Aplicación de Cuestionarios
cd etc/quiz-app
npm run serve # Hot-reload development server at http://localhost:8080
Instrucciones de Pruebas
Este es un repositorio educativo enfocado en contenido de aprendizaje más que en pruebas de software. No hay un conjunto de pruebas tradicional.
Métodos de Validación:
- Jupyter Notebooks: Ejecutar las celdas secuencialmente para verificar que los ejemplos de código funcionen
- Pruebas de la Aplicación de Cuestionarios: Pruebas manuales a través del servidor de desarrollo
- Validación de Traducciones: Revisar el contenido traducido en la carpeta
translations/ - Linting de la Aplicación de Cuestionarios:
npm run lintenetc/quiz-app/
Ejecución de Ejemplos de Código:
# Activate environment first
conda activate ai4beg
# Run Python scripts directly
python lessons/4-ComputerVision/07-ConvNets/pytorchcv.py
# Or execute notebooks
jupyter notebook lessons/3-NeuralNetworks/03-Perceptron/Perceptron.ipynb
Estilo de Código
Estilo de Código Python
- Convenciones estándar de Python para código educativo
- Código claro y legible que prioriza el aprendizaje sobre la optimización
- Comentarios explicando conceptos clave
- Compatible con Jupyter Notebook: las celdas deben ser autónomas siempre que sea posible
- No se requieren reglas estrictas de linting para el contenido de las lecciones
JavaScript/Vue.js (Aplicación de Cuestionarios)
- Configuración de ESLint en
etc/quiz-app/package.json - Ejecutar
npm run lintpara verificar y corregir problemas automáticamente - Convenciones de Vue 2.x
- Arquitectura basada en componentes
Organización de Archivos
lessons/
├── 0-course-setup/ # Setup instructions
├── 1-Intro/ # Introduction to AI
├── 2-Symbolic/ # Symbolic AI
├── 3-NeuralNetworks/ # Neural Networks basics
├── 4-ComputerVision/ # Computer Vision
├── 5-NLP/ # Natural Language Processing
├── 6-Other/ # Other AI techniques
├── 7-Ethics/ # AI Ethics
└── X-Extras/ # Additional content
etc/
├── quiz-app/ # Vue.js quiz application
└── quiz-src/ # Quiz source files
translations/ # Multi-language translations
Construcción y Despliegue
Contenido de Jupyter
No se requiere proceso de construcción: los Jupyter Notebooks se ejecutan directamente.
Aplicación de Cuestionarios
cd etc/quiz-app
# Development
npm run serve
# Production build
npm run build # Outputs to etc/quiz-app/dist/
# Deploy to Azure Static Web Apps
# Azure automatically creates GitHub Actions workflow
# See etc/quiz-app/README.md for detailed deployment instructions
Sitio de Documentación
El repositorio utiliza Docsify para la documentación:
index.htmlsirve como punto de entrada- No se requiere construcción: se sirve directamente a través de GitHub Pages
- Acceso en: https://microsoft.github.io/AI-For-Beginners/
Directrices para Contribuir
Proceso de Pull Request
- Formato del Título: Títulos claros y descriptivos que describan el cambio
- Requisito de CLA: Se debe firmar el CLA de Microsoft (verificación automatizada)
- Directrices de Contenido:
- Mantener el enfoque educativo y accesible para principiantes
- Probar todos los ejemplos de código en los notebooks
- Asegurarse de que los notebooks se ejecuten de principio a fin
- Actualizar traducciones si se modifica contenido en inglés
- Cambios en la Aplicación de Cuestionarios: Ejecutar
npm run lintantes de hacer commit
Contribuciones de Traducción
- Las traducciones se automatizan mediante GitHub Actions usando co-op-translator
- Las traducciones manuales van en
translations/<language-code>/ - Traducciones de cuestionarios en
etc/quiz-app/src/assets/translations/ - Idiomas soportados: más de 40 idiomas (ver README para la lista completa)
Áreas Activas de Contribución
Ver etc/CONTRIBUTING.md para necesidades actuales:
- Secciones de Aprendizaje por Refuerzo Profundo
- Mejoras en Detección de Objetos
- Ejemplos de Reconocimiento de Entidades Nombradas
- Muestras de entrenamiento de embeddings personalizados
Configuración del Entorno
Dependencias Requeridas
# Core Python packages (from requirements.txt)
tensorflow==2.17.0
torch (via conda)
torchvision (via conda)
keras==3.5.0
opencv (via conda)
scikit-learn
numpy==1.26
pandas==2.2.2
matplotlib==3.9
jupyter
Variables de Entorno
No se requieren variables de entorno especiales para el uso básico.
Para despliegues en Azure (aplicación de cuestionarios):
AZURE_STATIC_WEB_APPS_API_TOKEN(configurado automáticamente por Azure)
Depuración y Resolución de Problemas
Problemas Comunes
Problema: Falla la creación del entorno conda
- Solución: Actualizar conda primero:
conda update conda -y - Asegurarse de tener suficiente espacio en disco (se recomiendan 50GB)
Problema: Kernel de Jupyter no encontrado
- Solución:
conda activate ai4beg python -m ipykernel install --user --name ai4beg
Problema: GPU no detectada en los notebooks
- Solución:
- Verificar instalación de CUDA:
nvidia-smi - Comprobar GPU en PyTorch:
python -c "import torch; print(torch.cuda.is_available())" - Comprobar GPU en TensorFlow:
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
- Verificar instalación de CUDA:
Problema: La aplicación de cuestionarios no inicia
- Solución:
cd etc/quiz-app rm -rf node_modules package-lock.json npm install npm run serve
Problema: Binder se agota o bloquea descargas
- Solución: Usar GitHub Codespaces o configuración local para mejor acceso a recursos
Problemas de Memoria
Algunas lecciones requieren una cantidad significativa de RAM (se recomiendan 8GB+):
- Usar VMs en la nube para lecciones que consumen muchos recursos
- Cerrar otras aplicaciones al entrenar modelos
- Reducir tamaños de lote en los notebooks si se agota la memoria
Notas Adicionales
Para Instructores del Curso
- Ver
lessons/0-course-setup/for-teachers.mdpara orientación sobre enseñanza - Las lecciones son autónomas y pueden enseñarse en secuencia o seleccionarse individualmente
- Tiempo estimado: 12 semanas con 2 lecciones por semana
Recursos en la Nube
- Azure for Students: Créditos gratuitos disponibles para estudiantes
- Microsoft Learn: Rutas de aprendizaje complementarias enlazadas a lo largo del curso
- Binder: Gratuito pero con recursos limitados y algunas restricciones de red
Opciones de Ejecución de Código
- Local (Recomendado): Control total, mejor rendimiento, soporte GPU
- GitHub Codespaces: VS Code basado en la nube, bueno para acceso rápido
- Binder: Jupyter basado en navegador, gratuito pero limitado
- Azure ML Notebooks: Opción empresarial con soporte GPU
- Google Colab: Subir notebooks individualmente, disponible nivel gratuito de GPU
Trabajando con Notebooks
- Los notebooks están diseñados para ejecutarse celda por celda para aprendizaje
- Muchos notebooks descargan conjuntos de datos en la primera ejecución (puede tomar tiempo)
- Algunos modelos requieren GPU para tiempos de entrenamiento razonables
- Se utilizan modelos preentrenados cuando es posible para reducir requisitos de cómputo
Consideraciones de Rendimiento
- Las lecciones posteriores de visión por computadora (CNNs, GANs) se benefician de GPU
- Las lecciones de transformers en NLP pueden requerir una cantidad significativa de RAM
- Entrenar desde cero es educativo pero consume tiempo
- Los ejemplos de aprendizaje por transferencia minimizan el tiempo de entrenamiento
Descargo de responsabilidad:
Este documento ha sido traducido utilizando el servicio de traducción automática Co-op Translator. Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.