Добивки:
- Способност да се постави цевковод за податоци (собирање, валидација, чистење, трансформирање, разделување, верзија) и поставување валидација на шемата на почетокот на гасоводот
- Способност да се донесат одлуки што недостасуваат за вредностите и етикетирањето врз основа на значењето и поделбата на полето за да се спречи истекување на податоци (групно и временско)
- Способност да се создаде репродуктивна база на податоци со фиксирање на верзијата на податоците и семето на случајноста
Вистинската моќ на секој систем за машинско учење лежи во податоците, а не во моделот. Искусните инженери знаат: „ѓубре внатре, ѓубре надвор“ - дури и најнапредниот модел со лоши податоци ќе даде лоши резултати. Во оваа единица, го воспоставуваме цевководот на податоци (цевковод на податоци: синџир на чекори што ги прават необработените податоци подготвени за обука на модели) од крај до крај и учиме на кој чекор од оваа линија можеме безбедно да користиме вештачка интелигенција.
Чекори на линијата за податоци
Линијата за податоци обично поминува низ овие постојки:
- Собирање (проголтување): Повлекување податоци од извори (база на податоци, API, датотеки за евиденција, преноси на настани).
- Валидација: Проверка дали податоците се усогласени со очекуваната шема, типови и опсези.
- Чистење: Ракување со вредности што недостасуваат, дупликати записи, оддалечени и недоследности.
- Трансформација: Претворање необработени податоци во атрибути - како што е конвертирање на категорична променлива во број, производство на „ден во неделата“ од датум.
- Разделување: Одвојување на комплети за обука, валидација и тестирање.
- Верзија: Снимање кој модел е обучен со кои податоци.
Вештачката интелигенција заштедува време со генерирање нацрти на кодови и идеи, особено во чекорите 2, 3 и 4. Но, одлуките како што се записот да се отфрли, која вредност недостасува да се пополни и како, му припаѓаат на инженерот кој ги знае податоците; бидејќи несоодветното чистење може да внесе скриена пристрасност во моделот.
Проверка на податоци: рана одбрана на линијата
Најскапите грешки започнуваат не во производството, туку таму каде што чекорот за верификација е прескокнат. Потврдувањето на шемата автоматски проверува дали секоја дојдовна серија на податоци е во согласност со очекуваната структура. На пример, дали е колоната за возраст помеѓу 0-120, дали полето за е-пошта е празно, дали е променет бројот на колони?
Совет: Ставете ја верификацијата на почетокот на редот. Колку побрзо се фатат корумпираните податоци, толку е поевтино да се поправат. Грешката на шемата фатена во производството е многу пати поскапа од онаа фатена во фазата на обука.
Напишете шема за валидација со pandera (или Големи очекувања) за следната шема на податоци. Колони и правила: - кориснички ID: цел број, не може да биде нула, единствен- возраст: цел број, не може да биде од 0-120- signup_date: датум, не може да биде во иднина- земја: категоричен, од множеството {TR, DE, US, UK}- салдо: децимален, не може да биде негативен Направете значајна порака за грешка за секое прекршување на правилата. Покажете го тестот со пример скршена линија на крајот од кодот.
Чистење: човекот е тој кој одлучува
Вредностите што недостасуваат се реалност на секој сет на податоци. Начини за справување:
- Бришење: Отфрлање на ред/колона со многу висока стапка на недостиг. Но, постои ризик од губење на информации и пристрасност.
- Импутација: Импутација со средна, средна, најчеста вредност или предвидување базирано на модел.
- Знаме: Складирање на информациите „недостасуваа“ во посебна колона со знаменце - понекогаш самиот сигнал што недостасува е сигналот.
Која е точна зависи од проблемот. Во збир на медицински податоци, информациите за „не измерената вредност на крвта“ треба да се зачуваат наместо да се бришат; Бидејќи дури и одбивањето на лекарот да преземе мерења е сигнал. ВИ може да ви даде опции и код; Вие избирате кој одговара на реалноста на теренот.
Слаб промпт / Силен промпт
Слаб промпт: „Пополнете ги вредностите што недостасуваат“.
Силен поттик: „Има вредности што недостасуваат во следните колони: приход (недостасува 12%, дистрибуција десно искривена), last_login (недостасува 30%). Предложете да го пополните приходот со просечен, но објаснете зошто просечниот, а не со значајниот. Запишете ја пристрасноста што секој пристап би ја додал во моделот“.
Разлика: силната порака дава информации за дистрибуцијата и значење за областа; вештачката интелигенција произведува поддршка за одлучување наместо механичко полнење.
Означување: се мери квалитетот
Во учењето под надзор (учење во кое се дадени примери со точни одговори), она што моделот го учи се етикети (етикети: точниот одговор за секој пример). Квалитетот на етикетата поставува таван - ако луѓето етикетираат неконзистентно, моделот учи неконзистентно.
Договорот меѓу прибелешките ја мери брзината со која различни луѓе даваат иста ознака на истиот примерок; Се изразува со коефициент како што е Капа на Коен. Ниската усогласеност покажува или задачата е нејасна или инструкцијата е слаба.
Вештачката интелигенција помага во етикетирањето на два начина: (1) изготвување на упатството за прибелешки, (2) претходно етикетирање и да се наложи човекот само да го коригира. Но, претходното етикетирање со LLM има замка: систематската грешка на моделот може да протече во целиот сет на етикети. Затоа луѓето секогаш проверуваат некои од етикетите на LLM.
Внимание: Не сметајте ги етикетите произведени од LLM за „основна вистина“. Проверете примерок со човек и измерете одговарање на LLM-човек. Ако усогласеноста е ниска, претходно етикетирањето ќе направи повеќе штета отколку корист.
Поделба на податоци: спречи истекување
Најопасната грешка при поделбата на податоците на обука/валидација/тестирање е истекување на податоци: мешање на информациите од тестот во обука. Примери:
- Записите на истиот корисник спаѓаат и во обука и во тестирање (протекување во група).
- Користење на иднината во обуката и минатото при тестирање во временски серии (временско истекување).
- Пресметување на параметрите за скалирање (нормализација) од сите податоци и потоа делење.
Временската поделба е од суштинско значење за проблемите кои вклучуваат време: тренирајте со минатото, тестирајте во иднината. Случајното разделување дава „идна“ придобивка што никогаш нема да се случи во производството и ја надува метриката.
Верзија на податоци и репродуктивност
„Со кои податоци го трениравме овој модел? Да се биде во можност да се одговори на прашањето месеци подоцна е белег на сериозниот ML инженеринг. Верзијата на податоци ја складира секоја податочна слика со ID (хаш или ознака за верзија). Алатки како што се DVC (Data Version Control) податоци за верзијата како код.
За да се репродуцира резултатот од моделот, мора да се поправат три работи: верзијата на податоци, верзијата на кодот и случајното семе. Без оваа тројка не може да се каже „го добив истиот резултат“. Ќе ја продлабочиме репродуктивноста во единицата 11; но фиксирањето на семето во цевководот за податоци започнува од тука.
три мини футроли
Случај 1 - Зачувана е валидацијата на дневната шема. Кога еден тим го конвертираше полето за цени на системот нагоре од пени во лири, сите цени паднаа 100 пати. Потврдата на шемата ја отфрли серијата како „цена надвор од опсегот“ и моделот не беше обучен со оштетени податоци. Без верификација, грешката би била забележана само во производството, со неточни предвидувања.
Случај 2 - Пристрасност на неправилно полнење. Во кредитниот модел, вредностите на приходите што недостасуваа беа пополнети со средната вредност. Но, приходите што недостасуваа беа претежно во групата со ниски приходи; просекот вештачки ја „збогатил“ оваа група, а моделот им понудил неправедно висока граница. Поправен е проблемот со медијана + знаменце за недостаток.
Случај 3 - Временско истекување. Моделот за предвидување на побарувачката изгледаше одлично на тест сет (95% точност), но падна во производството. Зошто: поради случајно разделување, моделот ја виде иднината. Префрлувањето на временско поврзување ја намали точноста на тестот на 78% - но тоа беше вистинска изведба и го задржа во производство.
Шаблони за копирање
Поделете ја следната база на податоци во три групи: обука/валидација/тестирање. Ограничување: Ова е временска серија; Користете ТЕМПОРАЛНО разделување (воз во минатото, тестирање во иднина). Спречете истекување на серии: имајте го истиот `customer_id` само во еден кластер. Пресметајте ги параметрите за скалирање САМО од комплетот за обука, а потоа применете ги за сите. Испечатете колку линии останале во кодот на секој чекор и додајте потврда што проверува да нема протекување.
Напишете нацрт-упатство за прибелешки за оваа задача за означување. Задача: [на пр. Обележете ја рецензијата од клиентите позитивна/негативна/неутрална]Појаснете ги граничните случаи: сарказам, измешани емоции, како да се означи рецензијата што не е поврзана со производот? Наведете 5 примери и 3 тешки рабови што ќе ја зголемат конзистентноста меѓу означувачите.
Направете листа за проверка за репродуктивност за овој цевковод со податоци:- Како треба да се поправи верзијата на податоците?- Кои семиња за случајност треба да се постават каде?- Кои метаподатоци (хаш на податоци, број на редови, датум) треба да се евидентираат? Мојата база на кодови: [јазик/библиотека]
Проверете го овој код за чистење за истекување на податоци. Конкретно погледнете го ова: дали параметрите за скалирање/кодирање се пресметуваат ПРЕД разделувањето? Дали некоја статистика се пресметува од сите податоци или само обука? Код: [шифра]
Табела со одлуки: стратегија за вредности што недостасува
Статус
Препорачан пристап
Зошто
Нумеричка, искривена дистрибуција
пополнете со медијана
Просекот е под влијание на надворешните вредности
Нумерички, симетричен
пополнете со просек
Заштитува информации
Недостатокот може да биде значителен
Означете колона + пополнете
Недостатокот е сигнал
Стапката што недостасува > 60%
Оцени/отфрли колона
Бучавата е премногу
Категоричен
Категорија „Непозната“.
Не создава вештачко мнозинство
Вообичаени грешки
- Прескокнува потврда. Без контрола на шемата, оштетените податоци тивко се прикрадуваат.
- Скалирање пред разделување. Исфрла тест статистика во образованието.
- Користење на случајно разделување во временски серии. Таа произведува лажни високи метрики.
- Слепо верувајќи на етикетите за LLM. Систематската грешка се шири низ податоците.
- Не се зачувува верзијата на податоци. Не можете да го репродуцирате резултатот.
- Механичко полнење со просечно. Го игнорира значењето на полето, додава пристрасност.
Сумирано
Податочната линија е основата на системот за ML и заслужува повеќе напор од моделот. Ставете ја верификацијата на врвот; донесување одлуки за чистење и етикетирање со знаење за доменот; спречи истекување (групно и временско) во преградата; поправете ја верзијата на податоците и семето. Вештачката интелигенција генерира код и идеи на оваа линија, но на вас е да одлучите кои податоци да ги обработувате и како - бидејќи секоја погрешна одлука овде преминува во моделот како скриена маана.
Задача за апликација
Напишете шема за валидација (pandera/Great Expectations) на вашата база на податоци и намерно додадете лош ред и покажете дека е фатен. Потоа поделете ги податоците привремено или сериски, пресметајте ги параметрите за скалирање само од обуката и потврдете дека нема истекување со потврда. Напишете ја верзијата на податоците и бројот на редови во датотека со метаподатоци.
листа за проверка
- [ ] Потврдувањето на шемата се извршува на врвот на линијата.
- [ ] Ја избрав стратегијата за вредности што недостасува врз основа на значењето на полето, не ја пополнив механички.
- [ ] Го измерив квалитетот на етикетата (усогласеност); Ги проверив човечките ознаки за LLM.
- [ ] Спречив групно и временско истекување во окното.
- [ ] Скалирање/кодирање пресметано само од комплетот за обука.
- [ ] Верзија на податоци, број на редови и снимени семиња.