پرش به محتوا
← همهٔ یادداشت‌ها

دانلود مدل هوش مصنوعی روی سرور GPU: scp و rsync

·۷ دقیقه مطالعه·تیم جی‌پی‌یو

قرقرهٔ چوبی بزرگ پیچیده‌شده با کابل فیبر نوری نارنجی، کنار جاده‌ای روستایی و چمن بهاری.

دانلود مدل هوش مصنوعی روی ماشین اجاره‌ای جی‌پی‌یو باید مستقیم روی خود ماشین انجام شود، نه از لپ‌تاپ شما؛ چون ماشین‌ها خارج از ایران‌اند و با سرعت گیگابیتی به Hugging Face و Civitai وصل می‌شوند. در این آموزش سه کار را یاد می‌گیرید: فرستادن فایل به ماشین با scp و rsync، دانلود مستقیم مدل روی سرور GPU با ابزار رسمی hf، و برگرداندن خروجی به دستگاه خودتان قبل از حذف ماشین.

این راهنما برای کسی است که ماشینش را اجاره کرده و حالا می‌خواهد دیتاست، عکس‌های آموزش LoRA یا یک مدل چند گیگابایتی را جابه‌جا کند. تمرین همهٔ دستورها حدود ۲۰ دقیقه طول می‌کشد و روی یک کارت گرافیک ارزان، در زمان نوشتن این مطلب، کمتر از ۱۰ هزار تومان خرج دارد.

پیش‌نیازها

انتخاب ماشین مناسب

برای انتقال فایل، قدرت کارت گرافیک مهم نیست؛ چیزی که مهم است پهنای باند و حجم دیسک ماشین است. در https://gpyou.ir/marketplace فیلتر پهنای باند را روی بالاترین گزینه بگذارید و به ستون دیسک نگاه کنید: مدل ۱۵ گیگابایتی روی دیسک ۲۰ گیگی جا نمی‌شود.

پیشنهاد اقتصادی: RTX 3060 با ۱۲ گیگابایت VRAM، که در زمان نوشتن این مطلب از حدود ۱۴ هزار تومان در ساعت شروع می‌شود. برای تمرین این آموزش و مدل‌های سبک کاملاً کافی است. اگر می‌خواهید بعد از دانلود همان‌جا با مدل کار کنید، RTX A4000 با ۱۶ گیگابایت (از حدود ۱۹ هزار تومان در ساعت) یا RTX 3090 با ۲۴ گیگابایت (از حدود ۳۹ هزار تومان در ساعت) انتخاب بهتری است. RTX 4090 در زمان نوشتن از حدود ۱۰۳ هزار تومان در ساعت شروع می‌شود و فقط وقتی می‌ارزد که کار سنگینی در ادامه داشته باشید.

اجاره و راه‌اندازی

قالب PyTorch را انتخاب کنید؛ پایتون، CUDA و Jupyter در آن آماده است و pip کار می‌کند. اگر بعداً می‌خواهید مدل را در ComfyUI یا Ollama استفاده کنید، همان قالب را بردارید تا مدل مستقیم در پوشهٔ درست دانلود شود.

دکمهٔ اجاره را بزنید و منتظر بمانید تا وضعیت ماشین «آماده» شود. در صفحهٔ ماشین یک دستور SSH آماده با دکمهٔ کپی می‌بینید؛ آن را در ترمینال خودتان اجرا کنید و وارد ماشین شوید. سه قطعهٔ آن دستور را یادداشت کنید: نام کاربر، آدرس ماشین و شمارهٔ پورت. همهٔ دستورهای scp و rsync این پست همین سه مقدار را می‌خواهند. در ادامه به جای آن‌ها USER، HOST و PORT می‌نویسیم؛ شما مقدار واقعی صفحهٔ ماشین خودتان را بگذارید.

مرحلهٔ ۱: فرستادن فایل به ماشین با scp

scp ساده‌ترین راه برای فرستادن یک یا چند فایل است. دقت کنید که پورت در scp با حرف بزرگ -P داده می‌شود:

scp -P PORT dataset.zip USER@HOST:/root/

برای یک پوشهٔ کامل، مثلاً ۲۰ عکس آموزش LoRA، سوئیچ -r را اضافه کنید:

scp -P PORT -r ./my-photos USER@HOST:/root/my-photos

سرعت این انتقال به پهنای باند آپلود اینترنت خودتان محدود است. برای فایل‌های چند مگابایتی مشکلی نیست؛ برای فایل‌های چند گیگابایتی به مرحلهٔ ۳ بروید و فایل را مستقیم روی ماشین دانلود کنید.

مرحلهٔ ۲: انتقال قابل ادامه با rsync

