Birlik 7 / 11

MLOps va joylashtirish: Modelni laboratoriyadan ishlab chiqarishga o'tkazish

Daromadlar:

  • Kod-ma'lumotlar-model triosi va paketi bilan bog'liq MLning maxsus qiyinchiliklarini tan olish va biznes ehtiyojlariga ko'ra modelni onlayn yoki ommaviy ravishda taqdim etish qobiliyati.
  • Sekin-asta va orqaga qaytarish sxemalarini (soya, kanareyka, A/B, orqaga qaytarish) amalga oshirish va har bir joylashtirishga sinovdan o'tgan orqaga qaytarish rejasini qo'shish qobiliyati
  • Baholash chegarasi bilan boshqariladigan CI/CD va modellar registri bilan ishlab chiqarishga kiritilgan modelning ma'lumotlar-kod-metrik aloqasini kuzatib borish imkoniyati

Daftarda 95% aniqlikka erishish uchun modelni olish - bu hikoyaning faqat yarmi. Ikkinchi yarmi - ko'pincha qiyin qismi - bu modelni haqiqiy foydalanuvchilarga ishonchli, kengaytiriladigan va texnik xizmat ko'rsatadigan tarzda etkazishdir. MLOps (Machine Learning Operations: ML modellarini ishlab chiqarishga kiritish, ishlatish va texnik xizmat ko'rsatish intizomi) DevOps dasturiy ta'minot muhandisligi amaliyotlarini MLning noyob muammolari bilan birlashtiradi. Ushbu bo'limda biz modelni ishlab chiqarishga o'tkazish bosqichlarini va sun'iy intellekt bu jarayonda qanday yordam berishini ko'rib chiqamiz.

Nima uchun ML oddiy dasturiy ta'minotdan farq qiladi?

Oddiy dasturiy ta'minotda xatti-harakatlar kodda bo'ladi; Agar kod o'zgarmasa, xatti-harakatlar o'zgarmaydi. MLda xatti-harakatlar kodga, ma'lumotlarga va modelga bog'liq. Ushbu uchta o'lchov MLOps uchun qo'shimcha qiyinchiliklarni keltirib chiqaradi:

  • Ma'lumotlar siljishi: ishlab chiqarishdagi ma'lumotlar vaqt o'tishi bilan mashg'ulotdagi ma'lumotlardan uzoqlashadi; model eskiradi.
  • Siz uchta narsani versiya qilishingiz kerak: kod, ma'lumotlar va model - uchtasi.
  • Ovozsiz nosozlik: Model noto'g'ri prognozlar ishlab chiqarish orqali, xatoliklarga yo'l qo'ymasdan, ishdan chiqishi mumkin. Buni ushlash monitoringni talab qiladi.

Shuning uchun "ishchi model" va "ishlab chiqarishga tayyor model" o'rtasida katta farq bor.

Modelni qadoqlash va taqdim etish

Modelni ishlab chiqarishga qo'yishning birinchi bosqichi uni qadoqlashdir: model fayli, kerakli kutubxonalar, oldindan ishlov berish kodi va versiya ma'lumotlari takrorlanadigan bir butun sifatida. Konteynerlashtirish (masalan, Docker: ilovani barcha bog'liqliklari bilan izolyatsiya qilingan qutiga joylashtirish) bu erda standartdir; Bu "mening mashinamda ishlayotgan edi" muammosini bartaraf qiladi.

Modelga xizmat ko'rsatishning ikkita asosiy usuli:

  • Onlayn/real vaqtda (onlayn): Model API orqasida o'tirib, har bir kiruvchi so'rov uchun tezkor bashoratni qaytaradi. Kam kechikish juda muhim.
  • To'plam: Model vaqti-vaqti bilan katta ma'lumotlar to'plamlarini qayta ishlaydi (masalan, tunda barcha mijozlar uchun ballar hosil qiladi). Kechikish muhim emas, samaradorlik muhim.

Qaysi biri to'g'ri bo'lishi biznes ehtiyojlariga bog'liq: onlayn lahzali tavsiyalar, to'plamdagi oylik xavf darajasi.

Maslahat: "Real-vaqt" - bu standart emas, balki xarajat. Agar natija bir necha soat ichida ishlatilsa, to'plam ancha arzon va sodda. Sizga haqiqatan ham tezkor javob kerakmi? Avval shuni so'rang.

Xavfsiz tarqatish strategiyalari

To'g'ridan-to'g'ri barcha trafik uchun yangi modelni ochish xavfli; Agar noto'g'ri bo'lsa, hamma ta'sir qiladi. Xavfsiz tarqatish usullari:

  • Soyani joylashtirish: Yangi model ishlab chiqarish trafigini oladi, lekin uning bashoratlari foydalanuvchiga ko'rsatilmaydi, faqat tizimga kiritilgan. Haqiqiy ma'lumotlarda xavfsiz yoki yo'qligini aniqlash uchun u eski model bilan taqqoslanadi.
  • Kanareykalarni joylashtirish: Yangi model birinchi navbatda trafikning kichik foiziga (masalan, 5%) chiqariladi; Muammo bo'lmasa, u asta-sekin oshiriladi.
  • A/B testi: Ikki model haqiqiy foydalanuvchiga parallel ravishda taqdim etiladi va biznes ko'rsatkichlari (konversiya, bosish) solishtiriladi.
  • Orqaga qaytarish: Agar yangi model yomon bo'lib chiqsa, tezda eski versiyaga qaytish imkoniyati. Har bir joylashtirishning orqaga qaytish rejasi bo'lishi kerak.
Diqqat: Orqaga qaytarish rejasisiz joylashtirish tugallanmagan. Bir necha daqiqada eski versiyaga qaytish imkoniyati yangi model ishlab chiqarishda kutilmaganda o‘zini tutishi foydalanuvchini himoya qiladi. Joylashtirishdan oldin buni sinab ko'ring.

Zaif yondashuv / Kuchli yondashuv

Zaif: "Model sinovda yaxshi edi, biz jonli efirga chiqdik, uni hamma uchun ochdik".

Güçlü: "Biz modelni konteynerga joylashtirdik, uni versiya sifatida belgiladik. Avval biz uni 3 kun davomida ishlab chiqarish trafigi bilan soya rejimida ishladik, bashoratlarni eski model bilan solishtirdik - og'ish maqbul edi. Keyin biz uni 5% kanareyka bilan ochdik, o'tkazuvchanlik ko'rsatkichlarini va kechikish vaqtini kuzatdik. Hech qanday muammo bo'lmaganida, biz uni asta-sekin 100% qaytarib sinovdan o'tkazdik."

Farqi: kuchli yondashuv asta-sekin, o'lchanadigan va qaytarilishi mumkin. Har bir qadamda xavf cheklangan.

CI/CD va avtomatlashtirish

ML-da CI/CD (uzluksiz integratsiya / uzluksiz joylashtirish: avtomatik sinov va kod o'zgarishlarini chiqarish liniyasi) nafaqat kodni, balki ma'lumotlar va model bosqichlarini ham qamrab oladi. Yaxshi ML CI/CD quvur liniyasi: kod o'zgarganda testlarni o'tkazadi, ma'lumotlarni tekshirishni amalga oshiradi, modelni qayta o'qitadi (agar kerak bo'lsa), baholash chegaralarini tekshiradi va agar chegaralar ushlab tursa, joylashtirishni oldinga siljitadi. "O'qitish avtomatik, joylashtirish chegaraga asoslangan" tamoyili yomon modelning ishlab chiqarishga jimgina kirib kelishiga yo'l qo'ymaydi.

Ushbu quvurlarni o'rnatishda AI juda foydali: konfiguratsiya fayli (YAML) qoralamalarini yozish, sinov holatlari, joylashtirish skriptlari. Lekin siz tarqatish chegaralarini (qaysi ko'rsatkich nashr etilgan qiymatdan oshib ketishidan qat'iy nazar) va qaytarish siyosatini aniqlaysiz; bular biznes tavakkalchilik qarorlari.

Qayta ishlab chiqarish infratuzilmasi

Modelning ishlab chiqarishdagi xatti-harakatlarini takrorlash uchun modellar reestri: qaysi model qaysi ma'lumotlar va kodlar bilan o'qitilganligini va qaysi ko'rsatkichlarni olganligini saqlaydigan yozuv. Har bir ishlab chiqarish modeli uchun quyidagilarni kuzatish mumkin bo'lishi kerak: o'quv ma'lumotlari versiyasi, kod versiyasi (git commit), giperparametrlar, baholash ballari va joylashtirish sanasi. Muammo yuzaga kelganda, siz "bu bashoratni qaysi model, qaysi ma'lumotlar bilan ishlab chiqdi?" Degan savolga javob berishingiz kerak. daqiqalar ichida. Biz buni 11-bo'limda chuqurlashtiramiz.

uchta mini holat

1-holat - Soya taqsimoti bilan bog'liq muammo. Tavsiya etilgan model sinovda eskisini ortda qoldirdi. Uni ishlab chiqarish trafigi bilan soya rejimida ishga tushirish foydalanuvchilarning ma'lum bir segmenti (yangi foydalanuvchilar) uchun juda yomon tavsiyalar berishi aniqlandi - test ma'lumotlari ushbu segment uchun etarli darajada vakil emas edi. Model hech qachon foydalanuvchiga ko'rsatilmasdan tuzatildi. Agar u to'g'ridan-to'g'ri ochilgan bo'lsa, yangi foydalanuvchi tajribasi buziladi.

2-holat - Qaytarib bo'lmaydigan taqsimot. Jamoa barcha trafik uchun yangi narxlash modelini taqdim etdi, hech qanday qaytarish rejalari yo'q. Model kutilmaganda ba'zi mahsulotlarni juda arzon baholadi. Eski versiyaga qaytish bir necha soat davom etdi, chunki jarayon tayyor emas edi. Jiddiy daromad yo'qotildi. Keyinchalik, har bir joylashtirishga majburiy orqaga qaytarish testi qo'shildi.

3-holat - ma'lumotlarning jimgina siljishi. Firibgarlik namunasi bir necha oy davomida hech qanday xatosiz paydo bo'ldi. Ammo firibgarlarning taktikasi o'zgardi (ma'lumotlar siljishi) va modelni eslab qolish jimgina tushib ketdi. Hech kim sezmadi, chunki monitoring yo'q edi. Prognozni taqsimlash monitoringi paneli tashkil etilgandan so'ng, drift erta ko'rindi. Biz 8-bo'limda monitoringni ko'rib chiqamiz.

Nusxalanadigan shablonlar

Ushbu model uchun joylashtirish rejasi loyihasini yozing. Model: [u nima qiladi], foydalanish: [onlayn yoki ommaviymi?] Quyidagilarni o'z ichiga olishi kerak: 1) Qadoqlash (konteyner, versiya) 2) Qo'shimcha joylashtirish strategiyasi (soya/kanar/A-B) va nima uchun3) Kuzatiladigan ko'rsatkichlar (biznes + texnik + kechikish)4) Qayta tiklash rejasi va qanday sinovdan o'tishi5) O'rnatish qiymati qanday oshib ketishi kerak

Ushbu ML CI/CD quvur liniyasini tekshiring:1) Satrda maʼlumotlar tekshiruvi bormi?2) Oʻrnatish baholash chegarasini ushlab turmasdan davom ettira oladimi (kerak emasmi)?3) Orqaga qaytarish avtomatikmi?4) Model registrida maʼlumotlar+kod+koʻrsatkichlar kuzatiladimi?Pline konfiguratsiyasi: [config]

