سود:
- امکان راه اندازی خط لوله داده (جمع آوری، اعتبارسنجی، پاکسازی، تبدیل، تقسیم، نسخه سازی) و قرار دادن اعتبارسنجی طرحواره در ابتدای خط لوله
- امکان تصمیم گیری ارزش گمشده و برچسب گذاری بر اساس معنی و تقسیم فیلد برای جلوگیری از نشت داده ها (گروهی و زمانی)
- امکان ایجاد پایگاه داده قابل تکرار با رفع نسخه داده و دانه تصادفی
قدرت واقعی هر سیستم یادگیری ماشینی در داده ها نهفته است، نه مدل. مهندسان باتجربه میدانند: «آشغال داخل، زباله بیرون» — حتی پیشرفتهترین مدلی که دادههای بدی را تغذیه میکند، نتایج بدی را به همراه خواهد داشت. در این واحد، خط لوله داده (خط لوله داده: زنجیره مراحلی که دادههای خام را برای آموزش مدل آماده میکند) را به پایان میرسانیم و یاد میگیریم که در کدام مرحله از این خط میتوانیم با خیال راحت از هوش مصنوعی استفاده کنیم.
مراحل خط داده
یک خط داده معمولاً از این ایستگاه ها عبور می کند:
- جمعآوری (ingestion): جمعآوری دادهها از منابع (پایگاه داده، API، فایلهای گزارش، جریان رویداد).
- اعتبار سنجی: بررسی اینکه آیا داده ها با طرح، انواع و محدوده های مورد انتظار مطابقت دارند یا خیر.
- تمیز کردن: رسیدگی به مقادیر از دست رفته، سوابق تکراری، موارد پرت و ناسازگاری.
- تبدیل: تبدیل داده های خام به ویژگی ها - مانند تبدیل یک متغیر طبقه بندی شده به یک عدد، تولید یک "روز هفته" از یک تاریخ.
- تقسیم: تفکیک به مجموعه های آموزشی، اعتبار سنجی و آزمایش.
- نسخه سازی: ثبت مدلی که با کدام داده آموزش داده شده است.
هوش مصنوعی با تولید پیشنویسها و ایدههای کد، به ویژه در مراحل 2، 3 و 4، در زمان صرفهجویی میکند. زیرا تمیز کردن نامناسب می تواند یک سوگیری پنهان را به مدل تزریق کند.
تأیید داده ها: دفاع اولیه از خط
گران ترین خطاها نه در تولید، بلکه در جایی که مرحله تأیید نادیده گرفته می شود شروع می شود. اعتبار سنجی طرحواره به طور خودکار بررسی می کند که آیا هر دسته از داده های دریافتی با ساختار مورد انتظار مطابقت دارد یا خیر. مثلاً ستون سن بین 0-120 است، فیلد ایمیل خالی است، تعداد ستون ها تغییر کرده است؟
نکته: تأیید را در ابتدای خط قرار دهید. هرچه زودتر داده های فاسد به دست بیایند، رفع آن ارزان تر است. یک خطای طرحواره ای که در تولید کشف می شود، چندین برابر گرانتر از خطای کشف شده در مرحله آموزش است.
یک طرح اعتبارسنجی با pandera (یا انتظارات بزرگ) برای طرح داده زیر بنویسید. ستونها و قوانین: - شناسه کاربر: عدد صحیح، نمیتواند تهی باشد، منحصربهفرد- سن: عدد صحیح، نمیتواند از 0-120 باشد- تاریخ ثبت نام: تاریخ، نمیتواند در آینده باشد- کشور: دستهبندی، از مجموعه {TR، DE، ایالات متحده، بریتانیا}- موجودی: اعشاری، نمیتواند منفی باشد برای هر نقض قانون یک پیام خطای معنیدار ایجاد کنید. آزمایش را با یک مثال خط شکسته در انتهای کد نشان دهید.
نظافت: این انسان است که تصمیم می گیرد
مقادیر از دست رفته واقعیت هر مجموعه داده ای است. راه های رسیدگی:
- حذف: دور انداختن سطر/ستون با نرخ گم شدن بسیار بالا. اما خطر از دست دادن اطلاعات و سوگیری وجود دارد.
- Imputation: انتساب با میانگین، میانه، بیشترین مقدار، یا پیش بینی مبتنی بر مدل.
- پرچم: ذخیره اطلاعات «غیبت شده بود» در یک ستون پرچم جداگانه - گاهی اوقات گمشده خود سیگنال است.
اینکه کدام یک درست است بستگی به مشکل دارد. در مجموعه داده های پزشکی، اطلاعات "مقدار خون اندازه گیری نشده" باید به جای حذف، حفظ شود. زیرا حتی امتناع پزشک از انجام اندازه گیری یک سیگنال است. هوش مصنوعی می تواند گزینه ها و کدهایی را به شما بدهد. شما انتخاب می کنید که کدام یک با واقعیت این رشته مطابقت دارد.
اعلان ضعیف / اعلان قوی
اعلان ضعیف: "مقدارهای از دست رفته را پر کنید."
اعلان قوی: "مقادیر گمشده در ستونهای زیر وجود دارد: درآمد (12% از دست رفته، توزیع به سمت راست)، last_login (30% از دست رفته). پیشنهاد کنید درآمد را با میانه پر کنید، اما توضیح دهید که چرا میانه و نه متوسط. برای last_login، فرض کنید مقدار از دست رفته ممکن است قابل توجه باشد (کاربر ممکن است هرگز وارد نشده باشد. سوگیری را بنویسید که هر یک از این رویکردها به مدل اضافه می کند."
تفاوت: اعلان قوی اطلاعات توزیع و معنی منطقه را می دهد. هوش مصنوعی به جای پر کردن مکانیکی، پشتیبانی تصمیم گیری می کند.
برچسب زدن: کیفیت سنجیده می شود
در یادگیری نظارت شده (یادگیری که در آن مثال هایی با پاسخ های صحیح آورده شده است)، آنچه مدل یاد می گیرد برچسب ها هستند (برچسب ها: پاسخ صحیح برای هر مثال). کیفیت برچسب سقفی را تعیین میکند - اگر افراد بهصورت متناقض برچسبگذاری کنند، مدل بهطور متناقض یاد میگیرد.
توافق بین حاشیهنویس نرخی را اندازهگیری میکند که افراد مختلف برچسب یکسانی را به یک نمونه میدهند. با ضریبی مانند کاپا کوهن بیان می شود. انطباق کم نشان می دهد که یا کار نامشخص است یا دستورالعمل ضعیف است.
هوش مصنوعی به دو طریق به برچسبگذاری کمک میکند: (1) پیشنویس دستورالعمل حاشیهنویسی، (2) از قبل برچسبگذاری و اینکه انسان فقط آن را تصحیح کند. اما قبل از برچسب زدن با LLM یک دام دارد: خطای سیستماتیک مدل می تواند به کل مجموعه برچسب نشت کند. به همین دلیل است که انسان ها همیشه برخی از برچسب های LLM را بررسی می کنند.
توجه: برچسب های تولید شده توسط LLM را به عنوان "حقیقت پایه" در نظر نگیرید. نمونه ای را با یک انسان بررسی کنید و تناسب LLM-انسان را اندازه بگیرید. اگر انطباق کم باشد، پیش برچسب زدن بیشتر از اینکه فایده داشته باشد ضرر دارد.
پارتیشن داده: جلوگیری از نشت
خطرناک ترین اشتباه هنگام تقسیم داده ها به آموزش / اعتبار سنجی / آزمایش، نشت داده است: مخلوط کردن اطلاعات آزمون در آموزش. مثال ها:
- سوابق یک کاربر در دو بخش آموزش و آزمایش قرار می گیرد (نشت گروهی).
- استفاده از آینده در آموزش و استفاده از گذشته در آزمایش در سری های زمانی (نشت زمانی).
- محاسبه پارامترهای مقیاس بندی (نرمال سازی) از تمام داده ها و سپس تقسیم.
تقسیم زمانی برای مشکلات مربوط به زمان ضروری است: آموزش با گذشته، آزمایش در آینده. تقسیم تصادفی یک مزیت "آینده" می دهد که هرگز در تولید اتفاق نخواهد افتاد و معیارها را افزایش می دهد.
نسخه سازی و تکرارپذیری داده ها
"ما با چه داده هایی این مدل را آموزش دادیم؟" توانایی پاسخگویی به این سوال ماه ها بعد از ویژگی های مهندسی جدی ML است. نسخهسازی داده هر عکس فوری داده را با یک شناسه (هش یا تگ نسخه) ذخیره میکند. ابزارهایی مانند DVC (Data Version Control) داده های نسخه مانند کد.
برای بازتولید نتیجه یک مدل، سه چیز باید ثابت شود: نسخه داده، نسخه کد و دانه تصادفی. بدون این سه گانه نمی توان گفت «همین نتیجه را گرفتم». ما تکرارپذیری را در واحد 11 تعمیق خواهیم داد. اما تثبیت دانه در خط لوله داده از اینجا شروع می شود.
سه کیف کوچک
مورد 1 - اعتبار سنجی طرحواره روز ذخیره شد. وقتی یک تیم یک میدان قیمت سیستم بالادستی را از پنی به لیر تبدیل کرد، همه قیمتها 100 برابر کاهش یافت. اعتبار سنجی طرحواره دسته ای را به عنوان "قیمت خارج از محدوده" رد کرد و مدل با داده های خراب آموزش داده نشد. بدون تأیید، خطا فقط در تولید و با پیشبینیهای نادرست مشاهده میشود.
مورد 2 - سوگیری پر کردن نادرست. در یک مدل اعتباری، مقادیر درآمد گمشده با میانگین پر شد. اما درآمدهای از دست رفته عمدتاً در گروه کم درآمد بود. میانگین به طور مصنوعی این گروه را "غنی" کرد و این مدل به آنها محدودیت غیرمنصفانه بالایی ارائه داد. مشکل با پرچم میانه + گم شدن برطرف شد.
مورد 3 - نشت موقت. یک مدل پیشبینی تقاضا در مجموعه آزمایشی عالی به نظر میرسید (۹۵ درصد دقت) اما در تولید خراب شد. چرا: به دلیل تقسیم تصادفی، مدل آینده را دیده بود. جابجایی به باینینگ موقت، دقت تست را به 78% کاهش داد - اما این عملکرد واقعی بود و آن را در تولید نگه داشت.
قالب های قابل کپی
مجموعه داده زیر را به سه مجموعه تقسیم کنید: training/validation/testing.Constraint: این یک سری زمانی است. از تقسیم TEMPORAL (قطار در گذشته، آزمایش در آینده) استفاده کنید. جلوگیری از نشت دسته ای: «شناسه_مشتری» یکسان را فقط در یک خوشه داشته باشید. پارامترهای مقیاس بندی را فقط از مجموعه آموزشی محاسبه کنید، سپس برای همه اعمال کنید. تعداد خطوط باقیمانده در کد را در هر مرحله چاپ کنید و یک ادعا اضافه کنید که نشتی را بررسی کند.
یک پیش نویس دستورالعمل حاشیه نویسی برای این کار برچسب گذاری بنویسید. وظیفه: [به عنوان مثال. برچسب زدن به بررسی مشتری مثبت/منفی/خنثی]موارد مرزی را روشن کنید: طعنه، احساسات مختلط، نحوه برچسب زدن به نقد غیرمرتبط با محصول؟ 5 مثال و 3 مورد لبه دشوار ارائه دهید که باعث افزایش ثبات در برچسبها میشود.
یک چک لیست تکرارپذیری برای این خط لوله داده تهیه کنید: - نسخه داده چگونه باید ثابت شود؟ - کدام دانه های تصادفی باید در کجا تنظیم شوند؟ - چه ابرداده هایی (درهم سازی داده ها، تعداد ردیف ها، تاریخ) باید ثبت شوند؟ پایگاه کد من: [زبان/کتابخانه]
این کد پاکسازی را برای نشت اطلاعات بررسی کنید. به طور خاص به این نگاه کنید: آیا پارامترهای مقیاس بندی/رمزگذاری قبل از تقسیم محاسبه می شوند؟ آیا آماری از روی همه داده ها محاسبه می شود یا فقط آموزش؟ کد: [کد]
جدول تصمیم: استراتژی ارزش گمشده
وضعیت
رویکرد توصیه شده
چرا
توزیع عددی اریب
با میانه پر کنید
میانگین تحت تأثیر عوامل پرت است
عددی، متقارن
با میانگین پر کنید
از اطلاعات محافظت می کند
کمبود ممکن است قابل توجه باشد
ستون پرچم + پر کردن
کمبود یک سیگنال است
نرخ گمشده > 60%
ارزیابی/رد ستون
سر و صدا خیلی زیاده
دسته بندی
دسته بندی "ناشناخته".
اکثریت مصنوعی ایجاد نمی کند
اشتباهات رایج
- رد شدن از تأیید. بدون کنترل طرحواره، داده های خراب بی صدا به صورت مخفیانه وارد می شوند.
- پوسته پوسته شدن قبل از تقسیم این آمار آزمون را به آموزش و پرورش درز می کند.
- استفاده از تقسیم تصادفی در سری های زمانی این معیارهای جعلی بالا تولید می کند.
- اعتماد کورکورانه به برچسب های LLM. خطای سیستماتیک در سراسر داده ها پخش می شود.
- ذخیره نشدن نسخه داده شما نمی توانید نتیجه را تکرار کنید.
- پر کردن مکانیکی با متوسط. معنای میدان را نادیده می گیرد، تعصب می افزاید.
به طور خلاصه
خط لوله داده پایه و اساس سیستم ML است و سزاوار تلاش بیشتری نسبت به مدل است. تأیید را در بالا قرار دهید؛ تصمیمات پاکسازی و برچسبگذاری را با دانش حوزه انجام دهید. جلوگیری از نشت (گروهی و زمانی) در محفظه؛ نسخه دیتا و seed را اصلاح کنید. هوش مصنوعی کدها و ایدههایی را در این خط تولید میکند، اما این شما هستید که تصمیم میگیرید کدام داده و چگونه پردازش کنید – زیرا هر تصمیم اشتباه در اینجا به عنوان یک نقص پنهان به مدل منتقل میشود.
وظیفه کاربردی
یک طرح اعتبارسنجی (pandera/Great Expectations) روی مجموعه داده خود بنویسید و عمداً یک ردیف بد اضافه کنید و نشان دهید که گرفتار شده است. سپس دادهها را بهصورت موقت یا دستهای تقسیم کنید، پارامترهای مقیاسبندی را فقط از آموزش محاسبه کنید، و با یک ادعا تأیید کنید که نشتی وجود ندارد. نسخه داده و تعداد ردیف را در یک فایل فراداده بنویسید.
چک لیست
- [ ] اعتبار سنجی طرحواره در بالای خط اجرا می شود.
- [ ] من استراتژی ارزش گمشده را بر اساس معنای فیلد انتخاب کردم، آن را به صورت مکانیکی پر نکردم.
- [ ] من کیفیت برچسب (انطباق) را اندازه گیری کردم. من برچسب های LLM را توسط انسان بررسی کردم.
- [ ] من از نشت گروهی و زمانی در صفحه جلوگیری کردم.
- [ ] مقیاس بندی/رمزگذاری فقط از مجموعه آموزشی محاسبه شده است.
- [ ] نسخه داده، تعداد ردیف و دانه ثبت شده.