11 KiB
AGENTS.md
Prezentare generală a proiectului
AI for Beginners este un curriculum cuprinzător de 12 săptămâni și 24 de lecții, care acoperă fundamentele Inteligenței Artificiale. Acest depozit educațional include lecții practice folosind Jupyter Notebooks, teste și laboratoare interactive. Curriculumul acoperă:
- AI simbolic cu reprezentarea cunoștințelor și sisteme expert
- Rețele neuronale și învățare profundă cu TensorFlow și PyTorch
- Tehnici și arhitecturi de viziune computerizată
- Procesarea limbajului natural (NLP), inclusiv transformatori și BERT
- Subiecte specializate: Algoritmi genetici, Învățare prin întărire, Sisteme multi-agent
- Etica AI și principii de AI responsabil
Tehnologii cheie: Python 3, Jupyter Notebooks, TensorFlow, PyTorch, Keras, OpenCV, Vue.js (pentru aplicația de teste)
Arhitectură: Depozit de conținut educațional cu Jupyter Notebooks organizate pe domenii tematice, completat de o aplicație de teste bazată pe Vue.js și suport extins pentru mai multe limbi.
Comenzi de configurare
Mediu principal de dezvoltare (Python/Jupyter)
Curriculumul este conceput să ruleze cu Python și Jupyter Notebooks. Abordarea recomandată este utilizarea 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
Alternativă: Utilizarea devcontainer
# Open in VS Code and select "Reopen in Container" when prompted
# The devcontainer will automatically set up the environment
Configurarea aplicației de teste
Aplicația de teste este o aplicație separată Vue.js situată în 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
Flux de lucru pentru dezvoltare
Lucrul cu Jupyter Notebooks
-
Dezvoltare locală:
- Activează mediul conda:
conda activate ai4beg - Pornește Jupyter:
jupyter notebooksaujupyter lab - Navighează la folderele lecțiilor și deschide fișierele
.ipynb - Rulează celulele interactiv pentru a urma lecțiile
- Activează mediul conda:
-
VS Code cu extensia Python:
- Deschide depozitul în VS Code
- Instalează extensia Python
- VS Code detectează automat și utilizează mediul conda
- Deschide fișierele
.ipynbdirect în VS Code
-
Dezvoltare în cloud:
- GitHub Codespaces: Click pe "Code" → "Codespaces" → "Create codespace on main"
- Binder: Folosește insigna Binder din README pentru a lansa în browser
- Notă: Binder are resurse limitate și unele restricții de acces web
Suport GPU pentru lecții avansate
Lecțiile ulterioare beneficiază semnificativ de accelerarea GPU:
- Azure Data Science VM: Utilizează VM-uri din seria NC cu suport GPU
- Azure Machine Learning: Utilizează funcțiile notebook cu calcul GPU
- Google Colab: Încarcă notebook-urile individual (are suport GPU gratuit)
Dezvoltarea aplicației de teste
cd etc/quiz-app
npm run serve # Hot-reload development server at http://localhost:8080
Instrucțiuni de testare
Acesta este un depozit educațional axat pe conținut de învățare, nu pe testarea software. Nu există un set tradițional de teste.
Metode de validare:
- Jupyter Notebooks: Rulează celulele secvențial pentru a verifica dacă exemplele de cod funcționează
- Testarea aplicației de teste: Testare manuală prin serverul de dezvoltare
- Validarea traducerilor: Verifică conținutul tradus în folderul
translations/ - Linting pentru aplicația de teste:
npm run lintînetc/quiz-app/
Executarea exemplelor de cod:
# 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
Stilul codului
Stilul codului Python
- Convenții standard Python pentru cod educațional
- Cod clar și ușor de citit, prioritizând învățarea în detrimentul optimizării
- Comentarii care explică conceptele cheie
- Prietenos cu Jupyter Notebook: celulele ar trebui să fie cât mai autonome
- Fără cerințe stricte de linting pentru conținutul lecțiilor
JavaScript/Vue.js (Aplicația de teste)
- Configurație ESLint în
etc/quiz-app/package.json - Rulează
npm run lintpentru a verifica și a corecta automat problemele - Convenții Vue 2.x
- Arhitectură bazată pe componente
Organizarea fișierelor
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
Construire și implementare
Conținut Jupyter
Nu este necesar un proces de construire - Jupyter Notebooks sunt executate direct.
Aplicația de teste
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-ul de documentație
Depozitul folosește Docsify pentru documentație:
index.htmlservește ca punct de intrare- Nu este necesară construirea - servit direct prin GitHub Pages
- Acces la: https://microsoft.github.io/AI-For-Beginners/
Ghid pentru contribuții
Procesul de Pull Request
- Formatul titlului: Titluri clare și descriptive care descriu schimbarea
- Cerința CLA: CLA Microsoft trebuie semnat (verificare automată)
- Ghiduri de conținut:
- Menține accentul educațional și abordarea prietenoasă pentru începători
- Testează toate exemplele de cod din notebook-uri
- Asigură-te că notebook-urile rulează cap-coadă
- Actualizează traducerile dacă modifici conținutul în limba engleză
- Modificări ale aplicației de teste: Rulează
npm run lintînainte de a face commit
Contribuții la traduceri
- Traducerile sunt automatizate prin GitHub Actions folosind co-op-translator
- Traducerile manuale se află în
translations/<language-code>/ - Traducerile pentru teste în
etc/quiz-app/src/assets/translations/ - Limbi suportate: peste 40 de limbi (vezi README pentru lista completă)
Domenii active de contribuție
Vezi etc/CONTRIBUTING.md pentru nevoile actuale:
- Secțiuni de învățare profundă prin întărire
- Îmbunătățiri ale detectării obiectelor
- Exemple de recunoaștere a entităților numite
- Mostre de antrenament pentru încorporări personalizate
Configurarea mediului
Dependențe necesare
# 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
Variabile de mediu
Nu sunt necesare variabile de mediu speciale pentru utilizarea de bază.
Pentru implementările Azure (aplicația de teste):
AZURE_STATIC_WEB_APPS_API_TOKEN(setat automat de Azure)
Depanare și rezolvarea problemelor
Probleme comune
Problemă: Crearea mediului conda eșuează
- Soluție: Actualizează conda mai întâi:
conda update conda -y - Asigură-te că ai suficient spațiu pe disc (recomandat 50GB)
Problemă: Kernel-ul Jupyter nu este găsit
- Soluție:
conda activate ai4beg python -m ipykernel install --user --name ai4beg
Problemă: GPU-ul nu este detectat în notebook-uri
- Soluție:
- Verifică instalarea CUDA:
nvidia-smi - Verifică GPU-ul PyTorch:
python -c "import torch; print(torch.cuda.is_available())" - Verifică GPU-ul TensorFlow:
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
- Verifică instalarea CUDA:
Problemă: Aplicația de teste nu pornește
- Soluție:
cd etc/quiz-app rm -rf node_modules package-lock.json npm install npm run serve
Problemă: Binder expiră sau blochează descărcările
- Soluție: Utilizează GitHub Codespaces sau configurarea locală pentru acces mai bun la resurse
Probleme de memorie
Unele lecții necesită RAM semnificativ (recomandat 8GB+):
- Utilizează VM-uri cloud pentru lecțiile care necesită multe resurse
- Închide alte aplicații când antrenezi modele
- Redu dimensiunile batch-urilor în notebook-uri dacă rămâi fără memorie
Note suplimentare
Pentru instructorii cursului
- Vezi
lessons/0-course-setup/for-teachers.mdpentru ghid de predare - Lecțiile sunt autonome și pot fi predate în ordine sau selectate individual
- Timp estimat: 12 săptămâni cu 2 lecții pe săptămână
Resurse cloud
- Azure for Students: Credite gratuite disponibile pentru studenți
- Microsoft Learn: Cursuri suplimentare legate pe parcurs
- Binder: Gratuit, dar cu resurse limitate și unele restricții de rețea
Opțiuni de execuție a codului
- Local (Recomandat): Control complet, performanță optimă, suport GPU
- GitHub Codespaces: VS Code bazat pe cloud, bun pentru acces rapid
- Binder: Jupyter bazat pe browser, gratuit dar limitat
- Azure ML Notebooks: Opțiune enterprise cu suport GPU
- Google Colab: Încarcă notebook-urile individual, disponibil nivel GPU gratuit
Lucrul cu notebook-uri
- Notebook-urile sunt concepute să fie rulate celulă cu celulă pentru învățare
- Multe notebook-uri descarcă seturi de date la prima rulare (poate dura)
- Unele modele necesită GPU pentru timpi rezonabili de antrenament
- Modelele pre-antrenate sunt utilizate acolo unde este posibil pentru a reduce cerințele de calcul
Considerații de performanță
- Lecțiile ulterioare de viziune computerizată (CNN-uri, GAN-uri) beneficiază de GPU
- Lecțiile NLP cu transformatori pot necesita RAM semnificativ
- Antrenamentul de la zero este educativ, dar consumă mult timp
- Exemplele de învățare transferabilă minimizează timpul de antrenament
Declinare de responsabilitate:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de oameni. Nu ne asumăm responsabilitatea pentru neînțelegerile sau interpretările greșite care pot apărea din utilizarea acestei traduceri.