هوش داده افلاطون
جستجوی عمودی و هوش مصنوعی

ساخت و آموزش مدل های ML با استفاده از معماری مش داده در AWS: قسمت 2

تاریخ:

این دومین بخش از مجموعه‌ای است که چرخه حیات یادگیری ماشینی (ML) را با الگوی طراحی شبکه داده برای یک شرکت بزرگ با چندین خط کسب‌وکار (LOB) و مرکز تعالی (CoE) برای تجزیه و تحلیل و ML به نمایش می‌گذارد.

In بخش 1، ما شخصیت مباشر داده را مورد خطاب قرار دادیم و یک تنظیم مش داده با چندین حساب تولید کننده و مصرف کننده داده AWS را به نمایش گذاشتیم. برای یک مرور کلی از زمینه کسب و کار و مراحل ایجاد یک شبکه داده با سازند دریاچه AWS و ثبت محصول داده به قسمت 1 مراجعه کنید.

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

کد این مثال در دسترس است GitHub.

تجزیه و تحلیل و مصرف کننده ML در معماری مش داده

بیایید معماری سطح بالا را که اجزای کلیدی در معماری مش داده را برجسته می کند، مرور کنیم.

در بلوک تولیدکننده داده 1 (سمت چپ)، یک مرحله پردازش داده وجود دارد تا اطمینان حاصل شود که داده‌های به اشتراک گذاشته شده به خوبی واجد شرایط و مدیریت هستند. بلوک مدیریت داده مرکزی 2 (مرکز) به عنوان یک کاتالوگ داده متمرکز با فراداده محصولات داده های مختلف ثبت شده عمل می کند. بلوک مصرف کننده داده 3 (سمت راست) درخواست دسترسی به مجموعه داده ها از کاتالوگ مرکزی را می دهد و داده ها را برای ساخت و آموزش مدل های ML جستجو و پردازش می کند.

با SageMaker، دانشمندان داده و توسعه دهندگان در ML CoE می توانند به سرعت و به راحتی مدل های ML را بسازند و آموزش دهند و سپس مستقیماً آنها را در یک محیط میزبان آماده تولید مستقر کنند. SageMaker دسترسی آسان به منابع داده شما را برای کاوش و تجزیه و تحلیل فراهم می‌کند، و همچنین الگوریتم‌ها و چارچوب‌های رایج ML را ارائه می‌دهد که برای اجرای کارآمد در برابر داده‌های بسیار بزرگ در یک محیط توزیع‌شده بهینه شده‌اند. شروع کار آسان است Amazon SageMaker Studio، یک محیط توسعه یکپارچه مبتنی بر وب (IDE)، با تکمیل دامنه SageMaker روند شبانه روزی. برای اطلاعات بیشتر به راهنمای توسعه دهنده Amazon SageMaker.

مصرف محصول داده توسط تجزیه و تحلیل و ML CoE

نمودار معماری زیر مراحل مورد نیاز مصرف کننده تجزیه و تحلیل و ML CoE را برای دسترسی به محصول داده ثبت شده در کاتالوگ داده مرکزی و پردازش داده ها برای ساخت و آموزش یک مدل ML توصیف می کند.

