11 KiB
AGENTS.md
Projekto apžvalga
AI for Beginners yra išsamus 12 savaičių, 24 pamokų mokymo planas, apimantis dirbtinio intelekto pagrindus. Ši mokomoji saugykla apima praktines pamokas su Jupyter Notebooks, testus ir praktinius laboratorinius darbus. Mokymo planas apima:
- Simbolinį AI su žinių reprezentacija ir ekspertų sistemomis
- Neuroninius tinklus ir gilų mokymąsi naudojant TensorFlow ir PyTorch
- Kompiuterinės regos technikas ir architektūras
- Natūralios kalbos apdorojimą (NLP), įskaitant transformatorius ir BERT
- Specializuotas temas: genetinius algoritmus, stiprinamąjį mokymąsi, daugiaveiksnius sistemas
- AI etikos ir atsakingo AI principus
Pagrindinės technologijos: Python 3, Jupyter Notebooks, TensorFlow, PyTorch, Keras, OpenCV, Vue.js (testų aplikacijai)
Architektūra: Mokomoji turinio saugykla su Jupyter Notebooks, suskirstyta pagal temines sritis, papildyta Vue.js pagrindu veikiančia testų aplikacija ir plačia daugiakalbe palaikymo sistema.
Nustatymo komandos
Pagrindinė kūrimo aplinka (Python/Jupyter)
Mokymo planas sukurtas veikti su Python ir Jupyter Notebooks. Rekomenduojama naudoti 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
Alternatyva: naudojant devcontainer
# Open in VS Code and select "Reopen in Container" when prompted
# The devcontainer will automatically set up the environment
Testų aplikacijos nustatymas
Testų aplikacija yra atskira Vue.js aplikacija, esanti 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
Kūrimo darbo eiga
Darbas su Jupyter Notebooks
-
Vietinis kūrimas:
- Aktyvuokite conda aplinką:
conda activate ai4beg - Paleiskite Jupyter:
jupyter notebookarbajupyter lab - Naršykite pamokų aplankus ir atidarykite
.ipynbfailus - Interaktyviai vykdykite langelius, kad sektumėte pamokas
- Aktyvuokite conda aplinką:
-
VS Code su Python plėtiniu:
- Atidarykite saugyklą VS Code
- Įdiekite Python plėtinį
- VS Code automatiškai aptinka ir naudoja conda aplinką
- Atidarykite
.ipynbfailus tiesiogiai VS Code
-
Debesų kūrimas:
- GitHub Codespaces: Spustelėkite "Code" → "Codespaces" → "Create codespace on main"
- Binder: Naudokite Binder ženkliuką README, kad paleistumėte naršyklėje
- Pastaba: Binder turi ribotus resursus ir tam tikrus interneto prieigos apribojimus
GPU palaikymas pažengusioms pamokoms
Vėlesnės pamokos labai naudingos naudojant GPU:
- Azure Data Science VM: Naudokite NC serijos VM su GPU palaikymu
- Azure Machine Learning: Naudokite užrašų knygelių funkcijas su GPU skaičiavimais
- Google Colab: Įkelkite užrašų knygeles atskirai (yra nemokamas GPU palaikymas)
Testų aplikacijos kūrimas
cd etc/quiz-app
npm run serve # Hot-reload development server at http://localhost:8080
Testavimo instrukcijos
Tai yra mokomoji saugykla, orientuota į mokymosi turinį, o ne programinės įrangos testavimą. Nėra tradicinio testų rinkinio.
Validacijos metodai:
- Jupyter Notebooks: Vykdykite langelius iš eilės, kad patikrintumėte, ar kodų pavyzdžiai veikia
- Testų aplikacijos testavimas: Rankinis testavimas per kūrimo serverį
- Vertimo validacija: Patikrinkite išverstą turinį aplanke
translations/ - Testų aplikacijos lintingas:
npm run lintaplankeetc/quiz-app/
Kodų pavyzdžių vykdymas:
# 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
Kodų stilius
Python kodų stilius
- Standartinės Python konvencijos mokomajam kodui
- Aiškus, lengvai suprantamas kodas, prioritetas mokymuisi, o ne optimizavimui
- Komentarai, paaiškinantys pagrindines sąvokas
- Draugiškas Jupyter Notebook: langeliai turėtų būti kuo labiau savarankiški
- Pamokų turiniui nėra griežtų linting reikalavimų
JavaScript/Vue.js (Testų aplikacija)
- ESLint konfigūracija
etc/quiz-app/package.json - Paleiskite
npm run lint, kad patikrintumėte ir automatiškai ištaisytumėte problemas - Vue 2.x konvencijos
- Komponentų pagrindu sukurta architektūra
Failų organizavimas
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
Kūrimas ir diegimas
Jupyter turinys
Nereikia kūrimo proceso - Jupyter Notebooks vykdomi tiesiogiai.
Testų aplikacija
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
Dokumentacijos svetainė
Saugykla naudoja Docsify dokumentacijai:
index.htmlyra įėjimo taškas- Nereikia kūrimo - tiesiogiai aptarnaujama per GitHub Pages
- Prieiga: https://microsoft.github.io/AI-For-Beginners/
Prisidėjimo gairės
Pull Request procesas
- Pavadinimo formatas: Aiškūs, aprašomieji pavadinimai, apibūdinantys pakeitimą
- CLA reikalavimas: Microsoft CLA turi būti pasirašytas (automatinis patikrinimas)
- Turinio gairės:
- Išlaikykite mokomąjį fokusą ir draugišką pradedantiesiems požiūrį
- Testuokite visus kodų pavyzdžius užrašų knygelėse
- Užtikrinkite, kad užrašų knygelės veiktų nuo pradžios iki pabaigos
- Atnaujinkite vertimus, jei keičiate anglišką turinį
- Testų aplikacijos pakeitimai: Paleiskite
npm run lintprieš įsipareigojant
Vertimo indėlis
- Vertimai yra automatizuoti per GitHub Actions naudojant co-op-translator
- Rankiniai vertimai dedami į
translations/<language-code>/ - Testų vertimai į
etc/quiz-app/src/assets/translations/ - Palaikomos kalbos: 40+ kalbų (žr. README visą sąrašą)
Aktyvios prisidėjimo sritys
Žr. etc/CONTRIBUTING.md dėl dabartinių poreikių:
- Gilaus stiprinamojo mokymosi skyriai
- Objektų aptikimo patobulinimai
- Pavyzdžiai su pavadintų objektų atpažinimu
- Pavyzdžiai su individualizuotu įterpimų mokymu
Aplinkos konfigūracija
Reikalingos priklausomybės
# 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
Aplinkos kintamieji
Nereikia specialių aplinkos kintamųjų pagrindiniam naudojimui.
Azure diegimams (testų aplikacija):
AZURE_STATIC_WEB_APPS_API_TOKEN(automatiškai nustatomas Azure)
Derinimas ir trikčių šalinimas
Dažnos problemos
Problema: Conda aplinkos kūrimas nepavyksta
- Sprendimas: Pirmiausia atnaujinkite conda:
conda update conda -y - Užtikrinkite pakankamą disko vietą (rekomenduojama 50GB)
Problema: Jupyter branduolys nerastas
- Sprendimas:
conda activate ai4beg python -m ipykernel install --user --name ai4beg
Problema: GPU neužfiksuotas užrašų knygelėse
- Sprendimas:
- Patikrinkite CUDA diegimą:
nvidia-smi - Patikrinkite PyTorch GPU:
python -c "import torch; print(torch.cuda.is_available())" - Patikrinkite TensorFlow GPU:
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
- Patikrinkite CUDA diegimą:
Problema: Testų aplikacija nepasileidžia
- Sprendimas:
cd etc/quiz-app rm -rf node_modules package-lock.json npm install npm run serve
Problema: Binder laikas baigiasi arba blokuoja atsisiuntimus
- Sprendimas: Naudokite GitHub Codespaces arba vietinį nustatymą geresniam resursų prieinamumui
Atminties problemos
Kai kurios pamokos reikalauja daug RAM (rekomenduojama 8GB+):
- Naudokite debesų VM resursams reikalaujančioms pamokoms
- Uždarykite kitas programas, kai mokote modelius
- Sumažinkite partijų dydžius užrašų knygelėse, jei trūksta atminties
Papildomos pastabos
Kursų instruktoriams
- Žr.
lessons/0-course-setup/for-teachers.mddėl mokymo gairių - Pamokos yra savarankiškos ir gali būti mokomos iš eilės arba pasirinktos atskirai
- Numatomas laikas: 12 savaičių po 2 pamokas per savaitę
Debesų resursai
- Azure for Students: Nemokami kreditai studentams
- Microsoft Learn: Papildomi mokymosi keliai, susieti visame kurse
- Binder: Nemokamas, bet riboti resursai ir tam tikri tinklo apribojimai
Kodų vykdymo parinktys
- Vietinis (rekomenduojama): Pilna kontrolė, geriausias našumas, GPU palaikymas
- GitHub Codespaces: Debesų pagrindu veikiantis VS Code, geras greitam pasiekiamumui
- Binder: Naršyklės pagrindu veikiantis Jupyter, nemokamas, bet ribotas
- Azure ML Notebooks: Įmonės pasirinkimas su GPU palaikymu
- Google Colab: Įkelkite užrašų knygeles atskirai, yra nemokamas GPU lygis
Darbas su užrašų knygelėmis
- Užrašų knygelės sukurtos taip, kad būtų vykdomos langelis po langelio mokymuisi
- Daugelis užrašų knygelių pirmą kartą paleidžiant atsisiunčia duomenų rinkinius (gali užtrukti)
- Kai kurie modeliai reikalauja GPU, kad mokymas būtų greitas
- Naudojami iš anksto apmokyti modeliai, kad sumažėtų skaičiavimo reikalavimai
Našumo svarstymai
- Vėlesnės kompiuterinės regos pamokos (CNN, GAN) naudingos naudojant GPU
- NLP transformatorių pamokos gali reikalauti daug RAM
- Mokymas nuo nulio yra mokomasis, bet užima daug laiko
- Perkėlimo mokymosi pavyzdžiai sumažina mokymo laiką
Atsakomybės atsisakymas:
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Dėl svarbios informacijos rekomenduojama profesionali žmogaus vertimo paslauga. Mes neprisiimame atsakomybės už nesusipratimus ar neteisingus aiškinimus, atsiradusius naudojant šį vertimą.