بهترین منبع داده را برای شغل آموزشی Amazon SageMaker خود انتخاب کنید. جستجوی عمودی Ai.

بهترین منبع داده را برای شغل آموزشی Amazon SageMaker خود انتخاب کنید

آمازون SageMaker یک سرویس مدیریت شده است که ساخت، آموزش و استقرار مدل های یادگیری ماشین (ML) را آسان می کند. دانشمندان داده از مشاغل آموزشی SageMaker برای آموزش آسان مدل های ML استفاده می کنند. شما لازم نیست نگران مدیریت منابع محاسباتی باشید و فقط برای زمان واقعی آموزش هزینه می پردازید. دریافت داده‌ها بخشی جدایی‌ناپذیر از هر خط لوله آموزشی است، و مشاغل آموزشی SageMaker از انواع حالت‌های ذخیره‌سازی و ورودی داده‌ها پشتیبانی می‌کنند تا با طیف وسیعی از بارهای آموزشی مطابقت داشته باشند.

این پست به شما کمک می کند تا بهترین منبع داده را برای استفاده از آموزش SageMaker ML خود انتخاب کنید. ما گزینه‌های منابع داده‌ای را که مشاغل آموزشی SageMaker به صورت بومی پشتیبانی می‌کنند، معرفی می‌کنیم. برای هر منبع داده و حالت ورودی، سهولت استفاده، ویژگی‌های عملکرد، هزینه و محدودیت‌های آن را مشخص می‌کنیم. برای کمک به شما برای شروع سریع، ما نمودار را با یک نمونه جریان تصمیم ارائه می کنیم که می توانید بر اساس ویژگی های کلیدی بار کاری خود دنبال کنید. در نهایت، ما چندین معیار را برای سناریوهای آموزشی واقعی انجام می دهیم تا پیامدهای عملی را بر هزینه و عملکرد کلی آموزش نشان دهیم.

منابع داده و حالت های ورودی SageMaker بومی

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

مکانیسم جذب آموزش SageMaker به طور بومی با سه سرویس ذخیره سازی مدیریت شده AWS ادغام می شود:

  • سرویس ذخیره سازی ساده آمازون (Amazon S3) یک سرویس ذخیره سازی شی است که مقیاس پذیری، در دسترس بودن داده ها، امنیت و عملکرد پیشرو در صنعت را ارائه می دهد.
  • آمازون FSx برای Luster یک فضای ذخیره سازی مشترک کاملاً مدیریت شده با مقیاس پذیری و عملکرد سیستم فایل محبوب Luster است. معمولاً به یک سطل S3 موجود متصل است.
  • سیستم فایل الاستیک آمازون (Amazon EFS) یک سیستم فایل مشترک با هدف کلی، مقیاس پذیر و بسیار در دسترس با سطوح قیمتی متعدد است. Amazon EFS بدون سرور است و با افزودن و حذف فایل ها به طور خودکار رشد و کوچک می شود.

آموزش SageMaker به اسکریپت آموزشی شما اجازه می دهد تا به مجموعه داده های ذخیره شده در Amazon S3، FSx for Lustre یا Amazon EFS دسترسی داشته باشد، گویی در یک سیستم فایل محلی (از طریق یک رابط سیستم فایل سازگار با POSIX) در دسترس است.

با آمازون S3 به عنوان منبع داده، می توانید بین حالت فایل، حالت فایل سریع و حالت لوله انتخاب کنید:

  • حالت فایل – SageMaker یک مجموعه داده از Amazon S3 را در ذخیره‌سازی نمونه ML کپی می‌کند، که پیوست شده است. فروشگاه بلوک الاستیک آمازون حجم (Amazon EBS) یا حجم NVMe SSD، قبل از شروع اسکریپت آموزشی شما.
  • حالت FastFile – SageMaker یک مجموعه داده موجود در Amazon S3 را به عنوان یک سیستم فایل POSIX در نمونه آموزشی نمایش می دهد. فایل‌های مجموعه داده از آمازون S3 در صورت درخواست پخش می‌شوند و اسکریپت آموزشی شما آنها را می‌خواند.
  • حالت لوله – SageMaker یک مجموعه داده موجود در آمازون S3 را به نمونه آموزشی ML به عنوان یک لوله یونیکس استریم می کند، که در صورت درخواست از Amazon S3 پخش می شود زیرا اسکریپت آموزشی شما داده ها را از لوله می خواند.

با FSx for Luster یا Amazon EFS به عنوان منبع داده، SageMaker سیستم فایل را قبل از شروع اسکریپت آموزشی شما نصب می کند.

کانال های ورودی آموزش

هنگام راه اندازی یک کار آموزشی SageMaker، می توانید حداکثر 20 مورد مدیریت شده را مشخص کنید کانال های ورودی آموزش. می‌توانید کانال‌ها را به‌عنوان یک واحد انتزاعی در نظر بگیرید تا به کار آموزشی بگویید چگونه و از کجا داده‌هایی را که در اختیار کد الگوریتم قرار می‌گیرد برای خواندن از مسیر سیستم فایل (به عنوان مثال، /opt/ml/input/data/input-channel-name) در نمونه ML. کانال‌های آموزشی انتخاب‌شده به‌عنوان بخشی از فراداده‌های شغلی آموزشی به‌منظور فعال کردن ردیابی اصل و نسب مدل کامل برای موارد استفاده مانند تکرارپذیری مشاغل آموزشی یا اهداف حاکمیت مدل، ضبط می‌شوند.

