بخش بزرگی از زمان توسعهدهندگان هوش مصنوعی داخل ادیتور میگذرد؛ جایی که کدهای پایتون را مینویسید، نوتبوکها را بررسی میکنید و برای اجرای مدلها به سرورهای مختلف متصل میشوید. اگر ادیتور شما بهدرستی تنظیم نشده باشد، هر روز دقایق زیادی را صرف خطایابی دستی، فرمت کردن کد و حل مشکلات اتصال خواهید کرد.
این درس به شما کمک میکند ادیتور خود را طوری پیکربندی کنید که تمام امکانات حیاتی مثل تکمیل خودکار، اعتبارسنجی انواع دادهها و فرمت خودکار هنگام ذخیره در اختیارتان باشد. همچنین یاد میگیرید چگونه با استفاده از افزونهی Remote SSH بهسادگی به سرورهای راهدور مجهز به GPU وصل شوید و بدون احساس تفاوت با سیستم محلی، پروژههای خود را پیش ببرید.
ادیتور شما حکم کمکخلبانتان را دارد. فقط یک بار آن را درست تنظیم کنید تا دیگر جلوی دستوپایتان را نگیرد و واقعاً باری از دوشتان بردارد.
اهداف یادگیری
- نصب VS Code بههمراه افزونههای ضروری برای Python، Jupyter، تحلیل کد (linting) و مخزن راهدور (Remote SSH)
- تنظیم فرمت خودکار هنگام ذخیره (format-on-save)، بررسی نوعها (type checking) و اسکرول خروجی نوتبوک برای جریانهای کاری هوش مصنوعی
- راهاندازی Remote SSH برای ویرایش و دیباگ کد روی ماشینهای GPU راهدور، درست مثل یک محیط محلی
- ارزیابی گزینههای جایگزین ادیتور (Cursor، Windsurf، Neovim) و مقایسهی مزایا و معایب هرکدام برای پروژههای هوش مصنوعی
صورت مسئله
شما هزاران ساعت از وقت خود را داخل ادیتور میگذرانید: کد پایتون مینویسید، نوتبوک اجرا میکنید، حلقههای آموزش مدل را دیباگ میکنید و از طریق SSH به سرورهای مجهز به GPU وصل میشوید. ادیتوری که درست پیکربندی نشده باشد، تکتک این جلسات کاری را به اصطکاک و عذاب تبدیل میکند: خبری از تکمیل خودکار نیست، راهنمای نوع داده (type hints) وجود ندارد، خطاهای درونخطی دیده نمیشوند، فرمتبندی را باید دستی انجام دهید و کار با ترمینال هم کند و خستهکننده پیش میرود.
راهاندازی اصولی ادیتور کلاً 20 دقیقه زمان میبرد. پشت گوش انداختن آن، روزی 20 دقیقه از وقتتان را هدر میدهد.
مفهوم اصلی
محیط ادیتور برای مهندسی هوش مصنوعی به پنج بخش اساسی نیاز دارد:
پیادهسازی گامبهگام
گام 1: نصب VS Code
ادیتور پیشنهادی ما VS Code است. این نرمافزار رایگان است، روی همهی سیستمعاملها اجرا میشود، پشتیبانی درجهیکی از نوتبوکهای Jupyter دارد و اکوسیستم افزونههای آن تمام نیازهای شما در حوزهی هوش مصنوعی را برطرف میکند.
آن را از آدرس code.visualstudio.com دانلود کنید.
برای اطمینان از نصب، ترمینال را باز کنید و این دستور را بزنید:
code --version
اگر روی macOS دستور code پیدا نشد، وارد VS Code شوید، کلیدهای Cmd+Shift+P را بزنید، عبارت «Shell Command» را جستجو کنید و گزینهی «Install 'code' command in PATH» را انتخاب کنید.
گام 2: نصب افزونههای ضروری
ترمینال داخلی VS Code را باز کنید (کلید میانبر Ctrl+` در همهی سیستمعاملها) و افزونههای مهم و کاربردی هوش مصنوعی را نصب کنید:
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension ms-toolsai.jupyter
code --install-extension eamodio.gitlens
code --install-extension ms-vscode-remote.remote-ssh
code --install-extension ms-python.debugpy
code --install-extension ms-python.black-formatter
code --install-extension charliermarsh.ruff
کاربرد هر افزونه:
| افزونه | دلیل استفاده |
|---|---|
| Python | پشتیبانی از زبان، شناسایی محیطهای مجازی (virtual env)، اجرا و دیباگ |
| Pylance | بررسی سریع نوعها، تکمیل خودکار کد، شناسایی مسیر ماژولها |
| Jupyter | اجرای نوتبوکها داخل VS Code و پنل نمایش متغیرها |
| GitLens | نمایش تغییرات و افراد نویسندهی هر خط (inline git blame) |
| Remote SSH | باز کردن پوشههای سرور GPU راهدور درست مثل یک پروژهی محلی |
| Debugpy | دیباگ گامبهگام کدهای پایتون |
| Black Formatter | فرمت خودکار کد هنگام ذخیره و یکدستسازی استایل |
| Ruff | لینتر فوقسریع و شناسایی خطاهای رایج کد |
فایل code/vscode/extensions.json در این درس، فهرست کامل این پیشنهادها را دارد. کافی است آن را در مسیر .vscode/extensions.json داخل پوشهی پروژهتان کپی کنید؛ بهمحض باز کردن پوشه، خود VS Code پیشنهاد نصب آنها را به شما میدهد.
گام 3: پیکربندی تنظیمات
تنظیمات فایل code/vscode/settings.json در این درس را کپی کنید یا آنها را بهصورت دستی از طریق مسیر Settings > Open Settings (JSON) اعمال کنید.
کلیدیترین تنظیمات برای پروژههای هوش مصنوعی:
{
"python.analysis.typeCheckingMode": "basic",
"editor.formatOnSave": true,
"editor.rulers": [88, 120],
"notebook.output.scrolling": true,
"files.autoSave": "afterDelay"
}
چرا این تنظیمات مهم هستند:
- تنظیم Type checking روی basic: پیش از اجرای کد، نوع آرگومانهای اشتباه را تشخیص میدهد. با این کار، زمان عیبیابی ناهماهنگی ابعاد تنسور (tensor shape mismatches) و پارامترهای نادرست API به حداقل میرسد.
- فرمت خودکار موقع ذخیره (Format on save): دیگر لازم نیست نگران مرتب بودن کد باشید؛ Black همهچیز را مدیریت میکند.
- خطکشهای راهنما در ستون 88 و 120: ابزار Black خطوط را در ستون 88 میشکند. خطکش 120 هم نشان میدهد کامنتها و داکاسترینگها بیش از حد طولانی شدهاند.
- اسکرول خروجی نوتبوک: حلقههای آموزش مدل هزاران خط خروجی چاپ میکنند. اگر اسکرول فعال نباشد، پنل خروجی منفجر میشود و کل صفحه را پر میکند.
- ذخیرهی خودکار (Auto-save): فراموش کردن ذخیرهی فایل دستکم یک بار برایتان پیش میآید و اسکریپت آموزش مدل با کد قدیمی اجرا خواهد شد. این قابلیت جلوی چنین مشکلی را میگیرد.
گام 4: یکپارچهسازی با ترمینال
ترمینال داخلی VS Code همان جایی است که اسکریپتهای آموزش را اجرا میکنید، وضعیت پردازندههای گرافیکی را زیر نظر میگیرید و محیطهای مجازی را مدیریت میکنید.
آن را بهدرستی تنظیم کنید:
{
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.defaultProfile.linux": "bash",
"terminal.integrated.fontSize": 13,
"terminal.integrated.scrollback": 10000
}
کلیدهای میانبر کاربردی:
| عملکرد | macOS | لینوکس / ویندوز |
|---|---|---|
| باز و بسته کردن ترمینال | Ctrl+` |
Ctrl+` |
| ساخت ترمینال جدید | Ctrl+Shift+` |
Ctrl+Shift+` |
| دو نیم کردن ترمینال (Split) | Cmd+\ |
Ctrl+Shift+5 |
دو نیم کردن ترمینال بسیار کاربردی است: در یک بخش اسکریپت را اجرا میکنید و در بخش دیگر با دستور nvidia-smi -l 1 یا watch -n 1 nvidia-smi وضعیت کارت گرافیک را رصد میکنید.
گام 5: توسعه روی سرور راهدور (اتصال SSH به سیستمهای GPU)
این مورد، مهمترین افزونه برای کارهای هوش مصنوعی است. شما فرآیند آموزش مدل را روی سرورهای راهدور (ماشینهای ابری، سرورهای آزمایشگاهی، Lambda یا Vast.ai) اجرا خواهید کرد. افزونهی Remote SSH به شما اجازه میدهد فایلسیستم سرور را باز کنید، فایلها را ویرایش کنید، ترمینال اجرا کنید و کدها را طوری دیباگ کنید که گویی همهچیز روی سیستم محلی خودتان است.
مراحل راهاندازی:
- افزونهی Remote SSH را نصب کنید (در گام 2 انجام شد).
- کلیدهای
Ctrl+Shift+P(یاCmd+Shift+Pدر مک) را فشار دهید و عبارت «Remote-SSH: Connect to Host» را بنویسید. - مقدار
user@your-gpu-box-ipرا وارد کنید. - نرمافزار VS Code مؤلفهی سرور خود را بهطور خودکار روی ماشین مقصد نصب میکند.
برای اتصال بدون رمز عبور، کلیدهای SSH را بسازید:
ssh-keygen -t ed25519 -C "your-email@example.com"
ssh-copy-id user@your-gpu-box-ip
برای راحتی بیشتر، مشخصات سرور را به فایل ~/.ssh/config اضافه کنید:
Host gpu-box
HostName 203.0.113.50
User ubuntu
IdentityFile ~/.ssh/id_ed25519
ForwardAgent yes
حالا کافی است مسیر Remote-SSH: Connect to Host > gpu-box را انتخاب کنید تا اتصال بلافاصله برقرار شود.
گزینههای جایگزین
ادیتور Cursor
سایت cursor.com یک fork از VS Code است که امکانات تولید کد بر پایهی هوش مصنوعی را در دل خود دارد. این ادیتور از همان اکوسیستم افزونهها و قالب تنظیمات استفاده میکند. اگر با Cursor کار میکنید، تمام نکات این درس برای شما هم صدق میکند؛ فقط کافی است همان فایلهای settings.json و extensions.json را وارد آن کنید.
ادیتور Windsurf
سایت windsurf.com هم یکی دیگر از مشتقات VS Code مبتنی بر هوش مصنوعی است. وضعیت در اینجا هم تفاوتی ندارد: همان افزونهها، همان فرمت تنظیمات و پشتیبانی کامل از Remote SSH.
ادیتورهای Vim و Neovim
اگر همین حالا هم از Vim یا Neovim استفاده میکنید و سرعت عمل بالایی در آن دارید، در همان محیط بمانید. حداقل ابزارهای لازم برای کدنویسی پایتون در هوش مصنوعی اینها هستند:
- pyright یا pylsp برای بررسی نوع داده (از طریق Mason یا نصب دستی)
- nvim-lspconfig برای یکپارچهسازی سرور زبان (Language Server)
- jupyter-vim یا molten-nvim برای اجرای کدهایی شبیه به نوتبوک
- telescope.nvim برای جستجوی فایل و سیمبل
- none-ls.nvim همراه با black و ruff برای فرمتبندی و linting
اگر تا امروز با Vim کار نکردهاید، اصلاً الان وقت شروع آن نیست. منحنی یادگیری تند آن، مانع یادگیری مهندسی هوش مصنوعی خواهد شد. از VS Code استفاده کنید.
استفادهی عملی
با پیادهسازی این تنظیمات، روند کاری روزانهی شما اینگونه خواهد بود:
- پوشهی پروژه را در VS Code باز میکنید (یا از طریق Remote SSH به سرور GPU وصل میشوید).
- با دسترسی به تکمیل خودکار، راهنمای نوع داده و خطاهای درونخطی، کد پایتون مینویسید.
- نوتبوکهای Jupyter را مستقیماً بهصورت درونخطی با افزونهی Jupyter اجرا میکنید.
- از ترمینال داخلی برای اجرای اسکریپتهای آموزش، نصب بستهها با
uv pip installو نظارت بر GPU استفاده میکنید. - پیش از commit کردن، تغییرات را با GitLens بررسی میکنید.
تمرینها
- برنامهی VS Code و تمام افزونههای ذکرشده در گام 2 را نصب کنید.
- فایل
settings.jsonاین درس را داخل تنظیمات VS Code خود کپی کنید. - یک فایل پایتون را باز کنید و ببینید که آیا Pylance نوعها را نشان میدهد و Black هنگام ذخیره، کد را فرمت میکند یا خیر.
- اگر به یک ماشین راهدور دسترسی دارید، Remote SSH را راهاندازی کرده و یک پوشه را روی آن باز کنید.
راهنماییها
تمرین 1. افزونهها را از جدول گام 2 نصب کنید یا شناسهی هر کدام را از فایل code/vscode/extensions.json بردارید و با دستور code --install-extension <id> نصب کنید. سپس دستور code --list-extensions را اجرا کرده و شناسهها را با فایل مطابقت دهید.
تمرین 2. مسیر Settings > Open Settings (JSON) را باز کنید و محتوای code/vscode/settings.json را در آن قرار دهید. اگر فایل از قبل تنظیماتی دارد، کلیدها را با هم merge کنید طوری که ساختار JSON معتبر بماند؛ VS Code زیر فایل نامعتبر خط قرمز میکشد.
تمرین 3. تابعی با یادداشت نوع داده (type annotation) بنویسید، سپس نشانگر را روی فراخوانی آن نگه دارید؛ Pylance باید نوع استخراجشده را نشان دهد. در یک خط فاصلههای اضافی بگذارید و فایل را ذخیره کنید؛ Black باید هنگام ذخیره، آن خط را بازآرایی کند.
تمرین 4. ابتدا مشخصات سرور را در ~/.ssh/config ثبت کنید و مطمئن شوید که دستور ssh <host> در ترمینال بدون مشکل اجرا میشود. سپس از دستور Remote SSH برای اتصال استفاده کنید؛ وقتی VS Code روی ماشین راهدور اجرا شود، نام هاست روی نوار وضعیت نمایش داده میشود.
اصطلاحات کلیدی
| اصطلاح | در گفتوگوهای عامیانه | معنای دقیق فنی |
|---|---|---|
| LSP | «موتور تکمیل خودکار» | Language Server Protocol: استانداردی ارتباطی تا ادیتور بتواند اطلاعات نوع داده، تکمیل خودکار و خطایابی را از یک سرور اختصاصیِ آن زبان دریافت کند. |
| Pylance | «پلاگین پایتون» | سرور زبان پایتون اختصاصی مایکروسافت که از Pyright برای بررسی نوع داده و IntelliSense استفاده میکند. |
| Remote SSH | «کار روی سرور» | افزونهی VS Code که یک سرور سبک روی ماشین راهدور اجرا میکند و رابط کاربری را روی ادیتور محلی شما بازتاب میدهد. |
| Format on save | «پریتییر خودکار» | ادیتور با هر بار ذخیرهسازی، یک فرمتکننده (مانند Black یا Ruff) را اجرا میکند تا استایل کد همیشه یکدست بماند. |