Ushbu model uchun onlayn yoki ommaviy taqdimot mos keladimi yoki yo'qligini aniqlashga yordam bering. Natija qancha vaqt davomida qo'llaniladi: [lahzali / daqiqa / soat / kun]Kutilayotgan so'rov hajmi: [raqam]Kechikish bo'yicha cheklov bormi: [ms]Xarajat va murakkablik nuqtai nazaridan qaysi birini tavsiya qilasiz va nima uchun?

Ushbu model uchun orqaga qaytarish protsedurasini yozing.- Qaysi ko'rsatkich/eshik ishlamay qolishiga olib keladi?- Qayta tiklash bosqichlari qanday?- Orqaga qaytarish qancha vaqt olishi kerak (maqsadli)?- Ishlab chiqarishdan oldin bu protsedurani qanday sinab ko'rishim mumkin?

Taqdimot naqsh jadvali

mezon

Onlayn (real vaqt)

To'plam

kechikish

Kritik (ms)

ahamiyatsiz

Foydalanish

Tezkor javob kerak

Davriy ball

Narxi

yuqori

past

murakkablik

yuqori

past

misol

Jonli tavsiya, firibgarlik

Oylik xavf darajasi

Umumiy xatolar

  • Qabul qilish rejasisiz tarqating. Noto'g'ri model butun foydalanuvchini uradi.
  • To'g'ridan-to'g'ri 100% tirbandlikka ochiladi. Xavfni bosqichma-bosqich taqsimlash bilan cheklang.
  • Monitoringni o'rnatmaslik. Model xatolarni jimgina, xatosiz ishlab chiqaradi.
  • Haqiqiy vaqtda ortiqcha taqdimot. To'plam etarli bo'lsa-da, xarajat va murakkablik kuchayadi.
  • Model-ma'lumotlar-kod versiyalarini bog'lamaslik. Muammoni takrorlay olmaysiz.
  • Tarqatish chegarasisiz avtomatik chiqarish. Yomon model jimgina ichkariga kiradi.

