امروزه، شرکتها در حال ایجاد فروشگاههای ویژگی هستند تا یک مخزن مرکزی برای مقیاس توسعه ML در واحدهای تجاری و تیمهای علم داده فراهم کنند. با افزایش اندازه و پیچیدگی دادههای ویژگی، دانشمندان داده باید بتوانند به طور مؤثر از این ذخیرههای ویژگی برای استخراج مجموعه دادهها برای آزمایش، آموزش مدل و امتیازدهی دستهای پرسوجو کنند.
فروشگاه ویژگی آمازون SageMaker یک راه حل مدیریت ویژگی هدفمند است که به دانشمندان داده و مهندسان ML کمک می کند تا به طور ایمن داده های انتخاب شده مورد استفاده در جریان کار آموزشی و پیش بینی را ذخیره، کشف و به اشتراک بگذارند. فروشگاه ویژگی SageMaker اکنون پشتیبانی می کند کوه یخ آپاچی به عنوان یک قالب جدول برای ذخیره ویژگی ها. این امر با فعال کردن عملکرد سریعتر پرس و جو هنگام استخراج مجموعه داده های آموزشی ML، با بهره گیری از فشرده سازی جدول Iceberg، توسعه مدل را تسریع می کند. بسته به طراحی گروههای ویژگی و مقیاس آنها، میتوانید با استفاده از این قابلیت جدید، بهبود عملکرد پرس و جوی آموزشی از 10 تا 100 برابر را تجربه کنید.
در پایان این پست، نحوه ایجاد گروه های ویژگی با استفاده از فرمت Iceberg، اجرای رویه های مدیریت جدول Iceberg را با استفاده از آمازون آتناو این کارها را برای اجرای مستقل برنامه ریزی کنید. اگر از کاربران Spark هستید، همچنین میآموزید که چگونه با استفاده از Spark همان رویهها را اجرا کنید و آنها را در محیط و اتوماسیون Spark خود بگنجانید.
فروشگاه ویژگی SageMaker و Apache Iceberg
فروشگاه ویژگی آمازون SageMaker یک فروشگاه متمرکز برای ویژگیها و ابردادههای مرتبط است که به تیمهای دانشمند دادهای که بر روی پروژههای مختلف یا مدلهای ML کار میکنند، ویژگیها را به راحتی کشف کرده و مجدداً مورد استفاده قرار میدهد.
فروشگاه ویژگی SageMaker از یک حالت آنلاین و آفلاین برای مدیریت ویژگی ها تشکیل شده است. فروشگاه آنلاین برای موارد استفاده استنتاج بلادرنگ با تاخیر کم استفاده می شود. فروشگاه آفلاین در درجه اول برای پیش بینی دسته ای و آموزش مدل استفاده می شود. فروشگاه آفلاین یک فروشگاه فقط ضمیمه است و می تواند برای ذخیره و دسترسی به داده های ویژگی های تاریخی استفاده شود. با فروشگاه آفلاین، کاربران میتوانند ویژگیهایی را برای کاوش و امتیازدهی دستهای ذخیره و ارائه کنند و مجموعه دادههای صحیح نقطهدر زمان را برای آموزش مدل استخراج کنند.
داده های فروشگاه آفلاین در سطل سرویس ذخیره سازی ساده آمازون (Amazon S3) در حساب AWS شما ذخیره می شود. فروشگاه ویژگی SageMaker به طور خودکار یک کاتالوگ داده چسب AWS را در طول ایجاد گروه ویژگی ایجاد می کند. مشتریان همچنین میتوانند با استفاده از زمان اجرا Spark به دادههای فروشگاه آفلاین دسترسی داشته باشند و پردازش دادههای بزرگ را برای تجزیه و تحلیل ویژگیهای ML و موارد استفاده مهندسی ویژگی انجام دهند.
فرمت های جدول راهی برای انتزاع فایل های داده به عنوان جدول فراهم می کند. در طول سالها، بسیاری از قالبهای جدول برای پشتیبانی از تراکنشهای ACID، حاکمیت و موارد استفاده از فهرست پدید آمدهاند. کوه یخ آپاچی یک قالب جدول باز برای مجموعه داده های تحلیلی بسیار بزرگ است. مجموعههای بزرگی از فایلها را بهعنوان جداول مدیریت میکند، و از عملیاتهای دریاچه دادههای تحلیلی مدرن مانند درج سطح رکورد، بهروزرسانی، حذف، و درخواستهای سفر در زمان پشتیبانی میکند. Iceberg فایل های داده فردی را به جای دایرکتوری ها در یک جدول ردیابی می کند. این به نویسندگان اجازه میدهد تا فایلهای داده را در جای خود ایجاد کنند (فایلها منتقل یا تغییر نمیشوند) و فقط فایلها را در یک commit صریح به جدول اضافه کنند. وضعیت جدول در فایل های ابرداده حفظ می شود. همه تغییرات در وضعیت جدول یک نسخه فایل ابرداده جدید ایجاد می کند که به طور اتمی جایگزین ابرداده قدیمی می شود. فایل فراداده جدول، طرح جدول، پیکربندی پارتیشن بندی و سایر ویژگی ها را ردیابی می کند.
Iceberg با خدمات AWS ادغام می شود. برای مثال می توانید از چسب AWS کاتالوگ داده به عنوان متاستور جداول Iceberg و الههء عقل و زیبایی از پرس و جوهای خواندن، سفر در زمان، نوشتن و DDL برای جداول Apache Iceberg که از فرمت Apache Parquet برای داده ها و کاتالوگ چسب AWS برای متاستور خود استفاده می کنند، پشتیبانی می کند.
با SageMaker Feature Store، اکنون میتوانید گروههای ویژگی را با قالب جدول Iceberg به عنوان جایگزینی برای قالب استاندارد پیشفرض Glue ایجاد کنید. با این کار، مشتریان میتوانند از قالب جدول جدید برای استفاده از ویژگیهای فشردهسازی فایل و هرس دادههای Iceberg برای برآورده کردن موارد استفاده و نیازهای بهینهسازی خود استفاده کنند. آیسبرگ همچنین به مشتریان اجازه میدهد تا درخواستهای حذف، سفر در زمان، تراکنشهای همزمان و عملکرد بالاتر را انجام دهند.
با ترکیب Iceberg بهعنوان قالب جدول و عملیات نگهداری جدول مانند فشردهسازی، مشتریان هنگام کار با گروههای ویژگی آفلاین در مقیاس، عملکرد سریعتری را دریافت میکنند و به آنها اجازه میدهد با سرعت بیشتری مجموعههای داده آموزشی ML بسازند.
نمودار زیر ساختار فروشگاه آفلاین را با استفاده از Iceberg به عنوان قالب جدول نشان می دهد.
در بخشهای بعدی، نحوه ایجاد گروههای ویژگی با استفاده از فرمت Iceberg، اجرای رویههای مدیریت جدول Iceberg با استفاده از AWS Athena و استفاده از خدمات AWS برای برنامهریزی این وظایف برای اجرای درخواستی یا برنامهریزی را خواهید آموخت. اگر کاربر Spark هستید، نحوه اجرای همان رویه ها را با استفاده از Spark نیز خواهید آموخت.
برای دستورالعمل های گام به گام، ما همچنین ارائه می دهیم نمونه دفترچه یادداشت، که در GitHub یافت می شود. در این پست مهم ترین قسمت ها را برجسته می کنیم.
ایجاد گروه های ویژگی با استفاده از قالب جدول Iceberg
هنگام ایجاد گروه های ویژگی جدید، ابتدا باید Iceberg را به عنوان قالب جدول انتخاب کنید. یک پارامتر اختیاری جدید TableFormat
را می توان به صورت تعاملی با استفاده از Amazon SageMaker Studio یا از طریق کد با استفاده از API یا SDK تنظیم کرد. این پارامتر مقادیر را می پذیرد ICEBERG
or GLUE
(برای فرمت فعلی چسب AWS). قطعه کد زیر به شما نشان می دهد که چگونه یک گروه ویژگی با استفاده از فرمت Iceberg و ایجاد کنید FeatureGroup.create
API SageMaker SDK.
جدول به طور خودکار در کاتالوگ داده چسب AWS ایجاد و ثبت می شود.
حالا که orders_feature_group_iceberg
ایجاد شده است، می توانید ویژگی ها را با استفاده از خط لوله انتقال انتخابی خود دریافت کنید. در این مثال، ما رکوردها را با استفاده از FeatureGroup.ingest() API، که رکوردها را از یک Pandas DataFrame دریافت می کند. شما همچنین می توانید استفاده کنید FeatureGroup().put_record API برای جذب سوابق فردی یا مدیریت منابع جریان. کاربران Spark همچنین میتوانند فریمهای داده Spark را با استفاده از ما دریافت کنند اتصال جرقه.
می توانید با اجرای یک پرس و جو در فروشگاه ویژگی آفلاین تأیید کنید که رکوردها با موفقیت وارد شده اند. همچنین می توانید به مکان S3 بروید و ساختار پوشه جدید را ببینید.
اجرای رویه های مدیریت میز کوه یخ
آمازون آتنا یک موتور جستجوی SQL بدون سرور است که به طور بومی از رویه های مدیریت Iceberg پشتیبانی می کند. در این بخش، از آتنا برای فشرده سازی دستی گروه ویژگی آفلاینی که ایجاد کرده اید استفاده می کنید. توجه داشته باشید که باید از موتور Athena نسخه 3 استفاده کنید. برای این کار، می توانید یک گروه کاری جدید ایجاد کنید، یا یک گروه کاری موجود را پیکربندی کنید، و موتور پیشنهادی Athena نسخه 3 را انتخاب کنید. برای اطلاعات بیشتر و دستورالعمل های تغییر نسخه موتور Athena خود، به ادامه مطلب مراجعه کنید. تغییر نسخه های موتور آتنا.
همانطور که داده ها در جدول Iceberg جمع می شوند، به دلیل افزایش زمان پردازش مورد نیاز برای باز کردن فایل های اضافی، پرس و جوها ممکن است به تدریج کارآمدتر شوند. فشرده سازی طرح ساختاری جدول را بدون تغییر محتوای جدول بهینه می کند.
برای انجام تراکم، از OPTIMIZE table REWRITE DATA
دستور نگهداری میز تراکم در آتنا. نحو زیر نشان می دهد که چگونه می توان طرح داده یک گروه ویژگی ذخیره شده با استفاده از قالب جدول Iceberg را بهینه کرد. را sagemaker_featurestore
نشان دهنده نام پایگاه داده SageMaker Feature Store و orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334
نام جدول گروه ویژگی ما است.
پس از اجرای دستور optimize، از VACUUM
رویه ای که انقضای عکس فوری را انجام می دهد و فایل های یتیم را حذف می کند. این اقدامات اندازه ابرداده را کاهش می دهد و فایل هایی را که در وضعیت جدول فعلی نیستند و همچنین قدیمی تر از مدت زمان نگهداری مشخص شده برای جدول هستند حذف می کند.
توجه داشته باشید که ویژگی های جدول با استفاده از Athena قابل تنظیم هستند ALTER TABLE
. برای مثالی از نحوه انجام این کار، به قسمت زیر مراجعه کنید مستندات آتنا. برای خلاء، vacuum_min_snapshots_to_keep
و vacuum_max_snapshot_age_seconds
می توان از آن برای پیکربندی پارامترهای هرس عکس فوری استفاده کرد.
بیایید نگاهی به تأثیر عملکرد تراکم در حال اجرا در جدول گروه ویژگی نمونه داشته باشیم. برای اهداف آزمایشی، ما رکوردهای ویژگی سفارشات مشابه را در دو گروه ویژگی وارد کردیم. orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003
و orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334
، با استفاده از یک کار پردازش موازی SageMaker با Scikit-Learn، که منجر به 49,908,135 شی ذخیره شده در Amazon S3 و حجم کل 106.5 گیگابایت می شود.
ما یک پرس و جو برای انتخاب آخرین عکس فوری بدون موارد تکراری و بدون سوابق حذف شده در گروه ویژگی اجرا می کنیم. orders-feature-group-iceberg-pre-comp-02-11-03-06-1669979003
. قبل از فشرده سازی، پرس و جو 1 ساعت و 27 دقیقه طول کشید.
سپس فشرده سازی را اجرا می کنیم orders-feature-group-iceberg-post-comp-03-14-05-17-1670076334
با استفاده از پرس و جو Athena OPTIMIZE، که جدول گروه ویژگی را به 109,851 شی در آمازون S3 و حجم کل 2.5 گیگابایت فشرده کرد. اگر همان پرس و جو را بعد از فشرده سازی اجرا کنیم، زمان اجرای آن به 1 دقیقه و 13 ثانیه کاهش می یابد.
با فشرده سازی فایل Iceberg، زمان اجرای پرس و جو به طور قابل توجهی بهبود یافت. برای همان جستجو، زمان اجرا از 1 ساعت و 27 دقیقه به 1 دقیقه و 13 ثانیه کاهش یافت که 71 برابر سریعتر است.
برنامه ریزی تراکم کوه یخ با خدمات AWS
در این بخش، نحوه خودکارسازی روش های مدیریت جدول برای فشرده سازی فروشگاه ویژگی های آفلاین خود را خواهید آموخت. نمودار زیر معماری ایجاد گروههای ویژگی در قالب جدول Iceberg و یک راهحل مدیریت جدول کاملاً خودکار را نشان میدهد که شامل عملیات فشردهسازی و پاکسازی فایل است.
در سطح بالایی، شما یک گروه ویژگی را با استفاده از قالب جدول Iceberg ایجاد می کنید و رکوردها را در فروشگاه ویژگی های آنلاین وارد می کنید. مقادیر ویژگی به طور خودکار از فروشگاه آنلاین به فروشگاه آفلاین تاریخی تکرار می شود. آتنا برای اجرای رویه های مدیریت کوه یخ استفاده می شود. برای برنامه ریزی رویه ها، یک را تنظیم می کنید چسب AWS کار با استفاده از اسکریپت پوسته پایتون و ایجاد یک برنامه کاری AWS Glue.
راه اندازی AWS Glue Job
شما از یک کار چسب AWS برای اجرای عملیات تعمیر و نگهداری جدول Iceberg بر اساس یک برنامه زمانبندی استفاده می کنید. ابتدا باید یک نقش IAM برای AWS Glue ایجاد کنید تا مجوز دسترسی به Amazon Athena، Amazon S3 و CloudWatch را داشته باشد.
در مرحله بعد، باید یک اسکریپت پایتون برای اجرای رویه های Iceberg ایجاد کنید. می توانید پیدا کنید نمونه اسکریپت در GitHub. اسکریپت کوئری OPTIMIZE را با استفاده از boto3 اجرا می کند.
اسکریپت با استفاده از چسب AWS پارامتریزه شده است getResolvedOptions(args, options)
تابع ابزاری که به شما امکان دسترسی به آرگومان هایی را می دهد که هنگام اجرای یک کار به اسکریپت شما ارسال می شوند. در این مثال، منطقه AWS، پایگاه داده و جدول Iceberg برای گروه ویژگی شما، گروه کاری Athena و پوشه نتایج مکان خروجی Athena را می توان به عنوان پارامتر به کار ارسال کرد و این اسکریپت را قابل استفاده مجدد در محیط شما می کند.
در نهایت، کار واقعی AWS Glue را ایجاد می کنید تا اسکریپت را به صورت پوسته در AWS Glue اجرا کنید.
- به کنسول AWS Glue بروید.
- انتخاب شغل ها تب زیر AWS Glue Studio.
- انتخاب کنید ویرایشگر اسکریپت پایتون شل.
- را انتخاب کنید یک اسکریپت موجود را آپلود و ویرایش کنیداست. کلیک کنید ساختن.
- La جزئیات شغل دکمه به شما امکان می دهد کار چسب AWS را پیکربندی کنید. شما باید نقش IAM را که قبلا ایجاد کرده اید انتخاب کنید. انتخاب کنید پایتون 3.9 یا آخرین نسخه پایتون موجود.
- در همین تب می توانید تعدادی گزینه پیکربندی دیگر مانند تعداد تلاش های مجدد or پایان کار. به خواص پیشرفته، می توانید پارامترهای job را برای اجرای اسکریپت اضافه کنید، همانطور که در تصویر مثال زیر نشان داده شده است.
- کلیک کنید ذخیره.
در برنامه تب، میتوانید برنامه زمانی را برای اجرای رویههای نگهداری ویژگیها تعریف کنید. به عنوان مثال، اسکرین شات زیر به شما نشان می دهد که چگونه کار را بر اساس برنامه زمانی هر 6 ساعت اجرا کنید.
برای درک معیارهای زمان اجرا مانند وضعیت تکمیل، مدت زمان و زمان شروع، می توانید بر اجرای کار نظارت کنید. همچنین میتوانید گزارشهای CloudWatch را برای کار چسب AWS بررسی کنید تا بررسی کنید که رویهها با موفقیت اجرا میشوند.
اجرای وظایف مدیریت جدول Iceberg با Spark
مشتریان همچنین می توانند از Spark برای مدیریت کارهای تراکم و روش های نگهداری استفاده کنند. برای جزئیات بیشتر در مورد رویه های Spark، به بخش مراجعه کنید مستندات جرقه.
ابتدا باید برخی از ویژگی های رایج را پیکربندی کنید.
کد زیر را می توان برای بهینه سازی گروه های ویژگی از طریق Spark استفاده کرد.
سپس میتوانید دو روش نگهداری جدول بعدی را برای حذف عکسهای فوری قدیمیتر و فایلهای یتیم که دیگر مورد نیاز نیستند، اجرا کنید.
سپس می توانید دستورات Spark فوق را در محیط Spark خود بگنجانید. به عنوان مثال، میتوانید کاری ایجاد کنید که بهینهسازی بالا را در یک زمانبندی دلخواه یا در خط لوله پس از مصرف انجام دهد.
برای کاوش نمونه کد کامل و امتحان کردن آن در حساب کاربری خود، به آدرس زیر مراجعه کنید GitHub repo.
نتیجه
SageMaker Feature Store یک راه حل مدیریت ویژگی هدفمند را برای کمک به سازمان ها در مقیاس توسعه ML در تیم های علم داده ارائه می دهد. در این پست، توضیح دادیم که چگونه میتوانید از Apache Iceberg بهعنوان قالب جدول و عملیات نگهداری جدول مانند فشردهسازی استفاده کنید تا هنگام کار با گروههای ویژگی آفلاین در مقیاس، از پرسوجوهای بسیار سریعتر بهره ببرید و در نتیجه، مجموعه دادههای آموزشی را سریعتر بسازید. آن را امتحان کنید و نظر خود را در نظرات با ما در میان بگذارید.
درباره نویسندگان
آرنو لوئر یک معمار راه حل های شریک ارشد در تیم بخش عمومی در AWS است. او شرکا و مشتریان را قادر میسازد تا بفهمند که چگونه میتوانند از فناوریهای AWS برای تبدیل نیازهای تجاری به راهحل استفاده کنند. او بیش از 17 سال تجربه در ارائه و معماری پروژه های تحول دیجیتال در طیف وسیعی از صنایع از جمله بخش عمومی، انرژی و کالاهای مصرفی دارد. Arnaud دارای 12 گواهینامه AWS از جمله گواهینامه تخصصی ML است.
ایوان کاتانا معمار راه حل های متخصص هوش مصنوعی و یادگیری ماشین در AWS است. او به مشتریان کمک میکند راهحلهای ML خود را در AWS Cloud توسعه و مقیاسبندی کنند. Ioan بیش از 20 سال تجربه بیشتر در طراحی معماری نرم افزار و مهندسی ابر دارد.
مارک روی یک معمار اصلی یادگیری ماشین برای AWS است که به مشتریان در طراحی و ساخت راهحلهای AI/ML کمک میکند. کار مارک طیف گستردهای از موارد استفاده از ML را پوشش میدهد، با علاقه اولیه به بینایی رایانه، یادگیری عمیق، و مقیاسبندی ML در سراسر سازمان. او به شرکت ها در بسیاری از صنایع از جمله بیمه، خدمات مالی، رسانه و سرگرمی، مراقبت های بهداشتی، آب و برق و تولید کمک کرده است. مارک دارای شش گواهینامه AWS از جمله گواهینامه تخصصی ML است. قبل از پیوستن به AWS، مارک به مدت بیش از 25 سال، از جمله 19 سال در خدمات مالی، معمار، توسعه دهنده و رهبر فناوری بود.
براندون چتم یک مهندس نرم افزار با تیم فروشگاه ویژگی SageMaker است. او عمیقاً مشتاق ساخت سیستمهای ظریفی است که دادههای بزرگ و یادگیری ماشینی را به نوک انگشتان افراد میآورد.
- پیشرفته (300)
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- آمازون SageMaker
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- آموزش ماشین AWS
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- زفیرنت