11 KiB
AGENTS.md
Visão Geral do Projeto
AI for Beginners é um currículo abrangente de 12 semanas e 24 aulas que cobre os fundamentos da Inteligência Artificial. Este repositório educacional inclui lições práticas usando Jupyter Notebooks, quizzes e laboratórios práticos. O currículo aborda:
- IA Simbólica com Representação de Conhecimento e Sistemas Especialistas
- Redes Neurais e Aprendizado Profundo com TensorFlow e PyTorch
- Técnicas e arquiteturas de Visão Computacional
- Processamento de Linguagem Natural (NLP), incluindo transformers e BERT
- Tópicos especializados: Algoritmos Genéticos, Aprendizado por Reforço, Sistemas Multiagentes
- Ética em IA e princípios de IA Responsável
Principais Tecnologias: Python 3, Jupyter Notebooks, TensorFlow, PyTorch, Keras, OpenCV, Vue.js (para o aplicativo de quiz)
Arquitetura: Repositório de conteúdo educacional com Jupyter Notebooks organizados por áreas temáticas, complementado por um aplicativo de quiz baseado em Vue.js e suporte extensivo a múltiplos idiomas.
Comandos de Configuração
Ambiente de Desenvolvimento Principal (Python/Jupyter)
O currículo foi projetado para ser executado com Python e Jupyter Notebooks. A abordagem recomendada é 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: Usando devcontainer
# Open in VS Code and select "Reopen in Container" when prompted
# The devcontainer will automatically set up the environment
Configuração do Aplicativo de Quiz
O aplicativo de quiz é um aplicativo Vue.js separado localizado em 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
Fluxo de Trabalho de Desenvolvimento
Trabalhando com Jupyter Notebooks
-
Desenvolvimento Local:
- Ative o ambiente conda:
conda activate ai4beg - Inicie o Jupyter:
jupyter notebookoujupyter lab - Navegue até as pastas de lições e abra os arquivos
.ipynb - Execute as células interativamente para acompanhar as lições
- Ative o ambiente conda:
-
VS Code com Extensão Python:
- Abra o repositório no VS Code
- Instale a extensão Python
- O VS Code detecta e usa automaticamente o ambiente conda
- Abra os arquivos
.ipynbdiretamente no VS Code
-
Desenvolvimento na Nuvem:
- GitHub Codespaces: Clique em "Code" → "Codespaces" → "Create codespace on main"
- Binder: Use o badge do Binder no README para iniciar no navegador
- Nota: O Binder tem recursos limitados e algumas restrições de acesso à web
Suporte a GPU para Lições Avançadas
As lições posteriores se beneficiam significativamente da aceleração por GPU:
- Azure Data Science VM: Use VMs da série NC com suporte a GPU
- Azure Machine Learning: Use os recursos de notebook com computação GPU
- Google Colab: Faça upload dos notebooks individualmente (tem suporte gratuito a GPU)
Desenvolvimento do Aplicativo de Quiz
cd etc/quiz-app
npm run serve # Hot-reload development server at http://localhost:8080
Instruções de Teste
Este é um repositório educacional focado em conteúdo de aprendizado, em vez de testes de software. Não há suíte de testes tradicional.
Abordagens de Validação:
- Jupyter Notebooks: Execute as células sequencialmente para verificar se os exemplos de código funcionam
- Teste do Aplicativo de Quiz: Teste manual via servidor de desenvolvimento
- Validação de Tradução: Verifique o conteúdo traduzido na pasta
translations/ - Linting do Aplicativo de Quiz:
npm run lintemetc/quiz-app/
Executando Exemplos 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
- Convenções padrão de Python para código educacional
- Código claro e legível, priorizando o aprendizado em vez da otimização
- Comentários explicando conceitos-chave
- Compatível com Jupyter Notebook: as células devem ser autossuficientes sempre que possível
- Sem requisitos rigorosos de linting para conteúdo de lições
JavaScript/Vue.js (Aplicativo de Quiz)
- Configuração do ESLint em
etc/quiz-app/package.json - Execute
npm run lintpara verificar e corrigir problemas automaticamente - Convenções do Vue 2.x
- Arquitetura baseada em componentes
Organização de Arquivos
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
Build e Implantação
Conteúdo Jupyter
Nenhum processo de build é necessário - os Jupyter Notebooks são executados diretamente.
Aplicativo de Quiz
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
Site de Documentação
O repositório usa Docsify para documentação:
index.htmlserve como ponto de entrada- Nenhum build é necessário - servido diretamente via GitHub Pages
- Acesse em: https://microsoft.github.io/AI-For-Beginners/
Diretrizes de Contribuição
Processo de Pull Request
- Formato do Título: Títulos claros e descritivos que descrevam a alteração
- Requisito de CLA: O CLA da Microsoft deve ser assinado (verificação automatizada)
- Diretrizes de Conteúdo:
- Mantenha o foco educacional e a abordagem amigável para iniciantes
- Teste todos os exemplos de código nos notebooks
- Certifique-se de que os notebooks sejam executados de ponta a ponta
- Atualize as traduções se modificar o conteúdo em inglês
- Alterações no Aplicativo de Quiz: Execute
npm run lintantes de fazer o commit
Contribuições de Tradução
- As traduções são automatizadas via GitHub Actions usando co-op-translator
- Traduções manuais vão em
translations/<language-code>/ - Traduções do quiz em
etc/quiz-app/src/assets/translations/ - Idiomas suportados: mais de 40 idiomas (veja o README para a lista completa)
Áreas Ativas de Contribuição
Veja etc/CONTRIBUTING.md para necessidades atuais:
- Seções de Aprendizado por Reforço Profundo
- Melhorias em Detecção de Objetos
- Exemplos de Reconhecimento de Entidades Nomeadas
- Amostras de treinamento de embeddings personalizados
Configuração do Ambiente
Dependências Necessárias
# 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
Variáveis de Ambiente
Nenhuma variável de ambiente especial é necessária para uso básico.
Para implantações no Azure (aplicativo de quiz):
AZURE_STATIC_WEB_APPS_API_TOKEN(configurado automaticamente pelo Azure)
Depuração e Solução de Problemas
Problemas Comuns
Problema: Falha na criação do ambiente conda
- Solução: Atualize o conda primeiro:
conda update conda -y - Certifique-se de ter espaço em disco suficiente (recomendado 50GB)
Problema: Kernel do Jupyter não encontrado
- Solução:
conda activate ai4beg python -m ipykernel install --user --name ai4beg
Problema: GPU não detectada nos notebooks
- Solução:
- Verifique a instalação do CUDA:
nvidia-smi - Verifique a GPU no PyTorch:
python -c "import torch; print(torch.cuda.is_available())" - Verifique a GPU no TensorFlow:
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
- Verifique a instalação do CUDA:
Problema: Aplicativo de quiz não inicia
- Solução:
cd etc/quiz-app rm -rf node_modules package-lock.json npm install npm run serve
Problema: Binder expira ou bloqueia downloads
- Solução: Use GitHub Codespaces ou configuração local para melhor acesso a recursos
Problemas de Memória
Algumas lições exigem uma quantidade significativa de RAM (recomendado 8GB+):
- Use VMs na nuvem para lições que exigem muitos recursos
- Feche outros aplicativos ao treinar modelos
- Reduza os tamanhos de lote nos notebooks se estiver com falta de memória
Notas Adicionais
Para Instrutores do Curso
- Veja
lessons/0-course-setup/for-teachers.mdpara orientações de ensino - As lições são autossuficientes e podem ser ensinadas em sequência ou selecionadas individualmente
- Tempo estimado: 12 semanas com 2 lições por semana
Recursos na Nuvem
- Azure for Students: Créditos gratuitos disponíveis para estudantes
- Microsoft Learn: Caminhos de aprendizado suplementares vinculados ao longo do curso
- Binder: Gratuito, mas com recursos limitados e algumas restrições de rede
Opções de Execução de Código
- Local (Recomendado): Controle total, melhor desempenho, suporte a GPU
- GitHub Codespaces: VS Code baseado na nuvem, bom para acesso rápido
- Binder: Jupyter baseado no navegador, gratuito, mas limitado
- Azure ML Notebooks: Opção empresarial com suporte a GPU
- Google Colab: Faça upload dos notebooks individualmente, disponível nível gratuito de GPU
Trabalhando com Notebooks
- Os notebooks são projetados para serem executados célula por célula para aprendizado
- Muitos notebooks baixam conjuntos de dados na primeira execução (pode levar tempo)
- Alguns modelos exigem GPU para tempos de treinamento razoáveis
- Modelos pré-treinados são usados sempre que possível para reduzir os requisitos de computação
Considerações de Desempenho
- Lições posteriores de visão computacional (CNNs, GANs) se beneficiam de GPU
- Lições de transformers em NLP podem exigir muita RAM
- Treinar do zero é educativo, mas demorado
- Exemplos de aprendizado por transferência minimizam o tempo de treinamento
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte oficial. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.