Xulosa

Modelni ishlab chiqarishga o'tkazish uni o'qitishdan ko'ra boshqacha va ko'pincha murakkabroq muhandislik vazifasidir. ML qo'shimcha tartib-intizomni talab qiladi, chunki u kod-ma'lumotlar-model triosiga bog'liq: qadoqlash va versiyalash, biznes ehtiyojlariga mos keladigan etkazib berish sxemasi (onlayn/to'plam), bosqichma-bosqich va qayta tiklanadigan joylashtirish, chegara tomonidan boshqariladigan CI/CD va modelni ro'yxatga olish. Sun'iy intellekt ushbu infratuzilmaning kodini va konfiguratsiyasini yaratishda kuchli yordamdir; lekin tarqatish chegaralari, cheklov siyosati va xavf qarorlari sizniki. Orqaga qaytarish rejasisiz tarqatish tugallanmagan.

Ilova vazifasi

Modelni konteynerlash (Docker) va uning versiyasini belgilang. Biznes ehtiyojlaringizdan kelib chiqib, onlayn yoki ommaviy taklif qilish haqida qaror qabul qiling va asoslaringizni yozing. Bosqichli joylashtirish rejasini (soya yoki kanareyka) va sinovdan o'tgan orqaga qaytarish protsedurasini hujjatlashtiring. Model registrida ma'lumotlar versiyasini, kodni topshirishni va baholash ballarini yozib qo'yganingizga ishonch hosil qiling.

nazorat ro'yxati

  • [ ] Model qadoqlangan va versiyalangan (konteyner + yorliq).
  • [ ] Taqdimot namunasi (onlayn/to‘plam) biznes ehtiyojlariga qarab tanlangan.
  • [ ] Bosqichli joylashtirish strategiyasi (soya/kanareyka) amalga oshirildi.
  • [ ] Orqaga qaytarish protsedurasi yozilgan va sinovdan o'tgan.
  • [ ] CI/CD baholash chegarasi bajarilgunga qadar joylashtirishni ilgari surmaydi.
  • [ ] Model registrida ma'lumotlar + kod + metrik havola mavjud.