فرآیند ساخت یک مدل یادگیری ماشین (ML) تکراری است تا زمانی که مدل نامزدی را پیدا کنید که عملکرد خوبی دارد و آماده استقرار است. همانطور که دانشمندان داده در این فرآیند تکرار میکنند، به روشی قابل اعتماد برای ردیابی آسان آزمایشها نیاز دارند تا بفهمند هر نسخه مدل چگونه ساخته شده است و چگونه انجام میشود.
آمازون SageMaker به تیم ها اجازه می دهد تا از طیف گسترده ای از ویژگی ها برای آماده سازی سریع، ساخت، آموزش، استقرار و نظارت بر مدل های ML استفاده کنند. خطوط لوله آمازون SageMaker یک فرآیند قابل تکرار برای تکرار از طریق فعالیت های ساخت مدل ارائه می دهد و با آن یکپارچه می شود آزمایشات آمازون SageMaker. به طور پیش فرض، هر خط لوله SageMaker با یک آزمایش مرتبط است و هر اجرای آن خط لوله به عنوان آزمایشی در آن آزمایش ردیابی می شود. سپس تکرارهای شما به طور خودکار بدون هیچ مرحله اضافی ردیابی می شوند.
در این پست، نگاهی دقیقتر به انگیزه وجود یک فرآیند خودکار برای ردیابی آزمایشها با آزمایشها و قابلیتهای بومی تعبیهشده در Pipelines میاندازیم.
چرا مهم است که آزمایشات خود را منظم نگه دارید؟
بیایید لحظه ای به عقب برگردیم و سعی کنیم بفهمیم چرا سازماندهی آزمایش ها برای یادگیری ماشین مهم است. هنگامی که دانشمندان داده به یک مشکل جدید ML نزدیک می شوند، باید به سؤالات مختلفی پاسخ دهند، از در دسترس بودن داده تا نحوه اندازه گیری عملکرد مدل.
در ابتدا، روند پر از عدم قطعیت است و بسیار تکراری است. در نتیجه، این مرحله آزمایشی میتواند مدلهای متعددی را تولید کند که هر کدام از ورودیهای خود (مجموعه دادهها، اسکریپتهای آموزشی و فراپارامترها) ایجاد میشوند و خروجیهای خود را تولید میکنند (مصنوعات مدل و معیارهای ارزیابی). چالش پس از آن پیگیری همه این ورودی ها و خروجی های هر تکرار است.
دانشمندان داده معمولاً بسیاری از نسخههای مدل مختلف را آموزش میدهند تا زمانی که ترکیبی از تبدیل دادهها، الگوریتم و فراپارامترها را بیابند که به بهترین نسخه یک مدل منجر میشود. هر یک از این ترکیبات منحصر به فرد یک آزمایش واحد است. با یک رکورد قابل ردیابی از ورودیها، الگوریتمها و فراپارامترهایی که توسط آن آزمایش استفاده شد، تیم علم داده میتواند به راحتی مراحل خود را بازتولید کند.
وجود یک فرآیند خودکار برای ردیابی آزمایشها، توانایی بازتولید و همچنین استقرار نسخههای مدل خاصی را که عملکرد خوبی دارند، بهبود میبخشد. ادغام بومی Pipelines با Experiments ردیابی و مدیریت خودکار آزمایشها را در سراسر خطوط لوله آسان میکند.
مزایای آزمایش SageMaker
SageMaker Experiments به دانشمندان داده اجازه می دهد تکرارهای آموزشی خود را سازماندهی، پیگیری، مقایسه و ارزیابی کنند.
بیایید ابتدا با مروری بر کارهایی که میتوانید با آزمایشها انجام دهید، شروع میکنیم:
- سازماندهی آزمایشات - آزمایشها آزمایش را با یک موجود سطح بالا به نام an ساختار میدهند تجربه که شامل مجموعه ای از آزمایش های. هر آزمایش شامل مجموعه ای از مراحل به نام اجزای آزمایشی. هر جزء آزمایشی ترکیبی از مجموعه داده ها، الگوریتم ها و پارامترها است. میتوانید آزمایشها را بهعنوان پوشه سطح بالا برای سازماندهی فرضیههایتان، آزمایشهایتان را بهعنوان زیرپوشههای هر آزمایش گروهی، و مؤلفههای آزمایشیتان را بهعنوان فایلهایتان برای هر نمونه از اجرای آزمایشی تصویر کنید.
- پیگیری آزمایشات - آزمایشها به دانشمندان داده اجازه میدهد تا آزمایشها را ردیابی کنند. این امکان را فراهم می کند تا به طور خودکار کارهای SageMaker را از طریق تنظیمات ساده و از طریق SDK های ردیابی به آزمایشی اختصاص دهید.
- مقایسه و ارزیابی آزمایش ها - ادغام آزمایش ها با Amazon SageMaker Studio تولید تجسم داده ها و مقایسه آزمایش های مختلف را آسان می کند. همچنین میتوانید از طریق Python SDK به دادههای آزمایشی دسترسی داشته باشید تا تصویرسازی خود را با استفاده از کتابخانههای ترسیم دلخواه خود ایجاد کنید.
برای کسب اطلاعات بیشتر درباره Experiments API ها و SDK ها، اسناد زیر را توصیه می کنیم: CreateExperiment و Amazon SageMaker Experiments Python SDK.
اگر میخواهید عمیقتر غواصی کنید، توصیه میکنیم به آن نگاه کنید amazon-sagemaker-examples/sagemaker-experiments مخزن GitHub برای مثال های بیشتر
ادغام بین خطوط لوله و آزمایش
خطوط لوله ساخت مدل که بخشی از Pipelines هستند برای ML ساخته شده اند و به شما امکان می دهند وظایف ساخت مدل خود را با استفاده از یک ابزار خط لوله که شامل ادغام های بومی با سایر ویژگی های SageMaker و همچنین انعطاف پذیری برای گسترش خط لوله خود با مراحل خارج از SageMaker است هماهنگ کنید. . هر مرحله اقدامی را که خط لوله انجام می دهد را مشخص می کند. وابستگی های بین مراحل توسط یک گراف غیر چرخه ای مستقیم (DAG) که با استفاده از Pipelines Python SDK ساخته شده است، تعریف می شوند. شما می توانید یک خط لوله SageMaker را به صورت برنامه ریزی شده از طریق همان SDK ایجاد کنید. پس از استقرار خط لوله، می توانید به صورت اختیاری گردش کار آن را در استودیو تجسم کنید.
خطوط لوله با ایجاد خودکار آزمایش و آزمایش برای هر اجرا به طور خودکار با آزمایشها ادغام میشوند. خطوط لوله به طور خودکار یک آزمایش و یک آزمایش برای هر اجرای خط لوله قبل از اجرای مراحل ایجاد می کنند، مگر اینکه یک یا هر دوی این ورودی ها مشخص شده باشند. در حین اجرای کار SageMaker خط لوله، خط لوله آزمایش را با آزمایش مرتبط میکند، و هر مؤلفه آزمایشی را که توسط کار ایجاد میشود، به آزمایش مرتبط میکند. تعیین آزمایش یا آزمایشی خود به صورت برنامهریزی به شما امکان میدهد تا نحوه سازماندهی آزمایشهای خود را دقیق تنظیم کنید.
گردش کاری که ما در این مثال ارائه می کنیم شامل یک سری مراحل است: یک مرحله پیش پردازش برای تقسیم مجموعه داده های ورودی به مجموعه داده های قطار، آزمایش و اعتبارسنجی. یک مرحله تنظیم برای تنظیم هایپرپارامترهای ما و شروع کارهای آموزشی برای آموزش یک مدل با استفاده از الگوریتم داخلی XGBoost; و در نهایت یک گام مدل برای ایجاد یک مدل SageMaker از بهترین آرتیفکت مدل آموزش دیده. خطوط لوله نیز چندین پشتیبانی بومی را ارائه می دهد انواع مرحله خارج از آنچه در این پست بحث شده است. ما همچنین نشان می دهیم که چگونه می توانید گردش کار خط لوله خود را ردیابی کنید و معیارها و نمودارهای مقایسه را ایجاد کنید. علاوه بر این، ما نشان میدهیم که چگونه میتوان آزمایش جدید تولید شده را به یک آزمایش موجود مرتبط کرد که ممکن است قبل از تعریف خط لوله ایجاد شده باشد.
کد SageMaker Pipelines
می توانید نوت بوک را بررسی و دانلود کنید مخزن GitHub مرتبط با این پست برای درک بهتر، به کد اختصاصی Pipelines نگاه می کنیم.
Pipelines شما را قادر می سازد تا پارامترها را در زمان اجرا ارسال کنید. در اینجا ما انواع نمونه های پردازش و آموزش و تعداد در زمان اجرا را با پیش فرض های از پیش تعیین شده تعریف می کنیم:
سپس، یک اسکریپت پردازشی راهاندازی میکنیم که مجموعه داده ورودی را به بخشهای قطار، آزمایش و اعتباربخشی دانلود و تقسیم میکند. ما استفاده می کنیم SKLearnProcessor
برای اجرای این مرحله پیش پردازش برای انجام این کار، یک شی پردازنده با نوع نمونه و تعداد مورد نیاز برای اجرای کار پردازشی تعریف می کنیم.
Pipelines به ما اجازه می دهد تا با استفاده از متغیرهای خاص اجرا مانند ExecutionVariables.PIPELINE_EXECUTION_ID
، که شناسه منحصر به فرد اجرای خط لوله است. برای مثال میتوانیم یک کلید منحصر به فرد برای ذخیره مجموعه دادههای خروجی در آن ایجاد کنیم سرویس ذخیره سازی ساده آمازون (Amazon S3) که آنها را به یک خط لوله خاص متصل می کند. برای لیست کامل متغیرها به ادامه مطلب مراجعه کنید متغیرهای اجرایی.
سپس به ایجاد یک شی برآوردگر برای آموزش مدل XGBoost میپردازیم. ما برخی از هایپرپارامترهای استاتیک را که معمولاً با XGBoost استفاده می شوند تنظیم می کنیم:
ما با استفاده از a تنظیم هایپرپارامتر مدل هایی را که ایجاد می کنیم انجام می دهیم ContinuousParameter
دامنه برای lambda
. انتخاب یک متریک به عنوان متریک هدف به تیونر (نمونهای که کارهای تنظیم فراپارامترها را اجرا میکند) میگوید که شما کار آموزشی را بر اساس این متریک خاص ارزیابی خواهید کرد. تیونر بهترین ترکیب را بر اساس بهترین مقدار برای این متریک هدف برمی گرداند، یعنی بهترین ترکیبی که بهترین ریشه میانگین مربعات خطا (RMSE) را به حداقل می رساند.
مرحله تنظیم، آزمایش های متعددی را با هدف تعیین بهترین مدل در میان محدوده پارامترهای آزمایش شده اجرا می کند. با روش get_top_model_s3_uri
، ما 50 نسخه برتر نمونه آرتیفکت S3 URI را رتبه بندی می کنیم و فقط بهترین نسخه را استخراج می کنیم (ما مشخص می کنیم k=0
برای بهترین) برای ایجاد یک مدل SageMaker.
هنگامی که خط لوله اجرا می شود، اجزای آزمایشی را برای هر کار تنظیم Hyperparameter و هر کار SageMaker ایجاد شده توسط مراحل خط لوله ایجاد می کند.
شما می توانید ادغام خطوط لوله با Experiments را با ایجاد a پیکربندی کنید PipelineExperimentConfig
شی و آن را به شی لوله انتقال دهید. این دو پارامتر نام آزمایشی که ایجاد خواهد شد و آزمایشی که به کل اجرای خط لوله اشاره دارد را مشخص می کند.
اگر میخواهید اجرای یک خط لوله را به یک آزمایش موجود مرتبط کنید، میتوانید نام آن را منتقل کنید و Pipelines آزمایش جدید را به آن مرتبط میکند. شما می توانید با تنظیم از ایجاد یک آزمایش و آزمایش برای خط لوله اجرا شده جلوگیری کنید pipeline_experiment_config
به None
.
انواع نمونه ها و شمارش ها را به عنوان پارامتر ارسال می کنیم و مراحل قبل را به ترتیب زیر زنجیره می زنیم. گردش کار خط لوله به طور ضمنی با خروجی های یک مرحله که ورودی های یک مرحله دیگر هستند تعریف می شود.
خط لوله تمام عیار اکنون ایجاد شده و آماده راه اندازی است. یک نقش اجرایی به خط لوله اضافه می کنیم و آن را شروع می کنیم. از اینجا میتوانیم به کنسول SageMaker Studio Pipelines برویم و هر مرحله را به صورت بصری دنبال کنیم. همچنین میتوانید به گزارشهای مرتبط از کنسول دسترسی پیدا کنید تا خط لوله را اشکالزدایی کنید.
تصویر قبلی یک خط لوله با موفقیت اجرا شده را به رنگ سبز نشان می دهد. ما معیارهای یک آزمایش را از اجرای خط لوله با کد زیر بدست می آوریم:
معیارها را برای هر جزء آزمایشی مقایسه کنید
شما می توانید نتایج تنظیم هایپرپارامتر را در استودیو یا از طریق دیگر کتابخانه های ترسیم پایتون رسم کنید. ما هر دو راه را برای انجام این کار نشان می دهیم.
معیارهای آموزش و ارزیابی را در استودیو کاوش کنید
استودیو یک رابط کاربری تعاملی ارائه می دهد که در آن می توانید نمودارهای تعاملی ایجاد کنید. مراحل به شرح زیر است:
- را انتخاب کنید آزمایش ها و آزمایش ها از منابع SageMaker نماد در نوار کناری سمت چپ
- آزمایش خود را برای باز کردن آن انتخاب کنید.
- آزمایشی مورد علاقه (راست کلیک کنید) را انتخاب کنید.
- را انتخاب کنید در لیست اجزای آزمایشی باز کنید.
- رسانه ها و مطبوعات تغییر برای انتخاب مؤلفههای آزمایشی که مشاغل آموزشی را نشان میدهند.
- را انتخاب کنید اضافه کردن نمودار.
- را انتخاب کنید نمودار جدید و آن را سفارشی کنید تا معیارهای جمع آوری شده ای را که می خواهید تجزیه و تحلیل کنید ترسیم کنید. برای مورد استفاده ما، موارد زیر را انتخاب کنید:
- برای نوع دادهانتخاب کنید آمار خلاصه.
- برای نوع نمودارانتخاب کنید طرح پراکنده.
- برای محور X، انتخاب کنید
lambda
. - برای محور Y، انتخاب کنید
validation:rmse_last
.
نمودار جدید در پایین پنجره با برچسب '8' ظاهر می شود.
با فشار دادن می توانید کارهای آموزشی بیشتر یا کمتری را اضافه کنید تغییر و برای تجربه تعاملی تر، نماد چشم را انتخاب کنید.
تجزیه و تحلیل با آزمایش SageMaker
وقتی اجرای خط لوله کامل شد، میتوانیم به سرعت تصور کنیم که چگونه تغییرات مختلف مدل از نظر معیارهای جمعآوریشده در طول آموزش مقایسه میشوند. پیش از این، ما تمام معیارهای آزمایشی را به a صادر کردیم پانداها DataFrame
با استفاده از ExperimentAnalytics
. با استفاده از کتابخانه Matplotlib می توانیم نمودار بدست آمده در استودیو را بازتولید کنیم.
نتیجه
ادغام بومی بین SageMaker Pipelines و SageMaker Experiments به دانشمندان داده اجازه می دهد تا به طور خودکار آزمایش ها را در طول فعالیت های توسعه مدل سازماندهی، پیگیری و تجسم کنند. میتوانید آزمایشهایی برای سازماندهی تمام کارهای توسعه مدل خود ایجاد کنید، مانند موارد زیر:
- یک مورد استفاده تجاری که به آن می پردازید، مانند ایجاد آزمایشی برای پیش بینی ریزش مشتری
- برای مثال، آزمایشی متعلق به تیم علم داده در مورد تجزیه و تحلیل بازاریابی
- یک پروژه خاص علم داده و ML
در این پست، به Pipelines می پردازیم تا نشان دهیم چگونه می توانید از آن در کنار هم با Experiments برای سازماندهی یک گردش کار کاملاً خودکار از انتها به انتها استفاده کنید.
به عنوان گام بعدی، می توانید از این سه ویژگی SageMaker - Studio، Experiments و Pipelines - برای پروژه بعدی ML خود استفاده کنید.
قرائت های پیشنهادی
درباره نویسندگان
پائولو دی فرانچسکو یک معمار راه حل در AWS است. وی دارای تجربه در زمینه مهندسی نرم افزار و مخابرات است. او علاقه زیادی به یادگیری ماشینی دارد و در حال حاضر روی استفاده از تجربیات خود برای کمک به مشتریان برای رسیدن به اهداف خود در AWS، به ویژه در بحث های پیرامون MLO ها، تمرکز کرده است. در خارج از محل کار، او از فوتبال بازی کردن و مطالعه لذت می برد.
ماریو بورگوین یک معمار راه حل های شریک ارشد برای AWS، یک متخصص AI/ML، و رهبر فناوری جهانی MLOps است. او با مشتریان و شرکای سازمانی کار می کند که راه حل های هوش مصنوعی را در فضای ابری به کار می گیرند. او بیش از 30 سال تجربه در زمینه یادگیری ماشینی و هوش مصنوعی در استارت آپ ها و شرکت ها دارد که با ایجاد یکی از اولین سیستم های یادگیری ماشین تجاری برای داده های بزرگ شروع شد. ماریو اوقات فراغت خود را صرف بازی با سه تروورن بلژیکی خود، پختن شام برای خانواده اش و یادگیری ریاضیات و کیهان شناسی می کند.
گاناپاتی کریشنامورتی یک معمار ارشد راه حل های ML در AWS است. Ganapathi راهنمایی های تجویزی را برای مشتریان راه اندازی و سازمانی ارائه می دهد و به آنها کمک می کند تا برنامه های کاربردی ابری را در مقیاس طراحی و اجرا کنند. او در یادگیری ماشین تخصص دارد و بر کمک به مشتریان در استفاده از AI/ML برای نتایج تجاری خود متمرکز است. وقتی سر کار نیست، از گشت و گذار در فضای باز و گوش دادن به موسیقی لذت می برد.
والری سونتاکیت یک معمار راه حل برای AWS است که در صنعت بازی و با شرکای راه حل های هوش مصنوعی کار می کند. او قصد دارد حرفه خود را حول محور بینایی کامپیوتر بسازد. والری در طول اوقات فراغت خود آن را صرف سفر، کشف مکان های جدید غذا و تغییر فضای داخلی خانه خود می کند.
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- آمازون SageMaker
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- آموزش ماشین AWS
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- زفیرنت