برای استفاده از آمازون S3 به عنوان منبع داده خود، یک تعریف می کنید ورودی آموزش برای مشخص کردن موارد زیر:

  • حالت ورودی شما (حالت File، FastFile یا Pipe)
  • توزیع و جابجایی پیکر بندی
  • An S3DataType به عنوان یکی از سه روش برای تعیین اشیاء در آمازون S3 که مجموعه داده شما را تشکیل می دهند:

از طرف دیگر، برای FSx برای Luster یا Amazon EFS، a را تعریف می کنید FileSystemInput.

نمودار زیر پنج کار آموزشی را نشان می دهد که هر کدام با یک منبع داده متفاوت و ترکیب حالت ورودی پیکربندی شده اند:

بهترین منبع داده را برای شغل آموزشی Amazon SageMaker خود انتخاب کنید. جستجوی عمودی Ai.

منابع داده و حالت های ورودی

بخش‌های زیر به تفاوت‌های بین Amazon S3 (حالت فایل، حالت FastFile و حالت Pipe)، FSx برای Lustre و Amazon EFS به عنوان مکانیسم‌های جذب SageMaker اشاره می‌کنند.

حالت فایل آمازون S3

حالت فایل حالت ورودی پیش فرض است (اگر به صراحت یکی را مشخص نکرده باشید)، و استفاده از آن ساده تر است. وقتی از این گزینه ورودی استفاده می‌کنید، SageMaker قبل از راه‌اندازی آموزش مدل، مجموعه داده را از Amazon S3 در ذخیره‌سازی نمونه آموزشی ML (Amazon EBS یا NVMe محلی بسته به نوع نمونه) از طرف شما دانلود می‌کند تا اسکریپت آموزشی بتواند مجموعه داده را از سیستم فایل محلی در این مورد، نمونه باید فضای ذخیره‌سازی کافی داشته باشد تا کل مجموعه داده را در خود جای دهد.

شما مجموعه داده را برای حالت فایل با ارائه پیشوند S3، فایل مانیفست یا فایل مانیفست تقویت شده پیکربندی می کنید.

زمانی باید از پیشوند S3 استفاده کنید که تمام فایل های مجموعه داده شما در یک پیشوند مشترک S3 قرار دارند (زیرپوشه ها مشکلی ندارند).

فایل مانیفست فایل های شامل مجموعه داده شما را فهرست می کند. شما معمولاً زمانی از یک مانیفست استفاده می کنید که یک کار پیش پردازش داده یک فایل مانیفست را منتشر می کند، یا زمانی که فایل های مجموعه داده شما در چند پیشوند S3 پخش می شوند. یک مانیفست تقویت‌شده یک فایل خط JSON است که در آن هر خط حاوی لیستی از ویژگی‌ها، مانند ارجاع به یک فایل در آمازون S3، در کنار ویژگی‌های اضافی، عمدتاً برچسب‌ها است. موارد استفاده آن شبیه به مانیفست است.

حالت فایل سازگار با حالت محلی SageMaker (شروع ظرف آموزش SageMaker به صورت تعاملی در چند ثانیه). برای آموزش توزیع‌شده، می‌توانید مجموعه داده‌ها را در چندین نمونه به اشتراک بگذارید ShardedByS3Key گزینه.

سرعت دانلود حالت فایل به اندازه مجموعه داده، متوسط ​​اندازه فایل و تعداد فایل ها بستگی دارد. به عنوان مثال، هرچه مجموعه داده بزرگتر باشد (یا فایل های بیشتری داشته باشد)، مرحله دانلود طولانی تر است، که در طی آن منبع محاسباتی نمونه به طور موثر بیکار می ماند. هنگام آموزش با موارد Spot، هر بار که کار پس از یک وقفه Spot از سر گرفته می شود، مجموعه داده دانلود می شود. به طور معمول، دانلود داده ها با سرعت تقریبی 200 مگابایت بر ثانیه برای فایل های بزرگ (مثلاً 5 دقیقه/50 گیگابایت) انجام می شود. اینکه آیا این سربار راه‌اندازی قابل قبول است یا نه، در درجه اول به مدت کلی کار آموزشی شما بستگی دارد، زیرا یک مرحله آموزشی طولانی‌تر به معنای فاز دانلود نسبتاً کوچک‌تر است.

حالت آمازون S3 FastFile

حالت FastFile اشیاء S3 را از طریق یک رابط سیستم فایل منطبق با POSIX در معرض دید قرار می‌دهد، گویی که فایل‌ها در دیسک محلی نمونه آموزشی شما موجود هستند، و هنگامی که داده‌ها توسط اسکریپت آموزشی مصرف می‌شود، محتوای آنها را برحسب تقاضا پخش می‌کند. این بدان معناست که مجموعه داده‌های شما دیگر نیازی ندارد که در فضای ذخیره‌سازی نمونه آموزشی قرار بگیرند، و لازم نیست قبل از شروع آموزش منتظر بمانید تا مجموعه داده در نمونه آموزشی دانلود شود.