گردش کار از اجزای زیر تشکیل شده است:

  1. مباشر داده های تولیدکننده دسترسی در حساب مرکزی به پایگاه داده و جدول به حساب مصرف کننده را فراهم می کند. پایگاه داده اکنون به عنوان یک پایگاه داده مشترک در حساب مصرف کننده منعکس می شود.
  2. مدیر مصرف کننده یک پیوند منبع در حساب مصرف کننده به پایگاه داده به اشتراک گذاشته شده توسط حساب مرکزی ایجاد می کند. اسکرین شات زیر نمونه ای را در حساب مصرف کننده نشان می دهد، با rl_credit-card بودن لینک منبع credit-card پایگاه داده.

  3. مدیر مصرف کننده استودیو را فراهم می کند هویت AWS و مدیریت دسترسی (IAM) دسترسی نقش اجرایی به پایگاه داده مرتبط با منبع و جدول مشخص شده در برچسب Lake Formation. در مثال زیر، ادمین مصرف کننده ارائه شده به نقش اجرای SageMaker دارای مجوز دسترسی است rl_credit-card و جدولی که عبارت برچسب Lake Formation را برآورده می کند.
  4. پس از تعیین نقش اجرایی، دانشمندان داده در SageMaker می توانند از آن استفاده کنند آمازون آتنا برای جستجوی جدول از طریق پایگاه داده پیوند منابع در Lake Formation.
    1. برای کاوش داده ها، آنها می توانند از نوت بوک های استودیو برای پردازش داده ها با پرس و جوی تعاملی از طریق Athena استفاده کنند.
    2. برای پردازش داده و مهندسی ویژگی، آنها می توانند کارهای پردازش SageMaker را با منبع داده Athena اجرا کنند و نتایج را به سرویس ذخیره سازی ساده آمازون (Amazon S3).
    3. پس از پردازش داده ها و در دسترس بودن در Amazon S3 در حساب ML CoE، دانشمندان داده می توانند از مشاغل آموزشی SageMaker برای آموزش مدل ها استفاده کنند. خطوط لوله SageMaker برای خودکارسازی گردش کار مدل سازی.
    4. دانشمندان داده همچنین می توانند از رجیستری مدل SageMaker برای ثبت مدل ها استفاده کنند.

اکتشاف داده ها

نمودار زیر گردش کار کاوش داده در حساب مصرف کننده داده را نشان می دهد.

مصرف کننده با پرس و جو از نمونه ای از داده ها شروع می کند credit_risk میز با آتنا در دفتر یادداشت استودیو. هنگام جستجوی داده ها از طریق Athena، نتایج میانی نیز در Amazon S3 ذخیره می شوند. می توانید استفاده کنید کتابخانه AWS Data Wrangler برای اجرای یک پرس و جو بر روی Athena در یک نوت بوک استودیو برای کاوش داده ها. مثال کد زیر نشان می دهد نحوه پرس و جو از آتنا برای واکشی نتایج به عنوان یک چارچوب داده برای کاوش داده:

df= wr.athena.read_sql_query('SELECT * FROM credit_card LIMIT 10;', database="rl_credit-card", ctas_approach=False)

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

هنگامی که پایگاه داده را پرس و جو می کنید، می توانید گزارش های دسترسی را از کنسول Lake Formation مشاهده کنید، همانطور که در تصویر زیر نشان داده شده است. این گزارش‌ها اطلاعاتی در مورد اینکه چه کسی یا کدام سرویس از Lake Formation استفاده کرده است، از جمله نقش IAM و زمان دسترسی به شما می‌دهد. اسکرین شات گزارشی از دسترسی SageMaker به جدول را نشان می دهد credit_risk در چسب AWS از طریق آتنا. در گزارش، می‌توانید زمینه ممیزی اضافی را ببینید که حاوی شناسه پرس و جو است که با شناسه پرس و جو در Athena مطابقت دارد.

تصویر زیر شناسه اجرای پرس و جوی Athena را نشان می دهد که با شناسه پرس و جو از گزارش قبلی مطابقت دارد. این داده هایی را نشان می دهد که با پرس و جوی SQL به آنها دسترسی پیدا کرده اید. با رفتن به کنسول Athena و انتخاب عبارت، می‌توانید ببینید چه داده‌هایی پرس و جو شده است پرس و جوهای اخیر برگه، و سپس به دنبال شناسه اجرا که با شناسه پرس و جو از زمینه ممیزی اضافی مطابقت دارد، بگردید.

پردازش داده ها

پس از کاوش داده ها، ممکن است بخواهید قبل از آموزش یک مدل، کل مجموعه داده بزرگ را برای مهندسی ویژگی پیش پردازش کنید. نمودار زیر روند پردازش داده ها را نشان می دهد.

در این مثال، ما از یک کار پردازشی SageMaker استفاده می کنیم که در آن تعریف مجموعه داده Athena را تعریف می کنیم. کار پردازش داده ها را از طریق Athena جستجو می کند و از یک اسکریپت برای تقسیم داده ها به مجموعه داده های آموزشی، آزمایشی و اعتبار سنجی استفاده می کند. نتایج کار پردازش در آمازون S3 ذخیره می شود. برای آشنایی با نحوه پیکربندی یک کار پردازشی با آتنا به ادامه مطلب مراجعه کنید از Amazon Athena در یک کار پردازشی با Amazon SageMaker استفاده کنید.