اگر اینترنت وسط کار قطع شود، scp از اول شروع می‌کند؛ rsync فقط تکه‌های نفرستاده را می‌فرستد. برای پوشه‌های بزرگ یا اینترنت ناپایدار همیشه rsync بهتر است:

rsync -avz --partial --progress -e "ssh -p PORT" ./my-photos/ USER@HOST:/root/my-photos/

سوئیچ‌ها: -a ساختار و زمان فایل‌ها را حفظ می‌کند، -z قبل از ارسال فشرده می‌کند، --partial فایل نیمه‌کاره را نگه می‌دارد تا دفعهٔ بعد ادامه بدهد و --progress درصد پیشرفت را نشان می‌دهد. اسلش انتهای my-photos/ یعنی «محتوای پوشه»؛ بدون اسلش، خود پوشه داخل مقصد کپی می‌شود. اگر دستور قطع شد، همان دستور را دوباره بزنید؛ از جایی که مانده ادامه می‌دهد.

مرحلهٔ ۳: دانلود مدل هوش مصنوعی مستقیم روی ماشین

این مهم‌ترین بخش است. مدل چند گیگابایتی را از لپ‌تاپ نفرستید؛ روی ماشین دانلود کنید. ابزار رسمی Hugging Face دستور hf است که همراه کتابخانهٔ huggingface_hub نصب می‌شود. داخل ماشین:

pip install -U huggingface_hub
hf download Qwen/Qwen2.5-7B-Instruct --local-dir /root/models/qwen2.5-7b

نسخه‌های تازهٔ این کتابخانه دانلود را با موتور hf_xet انجام می‌دهند که فایل را تکه‌تکه و موازی می‌گیرد. مدل ۷ میلیاردی بالا حدود ۱۵ گیگابایت است و روی ماشینی با پهنای باند خوب معمولاً در چند دقیقه کامل می‌شود؛ چیزی که روی اینترنت خانگی ساعت‌ها طول می‌کشد.

قبل از دانلود ببینید دقیقاً چه فایل‌هایی و با چه حجمی می‌آید تا دیسک پر نشود:

hf download Qwen/Qwen2.5-7B-Instruct --dry-run

اگر فقط یک فایل می‌خواهید، مثلاً یک checkpoint برای ComfyUI، نام فایل را بعد از نام مخزن بنویسید:

hf download stabilityai/stable-diffusion-xl-base-1.0 sd_xl_base_1.0.safetensors --local-dir /root/ComfyUI/models/checkpoints

با --include می‌توانید فقط فرمت موردنظر را بگیرید و بقیهٔ فایل‌های تکراری مخزن را رد کنید:

hf download Qwen/Qwen2.5-7B-Instruct --include "*.safetensors" "*.json" --local-dir /root/models/qwen2.5-7b

بعضی مدل‌ها «gated» هستند و اول باید در صفحهٔ مدل شرایط را بپذیرید. بعد یک توکن از حساب Hugging Face بسازید و روی ماشین وارد شوید:

hf auth login

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

دانلود از Civitai و لینک‌های مستقیم

برای فایل‌های Civitai یا هر لینک مستقیم دیگر، wget کافی است. Civitai برای دانلود API Key می‌خواهد که از صفحهٔ حساب کاربری‌تان ساخته می‌شود و به انتهای لینک اضافه می‌شود:

wget --content-disposition "https://civitai.com/api/download/models/MODEL_VERSION_ID?token=YOUR_API_KEY" -P /root/ComfyUI/models/loras/

سوئیچ --content-disposition باعث می‌شود فایل با نام اصلی‌اش (مثلاً my-lora.safetensors) ذخیره شود، نه با شمارهٔ لینک.

مرحلهٔ ۴: برگرداندن خروجی به دستگاه خودتان

دیسک ماشین با حذف ماشین پاک می‌شود، پس هر تصویر، LoRA یا checkpoint را قبل از حذف بردارید. جهت دستورها فقط برعکس مرحله‌های ۱ و ۲ است:

rsync -avz --partial --progress -e "ssh -p PORT" USER@HOST:/root/ComfyUI/output/ ./output/

اگر خروجی چند گیگابایت است و سرعت دانلود اینترنتتان پایین است، اول روی ماشین فشرده‌اش کنید و یک فایل بیاورید:

tar -czf /root/output.tar.gz -C /root/ComfyUI output

سپس با scp -P PORT USER@HOST:/root/output.tar.gz . دریافتش کنید. برای فایل‌های کوچک راه سوم هم هست: لینک Jupyter در صفحهٔ ماشین را باز کنید، فایل را در مرورگر پیدا کنید و روی آن راست‌کلیک و Download بزنید. برای آپلود هم دکمهٔ Upload خود Jupyter کار می‌کند.