برای تسهیل این امر، SageMaker تمام ابرداده های شی ذخیره شده در پیشوند مشخص شده S3 را قبل از اجرای اسکریپت آموزشی فهرست می کند. این ابرداده برای ایجاد یک فقط خواندنی استفاده می شود FUSE (سیستم فایل در فضای کاربری) که از طریق اسکریپت آموزشی شما در دسترس است /opt/ml/data/training-channel-name. لیست کردن اشیاء S3 بدون در نظر گرفتن اندازه آنها به سرعت 5,500 شی در ثانیه اجرا می شود. این بسیار سریع‌تر از دانلود فایل‌ها از قبل است، همانطور که در حالت فایل وجود دارد. در حالی که اسکریپت آموزشی شما در حال اجرا است، می‌تواند فایل‌ها را طوری فهرست کند یا بخواند که گویی به صورت محلی در دسترس هستند. هر عملیات خواندن به سرویس FUSE واگذار می شود، که درخواست های GET را به آمازون S3 پراکسی می کند تا محتوای فایل واقعی را به تماس گیرنده تحویل دهد. مانند یک سیستم فایل محلی، FastFile فایل‌ها را به عنوان بایت در نظر می‌گیرد، بنابراین نسبت به فرمت‌های فایل آگنوستیک است. حالت FastFile می تواند در هنگام خواندن پی در پی فایل های بزرگ با استفاده از چندین کارگر به توان عملیاتی بیش از یک گیگابایت بر ثانیه برسد. می‌توانید از FastFile برای خواندن فایل‌های کوچک یا بازیابی محدوده‌های تصادفی بایت استفاده کنید، اما باید انتظار خروجی کمتری برای چنین الگوهای دسترسی داشته باشید. می‌توانید الگوی دسترسی خواندن خود را با سریال‌سازی بسیاری از فایل‌های کوچک در محفظه‌های فایل بزرگ‌تر بهینه کنید و آنها را به‌طور متوالی بخوانید.

FastFile در حال حاضر فقط از پیشوندهای S3 پشتیبانی می کند (بدون پشتیبانی از مانیفست و مانیفست تقویت شده)، و حالت FastFile با حالت محلی SageMaker سازگار است.

حالت آمازون S3 Pipe

حالت لوله یکی دیگر از حالت های پخش است که تا حد زیادی با حالت جدیدتر و ساده تر FastFile جایگزین شده است.

با حالت Pipe، داده‌ها از آمازون S3 از قبل با همزمانی و توان عملیاتی بالا واکشی می‌شوند و به لوله‌های FIFO به نام یونیکس منتقل می‌شوند. هر لوله فقط با یک فرآیند خوانده می شود. یک برنامه افزودنی خاص SageMaker برای TensorFlow به راحتی حالت Pipe را در بارگذار داده بومی TensorFlow ادغام می کند برای پخش متن، TFRecords، یا فرمت های فایل RecordIO. حالت لوله همچنین از اشتراک گذاری مدیریت شده و به هم زدن داده ها پشتیبانی می کند.

FSx برای Luster

FSx for Luster می‌تواند تا صدها گیگابایت بر ثانیه ظرفیت و میلیون‌ها IOPS با بازیابی فایل با تأخیر کم مقیاس شود.

هنگام شروع یک کار آموزشی، SageMaker سیستم فایل FSx for Luster را به سیستم فایل نمونه آموزشی نصب می کند، سپس اسکریپت آموزشی شما را شروع می کند. خود نصب یک عملیات نسبتا سریع است که به اندازه مجموعه داده ذخیره شده در FSx برای Lustre بستگی ندارد.

در بسیاری از موارد، شما یک FSx for Luster فایل سیستم و آن را به یک سطل S3 و پیشوند پیوند دهید. هنگامی که به یک سطل S3 به عنوان منبع پیوند داده می شود، فایل ها با تنبلی در سیستم فایل بارگذاری می شوند زیرا اسکریپت آموزشی شما آنها را می خواند. این بدان معنی است که درست پس از اولین دوره از اولین دوره آموزشی شما، کل مجموعه داده از Amazon S3 به FSx برای ذخیره سازی Luster کپی می شود (با فرض اینکه یک دوره به عنوان یک جاروی کامل با توجه به نمونه های آموزشی تعریف شده است، و FSx اختصاص داده شده برای ذخیره سازی درخشش به اندازه کافی بزرگ است). این امکان دسترسی به فایل با تاخیر کم را برای هر دوره بعدی و مشاغل آموزشی با همان مجموعه داده را فراهم می کند.

شما نیز می توانید فایل ها را از قبل در سیستم فایل بارگذاری کنید قبل از شروع کار آموزشی، که شروع سرد ناشی از بارگذاری تنبل را کاهش می دهد. همچنین می توان چندین کار آموزشی را به صورت موازی اجرا کرد که توسط همان FSx برای سیستم فایل Luster سرویس می شوند. برای دسترسی به FSx برای Lustre، شغل آموزشی شما باید به VPC متصل شود (نگاه کنید به تنظیمات VPCConfig) که به راه اندازی و مشارکت DevOps نیاز دارد. برای جلوگیری از هزینه های انتقال داده، سیستم فایل از یک منطقه در دسترس استفاده می کند و شما باید این شناسه منطقه دسترسی را هنگام اجرای کار آموزشی مشخص کنید. از آنجایی که از Amazon S3 به عنوان ذخیره‌سازی بلندمدت داده‌های خود استفاده می‌کنید، توصیه می‌کنیم FSx for Luster خود را با فضای ذخیره‌سازی Scratch 2 به‌عنوان یک انتخاب ذخیره‌سازی مقرون‌به‌صرفه و کوتاه‌مدت برای توان عملیاتی بالا، به‌کارگیری سطح پایه 200 مگابایت بر ثانیه و سرعت 1300 مگابایت بر ثانیه در هر ترابایت فضای ذخیره سازی ارائه شده.

