Јединица 2 / 11

Цевовод података: прикупљање, чишћење, означавање и верзионисање

Добици:

  • Способност постављања цевовода података (прикупљање, валидација, чишћење, трансформација, раздвајање, верзионисање) и постављање провере шеме на почетак цевовода
  • Способност доношења одлука о вредности која недостаје и означавању на основу значења и поделе поља како би се спречило цурење података (групно и временско)
  • Способност креирања поновљиве базе података фиксирањем верзије података и насумичне основе

Права моћ сваког система машинског учења лежи у подацима, а не моделу. Искусни инжењери знају: „смеће унутра, смеће напоље“ — чак и најнапреднији модел са лошим подацима ће дати лоше резултате. У овој јединици успостављамо цевовод података (цевовод података: ланац корака који сирове податке чине спремним за обуку модела) од краја до краја и учимо на ком кораку ове линије можемо безбедно да користимо вештачку интелигенцију.

Кораци линије података

Линија података обично пролази кроз ове станице:

  1. Прикупљање (уношење): Повлачење података из извора (база података, АПИ, датотеке евиденције, токови догађаја).
  2. Валидација: Провера да ли су подаци у складу са очекиваном шемом, типовима и опсезима.
  3. Чишћење: Руковање недостајућим вредностима, дуплираним записима, одступницима и недоследностима.
  4. Трансформација: Претварање необрађених података у атрибуте — као што је претварање категоричке променљиве у број, стварајући „дан у недељи“ из датума.
  5. Подела: Раздвајање на скупове за обуку, валидацију и тестирање.
  6. Версионирање: Снимање који модел је обучен са којим подацима.

Вештачка интелигенција штеди време генерисањем нацрта кода и идеја, посебно у корацима 2, 3 и 4. Али одлуке као што су који запис да се одбаци, коју вредност која недостаје и како попуни, припадају инжењеру који познаје податке; јер неправилно чишћење може да унесе скривену пристрасност у модел.

Провера података: рана одбрана линије

Најскупље грешке не почињу у производњи, већ тамо где се прескочи корак верификације. Валидација шеме аутоматски проверава да ли је свака долазна серија података у складу са очекиваном структуром. На пример, да ли је колона узраста између 0-120, да ли је поље е-поште празно, да ли се број колона променио?

Савет: Ставите верификацију на почетак реда. Што се пре открију оштећени подаци, то је јефтиније поправити. Грешка шеме ухваћена у продукцији је много пута скупља од оне ухваћене у фази обуке.

Напишите шему валидације са пандером (или Велика очекивања) за следећу шему података. Колоне и правила:- усер_ид: цео број, не може бити нул, јединствен- аге: цео број, не може бити од 0-120- сигнуп_дате: датум, не може бити у будућности- земља: категорички, из скупа {ТР, ДЕ, УС, УК}- стање: децимални, не може бити негативан Направите смислену поруку о грешци за свако кршење правила. Прикажите тест са примером испрекидане линије на крају кода.

Чишћење: човек је тај који одлучује

Вредности које недостају су реалност сваког скупа података. Начини за руковање:

  • Брисање: Одбацивање реда/колоне са веома високом стопом недостајања. Али постоји ризик од губитка информација и пристрасности.
  • Импутација: Импутација са средњом, медијаном, најчешћом вредношћу или предвиђањем заснованим на моделу.
  • Ознака: Чување информација „недостајало је“ у засебној колони са заставицом — понекад је сам сигнал сигнал.

Која је тачна зависи од проблема. У скупу медицинских података, информације о „вредности крви нису мерене“ треба да буду сачуване уместо да се бришу; Јер чак и одбијање лекара да изврши мерења је сигнал. АИ вам може дати опције и код; Ви бирате који одговара реалности терена.

Слаби промпт / Јаки промпт

Слаб упит: „Унесите вредности које недостају.“

Снажан упит: „Недостају вредности у следећим колонама: приход (недостаје 12%, дистрибуција удесно), ласт_логин (недостаје 30%). Предложите да попуните приход са медијаном, али објасните зашто медијана, а не значи. За ласт_логин претпоставите да би вредност која недостаје могла бити значајна (корисник се можда никада није пријавио); размислите о генерисању заставице невер_ас било који приступ. додати моделу."

Разлика: јак промпт даје информације о дистрибуцији и значење области; вештачка интелигенција производи подршку одлучивању уместо механичког пуњења.

Означавање: квалитет се мери

У надгледаном учењу (учење у којима су примери дати са тачним одговорима), оно што модел учи су ознаке (ознаке: тачан одговор за сваки пример). Квалитет етикета поставља плафон — ако људи етикетирају недоследно, модел учи недоследно.

Споразум међу анотаторима мери стопу по којој различити људи дају исту ознаку истом узорку; Изражава се коефицијентом као што је Коенова Капа. Ниска усклађеност указује на то да је задатак нејасан или је инструкција слаба.

Вештачка интелигенција помаже у обележавању на два начина: (1) састављање смерница за напомене, (2) претходно означавање и омогућавање да их само човек исправи. Али претходно означавање помоћу ЛЛМ-а има замку: систематска грешка модела може процурити у цео сет етикета. Зато људи увек проверавају неке од ознака ЛЛМ.

Пажња: Не сматрајте етикете које производи ЛЛМ као „основну истину“. Проверите узорак са човеком и измерите ЛЛМ-људско уклапање. Ако је усклађеност ниска, претходно обележавање ће донети више штете него користи.

Партиција података: спречи цурење

Најопаснија грешка приликом поделе података на обуку/валидацију/тестирање је цурење података: мешање информација са теста у обуку. Примери:

  • Записи истих корисника спадају у обуку и тестирање (групно цурење).
  • Коришћење будућности у обуци и прошлости у тестирању у временским серијама (временско цурење).
  • Израчунавање параметара скалирања (нормализације) из свих података и затим дељење.

