319 lines
19 KiB
Markdown
319 lines
19 KiB
Markdown
# AGENTS.md
|
|
|
|
## Project Overview
|
|
|
|
AI សម្រាប់អ្នកចាប់ផ្តើមគឺជាកម្មវិធីសិក្សា 12 សប្ដាហ៍ មានមេរៀន 24 ដែលគ្របដណ្តប់មូលដ្ឋានអំពីបញ្ញាសិប្បនិម្មិត។ ឃ្លាំងសិក្សានេះរួមបញ្ចូលមេរៀនអនុវត្តដោយប្រើ Jupyter Notebooks ការប្រលង និងហLaboratories ដៃគូ។ អំពីវគ្គសិក្សាដូចជា៖
|
|
|
|
- បញ្ញាសិប្បនិម្មិតសញ្ញា ជាមួយការបង្ហាញចំណេះដឹង និងប្រព័ន្ធអ្នកជំនាញ
|
|
- បណ្តាញប្រសាទ និង ការរៀនជម្រៅ ជាមួយ TensorFlow និង PyTorch
|
|
- បច្ចេកទេស និងសំណុំរចនាសម្ព័ន្ធមើលឃើញកុំព្យូទ័រ
|
|
- ការកែសម្រួលភាសាធម្មជាតិ (NLP) រួមទាំង transformers និង BERT
|
|
- ប្រធានបទពិសេស៖ អាល់ហ្គូលិចមហេតុវិជ្ជា, ការរៀនបន្ធុងជំរុញ, ប្រព័ន្ធភ្នាក់ងារច្រើន
|
|
- នីតិវិធីផ្នែកបញ្ញាសិប្បនិម្មិត និងគោលការណ៍បញ្ញាសិប្បនិម្មិតយកចិត្តទុកដាក់
|
|
|
|
**បច្ចេកវិជ្ជាសំខាន់ៗ៖** Python 3, Jupyter Notebooks, TensorFlow, PyTorch, Keras, OpenCV, Vue.js (សម្រាប់កម្មវិធីប្រលង)
|
|
|
|
**រចនាសម្ព័ន្ធ៖** ឃ្លាំងមាតិកាសិក្សាដែលមាន Jupyter Notebooks ដាក់លំដាប់តាមប្រធានបទ ជាមួយកម្មវិធីប្រលងសម្រាប់ Vue.js និងការគាំទ្រភាសាច្រើន។
|
|
|
|
## Setup Commands
|
|
|
|
### Primary Development Environment (Python/Jupyter)
|
|
|
|
វគ្គសិក្សាត្រូវបានរចនាឡើងសម្រាប់រត់ជាមួយ Python និង Jupyter Notebooks។ វិធីសាស្ត្រដែលបានអនុញ្ញាតគឺប្រើ miniconda៖
|
|
|
|
```bash
|
|
# បែនការផ្ទុកទិន្នន័យ
|
|
git clone https://github.com/microsoft/ai-for-beginners
|
|
cd ai-for-beginners
|
|
|
|
# បង្កើត និងដំណើរការបរិយាកាស conda
|
|
conda env create --name ai4beg --file environment.yml
|
|
conda activate ai4beg
|
|
|
|
# ចាប់ផ្ដើម Jupyter Notebook
|
|
jupyter notebook
|
|
# ឬ
|
|
jupyter lab
|
|
```
|
|
|
|
### Alternative: Using devcontainer
|
|
|
|
```bash
|
|
# បើកនៅក្នុង VS Code ហើយជ្រើស "Reopen in Container" ពេលដែលមានការផ្តល់សំណូមពរ
|
|
# devcontainer នឹងរៀបចំបរិយាកាសដោយស្វ័យប្រវត្តិ
|
|
```
|
|
|
|
### Quiz Application Setup
|
|
|
|
កម្មវិធីប្រលងគឺជា Vue.js app ផ្សេងដែលស្ថិតនៅ `etc/quiz-app/`៖
|
|
|
|
```bash
|
|
cd etc/quiz-app
|
|
npm install
|
|
npm run serve # សេវាកម្មអភិវឌ្ឍន៍
|
|
npm run build # ការបង្កើតផលិតកម្ម
|
|
npm run lint # ពិនិត្យ និងជួសជុលកម្មវិធីឯកសារ
|
|
```
|
|
|
|
## Development Workflow
|
|
|
|
### Working with Jupyter Notebooks
|
|
|
|
1. **Local Development:**
|
|
- បើកបរិស្ថាន conda៖ `conda activate ai4beg`
|
|
- ចាប់ផ្តើម Jupyter៖ `jupyter notebook` ឬ `jupyter lab`
|
|
- ទៅកាន់ថតមេរៀន និងបើកឯកសារ `.ipynb`
|
|
- រត់កូដក្នុងកោសិកាវីដេអូដើម្បីតាមដានមេរៀន
|
|
|
|
2. **VS Code with Python Extension:**
|
|
- បើកឃ្លាំងមាតិកានៅក្នុង VS Code
|
|
- ដំឡើងផ្នែកបន្ថែម Python
|
|
- VS Code ស្វ័យប្រវត្តិអាចរកឃើញនិងប្រើបរិស្ថាន conda
|
|
- បើកឯកសារ `.ipynb` ដោយផ្ទាល់ក្នុង VS Code
|
|
|
|
3. **Cloud Development:**
|
|
- **GitHub Codespaces:** ចុច "Code" → "Codespaces" → "Create codespace on main"
|
|
- **Binder:** ប្រើប៊ាដសម្រាប់ Binder នៅក្នុង README ដើម្បីបើកក្នុងកម្មវិធីទំព័រមេ
|
|
- កំណត់សម្គាល់៖ Binder មានធនធានកំណត់ និងមានការកំណត់ចូលប្រើវេបសាយខ្លះៗ
|
|
|
|
### GPU Support for Advanced Lessons
|
|
|
|
មេរៀនក្រោយៗមានអត្ថប្រយោជន៍យ៉ាងច្រើនពីការបើកបរជាមួយ GPU៖
|
|
|
|
- **Azure Data Science VM:** ប្រើ NC-series VM ដោយមាន GPU
|
|
- **Azure Machine Learning:** ប្រើមុខងារសៀវភៅកំណត់ត្រាជាមួយ GPU
|
|
- **Google Colab:** ផ្ទុកឡើងសៀវភៅកំណត់ត្រាដោយផ្ទាល់ (ផ្តល់ជាមួយ GPU ដោយឥតគិតថ្លៃ)
|
|
|
|
### Quiz App Development
|
|
|
|
```bash
|
|
cd etc/quiz-app
|
|
npm run serve # ម៉ាស៊ីនមេអភិវឌ្ឍន៍ដែលផ្ទុកឡើងឡើងវិញយ៉ាងឆាប់រហ័សនៅ http://localhost:8080
|
|
```
|
|
|
|
## Testing Instructions
|
|
|
|
នេះគឺជាឃ្លាំងសិក្សាដែលផ្ដោតលើមាតិកាដល់ការរៀន យ៉ាងហោចណាស់មិនមែនសម្រាប់ការពិនិត្យកម្មវិធីតាមបែបផ្លូវការ។ មិនមានស៊ុមតេស្តបែបបុរាណឡើយ។
|
|
|
|
### Validation Approaches:
|
|
|
|
1. **Jupyter Notebooks:** រត់កូដនៅក្នុងកោសិកាតាមលំដាប់ដើម្បីបញ្ជាក់កំហុស
|
|
2. **Quiz App Testing:** ពិនិត្យដោយដៃតាមម៉ាស៊ីនបម្រើអភិវឌ្ឍ
|
|
3. **Translation Validation:** ពិនិត្យមាតិកាប្រែសម្រួលនៅថត `translations/`
|
|
4. **Quiz App Linting:** `npm run lint` នៅក្នុង `etc/quiz-app/`
|
|
|
|
### Running Code Examples:
|
|
|
|
```bash
|
|
# បើកបរិបទស៊ើបអង្កេតជាលើកដំបូង
|
|
conda activate ai4beg
|
|
|
|
# រត់ស្គ្រីប Python បន្ដផ្ទាល់
|
|
python lessons/4-ComputerVision/07-ConvNets/pytorchcv.py
|
|
|
|
# ឬអនុវត្តបា្រិយកន្តភ្ជាប់នួស
|
|
jupyter notebook lessons/3-NeuralNetworks/03-Perceptron/Perceptron.ipynb
|
|
```
|
|
|
|
## Code Style
|
|
|
|
### Python Code Style
|
|
|
|
- លំដាប់ Python វិជ្ជាជីវៈសម្រាប់កូដសិក្សា
|
|
- កូដច្បាស់លាស់ អាចអានបាន គោរពលើការរៀនជាងការបង្កើតប្រសើរឡើង
|
|
- ពណ៌នាច្បាស់លាស់ សម្រាប់មេរៀនដែលមានគោលបំណងបង្រៀន
|
|
- សម្របខ្លួនសម្រាប់ Jupyter Notebook៖ កោសិកាគួរតែមានជ្រៅទាំងលក្ខណៈយកខ្លួនឯង
|
|
- មិនមានតម្រូវការតឹងរឹងក្នុងការត្រួតពិនិត្យលីនឌីងសម្រាប់មេរៀននេះឡើយ
|
|
|
|
### JavaScript/Vue.js (Quiz App)
|
|
|
|
- កំណត់ ESLint នៅ `etc/quiz-app/package.json`
|
|
- ដំណើរការ `npm run lint` ដើម្បីពិនិត្យ និងជួសជុលបញ្ហា
|
|
- ប្រើ Vue 2.x
|
|
- សំណុំរចនាសម្ព័ន្ធផ្អែកលើគ្រឿងបន្លាស់
|
|
|
|
### File Organization
|
|
|
|
```
|
|
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
|
|
```
|
|
|
|
## Build and Deployment
|
|
|
|
### Jupyter Content
|
|
|
|
មិនចាំបាច់មានដំណើរការបង្កើត - Jupyter Notebooks រត់ដោយផ្ទាល់។
|
|
|
|
### Quiz Application
|
|
|
|
```bash
|
|
cd etc/quiz-app
|
|
|
|
# ការអភិវឌ្ឍ
|
|
npm run serve
|
|
|
|
# ការសាងសង់ផលិតកម្ម
|
|
npm run build # ផលបត់ចេញទៅ etc/quiz-app/dist/
|
|
|
|
# ដាក់បញ្ចូលទៅ Azure Static Web Apps
|
|
# Azure បង្កើត workflow GitHub Actions ដោយស្វ័យប្រវត្តិ
|
|
# សូមមើល etc/quiz-app/README.md សម្រាប់ការណែនាំលំអិតអំពីការដាក់បញ្ចូល
|
|
```
|
|
|
|
### Documentation Site
|
|
|
|
ឃ្លាំងនេះប្រើ Docsify សម្រាប់ឯកសារដឹកនាំ៖
|
|
- `index.html` ជាកន្លែងចូល
|
|
- មិនចាំបាច់បង្កើត - ផ្តល់ជូនដោយផ្ទាល់តាម GitHub Pages
|
|
- ចូលប្រើបានតាម: https://microsoft.github.io/AI-For-Beginners/
|
|
|
|
## Contributing Guidelines
|
|
|
|
### Pull Request Process
|
|
|
|
1. **Title Format:** ចំណងជើងច្បាស់លាស់ ពណ៌នាប្រែប្រួល
|
|
2. **CLA Requirement:** ត្រូវចុះហត្ថលេខា Microsoft CLA (ពិនិត្យដោយស្វ័យប្រវត្តិ)
|
|
3. **Content Guidelines:**
|
|
- ការបង្កើតមាតិកាផ្ដោតលើការសិក្សា និងងាយស្រួលសម្រាប់អ្នកចាប់ផ្តើម
|
|
- សាកល្បងគ្រប់ឧទាហរណ៍កូដក្នុងសៀវភៅកំណត់ត្រា
|
|
- ប្រាកដថាសៀវភៅកំណត់ត្រារត់បានពេញលេញ
|
|
- បច្ចប្បន្នភាពការប្រែប្រួលបើមានការផ្លាស់ប្តូរមាតិកាអង់គ្លេស
|
|
4. **Quiz App Changes:** ប្រតិបត្តិ `npm run lint` មុនធ្វើការប្តូរ
|
|
|
|
### Translation Contributions
|
|
|
|
- ការប្រែសម្រួលធ្វើដោយស្វ័យប្រវត្តិផ្ដល់ដោយ GitHub Actions ប្រែសម្រួលជា co-op-translator
|
|
- ប្រែសម្រួលដោយដៃនៅក្នុងថត `translations/<language-code>/`
|
|
- ប្រែសម្រួលប្រកាន់ប្រលងនៅ `etc/quiz-app/src/assets/translations/`
|
|
- គាំទ្រភាសា 40+ ភាសា (មើល README សម្រាប់បញ្ជីពេញលេញ)
|
|
|
|
### Active Contribution Areas
|
|
|
|
មើល `etc/CONTRIBUTING.md` សម្រាប់តម្រូវការចុងក្រោយ៖
|
|
- ផ្នែក Deep Reinforcement Learning
|
|
- ការកែលម្អស្វែងរកវត្ថុ
|
|
- ឧទាហរណ៍ Named Entity Recognition
|
|
- គំរូហ្វឹកហាត់ embedding តាមបំណង
|
|
|
|
## Environment Configuration
|
|
|
|
### Required Dependencies
|
|
|
|
```bash
|
|
# បណ្ណាល័យ Python មូលដ្ឋាន (ពី 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
|
|
```
|
|
|
|
### Environment Variables
|
|
|
|
មិនមានអថេរបរិស្ថានពិសេសណាមួយទេ សម្រាប់ការប្រើប្រាស់មូលដ្ឋាន។
|
|
|
|
សម្រាប់ការដាក់ទុកលើ Azure (កម្មវិធីប្រលង):
|
|
- `AZURE_STATIC_WEB_APPS_API_TOKEN` (កំណត់ដោយស្វ័យប្រវត្តិដោយ Azure)
|
|
|
|
## Debugging and Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
**Issue:** បង្កើតបរិស្ថាន conda បរាជ័យ
|
|
- **Solution:** បន្ទាន់សម័យ conda ជាមុន៖ `conda update conda -y`
|
|
- ប្រាកដថាមានថាសគ្រប់គ្រាន់ (ផ្ដល់អនុសាសន៍ 50GB)
|
|
|
|
**Issue:** មិនឃើញកឺណែល Jupyter
|
|
- **Solution:**
|
|
```bash
|
|
conda activate ai4beg
|
|
python -m ipykernel install --user --name ai4beg
|
|
```
|
|
|
|
**Issue:** មិនមានការរកឃើញ GPU នៅក្នុងសៀវភៅកំណត់ត្រា
|
|
- **Solution:**
|
|
- ពិនិត្យការដំឡើង 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'))"`
|
|
|
|
**Issue:** កម្មវិធីប្រលងមិនចាប់ផ្តើម
|
|
- **Solution:**
|
|
```bash
|
|
cd etc/quiz-app
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
npm run serve
|
|
```
|
|
|
|
**Issue:** Binder ពុំចូលរយៈពេលឬហាមឃាត់ការទាញយក
|
|
- **Solution:** ប្រើ GitHub Codespaces ឬដំណើរការក្នុងតំបន់ស្រុកសម្រាប់ចូលប្រើធនធានកាន់តែប្រសើរ
|
|
|
|
### Memory Issues
|
|
|
|
មេរៀនខ្លះៗត្រូវការមេម៉ូរី RAM ធំ (ផ្ដល់អនុសាសន៍ 8GB+)៖
|
|
- ប្រើ VM គ្រប់គ្រាន់នៅពពកសម្រាប់មេរៀនដែលតម្រូវធនធានច្រើន
|
|
- បិទកម្មវិធីផ្សេងទៀតពេលហ្វឹកហាត់ម៉ូឌែល
|
|
- បន្ថយទំហំដុំក្នុងសៀវភៅកំណត់ត្រាបើផុតមេម៉ូរី
|
|
|
|
## Additional Notes
|
|
|
|
### For Course Instructors
|
|
|
|
- មើល `lessons/0-course-setup/for-teachers.md` សម្រាប់ការណែនាំបង្រៀន
|
|
- មេរៀនត្រូវបានរចនាឡើងដោយឯករាជ្យ និងអាចបង្រៀនតាមលំដាប់ ឬជ្រើសរើសជាបុគ្គល
|
|
- ពេលវេលាប៉ាន់ប្រមាណ៖ 12 សប្ដាហ៍ ជាមួយមេរៀន 2 មេរៀនក្នុងមួយសប្ដាហ៍
|
|
|
|
### Cloud Resources
|
|
|
|
- **Azure សម្រាប់សិស្ស:** មានកម្រៃឥតគិតថ្លៃសម្រាប់សិស្ស
|
|
- **Microsoft Learn:** ផ្លូវចេះសិក្សាជាប់គ្នាទាំងនេះ
|
|
- **Binder:** ឥតគិតថ្លៃ ប៉ុន្តែកំណត់ធនធាន និងមានការកំណត់បណ្តាញខ្លះៗ
|
|
|
|
### Code Execution Options
|
|
|
|
1. **Local (Recommended):** គ្រប់គ្រងពេញលេញ ប្រសិទ្ធភាពខ្ពស់ មានចំណុច GPU
|
|
2. **GitHub Codespaces:** VS Code នៅពពក ល្អសម្រាប់ចូលរហ័ស
|
|
3. **Binder:** ប្រើ Jupyter នៅម៉ាស៊ីនមេឥតគិតថ្លៃ ប៉ុន្តែកំណត់
|
|
4. **Azure ML Notebooks:** ជម្រើសសហគ្រាសមានសមត្ថភាព GPU
|
|
5. **Google Colab:** ផ្ទុកឯកសារចូលម៉ត់ដោយផ្ទាល់ មានជាន់ GPU ឥតគិតថ្លៃ
|
|
|
|
### Working with Notebooks
|
|
|
|
- សៀវភៅកំណត់ត្រាត្រូវដំណើរការដោយការរត់កោសិកាតាមលំដាប់សម្រាប់ការរៀន
|
|
- សៀវភៅកំណត់ត្រាភាគច្រើនទាញយកទិន្នន័យពេលដំណើរការដំបូង (អាចចំណាយពេល)
|
|
- ម៉ូឌែលខ្លះត្រូវការប្រើ GPU សម្រាប់ពេលហ្វឹកហាត់សមរម្យ
|
|
- ប្រើម៉ូឌែលដែលហ្វឹកហាត់រួចជាចម្បងដើម្បីកាត់បន្ថយការប្រើកំណត់គណនាបន្ថែម
|
|
|
|
### Performance Considerations
|
|
|
|
- មេរៀនមើលឃើញកុំព្យូទ័របន្ទាប់ៗ (CNNs, GANs) មានអត្ថប្រយោជន៍ពី GPU
|
|
- មេរៀន NLP ប្រើ transformer អាចតម្រូវ RAM ច្រើន
|
|
- ការហ្វឹកហាត់ពីដើមគឺការសិក្សា ប៉ុន្តែចំណាយពេល
|
|
- ឧទាហរណ៍រៀនប្រែបន្លាស់ជួយកាត់បន្ថយពេលហ្វឹកហាត់
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**ការបដិសេធ**៖
|
|
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខិតខំប្រឹងប្រែងឱ្យបានដូចត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬ ការខុសឆ្គង។ ឯកសារដើមក្នុងភាសាតំណក់នឹងត្រូវបានចាត់ទុកជាផ្លូវការជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយមនុស្សដែលមានជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬ ការបកស្រាយខុសឆ្គងណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះ។
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |