Табыстар:
- Код-деректер-модель триосы мен пакетіне қатысты ML-дің ерекше қиындықтарын тану және бизнес қажеттіліктеріне сәйкес модельді онлайн немесе пакетте ұсыну мүмкіндігі.
- Біртіндеп және кері орналастыру үлгілерін (көлеңке, канарей, A/B, кері қайтару) енгізу және әрбір орналастыруға тексерілген кері қайтару жоспарын қосу мүмкіндігі
- Бағалау шегімен басқарылатын CI/CD және үлгі тізілімімен өндіріске енгізілген модельдің деректер-код-метрикалық байланысын қадағалау мүмкіндігі
Дәптерде 95% дәлдікке қол жеткізу үшін үлгі алу - бұл оқиғаның жартысы ғана. Екінші жартысы - көбінесе қиын бөлігі - бұл модельді нақты пайдаланушыларға сенімді, масштабталатын және техникалық қызмет көрсетуге болатын жолмен жеткізу. MLOps (Machine Learning Operations: ML үлгілерін өндіріске енгізу, пайдалану және қолдау пәні) DevOps бағдарламалық жасақтама жасау тәжірибесін ML-дің бірегей қиындықтарымен біріктіреді. Бұл бөлімде біз модельді өндіріске көшіру қадамдарын және жасанды интеллект бұл процеске қалай көмектесетінін қарастырамыз.
Неліктен ML қарапайым бағдарламалық құралдан ерекшеленеді?
Кәдімгі бағдарламалық жасақтамада мінез-құлық кодта болады; Егер код өзгермесе, мінез-құлық өзгермейді. ML-де мінез-құлық кодқа, деректерге және үлгіге байланысты. Бұл үш өлшем MLOps қосымша қиындықтарын тудырады:
- Деректер дрейфі: өндірістегі деректер уақыт өте келе оқытудағы деректерден алыстайды; модель ескіреді.
- Сізге үш нәрсені нұсқау керек: код, деректер және үлгі — үшеуі де.
- Үнсіз сәтсіздік: Модель бұзылмай, қателерсіз, жай ғана дұрыс емес болжамдар жасау арқылы сәтсіздікке ұшырауы мүмкін. Мұны ұстау бақылауды қажет етеді.
Сондықтан «жұмыс моделі» мен «өндіріске дайын модель» арасында үлкен айырмашылық бар.
Модельді орау және ұсыну
Модельді өндіріске енгізудің бірінші қадамы оны орау болып табылады: үлгі файлы, қажетті кітапханалар, алдын ала өңдеу коды және қайталанатын біртұтас ретінде бірге нұсқа ақпараты. Контейнерлеу (мысалы, Docker: қолданбаны барлық тәуелділіктерімен оқшауланған қорапқа қою) мұнда стандартты болып табылады; Бұл «ол менің машинамда жұмыс істеді» мәселесін жояды.
Модельге қызмет көрсетудің екі негізгі үлгісі:
- Онлайн/нақты уақытта (онлайн): Модель API артында отырады, әрбір кіріс сұрау үшін лезде болжамды қайтарады. Төмен кідіріс өте маңызды.
- Пакет: Үлгі үлкен деректер жиынын мерзімді түрде өңдейді (мысалы, түнде барлық тұтынушылар үшін ұпайларды жасайды). Кешігу маңызды емес, тиімділік маңызды.
Қайсысы дұрыс екендігі бизнес қажеттілігіне байланысты: желіде жылдам ұсыныс, пакеттегі ай сайынғы тәуекел көрсеткіші.
Кеңес: «Нақты уақытта» - әдепкі емес, құны. Нәтиже бірнеше сағат ішінде қолданылса, пакет әлдеқайда арзан және қарапайым. Сізге дереу жауап қажет пе? Алдымен соны сұра.
Қауіпсіз тарату стратегиялары
Жаңа модельді тікелей барлық трафикке ашу қауіпті; Егер ол дұрыс емес болса, барлығына әсер етеді. Қауіпсіз тарату үлгілері:
- Көлеңкелі орналастыру: жаңа үлгі өндірістік трафикті алады, бірақ оның болжамдары пайдаланушыға көрсетілмейді, тек журналға жазылады. Нақты деректерде оның қауіпсіз екенін білу үшін ескі үлгімен салыстырылады.
- Canary орналастыру: жаңа үлгі алдымен трафиктің аз бөлігіне шығарылады (мысалы, 5%); Егер проблема болмаса, ол біртіндеп артады.
- A/B тестілеу: екі үлгі нақты пайдаланушыға параллель түрде ұсынылады және іскери көрсеткіштер (түрлендіру, басулар) салыстырылады.
- Кері қайтару: жаңа үлгі нашар болып шықса, ескі нұсқаға жылдам оралу мүмкіндігі. Әрбір орналастыруда кері қайтару жоспары болуы керек.
Ескерту: Қайтару жоспары жоқ орналастыру аяқталмайды. Бірнеше минут ішінде ескі нұсқаға оралу мүмкіндігі жаңа үлгі өндірісте күтпеген жерден әрекет еткенде пайдаланушыны қорғайды. Орналастыру алдында мұны тексеріңіз.
Әлсіз тәсіл / Күшті көзқарас
Әлсіз: «Модель тестілеуде жақсы болды, біз тікелей эфирге шықтық, оны барлығына аштық».
Güçlü: "Біз модельді контейнерге салып, оны нұсқа ретінде белгіледік. Біріншіден, біз оны 3 күн бойы өндірістік трафикпен көлеңкелі режимде жүргіздік, болжамдарды ескі үлгімен салыстырдық — ауытқу қолайлы болды. Содан кейін біз оны 5% канармен аштық, өткізу қабілеттілігі көрсеткіштерін және кідіріс уақытын бақылап отырдық. Ешқандай проблема болмаған кезде, біз оны бірте-бірте 100% кері сынауға дейін арттырдық."
Айырмашылық: күшті тәсіл біртіндеп, өлшенген және қайтымды. Тәуекел әр қадамда шектеледі.
CI/CD және автоматтандыру
ML тіліндегі CI/CD (Үздіксіз интеграция / Үздіксіз орналастыру: автоматты түрде тестілеу және код өзгерістерін шығару құбыры) кодты ғана емес, сонымен қатар деректер мен үлгі қадамдарын да қамтиды. Жақсы ML CI/CD құбыры: код өзгерген кезде сынақтарды жүргізеді, деректерді тексеруді жүзеге асырады, үлгіні қайта оқытады (қажет болса), бағалау шектерін тексереді және шекті мәндер сақталса ғана орналастыруды алға жылжытады. «Оқыту автоматты, орналастыру шекті» принципі нашар үлгінің өндіріске үнсіз ағып кетуіне жол бермейді.
AI осы конфигурацияларды орнату кезінде өте пайдалы: конфигурация файлының (YAML) жобаларын, сынақ жағдайларын, орналастыру сценарийлерін жазу. Бірақ сіз тарату шектерін (қандай көрсеткіш жарияланған мәннен асса да) және кері қайтару саясатын анықтайсыз; бұл бизнес тәуекелі туралы шешімдер.
Қайта өндіру инфрақұрылымы
Өндірістегі үлгінің әрекетін қайта шығару үшін үлгі тізілімі: қай модельдің қай деректермен және кодпен үйретілгенін және қандай көрсеткіштерді алғанын сақтайтын жазба. Әрбір өндіріс үлгісі үшін мыналар бақыланатын болуы керек: оқу деректерінің нұсқасы, код нұсқасы (git commit), гиперпараметрлер, бағалау ұпайлары және орналастыру күні. Мәселе туындаған кезде сіз «бұл болжамды қай модель, қандай деректермен жасады?» Деген сұраққа жауап бере алуыңыз керек. минут ішінде. Біз мұны 11-бөлімде тереңдетеміз.
үш шағын іс
1-жағдай - Көлеңкелік үлестірім арқылы анықталған мәселе. Ұсыныс үлгісі тестілеуде ескіні жеңді. Көлеңкелі режимде өндірістік трафикпен іске қосу пайдаланушылардың белгілі бір сегменті (жаңа пайдаланушылар) үшін өте нашар ұсыныстарды тудырғаны анықталды — сынақ деректері осы сегмент үшін жеткіліксіз болды. Модель пайдаланушыға ешқашан көрсетілмей түзетілді. Егер ол тікелей ашылса, жаңа пайдаланушы тәжірибесі бұзылады.
2-жағдай - Қайтарылмайтын бөлу. Команда кері қайтару жоспарлары жоқ барлық трафикке жаңа баға үлгісін шығарды. Модель кейбір өнімдерді күтпеген жерден өте арзан бағалады. Ескі нұсқаға оралу бірнеше сағатқа созылды, себебі процесс дайын емес. Табыстың айтарлықтай жоғалуы болды. Содан кейін әрбір орналастыруға міндетті кері тестілеу қосылды.
3-жағдай - деректердің дыбыссыз дрейфі. Алаяқтық үлгісі айлар бойы қатесіз пайда болды. Бірақ алаяқтардың тактикасы өзгерді (деректер дрейфі) және модельді қайтарып алу үнсіз төмендеді. Мониторинг болмағандықтан ешкім байқамады. Болжамды таратуды бақылау тақтасы орнатылғаннан кейін дрейф ерте байқалды. Біз мониторингті 8-бөлімде қарастырамыз.
Көшіретін үлгілер
Осы үлгі үшін орналастыру жоспарының жобасын жазыңыз. Үлгі: [ол не істейді], пайдалану: [онлайн немесе топтама?] Мыналарды қамтуы керек: 1) Қаптама (контейнер, нұсқа жасау)2) Қосымша орналастыру стратегиясы (көлеңкелі/канар/A-B) және неліктен3) Бақыланатын көрсеткіштер (бизнес + техникалық + кідіріс)4) Қайтару жоспары және қалай сынау керек5) Орналастыру мәні (метрикалық көрсеткіштен асуы керек)
Осы ML CI/CD конфигурациясын тексеріңіз:1) Деректерді тексеру жолда ма?2) Орналастыру бағалау шегін ұстамай жалғастыра ала ма (ол болмауы керек)?3) Кері қайтару автоматты ма?4) Дерек+код+метрика үлгі тізілімінде бақыланады ма?Плайн конфигурациясы: [config]
Бұл үлгіге онлайн немесе топтамалық көрсетілім сәйкес келетінін анықтауға көмектесіңіз. Нәтиже қанша уақыт пайдаланылады: [лезде/минут/сағат/күн]Күтілетін сұрау көлемі: [сан]Кідіріс бойынша шектеулер бар ма: [мс]Құны мен күрделілігі жағынан қайсысын ұсынар едіңіз және неге?
Осы үлгі үшін кері қайтару процедурасын жазыңыз.- Қандай көрсеткіш/шекті мән нашар өнімділікті тудырады?- Қайтару қадамдары қандай?- Кері қайтаруға қанша уақыт қажет (мақсат)?- Өндіріс алдында бұл процедураны қалай тексеремін?
Презентация үлгісінің кестесі
критерий
Онлайн (нақты уақыт)
Пакет
кешіктіру
Критикалық (мс)
елеусіз
Қолданылуы
Лезде жауап беру қажет
Мерзімді балл
Құны
жоғары
төмен
күрделілік
жоғары
төмен
мысал
Тікелей ұсыныс, алаяқтық
Ай сайынғы тәуекел көрсеткіші
Жалпы қателер
- Қайта алу жоспарынсыз таратыңыз. Қате үлгі бүкіл пайдаланушыға әсер етеді.
- Тікелей 100% трафикке ашылады. Тәуекелді кезең-кезеңмен бөлу арқылы шектеңіз.
- Мониторинг орнатпау. Модель қателерді үнсіз, қатесіз шығарады.
- Артық нақты уақыттағы презентация. Топтама жеткілікті болғанымен, құны мен күрделілігі артады.
- Модель-деректер-код нұсқаларын байланыстырмау. Сіз мәселені қайта жасай алмайсыз.
- Тарату шегі жоқ автоматты шығару. Нашар модель үнсіз кіріп келеді.
Қысқаша айтқанда
Модельді өндіріске көшіру оны оқытудан гөрі әртүрлі және көбінесе күрделірек инженерлік міндет болып табылады. ML қосымша тәртіпті қажет етеді, себебі ол код-деректер-модель үштігіне байланысты: орау және нұсқалау, бизнес қажеттілігіне сәйкес келетін жеткізу үлгісі (онлайн/топтама), біртіндеп және қайтымды орналастыру, шекпен басқарылатын CI/CD және үлгіні тіркеу. Жасанды интеллект осы инфрақұрылымның кодын және конфигурациясын жасауда қуатты көмекші болып табылады; бірақ тарату шектері, кері қайтару саясаты және тәуекел шешімдері сіздікі. Қайтару жоспары жоқ тарату аяқталмайды.
Қолданбалы тапсырма
Үлгіні контейнерлеу (Docker) және оның нұсқасын белгілеңіз. Бизнес қажеттіліктеріңізге негізделген онлайн немесе топтаманы ұсынатыныңызды шешіп, негіздемеңізді жазыңыз. Кезеңдік орналастыру жоспарын (көлеңке немесе канарей) және тексерілген кері қайтару процедурасын құжаттаңыз. Үлгі тізілімінде деректер нұсқасын, кодты растауды және бағалау ұпайларын жазып алыңыз.
бақылау парағы
- [ ] Модель оралған және нұсқаланған (контейнер + жапсырма).
- [ ] Презентация үлгісі (онлайн/топтама) іскерлік қажеттіліктерге сәйкес таңдалды.
- [ ] Кезеңді орналастыру стратегиясы (көлеңке/канария) орындалды.
- [ ] Қайтару процедурасы жазылған және тексерілген.
- [ ] CI/CD бағалау шегі орындалмай тұрып орналастыруды алға жылжытпайды.
- [ ] Үлгі тізілімінде деректер+код+метрикалық сілтеме бар.