Временско раздвајање је од суштинског значаја за проблеме који укључују време: тренирајте са прошлошћу, тестирајте у будућности. Насумично подела даје „будућу“ корист која се никада неће десити у производњи и надувава метрику.

Верзија података и репродуктивност

„Са којим подацима смо тренирали овај модел?“ Могућност да се одговори на питање месецима касније је обележје озбиљног МЛ инжењеринга. Верзија података чува сваки снимак података са ИД-ом (хеш или ознаку верзије). Алати као што су ДВЦ (Дата Версион Цонтрол) подаци о верзији као што је код.

Да би се репродуковао резултат модела, три ствари морају бити фиксиране: верзија података, верзија кода и насумично семе. Без ове тројке није могуће рећи „Исти резултат сам добио“. Репродуцибилност ћемо продубити у јединици 11; али фиксирање семена у цевоводу података почиње одавде.

три мини кофера

Случај 1 – Валидација шеме дана је сачувана. Када је тим претворио поље цена узводног система из пенија у лире, све цене су пале 100 пута. Валидација шеме је одбацила серију као „цена ван опсега“ и модел није обучен са оштећеним подацима. Без провере, грешка би се приметила само у производњи, уз нетачна предвиђања.

Случај 2 – Пристрасност неправилног пуњења. У кредитном моделу недостајуће вредности прихода су попуњене средњом вредности. Али приходи који недостају били су претежно у групи са ниским приходима; усредњавање је вештачки „обогатило” ову групу, а модел им је понудио неправедно високу границу. Решен је проблем са заставицом медијана + недостатак.

Случај 3 - Временско цурење. Модел за предвиђање потражње је изгледао сјајно на тест сету (95% тачности), али је пао у производњи. Зашто: због насумичне поделе, модел је видео будућност. Прелазак на временско биннинг пао је тачност теста на 78% — али то је био прави учинак и одржао га у производњи.

Шаблони који се могу копирати

Поделите следећи скуп података у три скупа: обука/валидација/тестирање. Ограничење: Ово је временска серија; Користите ТЕМПОРАЛНО раздвајање (обучите у прошлости, тестирајте у будућности). Спречите цурење серије: имајте исти `цустомер_ид` само у једном кластеру. Израчунајте параметре скалирања САМО из скупа за обуку, а затим примените на све. Одштампајте колико је редова остало у коду у сваком кораку и додајте потврду која проверава да нема цурења.

Напишите нацрт упутства за означавање за овај задатак обележавања. Задатак: [нпр. Означите рецензију купаца позитивно/негативно/неутрално]Разјасните граничне случајеве: сарказам, помешане емоције, како означити рецензију која није повезана са производом? Наведите 5 примера и 3 тешка ивична случаја који ће повећати доследност међу ознакама.

Направите контролну листу поновљивости за овај цевовод података: - Како треба поправити верзију података? - Које семе насумице треба поставити где? - Које метаподатке (хеш података, број редова, датум) треба да се евидентирају? Моја кодна база: [језик/библиотека]

Проверите овај код за чишћење због цурења података. Посебно погледајте ово: да ли се параметри скалирања/кодирања израчунавају ПРЕ поделе? Да ли се нека статистика израчунава из свих података или само из тренинга? Шифра: [шифра]

Табела одлука: стратегија недостајуће вредности

Статус

Препоручени приступ

Зашто

Нумеричка, искривљена дистрибуција

испунити медијаном

Просек је под утицајем одступања

Бројчано, симетрично

испунити просеком

Штити информације

Недостатак може бити значајан

Застави колона + попуна

Недостатак је сигнал

Стопа пропуштања > 60%

Процени/одбаци колону

Бука је превише

Категоричан

Категорија „Непознато“.

Не ствара вештачку већину

Уобичајене грешке

  • Прескакање верификације. Без контроле шеме, оштећени подаци се тихо ушуњају.
  • Скалирање пре раздвајања. Пропушта статистику тестова у образовање.
  • Коришћење случајног цепања у временским серијама. Производи лажне високе метрике.
  • Слепо веровати ЛЛМ етикетама. Систематска грешка се шири кроз податке.
  • Не чува се верзија података. Не можете да репродукујете резултат.
  • Механичко пуњење са просеком. Игнорише значење поља, додаје пристрасност.

Укратко

Цевовод података је основа МЛ система и заслужује више труда од модела. Ставите верификацију на врх; доносити одлуке о чишћењу и означавању са познавањем домена; спречити цурење (групно и временско) у одељку; поправите верзију података и семе. АИ генерише код и идеје на овој линији, али на вама је да одлучите које податке ћете обрадити и како — јер свака погрешна одлука овде прелази у модел као скривени недостатак.

Задатак апликације

Напишите шему валидације (пандера/Греат Екпецтатионс) на свом скупу података и намерно додајте лош ред и покажите да је ухваћен. Затим поделите податке временски или групно, израчунајте параметре скалирања само из обуке и потврдите да нема цурења помоћу тврдње. Упишите верзију података и број редова у датотеку метаподатака.

контролна листа

  • [ ] Валидација шеме се покреће на врху линије.
  • [ ] Изабрао сам стратегију вредности која недостаје на основу значења поља, нисам је попунио механички.
  • [ ] Измерио сам квалитет етикете (усаглашеност); Проверио сам ЛЛМ ознаке.
  • [ ] Спречио сам групно и временско цурење у окну.
  • [ ] Скалирање/кодирање израчунато само из скупа за обуку.
  • [ ] Верзија података, број редова и снимљено семе.