19 KiB
AGENTS.md
ภาพรวมโครงการ
AI for Beginners เป็นหลักสูตรครอบคลุมระยะเวลา 12 สัปดาห์ ประกอบด้วย 24 บทเรียนที่ครอบคลุมพื้นฐานของปัญญาประดิษฐ์ (AI) โครงการนี้มีบทเรียนเชิงปฏิบัติที่ใช้ Jupyter Notebooks แบบฝึกหัด และห้องปฏิบัติการจริง หลักสูตรครอบคลุมหัวข้อดังนี้:
- AI เชิงสัญลักษณ์ด้วยการแทนความรู้และระบบผู้เชี่ยวชาญ
- เครือข่ายประสาทและการเรียนรู้เชิงลึกด้วย TensorFlow และ PyTorch
- เทคนิคและสถาปัตยกรรมการมองเห็นด้วยคอมพิวเตอร์
- การประมวลผลภาษาธรรมชาติ (NLP) รวมถึง transformers และ BERT
- หัวข้อเฉพาะทาง: อัลกอริทึมทางพันธุกรรม, การเรียนรู้แบบเสริมกำลัง, ระบบหลายตัวแทน
- จริยธรรม AI และหลักการ 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: ใช้ VM ซีรีส์ NC ที่รองรับ 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ก่อน commit
การมีส่วนร่วมในการแปล
- การแปลเป็นไปโดยอัตโนมัติผ่าน 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)
ปัญหา: ไม่พบ kernel ของ 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 หรือการตั้งค่าในเครื่องเพื่อการเข้าถึงทรัพยากรที่ดีกว่า
ปัญหาหน่วยความจำ
บทเรียนบางส่วนต้องการ RAM จำนวนมาก (แนะนำ 8GB+):
- ใช้ VM คลาวด์สำหรับบทเรียนที่ใช้ทรัพยากรมาก
- ปิดแอปพลิเคชันอื่นเมื่อฝึกโมเดล
- ลดขนาด batch ในโน้ตบุ๊กหากหน่วยความจำไม่เพียงพอ
หมายเหตุเพิ่มเติม
สำหรับผู้สอนหลักสูตร
- ดู
lessons/0-course-setup/for-teachers.mdสำหรับคำแนะนำการสอน - บทเรียนเป็นแบบแยกตัวเองและสามารถสอนได้ตามลำดับหรือเลือกเฉพาะบางบท
- เวลาที่ประมาณการ: 12 สัปดาห์ที่ 2 บทเรียนต่อสัปดาห์
ทรัพยากรคลาวด์
- Azure for Students: เครดิตฟรีสำหรับนักเรียน
- Microsoft Learn: เส้นทางการเรียนรู้เสริมที่เชื่อมโยงตลอดหลักสูตร
- Binder: ฟรีแต่มีทรัพยากรจำกัดและข้อจำกัดเครือข่ายบางประการ
ตัวเลือกการรันโค้ด
- ในเครื่อง (แนะนำ): ควบคุมได้เต็มที่ ประสิทธิภาพดีที่สุด รองรับ GPU
- GitHub Codespaces: VS Code บนคลาวด์ เข้าถึงได้รวดเร็ว
- Binder: Jupyter บนเบราว์เซอร์ ฟรีแต่จำกัด
- Azure ML Notebooks: ตัวเลือกองค์กรพร้อมการสนับสนุน GPU
- Google Colab: อัปโหลดโน้ตบุ๊กทีละตัว มี GPU ฟรีให้บริการ
การทำงานกับโน้ตบุ๊ก
- โน้ตบุ๊กออกแบบมาให้รันทีละเซลล์เพื่อการเรียนรู้
- โน้ตบุ๊กหลายตัวดาวน์โหลดชุดข้อมูลในการรันครั้งแรก (อาจใช้เวลา)
- โมเดลบางตัวต้องการ GPU เพื่อเวลาฝึกที่เหมาะสม
- ใช้โมเดลที่ฝึกไว้ล่วงหน้าเพื่อลดความต้องการการประมวลผล
การพิจารณาด้านประสิทธิภาพ
- บทเรียนการมองเห็นด้วยคอมพิวเตอร์ในภายหลัง (CNNs, GANs) ได้รับประโยชน์จาก GPU
- บทเรียน NLP transformer อาจต้องการ RAM จำนวนมาก
- การฝึกจากศูนย์มีประโยชน์ทางการศึกษาแต่ใช้เวลานาน
- ตัวอย่างการเรียนรู้แบบถ่ายโอนช่วยลดเวลาในการฝึก
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์ที่มีความเชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้