11 KiB
AGENTS.md
Projectoverzicht
AI for Beginners is een uitgebreide 12-weekse, 24-lessen curriculum die de basisprincipes van Kunstmatige Intelligentie behandelt. Deze educatieve repository bevat praktische lessen met Jupyter Notebooks, quizzen en hands-on labs. Het curriculum omvat:
- Symbolische AI met kennisrepresentatie en expertsystemen
- Neurale netwerken en deep learning met TensorFlow en PyTorch
- Computer Vision-technieken en -architecturen
- Natural Language Processing (NLP), inclusief transformers en BERT
- Gespecialiseerde onderwerpen: genetische algoritmen, reinforcement learning, multi-agent systemen
- AI-ethiek en principes van verantwoorde AI
Belangrijke technologieën: Python 3, Jupyter Notebooks, TensorFlow, PyTorch, Keras, OpenCV, Vue.js (voor quiz-app)
Architectuur: Educatieve contentrepository met Jupyter Notebooks georganiseerd per onderwerp, aangevuld met een Vue.js-gebaseerde quizapplicatie en uitgebreide meertalige ondersteuning.
Setupcommando's
Primaire ontwikkelomgeving (Python/Jupyter)
Het curriculum is ontworpen om te werken met Python en Jupyter Notebooks. De aanbevolen aanpak is het gebruik van 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
Alternatief: Gebruik van devcontainer
# Open in VS Code and select "Reopen in Container" when prompted
# The devcontainer will automatically set up the environment
Setup van de quizapplicatie
De quizapp is een aparte Vue.js-applicatie die zich bevindt in 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
Ontwikkelworkflow
Werken met Jupyter Notebooks
-
Lokale ontwikkeling:
- Activeer conda-omgeving:
conda activate ai4beg - Start Jupyter:
jupyter notebookofjupyter lab - Navigeer naar lesmappen en open
.ipynb-bestanden - Voer cellen interactief uit om de lessen te volgen
- Activeer conda-omgeving:
-
VS Code met Python-extensie:
- Open de repository in VS Code
- Installeer de Python-extensie
- VS Code detecteert en gebruikt automatisch de conda-omgeving
- Open
.ipynb-bestanden direct in VS Code
-
Cloudontwikkeling:
- GitHub Codespaces: Klik op "Code" → "Codespaces" → "Create codespace on main"
- Binder: Gebruik de Binder-badge in README om in de browser te starten
- Opmerking: Binder heeft beperkte resources en enkele beperkingen voor webtoegang
GPU-ondersteuning voor geavanceerde lessen
Latere lessen profiteren aanzienlijk van GPU-versnelling:
- Azure Data Science VM: Gebruik NC-serie VM's met GPU-ondersteuning
- Azure Machine Learning: Gebruik notebookfuncties met GPU-compute
- Google Colab: Upload notebooks afzonderlijk (gratis GPU-ondersteuning beschikbaar)
Ontwikkeling van de quizapp
cd etc/quiz-app
npm run serve # Hot-reload development server at http://localhost:8080
Testinstructies
Dit is een educatieve repository gericht op leerinhoud in plaats van softwaretesten. Er is geen traditionele test-suite.
Validatiebenaderingen:
- Jupyter Notebooks: Voer cellen opeenvolgend uit om te verifiëren dat codevoorbeelden werken
- Quizapp testen: Handmatig testen via ontwikkelserver
- Validatie van vertalingen: Controleer vertaalde inhoud in de map
translations/ - Linting van quizapp:
npm run lintinetc/quiz-app/
Uitvoeren van codevoorbeelden:
# 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
Code stijl
Python-code stijl
- Standaard Python-conventies voor educatieve code
- Duidelijke, leesbare code die leren boven optimalisatie stelt
- Commentaar dat belangrijke concepten uitlegt
- Jupyter Notebook-vriendelijk: cellen moeten waar mogelijk zelfstandig zijn
- Geen strikte lintingvereisten voor lesinhoud
JavaScript/Vue.js (Quizapp)
- ESLint-configuratie in
etc/quiz-app/package.json - Voer
npm run lintuit om problemen te controleren en automatisch op te lossen - Vue 2.x-conventies
- Componentgebaseerde architectuur
Bestandsorganisatie
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 en deployment
Jupyter-inhoud
Geen buildproces vereist - Jupyter Notebooks worden direct uitgevoerd.
Quizapplicatie
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
Documentatiesite
De repository gebruikt Docsify voor documentatie:
index.htmldient als toegangspunt- Geen build vereist - direct geserveerd via GitHub Pages
- Toegang via: https://microsoft.github.io/AI-For-Beginners/
Richtlijnen voor bijdragen
Pull request-proces
- Titel formaat: Duidelijke, beschrijvende titels die de wijziging beschrijven
- CLA-vereiste: Microsoft CLA moet worden ondertekend (automatische controle)
- Inhoud richtlijnen:
- Behoud educatieve focus en beginnersvriendelijke aanpak
- Test alle codevoorbeelden in notebooks
- Zorg ervoor dat notebooks van begin tot eind werken
- Werk vertalingen bij als Engelse inhoud wordt gewijzigd
- Wijzigingen in quizapp: Voer
npm run lintuit voordat je commit
Bijdragen aan vertalingen
- Vertalingen worden geautomatiseerd via GitHub Actions met co-op-translator
- Handmatige vertalingen gaan in
translations/<language-code>/ - Quizvertalingen in
etc/quiz-app/src/assets/translations/ - Ondersteunde talen: 40+ talen (zie README voor volledige lijst)
Actieve bijdragegebieden
Zie etc/CONTRIBUTING.md voor huidige behoeften:
- Secties over deep reinforcement learning
- Verbeteringen in objectdetectie
- Voorbeelden van named entity recognition
- Voorbeelden van training van aangepaste embeddings
Omgevingsconfiguratie
Vereiste afhankelijkheden
# 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
Omgevingsvariabelen
Geen speciale omgevingsvariabelen vereist voor basisgebruik.
Voor Azure-deployments (quizapp):
AZURE_STATIC_WEB_APPS_API_TOKEN(automatisch ingesteld door Azure)
Debugging en probleemoplossing
Veelvoorkomende problemen
Probleem: Aanmaken van conda-omgeving mislukt
- Oplossing: Update eerst conda:
conda update conda -y - Zorg voor voldoende schijfruimte (50GB aanbevolen)
Probleem: Jupyter-kernel niet gevonden
- Oplossing:
conda activate ai4beg python -m ipykernel install --user --name ai4beg
Probleem: GPU niet gedetecteerd in notebooks
- Oplossing:
- Controleer CUDA-installatie:
nvidia-smi - Controleer PyTorch GPU:
python -c "import torch; print(torch.cuda.is_available())" - Controleer TensorFlow GPU:
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
- Controleer CUDA-installatie:
Probleem: Quizapp start niet
- Oplossing:
cd etc/quiz-app rm -rf node_modules package-lock.json npm install npm run serve
Probleem: Binder loopt vast of blokkeert downloads
- Oplossing: Gebruik GitHub Codespaces of lokale setup voor betere toegang tot resources
Geheugenproblemen
Sommige lessen vereisen veel RAM (8GB+ aanbevolen):
- Gebruik cloud-VM's voor resource-intensieve lessen
- Sluit andere applicaties tijdens het trainen van modellen
- Verminder batchgroottes in notebooks als het geheugen opraakt
Aanvullende opmerkingen
Voor cursusinstructeurs
- Zie
lessons/0-course-setup/for-teachers.mdvoor lesinstructies - Lessen zijn zelfstandig en kunnen in volgorde of afzonderlijk worden gegeven
- Geschatte tijd: 12 weken met 2 lessen per week
Cloudresources
- Azure for Students: Gratis tegoeden beschikbaar voor studenten
- Microsoft Learn: Aanvullende leerpaden gekoppeld door de hele cursus
- Binder: Gratis maar beperkte resources en enkele netwerkbeperkingen
Opties voor code-uitvoering
- Lokaal (Aanbevolen): Volledige controle, beste prestaties, GPU-ondersteuning
- GitHub Codespaces: Cloudgebaseerde VS Code, goed voor snelle toegang
- Binder: Browsergebaseerde Jupyter, gratis maar beperkt
- Azure ML Notebooks: Enterprise-optie met GPU-ondersteuning
- Google Colab: Upload notebooks afzonderlijk, gratis GPU-laag beschikbaar
Werken met notebooks
- Notebooks zijn ontworpen om cel-voor-cel te worden uitgevoerd voor leerdoeleinden
- Veel notebooks downloaden datasets bij de eerste uitvoering (kan tijd kosten)
- Sommige modellen vereisen GPU voor redelijke trainingstijden
- Voorgetrainde modellen worden waar mogelijk gebruikt om rekenvereisten te verminderen
Prestatieoverwegingen
- Latere lessen over computer vision (CNN's, GAN's) profiteren van GPU
- NLP-transformerlessen kunnen veel RAM vereisen
- Training vanaf nul is educatief maar tijdrovend
- Voorbeelden van transfer learning minimaliseren trainingstijd
Disclaimer:
Dit document is vertaald met behulp van de AI-vertalingsservice Co-op Translator. Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.