در این مثال، می‌توانید از Python SDK برای راه‌اندازی یک کار پردازشی با چارچوب Scikit-learn استفاده کنید. قبل از شروع، می توانید پیکربندی کنید پارامتر ورودی برای دریافت داده های ورودی از طریق تعریف مجموعه داده Athena، همانطور که در کد زیر نشان داده شده است. مجموعه داده شامل مکان دانلود نتایج از Athena در محفظه پردازش و پیکربندی درخواست SQL است. هنگامی که کار پردازش به پایان رسید، نتایج در آمازون S3 ذخیره می شود.

AthenaDataset = AthenaDatasetDefinition (
  catalog = 'AwsDataCatalog', 
  database = 'rl_credit-card', 
  query_string = 'SELECT * FROM "rl_credit-card"."credit_card""',                                
  output_s3_uri = 's3://sagemaker-us-east-1-********7363/athenaqueries/', 
  work_group = 'primary', 
  output_format = 'PARQUET')

dataSet = DatasetDefinition(
  athena_dataset_definition = AthenaDataset, 
  local_path='/opt/ml/processing/input/dataset.parquet')


sklearn_processor.run(
    code="processing/preprocessor.py",
    inputs=[ProcessingInput(
      input_name="dataset", 
      destination="/opt/ml/processing/input", 
      dataset_definition=dataSet)],
    outputs=[
        ProcessingOutput(
            output_name="train_data", source="/opt/ml/processing/train", destination=train_data_path
        ),
        ProcessingOutput(
            output_name="val_data", source="/opt/ml/processing/val", destination=val_data_path
        ),
        ProcessingOutput(
            output_name="model", source="/opt/ml/processing/model", destination=model_path
        ),
        ProcessingOutput(
            output_name="test_data", source="/opt/ml/processing/test", destination=test_data_path
        ),
    ],
    arguments=["--train-test-split-ratio", "0.2"],
    logs=False,
)

آموزش مدل و ثبت نام مدل

پس از پیش پردازش داده ها، می توانید مدل را با داده های از پیش پردازش شده ذخیره شده در Amazon S3 آموزش دهید. نمودار زیر روند آموزش و ثبت نام مدل را نشان می دهد.

برای کاوش داده ها و کارهای پردازش SageMaker، می توانید داده ها را در مش داده ها از طریق Athena بازیابی کنید. اگرچه SageMaker Training API پارامتری برای پیکربندی منبع داده Athena ندارد، می‌توانید داده‌ها را از طریق Athena در خود اسکریپت آموزشی جستجو کنید.

در این مثال، داده های پیش پردازش شده اکنون در آمازون S3 موجود است و می تواند مستقیماً برای آموزش مدل XGBoost با حالت SageMaker Script Mode استفاده شود. شما می توانید اسکریپت، فراپارامترها، نوع نمونه و تمام پارامترهای اضافی مورد نیاز برای آموزش موفقیت آمیز مدل را ارائه دهید. می توانید برآوردگر SageMaker را با داده های آموزشی و اعتبارسنجی در آمازون S3 فعال کنید. هنگامی که آموزش مدل کامل شد، می توانید مدل را در رجیستری مدل SageMaker برای ردیابی آزمایش و استقرار در یک حساب تولید ثبت کنید.

estimator = XGBoost(
    entry_point=entry_point,
    source_dir=source_dir,
    output_path=output_path,
    code_location=code_location,
    hyperparameters=hyperparameters,
    instance_type="ml.c5.xlarge",
    instance_count=1,
    framework_version="0.90-2",
    py_version="py3",
    role=role,
)

inputs = {"train": train_input_data, "validation": val_input_data}

estimator.fit(inputs, job_name=job_name)

مراحل بعدی

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

به روز رسانی داده ها و محرک های بازآموزی مدل

نمودار زیر روند به روز رسانی داده های آموزشی و بازآموزی مدل را نشان می دهد.