اگر به مشکل خوردید

  • Permission denied (publickey): کلید خصوصی شما با کلید عمومی ثبت‌شده در /account نمی‌خواند. با ssh -i ~/.ssh/id_ed25519 -p PORT USER@HOST مسیر کلید را صریح بدهید و مطمئن شوید ماشین را بعد از ثبت کلید اجاره کرده‌اید.
  • Connection refused یا timeout در scp: پورت را جا انداخته‌اید یا با -p کوچک نوشته‌اید. در scp پورت -P بزرگ است؛ در ssh و rsync -e کوچک.
  • No space left on device: دیسک ماشین پر شده. با df -h /root فضای خالی را ببینید، فایل‌های اضافه را حذف کنید، یا برای دانلود بعدی ماشینی با دیسک بزرگ‌تر اجاره کنید. قبل از هر دانلود بزرگ --dry-run بزنید.
  • دانلود نیمه‌کاره: همان دستور hf download را دوباره اجرا کنید؛ فایل‌های کامل‌شده را دوباره نمی‌گیرد. برای rsync هم همین‌طور. برای wget سوئیچ -c را اضافه کنید تا ادامه بدهد.
  • 401 یا 403 از Hugging Face: مدل gated است و یا شرایطش را نپذیرفته‌اید یا hf auth login را انجام نداده‌اید.

هزینه و صرفه‌جویی

هزینه دقیقه‌ای از کیف پول کم می‌شود و ماشین متوقف‌شده هزینه ندارد، پس منطق ساده است: تا فایل‌هایتان آماده نشده ماشین را اجاره نکنید. اول همهٔ چیزهایی را که باید بفرستید در یک پوشه جمع کنید، بعد ماشین را بالا بیاورید و با یک rsync بفرستید.

دانلود مدل را همیشه روی ماشین انجام دهید؛ فرستادن یک مدل ۱۵ گیگابایتی از اینترنت خانگی می‌تواند چند ساعت هزینهٔ ماشین اضافه کند، در حالی که همان دانلود روی ماشین چند دقیقه است. برای کارهایی که چند روز طول می‌کشد، به یاد داشته باشید که فضای ذخیره‌سازی دائمی وجود ندارد: قبل از حذف ماشین خروجی را برگردانید، و اگر باز به همان مدل نیاز داشتید، دانلود مجدد روی ماشین جدید سریع‌تر از هر راه دیگری است.

قدم بعدی

حالا که مدل روی ماشین است، در پست اجرای مدل زبانی با Ollama روی GPU ابری اجرایش کنید، یا اگر checkpoint تصویر دانلود کرده‌اید، به آموزش ComfyUI روی GPU ابری: اولین تصویر با SDXL بروید. برای کار با نوت‌بوک، Jupyter روی GPU ابری: اولین کد PyTorch شما را ببینید.

پرسش‌های متداول

چطور مدل هوش مصنوعی را روی سرور دانلود کنیم؟

روی خود ماشین، با دستور hf download نام-مخزن --local-dir مسیر از Hugging Face یا با wget از لینک مستقیم. ماشین‌های جی‌پی‌یو خارج از ایران‌اند و با سرعت گیگابیتی دانلود می‌کنند، پس مدل چند گیگابایتی معمولاً در چند دقیقه می‌آید.

فرق scp و rsync چیست؟

scp یک کپی سادهٔ یک‌باره است و اگر قطع شود از اول شروع می‌کند. rsync فقط تفاوت‌ها را می‌فرستد و با --partial می‌تواند فایل نیمه‌کاره را ادامه بدهد. برای چند فایل کوچک scp کافی است؛ برای پوشه‌های بزرگ یا اینترنت ناپایدار rsync.

آیا فایل‌های روی ماشین بعد از حذف می‌مانند؟

نه. دیسک ماشین با حذف ماشین پاک می‌شود و فضای ذخیره‌سازی دائمی یا مشترک وجود ندارد. قبل از حذف، خروجی را با rsync یا scp به دستگاه خودتان یا فضای ابری‌تان برگردانید.

چرا دانلود مدل از لپ‌تاپ به ماشین کند است؟

چون از پهنای باند آپلود اینترنت خانگی شما رد می‌شود که معمولاً چند مگابیت است. مدل را مستقیم روی ماشین دانلود کنید تا از پهنای باند گیگابیتی خود ماشین استفاده شود و هزینهٔ ساعتی اضافه ندهید.

تصویر کاور: «Optical fibre cable reel Finland» اثر Antti Leppänen، از ویکی‌مدیا کامنز، لایسنس CC BY 4.0.