با سیستم فایل FSx for Luster خود که دائماً در حال اجرا است، می‌توانید کارهای آموزشی جدید را بدون انتظار برای ایجاد یک سیستم فایل شروع کنید، و لازم نیست نگران شروع سرد در همان دوره اول باشید (زیرا فایل‌ها هنوز می‌توانند در حافظه پنهان ذخیره شوند. سیستم فایل FSx for Luster). نقطه ضعف در این سناریو هزینه اضافی مرتبط با حفظ سیستم فایل در حال اجرا است. از طرف دیگر، می‌توانید سیستم فایل را قبل و بعد از هر کار آموزشی ایجاد و حذف کنید (احتمالاً با خودکارسازی اسکریپت برای کمک)، اما مقداردهی اولیه یک FSx برای سیستم فایل Luster، که متناسب با تعداد فایل‌هایی است که در آن نگهداری می‌شود، زمان می‌برد. برای مثال، فهرست کردن تقریباً 2 میلیون شیء از Amazon S3 حدود یک ساعت طول می‌کشد.

آمازون EFS

اگر داده‌های آموزشی شما قبلاً در Amazon EFS وجود دارد، به دلیل موارد استفاده در کنار آموزش ML، توصیه می‌کنیم از Amazon EFS استفاده کنید. برای استفاده از Amazon EFS به عنوان منبع داده، داده‌ها باید قبل از آموزش در Amazon EFS باشند. SageMaker سیستم فایل EFS مشخص شده آمازون را روی نمونه آموزشی نصب می کند، سپس اسکریپت آموزشی شما را شروع می کند. هنگام پیکربندی سیستم فایل آمازون EFS، باید بین حالت عملکرد پیش‌فرض عمومی هدف، که برای تأخیر بهینه‌سازی شده است (برای فایل‌های کوچک خوب است) و حالت عملکرد حداکثر ورودی/خروجی، که می‌تواند به سطوح بالاتری از توان عملیاتی کل مقیاس‌بندی شود، یکی را انتخاب کنید. عملیات در ثانیه (برای مشاغل آموزشی با بسیاری از کارگران I/O بهتر است). برای کسب اطلاعات بیشتر به ادامه مطلب مراجعه نمایید استفاده از حالت عملکرد مناسب.

علاوه بر این، می توانید بین دو گزینه توان اندازه گیری شده انتخاب کنید: توان عملیاتی انفجاری و توان عملیاتی تامین شده. خروجی انفجاری برای یک سیستم فایل 1 ترابایتی، پایه 150 مگابایت بر ثانیه را فراهم می کند، در حالی که می تواند برای مدت 300 ساعت در روز به 12 مگابایت بر ثانیه برسد. اگر به توان عملیاتی پایه بالاتری نیاز دارید، یا متوجه شدید که اعتبارات پشت سر هم بارها تمام می شود، می توانید اندازه سیستم فایل را افزایش دهید یا به توان عملیاتی ارائه شده تغییر دهید. در توان عملیاتی ارائه شده، شما برای خروجی پایه مورد نظر تا حداکثر 3072 مگابایت بر ثانیه خواندن پرداخت می کنید.

شغل آموزشی شما باید به یک VPC متصل شود (نگاه کنید به تنظیمات VPCConfig) برای دسترسی به Amazon EFS.

انتخاب بهترین منبع داده

بهترین منبع داده برای کار آموزشی شما به ویژگی‌های بار کاری مانند اندازه مجموعه داده، فرمت فایل، اندازه متوسط ​​فایل، مدت زمان آموزش، الگوی خواندن متوالی یا تصادفی بارگذار داده و اینکه مدل شما با چه سرعتی می‌تواند داده‌های آموزشی را مصرف کند، بستگی دارد.

فلوچارت زیر دستورالعمل هایی را برای کمک به شما برای شروع ارائه می دهد:
بهترین منبع داده را برای شغل آموزشی Amazon SageMaker خود انتخاب کنید. جستجوی عمودی Ai.

زمان استفاده از Amazon EFS

اگر مجموعه داده شما در اصل در Amazon EFS ذخیره می شود، ممکن است یک برنامه پیش پردازش یا حاشیه نویسی داشته باشید که از Amazon EFS برای ذخیره سازی استفاده می کند. شما به راحتی می توانید یک کار آموزشی پیکربندی شده با یک کانال داده که به سیستم فایل آمازون EFS اشاره دارد اجرا کنید (برای اطلاعات بیشتر، به سرعت آموزش در Amazon SageMaker را با استفاده از Amazon FSx برای سیستم های فایل Luster و Amazon EFS افزایش دهید). اگر عملکرد به اندازه‌ای که انتظار داشتید خوب نیست، گزینه‌های بهینه‌سازی خود را با آن بررسی کنید راهنمای عملکرد آمازون EFS، یا سایر حالت های ورودی را در نظر بگیرید.