فرآیند شامل مراحل زیر است:

  1. تولید کننده داده، محصول داده را با یک طرح جدید یا داده های اضافی در یک فرکانس منظم به روز می کند.
  2. پس از ثبت مجدد محصول داده در کاتالوگ داده مرکزی، این یک نشان می دهد CloudWatch آمازون رویدادی از تشکیل دریاچه
  3. رویداد CloudWatch باعث ایجاد یک AWS لامبدا عملکردی برای همگام سازی محصول داده به روز شده با حساب مصرف کننده. می توانید با انجام کارهای زیر از این ماشه برای منعکس کردن تغییرات داده استفاده کنید:
    1. خزنده AWS Glue را دوباره اجرا کنید.
    2. اگر داده‌ها از یک آستانه معین فراتر رفت، بازآموزی مدل را آغاز کنید.

برای جزئیات بیشتر در مورد راه اندازی خط لوله استقرار SageMaker MLOps برای تشخیص دریفت، به Amazon SageMaker Drift Detection مخزن GitHub.

حذف خودکار داده های میانی در آمازون S3

می‌توانید به‌طور خودکار داده‌های میانی را که توسط جستارهای Athena تولید می‌شوند و در Amazon S3 در حساب مصرف‌کننده ذخیره می‌شوند، در فواصل زمانی منظم با قوانین چرخه حیات شی S3 حذف کنید. برای اطلاعات بیشتر مراجعه کنید مدیریت چرخه عمر ذخیره سازی شما.

ادغام فروشگاه ویژگی SageMaker

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

نتیجه

در این مجموعه دو قسمتی، نحوه ساخت و آموزش مدل‌های ML را با معماری مش داده چند حسابی در AWS نشان دادیم. ما الزامات یک سازمان خدمات مالی معمولی با چندین LoB و یک ML CoE را توضیح دادیم و معماری راه حل را با Lake Formation و SageMaker نشان دادیم. ما از نمونه یک محصول داده ریسک اعتباری استفاده کردیم که در Lake Formation توسط LoB بانکداری مصرف‌کننده ثبت شده و توسط تیم ML CoE برای آموزش یک مدل ریسک اعتباری ML با SageMaker به آن دسترسی داشت.

هر حساب تولیدکننده داده، محصولات داده‌ای را تعریف می‌کند که توسط افرادی که داده‌ها و کنترل دسترسی، استفاده و محدودیت‌های آن را درک می‌کنند، تنظیم می‌شوند. محصولات داده و حوزه های کاربردی که آنها را مصرف می کنند به هم متصل شده اند تا شبکه داده را تشکیل دهند. معماری مش داده به تیم‌های ML این امکان را می‌دهد تا این محصولات داده‌ای را کشف کرده و به آن دسترسی داشته باشند.

Lake Formation امکان دسترسی متقابل به ابرداده‌های کاتالوگ داده و داده‌های اساسی را فراهم می‌کند. می توانید از Lake Formation برای ایجاد یک معماری مش داده چند حسابی استفاده کنید. SageMaker یک پلت فرم ML با قابلیت های کلیدی در مورد مدیریت داده، آزمایش علم داده، آموزش مدل، میزبانی مدل، اتوماسیون گردش کار و خطوط لوله CI/CD برای تولید ارائه می دهد. می‌توانید یک یا چند محیط تحلیلی و ML CoE را برای ساخت و آموزش مدل‌هایی با محصولات داده‌ای که در چندین حساب در یک شبکه داده ثبت شده‌اند، راه‌اندازی کنید.

را امتحان کنید AWS CloudFormation قالب ها و کدهای مثال مخزن برای شروع.


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

کریم حمودا یک معمار راه حل های تخصصی برای تجزیه و تحلیل در AWS با اشتیاق به یکپارچه سازی داده ها، تجزیه و تحلیل داده ها و BI است. او با مشتریان AWS برای طراحی و ساخت راه حل های تحلیلی که به رشد کسب و کار آنها کمک می کند، کار می کند. او در اوقات فراغتش دوست دارد فیلم های مستند تلویزیونی ببیند و با پسرش بازی های ویدئویی انجام دهد.

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

بنوا دو پاتول یک معمار راه حل های تخصصی AI/ML در AWS است. او با ارائه راهنمایی و کمک فنی به مشتریان کمک می کند تا راه حل های مرتبط با AI/ML با استفاده از AWS ایجاد کنند. در اوقات فراغتش دوست دارد پیانو بزند و با دوستان وقت بگذراند.

نقطه_img

جدیدترین اطلاعات

نقطه_img

چت با ما

سلام! چگونه می توانم به شما کمک کنم؟