درک زبان طبیعی در طیف گسترده ای از موارد استفاده می شود، از چت بات ها و دستیاران مجازی، تا ترجمه ماشینی و خلاصه سازی متن. برای اطمینان از اینکه این برنامهها در سطح عملکرد مورد انتظار اجرا میشوند، مهم است که دادهها در محیطهای آموزشی و تولید از یک توزیع باشند. زمانی که دادههایی که برای استنتاج استفاده میشوند (دادههای تولید) با دادههای مورد استفاده در آموزش مدل متفاوت است، با پدیدهای به نام رانش دادهها مواجه میشویم. وقتی جابجایی داده رخ میدهد، مدل دیگر به دادههای در حال تولید مرتبط نیست و احتمالاً بدتر از حد انتظار عمل میکند. نظارت مداوم بر داده های استنتاج و مقایسه آن با داده های مورد استفاده در طول آموزش بسیار مهم است.
شما می توانید آمازون SageMaker برای ساخت، آموزش و استقرار سریع مدلهای یادگیری ماشینی (ML) در هر مقیاسی. به عنوان یک اقدام پیشگیرانه در برابر تخریب مدل، می توانید استفاده کنید مانیتور مدل آمازون SageMaker برای نظارت مداوم بر کیفیت مدل های ML خود در زمان واقعی. با مدل مانیتور، همچنین میتوانید هشدارها را پیکربندی کنید تا در صورت مشاهده هرگونه تغییری در عملکرد مدل، اقداماتی را به شما اطلاع داده و راهاندازی کنند. تشخیص زودهنگام و پیشگیرانه این انحرافات شما را قادر می سازد تا اقدامات اصلاحی مانند جمع آوری داده های جدید آموزش حقیقت زمینی، مدل های بازآموزی و ممیزی سیستم های بالادستی را بدون نیاز به نظارت دستی مدل ها یا ساخت ابزار اضافی انجام دهید.
مدل مانیتور چهار نوع مختلف قابلیت نظارت را برای شناسایی و کاهش انحراف مدل در زمان واقعی ارائه می دهد:
- کیفیت داده - به تشخیص تغییر در طرحواره های داده ها و ویژگی های آماری متغیرهای مستقل کمک می کند و هشدارهایی را در هنگام شناسایی دریفت می دهد.
- کیفیت مدل - برای نظارت بر ویژگیهای عملکرد مدل مانند دقت یا دقت در زمان واقعی، مدل مانیتور به شما امکان میدهد برچسبهای حقیقت زمینی جمعآوریشده از برنامههای خود را دریافت کنید. مدل مانیتور به طور خودکار اطلاعات حقیقت پایه را با داده های پیش بینی ادغام می کند تا معیارهای عملکرد مدل را محاسبه کند.
- تعصب مدل - مانیتور مدل یکپارچه شده است Amazon SageMaker Clarify برای بهبود دید به سوگیری بالقوه. اگرچه داده ها یا مدل اولیه شما ممکن است سوگیری نداشته باشد، تغییرات در جهان ممکن است باعث شود که سوگیری در طول زمان در مدلی که قبلا آموزش داده شده است ایجاد شود.
- قابلیت توضیح مدل – تشخیص دریفت زمانی که تغییری در اهمیت نسبی تخصیص ویژگیها رخ میدهد به شما هشدار میدهد.
در این پست، انواع دریفت کیفیت دادهها را که برای دادههای متنی قابل اجرا هستند، مورد بحث قرار میدهیم. ما همچنین رویکردی برای تشخیص انحراف داده در دادههای متنی با استفاده از مدل مانیتور ارائه میکنیم.
جابجایی داده ها در NLP
رانش داده ها را می توان به سه دسته طبقه بندی کرد که بستگی به این دارد که تغییر توزیع در سمت ورودی یا خروجی اتفاق می افتد یا اینکه رابطه بین ورودی و خروجی تغییر کرده است.
تغییر متغیر
در یک تغییر متغیر، توزیع ورودی ها در طول زمان تغییر می کند، اما توزیع شرطی P(y|x) تغییر نمی کند این نوع رانش را تغییر متغیر می نامند زیرا مشکل به دلیل تغییر در توزیع متغیرهای کمکی (ویژگی ها) به وجود می آید. به عنوان مثال، در یک مدل طبقهبندی هرزنامه ایمیل، توزیع دادههای آموزشی (انجمن ایمیل) ممکن است از توزیع دادهها در طول امتیازدهی متفاوت باشد.
تغییر برچسب
در حالی که تغییر متغیر بر تغییرات در توزیع ویژگی تمرکز دارد، تغییر برچسب بر تغییرات توزیع متغیر کلاس تمرکز دارد. این نوع جابجایی اساساً معکوس تغییر متغیر است. یک راه بصری برای فکر کردن در مورد آن ممکن است در نظر گرفتن یک مجموعه داده نامتعادل باشد. اگر نسبت هرزنامه به غیر هرزنامه ایمیل ها در مجموعه آموزشی ما 50٪ باشد، اما در واقع 10٪ از ایمیل های ما غیر هرزنامه هستند، پس توزیع برچسب هدف تغییر کرده است.
تغییر مفهوم
تغییر مفهوم متفاوت از متغیرهای کمکی و تغییر برچسب است زیرا به توزیع داده یا توزیع کلاس مربوط نیست، بلکه به رابطه بین دو متغیر مرتبط است. برای مثال، ارسالکنندگان هرزنامه ایمیل اغلب از مفاهیم مختلفی برای عبور از مدلهای فیلتر هرزنامه استفاده میکنند و مفهوم ایمیلهای مورد استفاده در طول آموزش ممکن است با گذشت زمان تغییر کند.
اکنون که انواع مختلف جابهجایی دادهها را درک کردیم، بیایید ببینیم چگونه میتوانیم از Model Monitor برای تشخیص تغییر متغیر در دادههای متنی استفاده کنیم.
بررسی اجمالی راه حل
برخلاف دادههای جدولی که ساختار یافته و محدود هستند، دادههای متنی پیچیده، با ابعاد بالا و فرم آزاد هستند. برای تشخیص موثر دریفت در NLP، ما با آن کار می کنیم تعبیه ها، که نمایش های کم بعدی متن هستند. میتوانید با استفاده از مدلهای زبانی مختلف مانند Word2Vec و مدلهای مبتنی بر ترانسفورماتور، جاسازیها را به دست آورید. برت. این مدل ها با حفظ اطلاعات معنایی متن، داده های با ابعاد بالا را به فضاهای کم بعدی می فرستند. نتایج، بردارهای متراکم و معنادار هستند که میتوانند برای کارهای مختلف پاییندستی، از جمله نظارت بر رانش دادهها استفاده شوند.
در راه حل خود، ما از embedding ها برای تشخیص تغییر متغیر جملات انگلیسی استفاده می کنیم. ما از Model Monitor برای تسهیل نظارت مستمر برای طبقهبندیکننده متنی که در یک محیط تولید مستقر است، استفاده میکنیم. رویکرد ما شامل مراحل زیر است:
- یک مدل BERT را با استفاده از SageMaker تنظیم کنید.
- یک طبقهبندیکننده BERT تنظیمشده را بهعنوان نقطه پایانی بلادرنگ با استفاده از ضبط داده ها فعال شده است
- یک مجموعه داده پایه ایجاد کنید که شامل نمونه ای از جملات مورد استفاده برای آموزش طبقه بندی کننده BERT است.
- ایجاد یک کار نظارت بر SageMaker سفارشی برای محاسبه شباهت کسینوس بین دادههای جمعآوریشده در تولید و مجموعه دادههای پایه.
نمودار زیر گردش کار راه حل را نشان می دهد:
یک مدل BERT را دقیق تنظیم کنید
در این پست استفاده می کنیم مجموعه پذیرش زبانی (CoLA)، مجموعه داده ای از 10,657 جمله انگلیسی با برچسب دستوری یا غیر دستوری از ادبیات منتشر شده زبان شناسی. ما از آموزش SageMaker برای تنظیم دقیق مدل BERT با استفاده از مجموعه داده CoLa با تعریف یک کلاس برآوردگر PyTorch استفاده می کنیم. برای اطلاعات بیشتر در مورد نحوه استفاده از این SDK با PyTorch، نگاه کنید از PyTorch با SageMaker Python SDK استفاده کنید. تماس گرفتن با fit()
روش برآوردگر کار آموزشی را راه اندازی می کند:
مدل را مستقر کنید
پس از آموزش مدل خود، آن را در یک نقطه پایانی SageMaker میزبانی می کنیم. برای اینکه نقطه پایانی مدل را بارگذاری کند و پیشبینیها را ارائه کند، چند روش را در آن پیادهسازی میکنیم train_deploy.py:
- model_fn() – مدل ذخیره شده را بارگیری می کند و یک شی مدل را برمی گرداند که می تواند برای سرویس مدل استفاده شود. سرور مدل SageMaker PyTorch مدل ما را با فراخوانی بارگیری می کند
model_fn
. - input_fn() - ورودی پیشبینی را غیرمستقیم و آماده میکند. در این مثال، بدنه درخواست ما ابتدا به JSON سریال می شود و سپس به نقطه پایانی سرویس مدل ارسال می شود. بنابراین، در
input_fn()
، ابتدا بدنه درخواست با فرمت JSON را از حالت سریال خارج می کنیم و ورودی را به صورت a برمی گردانیمtorch.tensor
، همانطور که برای BERT لازم است. - predict_fn() - پیش بینی را انجام می دهد و نتیجه را برمی گرداند.
ضبط داده مدل مانیتور را فعال کنید
را فعال می کنیم مدل مانیتور گرفتن داده ها برای ثبت داده های ورودی در سرویس ذخیره سازی ساده آمازون سطل (Amazon S3) برای ارجاع بعداً:
سپس یک نقطه پایانی SageMaker بلادرنگ با مدل ایجاد شده در مرحله قبل ایجاد می کنیم:
استنباط
پیش بینی را با استفاده از شی پیش بینی که در مرحله قبل ایجاد کردیم اجرا می کنیم. سریالساز JSON و deserializer را تنظیم میکنیم که توسط نقطه پایانی استنتاج استفاده میشود:
نقطه پایان بلادرنگ برای گرفتن داده از درخواست پیکربندی شده است و پاسخ و داده ها در Amazon S3 ذخیره می شوند. میتوانید دادههایی را که در زمانبندی نظارت قبلی گرفته شدهاند مشاهده کنید.
یک خط پایه ایجاد کنید
ما از یک مدل BERT دقیق تنظیم شده برای استخراج ویژگی های جاسازی جمله از داده های آموزشی استفاده می کنیم. ما از این بردارها به عنوان ورودی های ویژگی با کیفیت بالا برای مقایسه فاصله کسینوس استفاده می کنیم زیرا BERT نمایش کلمه پویا را با بافت معنایی تولید می کند. مراحل زیر را برای جاسازی جمله کامل کنید:
- از یک توکنایزر BERT برای دریافت شناسه توکن برای هر توکن استفاده کنید (
input_id
(attention_mask_id
). ما از BERT استفاده می کنیمtokenizer.encode_plus
تابع برای بدست آوردن این مقادیر برای هر جمله ورودی:
input_ids
و attention_mask_ids
به مدل منتقل می شوند و حالت های پنهان شبکه را واکشی می کنند. را hidden_states
دارای چهار بعد به ترتیب زیر است:
- شماره لایه (BERT دارای 12 لایه است)
- شماره دسته (1 جمله)
- نمایه های نشانه ورد
- واحدهای مخفی (768 ویژگی)
- از دو لایه پنهان آخر برای به دست آوردن یک بردار (جاسازی جمله) با محاسبه میانگین تمام نشانه های ورودی در جمله استفاده کنید:
- جمله embedding را به عنوان یک آرایه NumPy تبدیل کنید و آن را در یک مکان Amazon S3 به عنوان خط پایه که توسط Model Monitor استفاده می شود ذخیره کنید:
اسکریپت ارزیابی
مدل مانیتور یک محفظه از پیش ساخته شده با توانایی تجزیه و تحلیل داده های گرفته شده از نقاط پایانی برای مجموعه داده های جدولی را فراهم می کند. اگر میخواهید کانتینر خود را بیاورید، مدل مانیتور نقاط توسعه را ارائه میدهد که میتوانید از آنها استفاده کنید. هنگامی که یک را ایجاد می کنید MonitoringSchedule
، مانیتور مدل در نهایت کار پردازش را آغاز می کند. بنابراین، کانتینر باید از قرارداد کار پردازش آگاه باشد. ما باید یک اسکریپت ارزیابی ایجاد کنیم که با کانتینر سازگار باشد ورودی های قرارداد و خروجی.
مدل مانیتور از کد ارزیابی در تمام نمونه هایی که در طول برنامه نظارت گرفته شده اند استفاده می کند. برای هر نقطه داده استنتاج، جاسازی جمله را با استفاده از همان منطقی که قبلا توضیح داده شد محاسبه می کنیم. شباهت کسینوس به عنوان یک متریک فاصله برای اندازه گیری شباهت نقطه داده استنتاج و جاسازی جملات در خط مبنا استفاده می شود. از نظر ریاضی، زاویه کسینوس بین دو بردار جاسازی جمله را اندازه میگیرد. نمره تشابه کسینوس بالا نشان دهنده جاسازی جملات مشابه است. نمره تشابه کسینوس کمتر نشان دهنده جابجایی داده ها است. ما میانگین تمام نمرات شباهت کسینوس را محاسبه می کنیم و اگر کمتر از آستانه باشد، در گزارش تخلف ثبت می شود. بر اساس موارد استفاده، می توانید از سایر معیارهای فاصله مانند استفاده کنید manhattan
or euclidean
برای اندازه گیری شباهت جاسازی های جمله
نمودار زیر نشان میدهد که چگونه از مانیتورینگ مدل SageMaker برای ایجاد خط پایه و تشخیص انحراف دادهها با استفاده از شباهت فاصله کسینوس استفاده میکنیم.
کد محاسبه تخلفات در زیر آمده است. اسکریپت ارزیابی کامل در دسترس است GitHub:
انحراف داده ها را با استفاده از مانیتور مدل اندازه گیری کنید
در این بخش، ما بر روی اندازه گیری دریفت داده ها با استفاده از Model Monitor تمرکز می کنیم. مانیتورهای از پیش ساخته شده مدل مانیتور توسط Deequ، که کتابخانه ای است که در بالای Apache Spark برای تعریف تست های واحد برای داده ها ساخته شده است که کیفیت داده ها را در مجموعه داده های بزرگ اندازه گیری می کند. برای استفاده از این قابلیت های نظارت از پیش ساخته شده نیازی به کدنویسی ندارید. شما همچنین انعطاف پذیری برای نظارت بر مدل ها با کدگذاری برای ارائه تجزیه و تحلیل سفارشی دارید. میتوانید تمام معیارهای منتشر شده توسط Model Monitor را جمعآوری و بررسی کنید Amazon SageMaker Studio، بنابراین می توانید عملکرد مدل خود را بدون نوشتن کد اضافی به صورت بصری تجزیه و تحلیل کنید.
در سناریوهای خاصی، به عنوان مثال زمانی که داده ها غیر جدولی هستند، کار پردازش پیش فرض (با قدرت Deequ) کافی نیست زیرا فقط از مجموعه داده های جدولی پشتیبانی می کند. مانیتورهای از پیش ساخته شده ممکن است برای تولید معیارهای پیچیده برای تشخیص انحراف کافی نباشند و ممکن است نیاز به آوردن معیارهای خود را داشته باشند. در بخشهای بعدی، تنظیماتی را شرح میدهیم که معیارهای شما را با ساختن یک ظرف سفارشی وارد کنید.
ظرف سفارشی Model Monitor را بسازید
ما با استفاده از اسکریپت ارزیابی از قسمت قبل یک ظرف داکر بسازید و آن را فشار دهید رجیستری ظروف الاستیک آمازون (Amazon ECR):
هنگامی که کانتینر Docker مشتری در آمازون ECR است، میتوانیم یک کار مانیتورینگ مدل را برنامهریزی کنیم و یک گزارش تخلف ایجاد کنیم، همانطور که در بخشهای بعدی نشان داده شده است.
یک کار نظارت مدل را برنامه ریزی کنید
برای برنامه ریزی یک کار نظارت بر مدل، یک نمونه از مانیتور مدل ایجاد می کنیم و در image_uri
، به کانتینر Docker که در بخش قبل ایجاد کردیم اشاره می کنیم:
ما کار نظارت را با استفاده از برنامه زمان بندی می کنیم create_monitoring_schedule
API. می توانید کار نظارت را به صورت ساعتی یا روزانه برنامه ریزی کنید. شما کار را با استفاده از destination
پارامتر، همانطور که در کد زیر نشان داده شده است:
برای توصیف و فهرست برنامه نظارت و اجرای آن، می توانید از دستورات زیر استفاده کنید:
گزارش نقض انحراف داده ها
پس از اتمام کار نظارت بر مدل، میتوانید به مسیر S3 مقصد بروید تا به گزارشهای تخلف دسترسی پیدا کنید. این گزارش شامل تمام ورودی هایی است که میانگین نمره کسینوس آنها (avg_cosine_score
) زیر آستانه ای است که به عنوان متغیر محیطی پیکربندی شده است THRESHOLD:0.5
در مانیتور مدل نمونه، مثال. این نشانه ای است که داده های مشاهده شده در طول استنتاج فراتر از خط پایه تعیین شده است.
کد زیر گزارش تخلف ایجاد شده را نشان می دهد:
در نهایت، بر اساس این مشاهده، می توانید مدل خود را برای بازآموزی پیکربندی کنید. همچنین می توانید فعال کنید سرویس اطلاع رسانی ساده آمازون اعلانهای (Amazon SNS) برای ارسال هشدار در صورت وقوع تخلف.
نتیجه
مدل مانیتور شما را قادر می سازد تا کیفیت بالای مدل های خود را در تولید حفظ کنید. در این پست، چالشهای مربوط به نظارت بر جابجایی دادهها در دادههای بدون ساختار مانند متن را برجسته کردیم و یک رویکرد بصری برای تشخیص جابجایی دادهها با استفاده از یک اسکریپت نظارت سفارشی ارائه کردیم. کد مرتبط با پست را می توانید در ادامه مطلب پیدا کنید مخزن GitHub. علاوه بر این، میتوانید راهحل را برای استفاده از سایر معیارهای فاصله مانند حداکثر اختلاف میانگین (MMD)، یک متریک فاصله ناپارامتریک برای محاسبه توزیع حاشیه ای بین توزیع منبع و هدف در فضای تعبیه شده.
درباره نویسنده
ویکرام الانگو یک معمار راه حل های تخصصی AI/ML در خدمات وب آمازون، مستقر در ویرجینیا، ایالات متحده است. Vikram به مشتریان صنعت مالی و بیمه با طراحی و رهبری فکری کمک می کند تا برنامه های یادگیری ماشین را در مقیاس بسازند و به کار گیرند. او در حال حاضر روی پردازش زبان طبیعی، هوش مصنوعی مسئول، بهینهسازی استنتاج و مقیاسبندی ML در سراسر سازمان متمرکز است. او در اوقات فراغت خود از سفر، پیاده روی، آشپزی و کمپینگ با خانواده لذت می برد.
راغو رامشا یک معمار ML Solutions با تیم خدمات آمازون SageMaker است. او بر کمک به مشتریان در انتقال حجم کاری تولید ML به SageMaker در مقیاس تمرکز دارد. او در زمینه های یادگیری ماشین، هوش مصنوعی و بینایی کامپیوتر تخصص دارد و دارای مدرک کارشناسی ارشد در علوم کامپیوتر از UT Dallas است. در اوقات فراغت از مسافرت و عکاسی لذت می برد.
تونی چن یک معمار راه حل های یادگیری ماشین در خدمات وب آمازون است که به مشتریان کمک می کند قابلیت های یادگیری ماشینی مقیاس پذیر و قوی را در فضای ابری طراحی کنند. به عنوان یک دانشمند داده و مهندس داده سابق، او از تجربیات خود برای کمک به مقابله با برخی از چالش برانگیزترین مشکلاتی که سازمان ها با عملیاتی کردن یادگیری ماشین با آن مواجه هستند، استفاده می کند.
- '
- "
- 100
- 11
- 7
- درباره ما
- دسترسی
- حساب
- در میان
- اقدامات
- اضافی
- AI
- معرفی
- قبلا
- هر چند
- آمازون
- آمازون SageMaker
- آمازون خدمات وب
- تحلیل
- آپاچی
- جرقه آپاچی
- مربوط
- برنامه های کاربردی
- در دسترس
- میانگین
- AWS
- خط مقدم
- بدن
- ساختن
- بنا
- چادر زدن
- موارد
- علت
- چالش ها
- تغییر دادن
- chatbots
- طبقه بندی
- ابر
- رمز
- برنامه نویسی
- جمع آوری
- پیچیده
- محاسبه
- علم کامپیوتر
- چشم انداز کامپیوتر
- ظرف
- شامل
- مداوم
- قرارداد
- پخت و پز
- ایجاد
- مشتریان
- دالاس
- داده ها
- کیفیت داده
- دانشمند داده
- طرح
- کشف
- توسعه
- مختلف
- بحث و تبادل نظر
- فاصله
- کارگر بارانداز
- کانتینر داکر
- نمی کند
- حوزه
- رانندگی
- در طی
- پویا
- در اوایل
- پست الکترونیک
- رویارویی
- نقطه پایانی
- مهندس
- انگلیسی
- سرمایه گذاری
- محیط
- تاسیس
- مثال
- تجربه
- چهره
- خانواده
- ویژگی
- امکانات
- مالی
- نام خانوادگی
- انعطاف پذیری
- تمرکز
- متمرکز شده است
- فرم
- به جلو
- رایگان
- تابع
- تولید می کنند
- GitHub
- داشتن
- کمک
- کمک می کند
- زیاد
- برجسته
- پیاده روی
- صفحه اصلی
- چگونه
- چگونه
- HTTPS
- تصویر
- انجام
- مهم
- از جمله
- صنعت
- اطلاعات
- بیمه
- صنعت بیمه
- IT
- کار
- شغل ها
- برچسب ها
- زبان
- بزرگ
- آخرین
- راه اندازی
- رهبری
- یادگیری
- سطح
- اهرم ها
- کتابخانه
- زبان شناسی
- فهرست
- ادبیات
- بار
- محل
- فراگیری ماشین
- ترجمه ماشین
- ماسک
- اندازه
- متریک
- ML
- مدل
- مدل
- نظارت بر
- بیش
- زبان طبیعی
- پردازش زبان طبیعی
- شبکه
- nlp
- اخطار
- پیشنهادات
- سفارش
- سازمان های
- دیگر
- کارایی
- عکاسی
- دقت
- پیش گویی
- پیش بینی
- در حال حاضر
- مشکل
- تولید
- پروژه
- ارائه
- فراهم می کند
- پــایتــون
- مارماهی
- کیفیت
- محدوده
- زمان واقعی
- واقعیت
- رکورد
- گزارش
- گزارش ها
- پاسخ
- نتایج
- بازآموزی
- بازده
- معکوس
- این فایل نقد می نویسید:
- دویدن
- در حال اجرا
- حکیم ساز
- مقیاس
- مقیاس گذاری
- علم
- sdk
- خدمات
- خدمت
- تنظیم
- تغییر
- مشابه
- ساده
- So
- مزایا
- فضا
- فضاها
- اسپم
- تخصص دارد
- ایالات
- ذخیره سازی
- opbevare
- پشتیبانی از
- سیستم های
- هدف
- آزمون
- تست
- تست
- جهان
- فکر
- رهبری فکر
- زمان
- رمز
- نشانه
- بالا
- مشعل
- ترافیک
- آموزش
- ترجمه
- ایالات متحده
- چشم انداز
- ویرجینیا
- مجازی
- دید
- دید
- صبر کنيد
- وب
- خدمات وب
- ویکیپدیا
- بدون
- مهاجرت کاری
- گردش کار
- جهان
- نوشته