از حالت فایل برای مجموعه داده های کوچک استفاده کنید

اگر مجموعه داده در Amazon S3 ذخیره شده است و حجم کلی آن نسبتاً کم است (به عنوان مثال، کمتر از 50 تا 100 گیگابایت)، سعی کنید از حالت فایل استفاده کنید.. هزینه بارگیری مجموعه داده 50 گیگابایتی می تواند بر اساس تعداد کل فایل ها متفاوت باشد (به عنوان مثال، اگر به قطعات 5 مگابایتی تقسیم شود، حدود 100 دقیقه طول می کشد). اینکه آیا این سربار راه‌اندازی قابل قبول است یا نه، در درجه اول به مدت کلی کار آموزشی شما بستگی دارد، زیرا یک مرحله آموزشی طولانی‌تر به معنای فاز دانلود نسبتاً کوچک‌تر است.

سریال کردن بسیاری از فایل های کوچک با هم

اگر اندازه مجموعه داده شما کوچک است (کمتر از 50 تا 100 گیگابایت)، اما از تعداد زیادی فایل کوچک (کمتر از 50 مگابایت) تشکیل شده است، سربار دانلود حالت فایل افزایش می یابد، زیرا هر فایل باید به صورت جداگانه از Amazon S3 دانلود شود. حجم نمونه آموزشی برای کاهش این سربار و به طور کلی برای سرعت بخشیدن به پیمایش داده ها، با استفاده از فرمت های فایل، گروه های فایل های کوچکتر را به کانتینرهای فایل کمتر (مانند 150 مگابایت در هر فایل) سریالی کنید. TFRecord برای تنسورفلو، مجموعه داده های وب برای PyTorch یا RecordIO برای MXNet. این فرمت‌ها به بارگذار داده‌های شما نیاز دارند که از طریق مثال‌ها به صورت متوالی تکرار شوند. همچنان می‌توانید با مرتب کردن تصادفی فهرست فایل‌های TFRecord پس از هر دوره، و با نمونه‌برداری تصادفی داده‌ها از یک بافر محلی، داده‌های خود را به هم بزنید (به موارد زیر مراجعه کنید. مثال تنسورفلو).

زمان استفاده از حالت FastFile

برای مجموعه داده‌های بزرگتر با فایل‌های بزرگتر (بیش از 50 مگابایت)، اولین گزینه این است که حالت FastFile را امتحان کنید، که استفاده از FSx برای Luster ساده‌تر است، زیرا نیازی به ایجاد یک سیستم فایل یا اتصال به VPC ندارد. حالت FastFile برای ظروف فایل های بزرگ (بیش از 150 مگابایت) ایده آل است و همچنین ممکن است با فایل های بیش از 50 مگابایت به خوبی عمل کند. از آنجایی که حالت FastFile یک رابط POSIX ارائه می‌کند، از خواندن تصادفی (خواندن محدوده‌های بایت غیر متوالی) پشتیبانی می‌کند. با این حال، این مورد استفاده ایده‌آل نیست و احتمالاً توان عملیاتی شما کمتر از خواندن‌های متوالی خواهد بود. با این حال، اگر یک مدل ML نسبتاً بزرگ و فشرده از نظر محاسباتی دارید، حالت FastFile ممکن است همچنان بتواند پهنای باند مؤثر خط لوله آموزشی را اشباع کند و منجر به گلوگاه ورودی/خروجی نشود. شما باید آزمایش کنید و ببینید. خوشبختانه، تغییر از حالت فایل به FastFile (و برگشت) به آسانی اضافه کردن (یا حذف) است. input_mode='FastFile' پارامتر هنگام تعریف کانال ورودی با استفاده از SageMaker Python SDK:

sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER, input_mode='FastFile') 

هیچ کد یا پیکربندی دیگری نیاز به تغییر ندارد.

چه زمانی از FSx برای Luster استفاده کنیم

اگر مجموعه داده شما برای حالت فایل خیلی بزرگ است یا فایل های کوچک زیادی دارد (که نمی توانید به راحتی آنها را سریال کنید)، یا الگوی دسترسی خواندن تصادفی دارید، FSx for Luster گزینه خوبی برای بررسی است. سیستم فایل آن به صدها گیگابایت بر ثانیه توان عملیاتی و میلیون ها IOPS می رسد، که زمانی ایده آل است که فایل های کوچک زیادی دارید. با این حال، همانطور که قبلاً گفته شد، به مشکلات شروع سرد به دلیل بارگذاری تنبل و هزینه های بالای راه اندازی و مقداردهی اولیه فایل سیستم فایل FSx برای Luster توجه داشته باشید.

ملاحظات هزینه

برای اکثر مشاغل آموزش ML، به ویژه مشاغلی که از پردازنده‌های گرافیکی یا تراشه‌های ML ساخته شده استفاده می‌کنند، بیشتر هزینه آموزش مربوط به ثانیه‌های قابل پرداخت نمونه آموزش ML است. گیگابایت حافظه در ماه، درخواست‌های API و توان عملیاتی ارائه شده هزینه‌های اضافی هستند که مستقیماً با منابع داده‌ای که استفاده می‌کنید مرتبط هستند.

گیگابایت حافظه در ماه

