شروع یادگیری مهندسی هوش مصنوعی بدون یک محیط توسعهی پایدار، خیلی زود به ساعتها کلنجار رفتن با خطاهای نامفهوم نصب، تداخل نسخهها و ناسازگاری پکیجها ختم میشود. وقتی ابزارها درست در جای خود ننشینند، تمرکز اصلی از یادگیری الگوریتمها و ساخت مدلها به رفع باگهای سیستمی منحرف میشود.
در این درس یاد میگیرید که چطور پشتهی توسعه را در چهار لایهی مجزا (سیستم، پکیجها، محیطهای اجرا و کتابخانههای هوش مصنوعی) به شکل بنیادین پیادهسازی کنید. برای توسعهدهندگان در ایران، دانلود از PyPI یا سایر مخازن ممکن است گاهی با کندی یا اختلال همراه باشد؛ به همین دلیل در این درس از ابزار مدرن uv استفاده میکنیم که سرعت دانلود و حل وابستگیها را تا دهها برابر افزایش میدهد.
همچنین بیشتر تمرینها و پروژههای آغازین این مسیر روی CPU یا شتابدهندهی MPS در مک اجرا میشوند و بدون نیاز به خرید اشتراک خارجی یا تهیهی GPUهای ابری گرانقیمت، میتوانید کار را روی سیستم شخصی خود پیش ببرید.
ابزارهای شما به تفکرتان شکل میدهند. آنها را یکبار و درست تنظیم کنید.
اهداف یادگیری
- راهاندازی زنجیرهابزارهای Python 3.11+، Node.js 20+ و Rust از صفر
- پیکربندی محیطهای مجازی و مدیرهای بسته برای ساختهای بازتولیدپذیر (reproducible builds)
- اعتبارسنجی دسترسی به GPU با CUDA/MPS و اجرای یک عملیات آزمایشی روی تنسور
- درک پشتهی چهارلایه: سیستم، بستهها، محیطهای اجرا و کتابخانههای هوش مصنوعی
صورت مسئله
شما در آستانهی یادگیری مهندسی هوش مصنوعی در قالب بیش از 500 درس با زبانهای Python، TypeScript، Rust و Julia هستید. اگر محیط توسعهتان درست کار نکند، تکتک درسها بهجای یادگیری، به جنگی فرسایشی با ابزارها تبدیل میشوند.
بیشتر افراد مرحلهی راهاندازی محیط را سرسری رد میکنند؛ سپس ساعتها وقت تلف میکنند تا خطاهای import، تداخل نسخهها و درایورهای گمشدهی CUDA را برطرف کنند. ما این کار را یکبار و اصولی انجام میدهیم.
مفهوم پایه
یک محیط مهندسی هوش مصنوعی از چهار لایه تشکیل شده است:
ما نصب را از پایین به بالا انجام میدهیم؛ هر لایه به لایهی زیرین خود وابسته است.
پیادهسازی از صفر
گام 1: پایهی سیستم
سیستم خود را بررسی کرده و ابزارهای پایهای را نصب کنید.
# macOS
xcode-select --install
brew install git curl wget
# اوبونتو/دبیان
sudo apt update && sudo apt install -y build-essential git curl wget unzip
# Windows (use WSL2)
wsl --install -d Ubuntu-24.04
گام 2: پایتون با uv
ما از uv استفاده میکنیم؛ این ابزار بین 10 تا 100 برابر سریعتر از pip است و محیطهای مجازی را خودکار مدیریت میکند.
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.12
uv venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
uv pip install numpy matplotlib jupyter
بررسی صحت نصب:
import sys
print(f"Python {sys.version}")
import numpy as np
print(f"NumPy {np.__version__}")
a = np.array([1, 2, 3])
print(f"Vector: {a}, dot product with itself: {np.dot(a, a)}")
گام 3: Node.js با pnpm
برای درسهای TypeScript (ایجنتها، سرورهای MCP و برنامههای وب).
curl -fsSL https://fnm.vercel.app/install | bash
fnm install 22
fnm use 22
npm install -g pnpm
node -e "console.log('Node', process.version)"
نصاب fnm ابتدا وجود unzip را بررسی میکند و اگر نصب نباشد، با پیام Not installing fnm due to missing dependencies. متوقف میشود: در لینوکس یک فایل آرشیو zip را استخراج میکند و در macOS از طریق Homebrew نصب را پیش میبرد. سیستمعامل macOS بهطور پیشفرض unzip را دارد؛ در Ubuntu، Debian و WSL2 نیز این ابزار با دستور apt در گام 1 نصب میشود (اگر آن گام را جا انداختهاید: sudo apt install -y unzip).
macOS / تراشههای اپل سیلیکون (M1/M2/M3/M4): اگر نصاب با خطای Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew) متوقف شد، ترمینال شما تحت Rosetta 2 در حال اجراست (دستور arch مقدار i386 را برمیگرداند)، در حالی که Homebrew یک بیلد بومی arm64 است. در این حالت fnm را با اجبار به arm64 نصب کنید، آن را به شل خود متصل سازید و سپس دستورات بالا را از fnm install 22 دوباره اجرا کنید:
arch -arm64 brew install fnm
echo 'eval "$(fnm env --use-on-cd)"' >> ~/.zshrc
source ~/.zshrc
گام 4: زبان Rust
برای درسهای حساس به کارایی و عملکرد (استنتاج مدل و سیستمها).
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustc --version
cargo --version
گام 5: زبان Julia (اختیاری)
برای درسهای سنگینِ ریاضی که جولیا در آنها میدرخشد.
curl -fsSL https://install.julialang.org | sh
julia -e 'println("Julia ", VERSION)'
گام 6: راهاندازی GPU (در صورت وجود)
کارتهای NVIDIA (لینوکس / ویندوز):
nvidia-smi
# نصب PyTorch همراه با CUDA
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
macOS / تراشههای اپل سیلیکون (M1/M2/M3/M4): در مک چیزی به نام CUDA وجود ندارد؛ این امری کاملاً طبیعی است و خطا به شمار نمیرود. پارامتر --index-url .../cuXXX را وارد نکنید (این چرخها/wheelها فقط مخصوص لینوکس و ویندوز هستند و نصب با خطا مواجه میشود). نسخهی معمولی را نصب کنید که شامل بکاند گرافیکی MPS (Metal) اپل است:
uv pip install torch torchvision torchaudio
بررسی صحت کارکرد (روی هر پلتفرمی کار میکند):
import torch
print(f"CUDA available: {torch.cuda.is_available()}") # False on macOS — expected
print(f"MPS available: {torch.backends.mps.is_available()}") # True on Apple Silicon
if torch.cuda.is_available():
print(f"GPU: {torch.cuda.get_device_name(0)}")
گرافیک مجزا ندارید؟ هیچ اشکالی ندارد. بیشتر درسها روی CPU اجرا میشوند. برای درسهای سنگین آموزش مدل، از Google Colab یا سرویسهای ابری GPU استفاده کنید.
گام 7: اعتبارسنجی مسیری که میخواهید شروع کنید
همهی دستورات این درس را از ریشهی مخزن اجرا کنید؛ یعنی همان پوشهای که شامل README.md و phases/ است. این بررسی اولیه (preflight) فقط مواردی را ارزیابی میکند که برای شروع مسیر انتخابی شما نیاز است. ابزارهای مراحل بعدی بهصورت پیشفرض نادیده گرفته میشوند تا یک زبانآموز تازهکار بهجای انبوهی از هشدارهای گیجکننده، پاسخی شفاف و روشن ببیند.
شروع مسیر کامل مبتدی:
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route beginner
یا ارزیابی اختصاصی فقط همان مسیری که مد نظر دارید:
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route ml-foundations
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route llm-engineering
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route agents
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route mcp
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route agent-skills
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route certification
اگر میخواهید همین ابزار ارزیابی اولیه، ابزارها و وابستگیهای اختیاری مربوط به درسهای بعدی را هم بررسی کند، فلگ --show-later را اضافه کنید. نبود یک ابزار مربوط به آینده، هرگز مانع ادامهی مسیر انتخابی شما نخواهد شد.
در هر بررسی ناموفق، مسیر شناساییشده یا خطای import به همراه دستور دقیق برای رفع آن نمایش داده میشود. مسیرهای Agent Skills و آزمونهای گواهینامه شامل بررسیهای دستی میزبان نیز هستند؛ زیرا یک اسکریپت پایتون نمیتواند تشخیص دهد که آیا یک میزبان هوش مصنوعی مهارت موردنظر را شناسایی کرده یا دامنهی (scope) مهارت انتخابی شما قابل نوشتن است یا خیر.
وقتی پیشبررسی مسیر مبتدی بدون خطا به پایان برسد، اولین درس قابل اجرا را دقیقاً چاپ میکند:
Ready to start Beginner course.
Next: python3 phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py
استفاده از ابزارهای واقعی
محیط شما برای شروع مسیری که ارزیابی کردید آماده است. ابزارهای مراحل بعد را هر زمان که درسی مشخصاً درخواست کرد نصب کنید؛ لازم نیست قبل از شروع اولین درس، معطل پیکربندی کل پشته شوید. این ابزارها در طول دورهی آموزشی به کارتان میآیند:
| زبان | کاربرد در دورهها | مدیر بسته |
|---|---|---|
| Python | فازهای 1 تا 12 (یادگیری ماشین، یادگیری عمیق، پردازش متن، بینایی ماشین، صوت، مدلهای زبانی بزرگ) | uv |
| TypeScript | فازهای 13 تا 17 (ابزارها، ایجنتها، سیستمهای چندایجنت یا Swarms، زیرساخت) | pnpm |
| Rust | فازهای 12، 15 تا 17 (سیستمهای نیازمند کارایی بالا) | cargo |
| Julia | فاز 1 (مبانی ریاضی) | Pkg |
خروجی این درس
حاصل این درس یک اسکریپت ارزیابی است که هر کسی میتواند با اجرای آن، صحت راهاندازی محیط خود را بسنجد.
برای دیدن پرامپتی که به دستیارهای هوش مصنوعی در عیبیابی مشکلات محیط کمک میکند، فایل outputs/prompt-env-check.md را بررسی کنید.
تمرینها
- اسکریپت ارزیابی را اجرا کنید و هر خطایی را برطرف سازید.
- یک محیط مجازی پایتون برای این دوره بسازید و PyTorch را در آن نصب کنید.
- با هر چهار زبان یک برنامهی «hello world» بنویسید و هر کدام را اجرا کنید.
راهنماییها
تمرین 1. دستور python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route beginner را از ریشهی مخزن اجرا کنید و خطای اول را پیش از پرداختن به خطای بعدی رفع نمایید. زمانی کار تمام است که اسکریپت را دوباره اجرا کنید و همهی بررسیهای الزامی با موفقیت پاس شوند.
تمرین 2. محیط را با دستور uv venv در ریشهی مخزن ایجاد و آن را فعال کنید؛ سپس PyTorch را با دستوری متناسب با سختافزار خود از گام 6 نصب نمایید. دستور python -c "import torch; print(torch.__version__)" را درون محیط مجازی اجرا کنید؛ چاپ شمارهی نسخه نشاندهندهی نصب موفق است.
تمرین 3. از چهار محیط اجرای معرفیشده در بخش مفهوم پایه استفاده کنید: Python، TypeScript بر بستر Node.js، Rust و Julia. برای هر کدام یک فایل کوچک بنویسید و بهترتیب با python3، npx tsx (محیط Node.js فایل .ts را مستقیماً اجرا نمیکند)، cargo run یا rustc و در نهایت julia اجرا کنید. در هر بار اجرا، پیام شما باید چاپ شود و خروجی با کد 0 به پایان برسد.
