فاز 0 · درس 1

آماده‌سازی محیط توسعه برای مهندسی هوش مصنوعی

نوع
ساختنی
زمان
حدود 45 دقیقه
زبان‌ها
Python, Node.js, Rust
پیش‌نیاز
ندارد
چهار لایه‌ی فلزی مینیمال مکعبی شکل که روی یک میز کار مهندسی به شکل عمودی روی هم چیده شده‌اند
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مفهوم پایه
  4. پیاده‌سازی از صفر
  5. گام 1: پایه‌ی سیستم
  6. گام 2: پایتون با uv
  7. گام 3: Node.js با pnpm
  8. گام 4: زبان Rust
  9. گام 5: زبان Julia (اختیاری)
  10. گام 6: راه‌اندازی GPU (در صورت وجود)
  11. گام 7: اعتبارسنجی مسیری که می‌خواهید شروع کنید
  12. استفاده از ابزارهای واقعی
  13. خروجی این درس
  14. تمرین‌ها
  15. راهنمایی‌ها

شروع یادگیری مهندسی هوش مصنوعی بدون یک محیط توسعه‌ی پایدار، خیلی زود به ساعت‌ها کلنجار رفتن با خطاهای نامفهوم نصب، تداخل نسخه‌ها و ناسازگاری پکیج‌ها ختم می‌شود. وقتی ابزارها درست در جای خود ننشینند، تمرکز اصلی از یادگیری الگوریتم‌ها و ساخت مدل‌ها به رفع باگ‌های سیستمی منحرف می‌شود.

در این درس یاد می‌گیرید که چطور پشته‌ی توسعه را در چهار لایه‌ی مجزا (سیستم، پکیج‌ها، محیط‌های اجرا و کتابخانه‌های هوش مصنوعی) به شکل بنیادین پیاده‌سازی کنید. برای توسعه‌دهندگان در ایران، دانلود از PyPI یا سایر مخازن ممکن است گاهی با کندی یا اختلال همراه باشد؛ به همین دلیل در این درس از ابزار مدرن uv استفاده می‌کنیم که سرعت دانلود و حل وابستگی‌ها را تا ده‌ها برابر افزایش می‌دهد.

همچنین بیشتر تمرین‌ها و پروژه‌های آغازین این مسیر روی CPU یا شتاب‌دهنده‌ی MPS در مک اجرا می‌شوند و بدون نیاز به خرید اشتراک خارجی یا تهیه‌ی GPUهای ابری گران‌قیمت، می‌توانید کار را روی سیستم شخصی خود پیش ببرید.

ابزارهای شما به تفکرتان شکل می‌دهند. آن‌ها را یک‌بار و درست تنظیم کنید.

اهداف یادگیری

  • راه‌اندازی زنجیره‌ابزارهای Python 3.11+، Node.js 20+ و Rust از صفر
  • پیکربندی محیط‌های مجازی و مدیرهای بسته برای ساخت‌های بازتولیدپذیر (reproducible builds)
  • اعتبارسنجی دسترسی به GPU با CUDA/MPS و اجرای یک عملیات آزمایشی روی تنسور
  • درک پشته‌ی چهارلایه: سیستم، بسته‌ها، محیط‌های اجرا و کتابخانه‌های هوش مصنوعی

صورت مسئله

شما در آستانه‌ی یادگیری مهندسی هوش مصنوعی در قالب بیش از 500 درس با زبان‌های Python، TypeScript، Rust و Julia هستید. اگر محیط توسعه‌تان درست کار نکند، تک‌تک درس‌ها به‌جای یادگیری، به جنگی فرسایشی با ابزارها تبدیل می‌شوند.

بیشتر افراد مرحله‌ی راه‌اندازی محیط را سرسری رد می‌کنند؛ سپس ساعت‌ها وقت تلف می‌کنند تا خطاهای import، تداخل نسخه‌ها و درایورهای گمشده‌ی CUDA را برطرف کنند. ما این کار را یک‌بار و اصولی انجام می‌دهیم.

مفهوم پایه