گیگابایت فضای ذخیره‌سازی در ماه می‌تواند برای مجموعه داده‌های بزرگ‌تر، مانند ویدیوها، داده‌های حسگر LiDAR، و گزارش‌های پیشنهادی بی‌درنگ AdTech قابل توجه باشد. به عنوان مثال، ذخیره 1 ترابایت در Amazon S3 Intelligent-Tiering طبقه دسترسی مکرر 23 دلار در ماه هزینه دارد. افزودن سیستم فایل FSx for Luster در بالای Amazon S3 هزینه های اضافی را به همراه دارد. به عنوان مثال، ایجاد یک فایل سیستم 1.2 ترابایتی از نوع Scratch 2 با پشتیبانی از SSD با غیرفعال کردن فشرده سازی داده ها، 168 دلار اضافی در ماه هزینه دارد (140 دلار / ترابایت در ماه).

با آمازون S3 و آمازون EFS، شما فقط برای آنچه استفاده می کنید هزینه می پردازید، به این معنی که بر اساس اندازه مجموعه داده واقعی هزینه دریافت می کنید. با FSx for Lustre، شما با اندازه سیستم فایل ارائه شده (حداقل 1.2 ترابایت) هزینه دریافت می کنید. هنگام اجرای نمونه های ML با حجم های EBS، Amazon EBS مستقل از نمونه ML شارژ می شود. این معمولاً هزینه بسیار کمتری در مقایسه با هزینه اجرای نمونه است. به عنوان مثال، اجرای یک نمونه ml.p3.2xlarge با حجم 100 گیگابایتی EBS برای 1 ساعت هزینه 3.825 دلار برای نمونه و 0.02 دلار برای حجم EBS دارد.

درخواست های API و هزینه توان عملیاتی ارائه شده

در حالی که کار آموزشی شما در حال فشرده شدن در مجموعه داده ها است، با ارسال درخواست های Amazon S3 API فایل ها را فهرست کرده و واکشی می کند. به عنوان مثال، هر میلیون درخواست GET 0.4 دلار قیمت دارد (با کلاس Intelligent-Tiering). برای پهنای باند داخل و خارج آمازون S3 نباید هیچ هزینه ای برای انتقال داده انتظار داشته باشید، زیرا آموزش در یک منطقه در دسترس انجام می شود.

هنگام استفاده از FSx برای Luster که به سطل S3 پیوند داده شده است، برای خواندن داده‌هایی که هنوز در سیستم فایل ذخیره نشده‌اند، هزینه‌های درخواست آمازون S3 API را متحمل می‌شوید، زیرا FSx For Luster درخواست را به Amazon S3 پراکسی می‌کند (و نتیجه را در حافظه پنهان ذخیره می‌کند. ). هیچ هزینه درخواست مستقیمی برای FSx برای خود Luster وجود ندارد. هنگامی که از یک سیستم فایل FSx for Luster استفاده می کنید، با اجرای کار آموزشی خود متصل به همان منطقه دسترسی که سیستم فایل را در آن تهیه کرده اید، از هزینه های انتقال داده در منطقه دسترسی متقابل اجتناب کنید. گیگابایت در ماه

مطالعه موردی عملکرد

برای نشان دادن ملاحظات عملکرد آموزشی که قبلاً ذکر شد، ما یک سری معیارها را برای استفاده واقعی در حوزه بینایی رایانه انجام دادیم. معیار (و نکات اولیه) از این بخش ممکن است برای همه سناریوها قابل اجرا نباشد و تحت تأثیر عوامل از پیش تعیین شده مختلفی است که ما استفاده کردیم، مانند DNN. ما آزمایشاتی را برای 12 ترکیب از موارد زیر انجام دادیم:

  • حالت های ورودی – FSx برای Lustre، حالت فایل، حالت FastFile
  • اندازه مجموعه داده - مجموعه داده کوچکتر (1 گیگابایت)، مجموعه داده بزرگتر (54 گیگابایت)
  • حجم فایل – فایل های کوچکتر (JPG، تقریباً 39 کیلوبایت)، فایل های بزرگتر (TFRecord، تقریباً 110 مگابایت)

برای این مطالعه موردی، ما پرکاربردترین حالت‌های ورودی را انتخاب کردیم و بنابراین حالت EFS و Pipe آمازون را حذف کردیم.

معیارهای مطالعه موردی به‌عنوان کارهای آموزشی سرتاسری SageMaker TensorFlow در یک نمونه ml.p3.2xlarge تک GPU طراحی شده‌اند. ما ResNet-50 مشهور را به‌عنوان مدل ستون فقرات خود برای کار طبقه‌بندی و Caltech-256 را به عنوان مجموعه داده آموزشی کوچک‌تر (که 50 بار تکرار کردیم تا نسخه داده بزرگ‌تر آن را ایجاد کنیم) انتخاب کردیم. ما آموزش را برای یک دوره انجام دادیم، که به عنوان نمونه های آموزشی به عنوان یک جاروی کامل تعریف شده است.

نمودارهای زیر کل زمان قابل پرداخت مشاغل آموزشی SageMaker را برای هر سناریو معیار نشان می دهد. کل زمان کار شامل دانلود، آموزش و مراحل دیگر است (مانند راه‌اندازی کانتینر و آپلود مصنوعات مدل آموزش‌دیده در آمازون S3). زمان‌های قابل پرداخت کوتاه‌تر به مشاغل آموزشی سریع‌تر و ارزان‌تر تبدیل می‌شود.

