16 KiB
AGENTS.md
Преглед пројекта
AI for Beginners је свеобухватан 12-недељни, 24-лекцијски курикулум који покрива основе вештачке интелигенције. Овај образовни репозиторијум укључује практичне лекције користећи Jupyter Notebooks, квизове и лабораторијске вежбе. Курикулум обухвата:
- Симболичку вештачку интелигенцију са представљањем знања и експертским системима
- Неуронске мреже и дубоко учење са TensorFlow и PyTorch
- Технике и архитектуре рачунарског вида
- Обраду природног језика (NLP), укључујући трансформере и BERT
- Специјализоване теме: генетски алгоритми, учење путем појачања, системи са више агената
- Етика вештачке интелигенције и принципи одговорне AI
Кључне технологије: Python 3, Jupyter Notebooks, TensorFlow, PyTorch, Keras, OpenCV, Vue.js (за апликацију квизова)
Архитектура: Репозиторијум образовног садржаја са Jupyter Notebooks организованим по тематским областима, допуњен апликацијом за квизове заснованом на Vue.js и обимном подршком за више језика.
Команде за подешавање
Примарно развојно окружење (Python/Jupyter)
Курикулум је дизајниран да ради са Python-ом и Jupyter Notebooks. Препоручени приступ је коришћење 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
Алтернатива: Коришћење devcontainer-а
# Open in VS Code and select "Reopen in Container" when prompted
# The devcontainer will automatically set up the environment
Подешавање апликације за квизове
Апликација за квизове је засебна Vue.js апликација која се налази у 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
Радни ток развоја
Рад са Jupyter Notebooks
-
Локални развој:
- Активирајте conda окружење:
conda activate ai4beg - Покрените Jupyter:
jupyter notebookилиjupyter lab - Навигирајте до фасцикли са лекцијама и отворите
.ipynbдатотеке - Интерактивно покрените ћелије да бисте пратили лекције
- Активирајте conda окружење:
-
VS Code са Python екстензијом:
- Отворите репозиторијум у VS Code
- Инсталирајте Python екстензију
- VS Code аутоматски детектује и користи conda окружење
- Отворите
.ipynbдатотеке директно у VS Code
-
Развој у облаку:
- GitHub Codespaces: Кликните на "Code" → "Codespaces" → "Create codespace on main"
- Binder: Користите Binder значку на README-у за покретање у прегледачу
- Напомена: Binder има ограничене ресурсе и неке рестрикције у приступу вебу
Подршка за GPU за напредне лекције
Касније лекције значајно користе GPU акцелерацију:
- Azure Data Science VM: Користите NC-серије VM-ова са GPU подршком
- Azure Machine Learning: Користите функције нотебука са GPU рачунарством
- Google Colab: Отпремите нотебуке појединачно (има бесплатну GPU подршку)
Развој апликације за квизове
cd etc/quiz-app
npm run serve # Hot-reload development server at http://localhost:8080
Упутства за тестирање
Ово је образовни репозиторијум фокусиран на садржај за учење, а не на тестирање софтвера. Не постоји традиционални тестни пакет.
Приступи за валидацију:
- Jupyter Notebooks: Покрените ћелије секвенцијално да бисте проверили да ли примери кода раде
- Тестирање апликације за квизове: Ручно тестирање преко развојног сервера
- Валидација превода: Проверите преведени садржај у фасцикли
translations/ - Linting апликације за квизове:
npm run lintуetc/quiz-app/
Покретање примера кода:
# 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
Стил кода
Стил Python кода
- Стандардне Python конвенције за образовни код
- Јасан, читљив код који приоритет даје учењу уместо оптимизацији
- Коментари који објашњавају кључне концепте
- Прилагођено за Jupyter Notebook: ћелије треба да буду самосталне где је могуће
- Нема строгих захтева за linting за садржај лекција
JavaScript/Vue.js (Апликација за квизове)
- ESLint конфигурација у
etc/quiz-app/package.json - Покрените
npm run lintза проверу и аутоматско исправљање проблема - Vue 2.x конвенције
- Архитектура заснована на компонентама
Организација датотека
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
Изградња и распоређивање
Jupyter садржај
Није потребан процес изградње - Jupyter Notebooks се директно извршавају.
Апликација за квизове
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
Сајт документације
Репозиторијум користи Docsify за документацију:
index.htmlслужи као улазна тачка- Није потребна изградња - директно се сервира преко GitHub Pages
- Приступ на: https://microsoft.github.io/AI-For-Beginners/
Упутства за допринос
Процес Pull Request-а
- Формат наслова: Јасни, описни наслови који описују промену
- Захтев за CLA: Microsoft CLA мора бити потписан (аутоматска провера)
- Смернице за садржај:
- Одржавајте образовни фокус и приступ прилагођен почетницима
- Тестирајте све примере кода у нотебуцима
- Осигурајте да нотебуци раде од почетка до краја
- Ажурирајте преводе ако мењате садржај на енглеском
- Промене у апликацији за квизове: Покрените
npm run lintпре комитовања
Доприноси у преводу
- Преводи се аутоматски обављају преко GitHub Actions користећи co-op-translator
- Ручни преводи иду у
translations/<language-code>/ - Преводи квизова у
etc/quiz-app/src/assets/translations/ - Подржани језици: 40+ језика (погледајте README за комплетну листу)
Активне области доприноса
Погледајте etc/CONTRIBUTING.md за тренутне потребе:
- Секције дубоког учења путем појачања
- Побољшања у детекцији објеката
- Примери препознавања именованих ентитета
- Узорци за обуку прилагођених уградњи
Конфигурација окружења
Потребне зависности
# 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
Променљиве окружења
Нису потребне посебне променљиве окружења за основну употребу.
За Azure распоређивања (апликација за квизове):
AZURE_STATIC_WEB_APPS_API_TOKEN(аутоматски постављен од стране Azure-а)
Отклањање грешака и решавање проблема
Уобичајени проблеми
Проблем: Креирање conda окружења не успева
- Решење: Прво ажурирајте conda:
conda update conda -y - Осигурајте довољно простора на диску (препоручено 50GB)
Проблем: Jupyter kernel није пронађен
- Решење:
conda activate ai4beg python -m ipykernel install --user --name ai4beg
Проблем: GPU није детектован у нотебуцима
- Решење:
- Проверите CUDA инсталацију:
nvidia-smi - Проверите PyTorch GPU:
python -c "import torch; print(torch.cuda.is_available())" - Проверите TensorFlow GPU:
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
- Проверите CUDA инсталацију:
Проблем: Апликација за квизове се не покреће
- Решење:
cd etc/quiz-app rm -rf node_modules package-lock.json npm install npm run serve
Проблем: Binder истекне или блокира преузимања
- Решење: Користите GitHub Codespaces или локално подешавање за бољи приступ ресурсима
Проблеми са меморијом
Неке лекције захтевају значајну RAM меморију (препоручено 8GB+):
- Користите cloud VM-ове за лекције које захтевају више ресурса
- Затворите друге апликације приликом тренирања модела
- Смањите величину batch-а у нотебуцима ако понестане меморије
Додатне напомене
За инструкторе курса
- Погледајте
lessons/0-course-setup/for-teachers.mdза упутства за предавање - Лекције су самосталне и могу се предавати редом или бирати појединачно
- Процењено време: 12 недеља са 2 лекције недељно
Ресурси у облаку
- Azure for Students: Бесплатни кредити доступни студентима
- Microsoft Learn: Допунски путеви учења повезани кроз курс
- Binder: Бесплатан, али са ограниченим ресурсима и неким мрежним ограничењима
Опције за извршавање кода
- Локално (препоручено): Потпуна контрола, најбоље перформансе, GPU подршка
- GitHub Codespaces: Cloud-базирани VS Code, добар за брз приступ
- Binder: Jupyter у прегледачу, бесплатан али ограничен
- Azure ML Notebooks: Ентерпрајз опција са GPU подршком
- Google Colab: Отпремите нотебуке појединачно, доступан бесплатан GPU ниво
Рад са нотебуцима
- Нотебуци су дизајнирани да се извршавају ћелија по ћелија ради учења
- Многи нотебуци преузимају скупове података при првом покретању (може потрајати)
- Неки модели захтевају GPU за разумно време тренирања
- Претходно обучени модели се користе где је могуће ради смањења потреба за рачунарством
Перформансе
- Касније лекције рачунарског вида (CNN, GAN) користе GPU
- NLP лекције са трансформерима могу захтевати значајну RAM меморију
- Тренирање од почетка је образовно, али захтева време
- Примери трансфер учења минимизирају време тренирања
Одрицање од одговорности:
Овај документ је преведен помоћу услуге за превођење уз помоћ вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу произаћи из коришћења овог превода.