16 KiB
AGENTS.md
Огляд проєкту
AI for Beginners — це комплексна навчальна програма на 12 тижнів, що складається з 24 уроків, присвячених основам штучного інтелекту. Цей освітній репозиторій включає практичні уроки з використанням Jupyter Notebooks, тестів і лабораторних робіт. Програма охоплює:
- Символічний ШІ з представленням знань і експертними системами
- Нейронні мережі та глибоке навчання з TensorFlow і PyTorch
- Техніки та архітектури комп'ютерного зору
- Обробку природної мови (NLP), включаючи трансформери та BERT
- Спеціалізовані теми: генетичні алгоритми, навчання з підкріпленням, багатокомпонентні системи
- Етика ШІ та принципи відповідального використання ШІ
Основні технології: 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 - Переконайтеся, що є достатньо місця на диску (рекомендується 50 ГБ)
Проблема: Ядро Jupyter не знайдено
- Рішення:
conda activate ai4beg python -m ipykernel install --user --name ai4beg
Проблема: GPU не виявлено в ноутбуках
- Рішення:
- Перевірте встановлення CUDA:
nvidia-smi - Перевірте GPU у PyTorch:
python -c "import torch; print(torch.cuda.is_available())" - Перевірте GPU у TensorFlow:
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 або локальне налаштування для кращого доступу до ресурсів
Проблеми з пам'яттю
Деякі уроки потребують значного обсягу оперативної пам'яті (рекомендується 8 ГБ+):
- Використовуйте хмарні VM для ресурсомістких уроків
- Закрийте інші програми під час навчання моделей
- Зменшіть розмір партій у ноутбуках, якщо пам'ять закінчується
Додаткові примітки
Для викладачів курсу
- Див.
lessons/0-course-setup/for-teachers.mdдля рекомендацій щодо викладання - Уроки є самодостатніми та можуть викладатися послідовно або вибірково
- Орієнтовний час: 12 тижнів по 2 уроки на тиждень
Хмарні ресурси
- Azure для студентів: Безкоштовні кредити доступні для студентів
- Microsoft Learn: Додаткові навчальні шляхи, пов'язані з уроками
- Binder: Безкоштовний, але з обмеженими ресурсами та деякими мережевими обмеженнями
Варіанти виконання коду
- Локально (рекомендується): Повний контроль, найкраща продуктивність, підтримка GPU
- GitHub Codespaces: Хмарний VS Code, добре для швидкого доступу
- Binder: Jupyter у браузері, безкоштовно, але обмежено
- Azure ML Notebooks: Корпоративний варіант із підтримкою GPU
- Google Colab: Завантажуйте ноутбуки окремо, доступний безкоштовний рівень GPU
Робота з ноутбуками
- Ноутбуки розроблені для виконання комірка за коміркою для навчання
- Багато ноутбуків завантажують набори даних під час першого запуску (це може зайняти час)
- Деякі моделі потребують GPU для прийнятного часу навчання
- Використовуються попередньо навчені моделі, де це можливо, щоб зменшити вимоги до обчислень
Міркування щодо продуктивності
- Пізніші уроки з комп'ютерного зору (CNN, GAN) виграють від GPU
- Уроки з трансформерами NLP можуть потребувати значного обсягу оперативної пам'яті
- Навчання з нуля є освітнім, але займає багато часу
- Приклади перенесення навчання мінімізують час навчання
Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, звертаємо вашу увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.