بهترین منبع داده را برای شغل آموزشی Amazon SageMaker خود انتخاب کنید. جستجوی عمودی Ai.

بیایید ابتدا بحث کنیم سناریو A و سناریو C، که به راحتی تفاوت عملکرد بین حالت های ورودی را هنگامی که مجموعه داده از فایل های کوچک زیادی تشکیل شده است نشان می دهد.

سناریو A (فایل های کوچکتر، مجموعه داده کوچکتر) نشان می دهد که کار آموزش با سیستم فایل FSx for Luster کمترین زمان قابل پرداخت را دارد. کوتاه ترین مرحله دانلود را دارد و مرحله آموزش آن به سرعت حالت File اما سریعتر از FastFile است. FSx for Luster برنده این آزمون تک دوره است. با این اوصاف، حجم کاری مشابه اما با چند دوره را در نظر بگیرید—سربار نسبی حالت File به دلیل مرحله دانلود با اضافه شدن دوره های بیشتر کاهش می یابد. در این مورد، ما حالت فایل را به دلیل سهولت استفاده از آن ترجیح می دهیم. علاوه بر این، ممکن است متوجه شوید که استفاده از حالت فایل و پرداخت 100 ثانیه صورتحساب اضافی، انتخاب بهتری نسبت به پرداخت و تهیه یک سیستم فایل FSx برای Luster است.

سناریوی ج (فایل های کوچکتر، مجموعه داده بزرگتر) FSx برای Luster را به عنوان سریعترین حالت، با تنها 5,000 ثانیه از کل زمان قابل پرداخت، نشان می دهد. همچنین کوتاه‌ترین مرحله دانلود را دارد، زیرا نصب FSx for Luster به تعداد فایل‌های سیستم فایل (در این مورد 1.5 میلیون فایل) بستگی ندارد. سربار دانلود FastFile نیز کم است. فقط ابرداده فایل های موجود در پیشوند سطل S3 مشخص شده را واکشی می کند، در حالی که محتوای فایل ها در مرحله آموزش خوانده می شود. حالت فایل کندترین حالت است که قبل از شروع آموزش، 10,000 ثانیه برای دانلود کل مجموعه داده از قبل صرف می شود. وقتی به مرحله آموزش نگاه می کنیم، FSx برای Luster و حالت File عملکرد عالی مشابهی را نشان می دهند. در مورد حالت FastFile، هنگام پخش مستقیم فایل‌های کوچک‌تر از آمازون S3، هزینه ارسال یک درخواست GET جدید برای هر فایل نسبت به مدت زمان کل انتقال فایل قابل توجه می‌شود (علیرغم استفاده از یک بارکننده داده بسیار موازی با بافر واکشی اولیه). این منجر به یک توان عملیاتی کمتر برای حالت FastFile می شود که یک گلوگاه ورودی/خروجی برای کار آموزشی ایجاد می کند. FSx برای Luster برنده واضح این سناریو است.

سناریوهای B و D تفاوت عملکرد را در حالت‌های ورودی نشان می‌دهد زمانی که مجموعه داده از فایل‌های بزرگ‌تر کمتری تشکیل شده است. خواندن متوالی با استفاده از فایل‌های بزرگ‌تر معمولاً منجر به عملکرد بهتر ورودی/خروجی می‌شود، زیرا امکان بافر مؤثر و کاهش تعداد عملیات I/O را فراهم می‌کند.

سناریو B (فایل‌های بزرگ‌تر، مجموعه داده‌های کوچک‌تر) زمان مرحله آموزش مشابه را برای همه حالت‌ها نشان می‌دهد (گواهی می‌دهد که آموزش به I/O-Bound نیست). در این سناریو، ما حالت FastFile را به دلیل مرحله دانلود کوتاهتر به حالت File ترجیح می دهیم و به دلیل سهولت استفاده از حالت اول، FastFile را به FSx برای Luster ترجیح می دهیم.

سناریوی D (فایل‌های بزرگ‌تر، مجموعه داده‌های بزرگ‌تر) زمان‌های قابل پرداخت کل نسبتاً مشابهی را برای هر سه حالت نشان می‌دهد. مرحله دانلود حالت فایل طولانی تر از FSx برای Luster و FastFile است. حالت فایل قبل از شروع مرحله آموزش، کل مجموعه داده (54 گیگابایت) را از Amazon S3 به نمونه آموزشی دانلود می کند. هر سه حالت زمان مشابهی را در مرحله آموزش می‌گذرانند، زیرا همه حالت‌ها می‌توانند داده‌ها را به اندازه کافی سریع واکشی کنند و به GPU محدود می‌شوند. اگر از نمونه‌های ML با منابع CPU یا GPU اضافی مانند ml.p4d.24xlarge استفاده کنیم، خروجی ورودی/خروجی داده مورد نیاز برای اشباع منابع محاسباتی افزایش می‌یابد. در این موارد، ما می‌توانیم انتظار داشته باشیم که FastFile و FSx for Luster با موفقیت توان عملیاتی خود را مقیاس‌بندی کنند (اما، FSx برای خروجی Luster به اندازه سیستم فایل ارائه شده بستگی دارد). توانایی حالت فایل برای مقیاس‌بندی توان عملیاتی خود به توان حجم دیسک متصل به نمونه بستگی دارد. به عنوان مثال، نمونه‌های دارای پشتوانه آمازون EBS (مانند ml.p3.2xlarge، ml.p3.8xlarge و ml.p3.16xlarge) به حداکثر توان عملیاتی 250 مگابایت بر ثانیه محدود می‌شوند، در حالی که نمونه‌های محلی با پشتیبانی NVMe (مانند ml. g5.* یا ml.p4d.24xlarge) می تواند توان عملیاتی بسیار بیشتری را در خود جای دهد.

