12 KiB
AGENTS.md
プロジェクト概要
AI for Beginnersは、人工知能の基礎を網羅した12週間、24レッスンのカリキュラムです。この教育用リポジトリには、Jupyter Notebookを使用した実践的なレッスン、クイズ、ハンズオンラボが含まれています。カリキュラムの内容は以下の通りです:
- 知識表現とエキスパートシステムを用いた記号的AI
- TensorFlowとPyTorchを使用したニューラルネットワークと深層学習
- コンピュータビジョンの技術とアーキテクチャ
- トランスフォーマーやBERTを含む自然言語処理(NLP)
- 専門的なトピック:遺伝的アルゴリズム、強化学習、マルチエージェントシステム
- AI倫理と責任あるAIの原則
主要技術: Python 3、Jupyter Notebook、TensorFlow、PyTorch、Keras、OpenCV、Vue.js(クイズアプリ用)
アーキテクチャ: トピック別に整理されたJupyter Notebookを含む教育コンテンツリポジトリ、Vue.jsベースのクイズアプリケーション、多言語対応を充実させた構成。
セットアップコマンド
主な開発環境(Python/Jupyter)
このカリキュラムはPythonとJupyter Notebookで動作するよう設計されています。推奨される方法は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
クイズアプリのセットアップ
クイズアプリはetc/quiz-app/にあるVue.jsアプリケーションです:
cd etc/quiz-app
npm install
npm run serve # Development server
npm run build # Production build
npm run lint # Lint and fix files
開発ワークフロー
Jupyter Notebookの操作
-
ローカル開発:
- 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: READMEのBinderバッジを使用してブラウザで起動
- 注意: Binderはリソースが限られており、ウェブアクセスに制限がある場合があります
高度なレッスン向けGPUサポート
後半のレッスンではGPUアクセラレーションが大いに役立ちます:
- Azure Data Science VM: GPUサポート付きのNCシリーズVMを使用
- Azure Machine Learning: GPUコンピュートを使用したノートブック機能
- Google Colab: ノートブックを個別にアップロード(無料のGPUサポートあり)
クイズアプリの開発
cd etc/quiz-app
npm run serve # Hot-reload development server at http://localhost:8080
テスト手順
このリポジトリは学習コンテンツに焦点を当てており、ソフトウェアテストのための従来型のテストスイートはありません。
検証方法:
- Jupyter Notebook: セルを順番に実行してコード例が動作することを確認
- クイズアプリのテスト: 開発サーバーを使用した手動テスト
- 翻訳の検証:
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(クイズアプリ)
etc/quiz-app/package.jsonにESLint設定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 Notebookは直接実行されます。
クイズアプリ
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/
コントリビューションガイドライン
プルリクエストプロセス
- タイトル形式: 変更内容を明確に説明するタイトル
- 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カーネルが見つからない
- 解決策:
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以上)が必要:
- リソース集約型のレッスンにはクラウドVMを使用
- モデルをトレーニングする際は他のアプリケーションを閉じる
- メモリ不足の場合はノートブック内のバッチサイズを減らす
追加の注意事項
コースインストラクター向け
- 教師向けガイダンスは
lessons/0-course-setup/for-teachers.mdを参照 - レッスンは自己完結型で、順番に教えることも個別に選択することも可能
- 推定期間: 12週間(週2レッスン)
クラウドリソース
- Azure for Students: 学生向け無料クレジットあり
- Microsoft Learn: 補足的な学習パスが随所にリンク
- Binder: 無料だがリソースが限られ、ネットワーク制限がある場合あり
コード実行オプション
- ローカル(推奨): 完全な制御、最高のパフォーマンス、GPUサポート
- GitHub Codespaces: クラウドベースのVS Code、迅速なアクセスに適している
- Binder: ブラウザベースのJupyter、無料だが制限あり
- Azure MLノートブック: GPUサポート付きのエンタープライズオプション
- Google Colab: ノートブックを個別にアップロード、無料GPU層利用可能
ノートブックの操作
- ノートブックは学習のためにセルごとに実行するよう設計
- 多くのノートブックは初回実行時にデータセットをダウンロード(時間がかかる場合あり)
- 一部のモデルは合理的なトレーニング時間のためにGPUが必要
- 計算要件を減らすために事前学習済みモデルを使用
パフォーマンスの考慮事項
- 後半のコンピュータビジョンレッスン(CNN、GAN)はGPUが有効
- NLPトランスフォーマーレッスンは大量のRAMを必要とする場合あり
- ゼロからのトレーニングは教育的だが時間がかかる
- 転移学習の例はトレーニング時間を最小化
免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された文書を正式な情報源としてお考えください。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤解釈について、当方は一切の責任を負いません。