Табыстар:
- Деректер құбырын орнату мүмкіндігі (жинау, тексеру, тазалау, түрлендіру, бөлу, нұсқалау) және схеманың валидациясын құбырдың басында орналастыру
- Мәліметтердің ағып кетуін болдырмау үшін өріс мағынасына және бөлуге негізделген жетіспейтін мән және таңбалау шешімдерін қабылдау мүмкіндігі (топтық және уақытша)
- Деректер нұсқасын және кездейсоқтық тұқымын бекіту арқылы қайталанатын деректер базасын жасау мүмкіндігі
Әрбір машиналық оқыту жүйесінің нақты күші модельде емес, деректерде жатыр. Тәжірибелі инженерлер біледі: «қоқыс кірді, қоқыс шығады» — нашар деректермен қамтамасыз етілген ең озық үлгінің өзі жаман нәтиже береді. Бұл бөлімде біз деректер құбырын (деректер құбыры: бастапқы деректерді үлгілік оқытуға дайын ететін қадамдар тізбегі) соңына дейін орнатамыз және осы жолдың қай қадамында жасанды интеллектті қауіпсіз пайдалана алатынымызды білеміз.
Деректер желісінің қадамдары
Деректер сызығы әдетте мына аялдамалар арқылы өтеді:
- Жинақ (жұмыс): Дереккөздерден деректерді алу (деректер қоры, API, журнал файлдары, оқиға ағындары).
- Тексеру: деректердің күтілетін схемаға, түрлерге және ауқымдарға сәйкестігін тексеру.
- Тазалау: жетіспейтін мәндерді, қайталанатын жазбаларды, ауытқуларды және сәйкессіздіктерді өңдеу.
- Трансформация: категориялық айнымалыны санға түрлендіру, күннен бастап «апта күнін» шығару сияқты бастапқы деректерді атрибуттарға айналдыру.
- Бөлу: оқыту, тексеру және тестілеу жиынтықтарына бөлу.
- Нұсқалау: қай модель қай деректермен оқытылғанын жазу.
Жасанды интеллект, әсіресе 2, 3 және 4-қадамдарда код жобалары мен идеяларды генерациялау арқылы уақытты үнемдейді. Бірақ қай жазбаны алып тастау, қайсы жетіспейтін мәнді толтыру және қалай жасау сияқты шешімдер деректерді білетін инженерге тиесілі; себебі дұрыс тазаламау үлгіге жасырын ауытқуды енгізуі мүмкін.
Деректерді тексеру: желіні ерте қорғау
Ең қымбат қателер өндірісте емес, тексеру қадамын өткізіп жіберуден басталады. Схеманы тексеру деректердің әрбір кіріс партиясы күтілетін құрылымға сәйкестігін автоматты түрде тексереді. Мысалы, жас бағанасы 0-120, электрондық пошта өрісі бос па, бағандар саны өзгерді ме?
Кеңес: Тексеруді жолдың басына қойыңыз. Бүлінген деректер неғұрлым тезірек анықталса, соғұрлым оны түзету арзанырақ болады. Өндірісте ұсталған схема қатесі оқу кезеңінде ұсталған қатеден бірнеше есе қымбат.
Келесі деректер схемасы үшін pandera (немесе Great Expectations) көмегімен валидация схемасын жазыңыз. Бағандар мен ережелер:- user_id: бүтін, нөл болуы мүмкін емес, бірегей- жасы: бүтін, 0-120 аралығында болуы мүмкін емес- тіркелу_күні: күні, болашақта болуы мүмкін емес- ел: категориялық, {TR, DE, АҚШ, Ұлыбритания} жиынынан- теңгерім: ондық, теріс болуы мүмкін емес Әрбір ереже бұзушылық үшін маңызды қате хабарын жасаңыз. Тестті кодтың соңында үзік сызықпен көрсетіңіз.
Тазалау: адам шешеді
Жетіспейтін мәндер әрбір деректер жиынының шындығы болып табылады. Өңдеу жолдары:
- Жою: жоқ жылдамдығы өте жоғары жолды/бағанды алып тастау. Бірақ ақпараттың жоғалу және біржақтылық қаупі бар.
- Импутация: Орташа, медианамен, ең жиі мәнмен немесе модельге негізделген болжаммен енгізу.
- Жалауша: «жоқ болды» ақпаратты бөлек жалау бағанында сақтау — кейде жетіспейтіннің өзі сигнал болып табылады.
Қайсысы дұрыс екені мәселеге байланысты. Медициналық деректер жинағында «қанның мөлшері өлшенбеген» ақпарат жойылмай, сақталуы керек; Өйткені дәрігердің өлшеуден бас тартуы да сигнал болып табылады. AI сізге опциялар мен кодтарды бере алады; Сіз қайсысы өрістің шындығына сәйкес келетінін таңдайсыз.
Әлсіз шақыру / Күшті шақыру
Әлсіз нұсқау: «Жоғарылмаған мәндерді толтырыңыз».
Күшті шақыру: "Келесі бағандарда мәндер жетіспейді: табыс (12% жоқ, оңға қисайған бөлу), last_login (30% жоқ). Табысты медианамен толтыруды ұсыныңыз, бірақ неліктен медиананы білдірмейтінін түсіндіріңіз. Last_login үшін жетіспейтін мән маңызды болуы мүмкін деп есептеңіз (пайдаланушы ешқашан жүйеге кірмеген болуы мүмкін); оның орнына W_ жазбаны ешқашан өшіруді қарастырыңыз. кез келген көзқарас үлгіге қосады ».
Айырмашылығы: күшті шақыру тарату ақпараты мен аумақтың мағынасын береді; жасанды интеллект механикалық толтырудың орнына шешім қабылдауды қамтамасыз етеді.
Таңбалау: сапа өлшенеді
Бақыланатын оқытуда (дұрыс жауаптары бар мысалдар берілген оқыту) үлгінің үйренетіні белгілер (белгілер: әрбір мысал үшін дұрыс жауап). Белгі сапасы төбені орнатады — егер адамдар сәйкес келмесе, үлгі сәйкессіз үйренеді.
Аннотатор аралық келісім әртүрлі адамдардың бір үлгіге бірдей белгіні беру жылдамдығын өлшейді; Ол Коэн Каппа сияқты коэффициентпен өрнектеледі. Сәйкестіктің төмен болуы тапсырманың анық еместігін немесе нұсқаудың әлсіз екенін көрсетеді.
Жасанды интеллект таңбалауға екі жолмен көмектеседі: (1) аннотация нұсқаулығын жасау, (2) алдын ала таңбалау және оны тек адам түзетуі. Бірақ LLM-мен алдын ала таңбалаудың қиындығы бар: модельдің жүйелі қатесі бүкіл жапсырмалар жинағына ағып кетуі мүмкін. Сондықтан адамдар әрқашан LLM белгілерінің кейбірін тексереді.
Назар аударыңыз: LLM шығарған жапсырмаларды «негізгі шындық» деп санамаңыз. Үлгіні адаммен тексеріңіз және LLM-адам сәйкестігін өлшеңіз. Сәйкестік төмен болса, алдын ала таңбалау жақсыдан гөрі көп зиян келтіреді.
Деректер бөлімі: ағып кетуді болдырмайды
Деректерді оқыту/тексеру/тестілеуге бөлу кезіндегі ең қауіпті қате деректердің ағып кетуі: сынақ ақпаратын оқытуға араластыру. Мысалдар:
- Бір пайдаланушының жазбалары оқытуға да, тестілеуге де (топтың ағып кетуіне) жатады.
- Тренингте болашақты және уақыттық қатардағы тестілеуде өткенді пайдалану (уақытша ағып кету).
- Барлық деректерден масштабтау (нормалау) параметрлерін есептеу, содан кейін бөлу.
Уақытты бөлу уақытпен байланысты мәселелер үшін өте маңызды: өткенмен жаттығу, болашақта сынақ. Кездейсоқ бөлу өндірісте ешқашан болмайтын «болашақ» пайда береді және көрсеткіштерді арттырады.
Деректердің нұсқасын жасау және қайта шығару мүмкіндігі
«Біз бұл модельді қандай деректермен жаттықтырдық?» Сұраққа бірнеше айдан кейін жауап бере алу - ML инженериясының маңызды белгісі. Деректер нұсқасын жасау әрбір деректер суретін идентификатормен (хэш немесе нұсқа тегі) сақтайды. DVC (Data Version Control) нұсқасы сияқты құралдар код сияқты деректер.
Модельдің нәтижесін шығару үшін үш нәрсені түзету керек: деректер нұсқасы, код нұсқасы және кездейсоқ тұқым. Бұл үштіксіз «мен бірдей нәтиже алдым» деп айту мүмкін емес. Біз 11-бөлімде Репродуктивтілікті тереңдетеміз; бірақ деректер құбырындағы тұқымды бекіту осы жерден басталады.
үш шағын іс
1-жағдай - күндік схеманы тексеру сақталды. Команда жоғарғы жүйенің баға өрісін пенниден лираға түрлендіргенде, барлық бағалар 100 есе төмендеді. Схеманы тексеру «баға диапазоннан тыс» деп топтаманы қабылдамады және үлгі бүлінген деректермен оқытылмаған. Тексерусіз қате тек дұрыс емес болжамдармен өндірісте байқалады.
2-жағдай - дұрыс емес толтырудың ауытқуы. Несиелік модельде жетіспейтін кіріс мәндері орташа мәнмен толтырылды. Бірақ жетіспейтін табыстар негізінен табысы төмен топта болды; орташалау бұл топты жасанды түрде «байытты» және үлгі оларға әділетсіз жоғары шекті ұсынды. Медиана + жетіспеушілік жалаушасына қатысты мәселе түзетілді.
3-жағдай – Уақытша ағып кету. Сұранысты болжау моделі сынақ жиынында жақсы көрінді (95% дәлдік), бірақ өндірісте сәтсіздікке ұшырады. Неліктен: кездейсоқ бөлуге байланысты модель болашақты көрді. Уақытша байланыстыруға ауысу сынақ дәлдігін 78% дейін төмендетті, бірақ бұл нақты өнімділік болды және оны өндірісте қалдырды.
Көшіретін үлгілер
Келесі деректер жиынын үш жинаққа бөліңіз: оқыту/тексеру/тестілеу. Шектеу: Бұл уақыт қатары; ТЕМПОРАЛДЫҚ бөлуді қолданыңыз (өткен кезде жаттығу, болашақта сынақ). Пакеттің ағып кетуіне жол бермеу: тек бір кластерде бірдей «customer_id» болуы керек. Масштабтау параметрлерін ТЕК жаттығу жиынынан есептеңіз, содан кейін барлығына қолданыңыз. Әр қадамда кодта қанша жол қалғанын басып шығарыңыз және ағып кетуді тексеретін бекітуді қосыңыз.
Осы таңбалау тапсырмасы үшін аннотация нұсқаулығының жобасын жазыңыз. Тапсырма: [мысалы. Тұтынушының пікіріне оң/теріс/бейтарап белгі қойыңыз]Шектеу жағдайларын нақтылаңыз: сарказм, аралас эмоция, өнімге қатысы жоқ шолуды қалай белгілеуге болады? Тегкерлер арасындағы үйлесімділікті арттыратын 5 мысал және 3 қиын шеткі жағдайды келтіріңіз.
Осы деректер құбыры үшін қайталану мүмкіндігін тексеру тізімін жасаңыз:- Деректер нұсқасы қалай түзетілуі керек?- Қандай кездейсоқтық тұқымдары қайда орнатылуы керек?- Қандай метадеректер (деректер хэші, жол саны, күні) журналға жазылуы керек? Менің кодтық базам: [тіл/кітапхана]
Деректердің ағып кетуіне осы тазалау кодын тексеріңіз. Атап айтқанда, мынаны қараңыз: масштабтау/кодтау параметрлері бөлуге дейін есептеліне ме? Кез келген статистика барлық деректерден есептеледі ме, әлде жай ғана жаттығу ма? Код: [код]
Шешім кестесі: жетіспейтін мән стратегиясы
Күй
Ұсынылатын тәсіл
Неліктен
Сандық, қиғаш таралу
медианамен толтырыңыз
Орташа мәнге ауытқулар әсер етеді
Сандық, симметриялы
орташамен толтыру
Ақпаратты қорғайды
Жетіспеушілік айтарлықтай болуы мүмкін
Жалауша баған + толтыру
Жетіспеушілік - бұл сигнал
Жетіспейтін көрсеткіш > 60%
Бағанды бағалау/жою
Шу тым көп
Категориялық
«Белгісіз» категориясы
Жасанды көпшілікті жасамайды
Жалпы қателер
- Растауды өткізіп жіберу. Схеманы басқарусыз бүлінген деректер үнсіз енеді.
- Бөлу алдында масштабтау. Ол білімге тест статистикасын жібереді.
- Уақыт қатарында кездейсоқ бөлуді қолдану. Ол жалған жоғары көрсеткіштерді шығарады.
- LLM белгілеріне соқыр сену. Жүйелі қате барлық деректерге таралады.
- Деректер нұсқасы сақталмады. Нәтижені қайта шығара алмайсыз.
- Орташа механикалық толтыру. Ол өріс мағынасын елемейді, қиғаштық қосады.
Қысқаша айтқанда
Деректер құбыры ML жүйесінің негізі болып табылады және модельге қарағанда көбірек күш салуға лайық. Тексеруді жоғарғы жағына қойыңыз; домендік біліммен тазалау және таңбалау шешімдерін қабылдау; бөлімде ағып кетуді (топтық және уақытша) болдырмау; деректер нұсқасын және тұқымды түзетіңіз. AI осы жолда код пен идеяларды жасайды, бірақ қай деректерді және қалай өңдеу керектігін өзіңіз шешесіз, өйткені мұндағы әрбір қате шешім модельге жасырын кемшілік ретінде өтеді.
Қолданбалы тапсырма
Жеке деректер жинағында валидация схемасын (pandera/Great Expectations) жазыңыз және әдейі нашар жолды қосып, оның ұсталғанын көрсетіңіз. Содан кейін деректерді уақытша немесе топтама бойынша бөліңіз, тек оқытудан масштабтау параметрлерін есептеңіз және бекіту арқылы ағып кетудің жоқтығын тексеріңіз. Деректер нұсқасын және жолдар санын метадеректер файлына жазыңыз.
бақылау парағы
- [ ] Схеманы тексеру жолдың жоғарғы жағында орындалады.
- [ ] Мен өріс мағынасына негізделген жетіспейтін мән стратегиясын таңдадым, оны механикалық түрде толтырған жоқпын.
- [ ] Мен жапсырма сапасын өлшедім (сәйкестік); Мен LLM тегтерін адам тексердім.
- [ ] Мен тақтада топтық және уақытша ағып кетуді болдырдым.
- [ ] Масштабтау/кодтау тек жаттығу жиынынан есептелген.
- [ ] Деректер нұсқасы, жолдар саны және жазылған тұқым.