یک محیط مهندسی هوش مصنوعی از چهار لایه تشکیل شده است:

4. کتابخانه‌های هوش مصنوعی و یادگیریماشینPyTorch، JAX، transformers و غیره3. محیط‌های اجرای زبانPython 3.11+، Node 20+، Rust، Julia2. مدیرهای بستهuv، pnpm، cargo، juliaup1. زیرساخت سیستمسیستم‌عامل، پوسته، git، ویرایشگر،درایورهای GPU

ما نصب را از پایین به بالا انجام می‌دهیم؛ هر لایه به لایه‌ی زیرین خود وابسته است.

پشته چهار لایهسیستم، مدیرها، محیط‌های اجرا و کتابخانه‌ها به ترتیب سوار می‌شوند
THE FOUR-LAYER STACKThe environment builds bottom-up: the OS and GPU driver first, then package managers, then language runtimes, then the AI libraries that depend on all three. When import torch fails, walk the stack downward, the broken layer is almost never the one that raised the error.1 · سیستمسیستم‌عامل، درایورها، CUDA / Metal2 · مدیرهای بستهuv, pnpm, cargo3 · محیط‌های اجرای زبانPython 3.11+, Node 20+, Rust4 · کتابخانه‌های AItorch, jax, transformerspython -c "import torch" · okهر لایه متکی به لایه زیرین خود است
محیط از پایین به بالا ساخته می‌شود: ابتدا سیستم‌عامل و درایور GPU، سپس مدیرهای بسته، بعد محیط‌های اجرای زبان و در نهایت کتابخانه‌های هوش مصنوعی وابسته به هر سه. هنگامی که import torch با خطا مواجه می‌شود، پشته را به سمت پایین بررسی کنید؛ لایه خراب تقریباً هرگز همان لایه‌ای نیست که خطا را صادر کرده است.

پیاده‌سازی از صفر

گام 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 را بررسی کنید.

تمرین‌ها

  1. اسکریپت ارزیابی را اجرا کنید و هر خطایی را برطرف سازید.
  2. یک محیط مجازی پایتون برای این دوره بسازید و PyTorch را در آن نصب کنید.
  3. با هر چهار زبان یک برنامه‌ی «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 به پایان برسد.

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسچرا پروژه‌های هوش مصنوعی به یک محیط مجازی مجزا نیاز دارند؟
  2. پیش از درسفناوری CUDA چه چیزی برای بارهای کاری هوش مصنوعی فراهم می‌کند؟
  3. پس از درسدر پشته محیطی چهارلایه، کدام لایه باید ابتدا نصب شود؟
  4. پس از درسکاربرد ابزار uv در پروژه‌های هوش مصنوعی پایتون چیست؟
  5. پس از درسچگونه مطمئن می‌شوید که PyTorch به GPU شما دسترسی دارد؟

سؤالات متداول

چرا در این دوره به‌جای pip معمولی از ابزار uv استفاده می‌شود؟

ابزار uv بین 10 تا 100 برابر سریع‌تر از pip عمل می‌کند، ایجاد و مدیریت محیط‌های مجازی را خودکار می‌سازد و زمان قفل کردن وابستگی‌ها را بسیار کاهش می‌دهد.

آیا برای شروع یادگیری مهندسی هوش مصنوعی حتماً به کارت گرافیک مجزا نیاز داریم؟

خیر؛ بیشتر درس‌های پایه روی پردازنده‌ی اصلی (CPU) یا تراشه‌های Apple Silicon با شتاب‌دهنده‌ی MPS بدون مشکل اجرا می‌شوند.

نحوه‌ی فعال‌سازی شتاب گرافیکی PyTorch روی سیستم‌های مک چگونه است؟

در تراشه‌های اپل سیلیکون قابلیت CUDA وجود ندارد؛ با نصب نسخه‌ی رسمی و استاندارد PyTorch (بدون آرگومان‌های cu)، فریم‌ورک از طریق بک‌اند MPS (Metal) به‌طور خودکار به GPU متصل می‌شود.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.