Визначити, що представляє кожен приклад
Почніть із речення-рішення: розпізнати категорію нового тікета, витягти три поля з документа чи відповісти на запитання разом із його вкладеннями. Опишіть вхідні дані, доступні на момент прогнозування, очікуваний вихід і випадки поза межами. Інформація, додана після вирішення тікета, не повинна з'являтися у вхідних даних, які мають представляти його надходження.
Далі розрізняйте рядок і незалежну одиницю. П'ять повідомлень однієї розмови поділяють спільний контекст; десять сторінок одного досьє поділяють своє походження. Якщо ваша мета стосується нових досьє, тримайте кожне досьє в одній частині. Поділ за користувачем, документом, обладнанням чи періодом відповідає на різні питання: виберіть той, що найбільше схожий на майбутнє використання, а потім впишіть його обґрунтування в маніфест.
Технічні джерела: scikit-learn 1.9 — валідація з групами та часовими залежностями
Призначити роль кожному набору
Навчальний набір слугує для налаштувань моделі. Валідаційний набір керує рішеннями під час розробки: промпт, поріг, гіперпараметри чи вибір варіанта. Фінальний тест відповідає на вже зафіксоване питання. Якщо звертатися до нього, щоб обрати найкраще налаштування, цей тест поступово перетворюється на інструмент розробки, навіть якщо на ньому не обчислюється жоден градієнт.
Так само відокремте дані, використані для навчання перетворення. Нормалізація, відбір змінних чи імпутація, налаштовані на всьому корпусі, можуть передати інформацію моделі. Навчайте ці перетворення на дозволеній частині, а потім застосовуйте збережене перетворення до інших наборів. Конвеєр полегшує цей контроль; сам він не виправляє погано розділені групи.
| Набір | Дозволене використання | Рішення, якого слід уникати |
|---|---|---|
| Навчальний | Налаштовувати параметри та вивчені перетворення | Імпортувати до нього відповіді фінального тесту |
| Валідаційний | Обирати налаштування, промпти та пороги | Подавати найкращу дослідницьку оцінку як остаточний незалежний результат |
| Фінальний тест | Оцінювати обрану конфігурацію за зафіксованим правилом | Змінювати налаштування після перегляду, а потім використовувати ту саму оцінку як підтвердження |
| Можливе калібрування | Готувати метод квантування, який його потребує | Використати фінальний тест для створення оцінюваного варіанта |
Технічні джерела: scikit-learn 1.9 — витік даних і перетворення
Обробляти дублікати, не стираючи складні випадки
Збережіть сирий корпус, а потім побудуйте робочий реєстр з ідентифікатором, походженням і групою. Відбиток вмісту виявляє точні копії залежно від обраного подання. Задокументуйте це подання: вилучення всієї пунктуації або зведення тексту до нижнього регістру може об'єднати записи, різниця між якими важлива для задачі. Зберігайте відповідність між відкинутою копією та збереженим примірником.
Майже-дублікати потребують додаткового перегляду: змінений експорт, переформульована відповідь, спільний фрагмент або перевиданий документ. Висока схожість — це сигнал до розгляду, а не доказ того, що дві анотації взаємозамінні. Групуйте пов'язані варіанти перед розподілом даних. Якщо дві копії мають суперечливі посилання, відкрийте питання анотації; не обирайте автоматично ту, яку модель передбачає найкраще.
Опрацьований приклад: 1 200 рядків — це не 1 200 незалежних спостережень
Цей приклад цілком ілюстративний: жоден корпус чи модель не вимірювалися. Припустімо 240 розмов, кожну з яких експортовано на п'ять рядків. Один рядок є точною копією в кожній розмові; решта чотири — різні. Якщо прибрати ці 240 копій, залишиться 960 прикладів, усе ще організованих у 240 груп. Наступний методичний вибір відводить 70 % груп на навчання, 15 % на валідацію та 15 % на тест.
Отримуємо 168, 36 і 36 розмов, тобто 672, 144 і 144 приклади. Рівність пропорцій у рядках і групах тут випливає з чотирьох прикладів на розмову. У реальному корпусі змінних розмірів це не було б автоматичним. Ці пропорції не є універсальним правилом: вони мають залишати достатньо груп і важливих випадків у кожному наборі.
| Поділ | Цілі розмови | Приклади | Роль |
|---|---|---|---|
| Навчальний | 168 | 672 | Налаштувати |
| Валідаційний | 36 | 144 | Обрати |
| Фінальний тест | 36 | 144 | Підтвердити на окремому наборі |
Технічні джерела: scikit-learn 1.9 — GroupShuffleSplit рахує групи
Перевірити класи, довжини та хронологію
Після поділу порахуйте класи та групи, які їх несуть. Клас, наявний у багатьох рядках, але лише в одній розмові, не дає багато незалежних випадків. Також перегляньте довжини, фактично охоплені мови, неповні документи та категорії, важливі для рішення. Утішне середнє може приховувати поділ без жодного прикладу критичного випадку.
Стратифікація з групами прагне зберегти пропорції класів, не розпорошуючи групи. Вона не гарантує ідеальної рівноваги, коли груп мало або вони дуже нерівні. Якщо задача полягає в передбаченні майбутніх спостережень, хронологічне розділення може бути доречнішим за випадкове перемішування. Також перевірте, що змінні були доступні на дату прогнозу.
Технічні джерела: scikit-learn 1.9 — StratifiedGroupKFold та його обмеження · scikit-learn 1.9 — валідація часових даних
Зробити еталон достатньо точним, щоб оцінювати вихід
Напишіть інструкцію з анотації з прикладами та граничними випадками. Для вилучення уточніть значення відсутнього поля, формат дат, валюту та прийнятні відповідники. Для класифікації опишіть межі між категоріями. Відповідь, відмінна від еталона, не завжди є помилкою моделі: еталон може бути неоднозначним або неправильним.
Дайте перечитати різноманітну вибірку, зокрема розбіжності та важливі випадки, а потім зафіксуйте рішення. Зберігайте виправлення в новій версії набору. Якщо виправлення змінює результат порівняння, перерахуйте всі відповідні варіанти на тому самому еталоні; не виправляйте лише рядок, невигідний для вашої улюбленої моделі.
Створити пакет оцінювання до кампанії на GPU
Результат цієї підготовки — ідентифікований набір разом з його правилами. Він дозволяє відтворити відбір даних, не покладаючись на спогад із ноутбука. Підготовка цього пакета перед орендою дає змогу не витрачати період обчислень на з'ясування розбіжностей у файлах чи критеріях.
- Зафіксуйте ідентифікатори, групи, поділи та їхнє обґрунтування; збережіть скрипт або список, який їх створює.
- Перевірте перетини ідентифікаторів, груп і відбитків між розділами. Будь-який неочікуваний перетин має бути пояснений або виправлений.
- Експортуйте чисельність за розділами, класами та потрібними підгрупами, а також перелік виключень і їхні причини.
- Зафіксуйте еталон, правила нормалізації, головну метрику та пороги до початку порівняння.
- Зберігайте ревізію, відбитки, права на використання та місце зберігання даних. Відбиток забезпечує ідентифікацію, а не анонімність.
- Обмежте доступ до фінального тесту до запланованого рішення; ведіть журнал звернень і змін протоколу.
Знати, що доводить перевірка
Підготовка є прийнятною, коли чисельність узгоджується з інвентарем, перекриття контрольовані, а кожен результат можна оцінити за явним правилом. Вона не доводить, що модель досягне успіху, ані що всі майбутні випадки використання представлені. Малий набір може описати конкретну задачу, залишаючись недостатнім для висновків про рідкісний клас.
Якщо ви використовуєте помилки фінального тесту для вдосконалення системи, збережіть цей тест як історичний і підготуйте нове незалежне підтвердження. Для попередньо навченої моделі, чиї вихідні дані невідомі, ваш розділ не може засвідчити відсутність попереднього впливу. Задокументуйте це обмеження, а не називайте набір повністю чистим.
Практичні питання
Чи завжди потрібно залишати 20 % даних для тесту?
Ні. Корисна частка залежить від кількості незалежних одиниць і випадків, які потрібно охопити. Перевірте групи, важливі категорії та точність очікуваного висновку; сам відсоток не гарантує інформативного тесту.
Чи достатньо різного ідентифікатора, щоб виключити дублікати?
Ні. Два експорти можуть мати різні ідентифікатори, але містити той самий текст або варіанти того самого файлу. Перевіряйте вміст і походження, а пов’язані приклади тримайте в розділі, що відповідає вашому правилу групування.
Чи можу я повторно використати свій тест після виправлення моделі на його помилках?
Ви можете зберегти його для відстеження історії, але він брав участь у розробці. Щоб підтвердити покращення на відокремлених даних, використайте новий незалежний набір і чітко заявіть роль кожного.