_< HAMYAR TOP
REFACTOR REFACTOR
# 76
1405-04-25 08:57

مولتی استیج برای پایتون

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

python-base:latest                               3.3GB          801MB  
شد این
python-base:latest                               2.27GB          527MB

و تازه نگم که 

audio_processor:latest                                3.3GB          801MB 
به این 
audio_processor:latest                                2.28GB          527MB

البته خودمونیم تف تو پایتون که اخرش هم هرکاری میکنی 500 مگگگگ حجم میگیره البته که من دهن این داکر رو سرویس میکنم و هرچی کار با پایتون دارم میریزم روش که بصرفه برام این حجم 

اینم نسخه ای که جمنای گفت 

کاهش حجم لایه به لایهٔ ایمیج به طور مشخص روی دو محور اصلی انجام شد:

 

۱. تفکیک محیط ساخت (Build-time) از محیط اجرا (Run-time)

کتابخانه DeepFilterNet ساختاری هیبریدی (ترکیبی از Rust و Python) دارد و برای نصب، نیازمند کامپایل کدهای نیتیو است. در یک داکرفایل تک‌مرحله‌ای (Single-stage)، کانتینر نهایی باید حامل ابزارهای سنگینی مثل زنجیره ابزار Rust (rustc و cargo با حجم بیش از ۴۰۰ مگابایت) و پکیج‌های توسعه سیستم‌عامل (build-essential) باشد که پس از نصب دیگر هیچ کاربردی ندارند.

 

با پیاده‌سازی الگوی Multi-stage Build:

در مرحله اول (builder)، تمام وابستگی‌ها با فلگ --user کامپایل و در مسیر /root/.local نصب شدند.

در مرحله دوم (runner)، بدون انتقال ابزارهای کامپایل و سربارهای سیستم‌عاملی، صرفاً پوشه محتویات نهایی پایتون (.local) با دستور COPY --from به ایمیج تمیز و سبک python:slim منتقل شد.

  •  

۲. سبک‌سازی PyTorch و حذف کامل لایه‌های CUDA

پکیج پیش‌فرض PyTorch به دلیل پشتیبانی از شتاب‌دهنده‌های انویدیا (CUDA) و لایه‌های سنگین محاسبات گرافیکی، حجم بسیار بالایی دارد. از آنجا که پردازش صدا در میکروسرویس ما بر بستر پردازنده اصلی (CPU) انجام می‌شود، نیازی به این درایورها نبود.

با لغو نصب نسخه پیش‌فرض و استفاده از پرچم زیر:

--index-url https://download.pytorch.org/whl/cpu

نسخه سبک و بهینه‌شده برای CPU پایتورچ دانلود شد که این تغییر به تنهایی حدود ۱.۲ گیگابایت از حجم ایمیج را کاهش داد.