به طور خلاصه، ما معتقدیم FastFile برنده این سناریو است زیرا سریعتر از حالت File است، و به همان سرعت FSx برای Lustre است، اما استفاده از آن ساده تر است، هزینه کمتری دارد و به راحتی می تواند توان عملیاتی خود را در صورت نیاز افزایش دهد.

علاوه بر این، اگر مجموعه داده بسیار بزرگتری داشتیم (چند ترابایت اندازه)، حالت File ساعت های زیادی را صرف دانلود مجموعه داده قبل از شروع آموزش می کرد، در حالی که FastFile می توانست با سرعت قابل توجهی آموزش را شروع کند.

دریافت داده های خود را بیاورید

منبع داده بومی SageMaker با اکثر سناریوهای آموزشی ML مطابقت دارد اما نه همه. موقعیت‌هایی که ممکن است لازم باشد به دنبال گزینه‌های دریافت داده‌های دیگر بگردید، می‌تواند شامل خواندن مستقیم داده‌ها از یک محصول ذخیره‌سازی شخص ثالث باشد (با فرض اینکه صادرات آسان و به‌موقع به آمازون S3 امکان‌پذیر نباشد)، یا داشتن یک نیاز قوی برای همان آموزش. اسکریپت بدون تغییر روی SageMaker و ابر محاسبه الاستیک آمازون (Amazon EC2) یا سرویس الاستیک کوبرنتز آمازون (Amazon EKS). می‌توانید با پیاده‌سازی مکانیسم جذب داده‌ها در اسکریپت آموزشی، به این موارد رسیدگی کنید. این مکانیسم مسئول خواندن مجموعه داده ها از منابع داده خارجی به نمونه آموزشی است. به عنوان مثال TFRecordDataset از TensorFlow tf.data کتابخانه می تواند به طور مستقیم از ذخیره سازی آمازون S3 بخواند.

اگر مکانیسم انتقال داده شما نیاز به تماس با هر سرویس AWS دارد، مانند سرویس پایگاه داده رابطه آمازون (آمازون RDS)، مطمئن شوید که هویت AWS و مدیریت دسترسی نقش (IAM) شغل آموزشی شما شامل خط مشی های مربوطه IAM می شود. اگر منبع داده در آن قرار دارد ابر خصوصی مجازی آمازون (Amazon VPC)، باید کار آموزشی خود را متصل به همان VPC اجرا کنید.

هنگامی که شما خودتان دریافت مجموعه داده را مدیریت می کنید، ردیابی نسب SageMaker نمی تواند به طور خودکار مجموعه داده های مورد استفاده در طول آموزش را ثبت کند. بنابراین، مکانیسم‌های جایگزین، مانند آموزش برچسب‌های شغلی یا فراپارامترها را در نظر بگیرید تا ابرداده‌های مربوطه خود را دریافت کنید.

نتیجه

انتخاب منبع داده آموزشی SageMaker مناسب می تواند تأثیر عمیقی بر سرعت، سهولت استفاده و هزینه آموزش مدل های ML داشته باشد. از فلوچارت ارائه شده برای شروع سریع استفاده کنید، نتایج را مشاهده کنید و در صورت نیاز پیکربندی اضافی را آزمایش کنید. مزایا، معایب و محدودیت‌های هر منبع داده و اینکه چقدر با نیازهای فردی شغل آموزشی شما مطابقت دارند را در نظر داشته باشید. برای اطلاعات بیشتر و کمک با یک مخاطب AWS تماس بگیرید.


درباره نویسنده

بهترین منبع داده را برای شغل آموزشی Amazon SageMaker خود انتخاب کنید. جستجوی عمودی Ai.گیلی ناچوم یک معمار ارشد راه حل های تخصصی AI/ML است که به عنوان بخشی از تیم یادگیری ماشین آمازون EMEA کار می کند. Gili مشتاق چالش‌های آموزش مدل‌های یادگیری عمیق است و اینکه چگونه یادگیری ماشینی جهان را آنطور که می‌شناسیم تغییر می‌دهد. گیلی در اوقات فراغت خود از بازی تنیس روی میز لذت می برد.

بهترین منبع داده را برای شغل آموزشی Amazon SageMaker خود انتخاب کنید. جستجوی عمودی Ai.دکتر الکساندر آرژانوف یک معمار راه حل های تخصصی AI/ML است که در فرانکفورت آلمان مستقر است. او به مشتریان AWS کمک می کند تا راه حل های ML خود را در سراسر منطقه EMEA طراحی و اجرا کنند. قبل از پیوستن به AWS، الکساندر در حال تحقیق در مورد منشأ عناصر سنگین در جهان ما بود و پس از استفاده از آن در محاسبات علمی بزرگ خود، علاقه زیادی به ML پیدا کرد.

تمبر زمان:

بیشتر از آموزش ماشین AWS