У пошті з’являється лист: «Вітаємо, ви виграли приз! Заберіть його просто зараз». Програма відправляє його у спам. Автор фільтра навряд чи бачив саме цей текст. Як тоді комп’ютер вирішив, що лист небажаний?
Один зі способів — навчити модель на прикладах, щоб вона знаходила ознаки, корисні для розпізнавання нових листів. Але ті самі ознаки можуть підвести: привітання з перемогою у шкільному турнірі теж містить слово «перемога».
Ця маленька задача допоможе розібратися, що називають штучним інтелектом, як відбувається навчання й чому навіть корисному результату потрібна перевірка. Усі повідомлення нижче вигадані для пояснення.
Від правила для листа до ширшої ідеї
Спробуймо написати правило: якщо в листі є слово «виграш», позначити його як спам. Воно просте й зрозуміле. Тепер приходить очікуваний лист від друга: «Покажу фото нашого виграшу на турнірі». Правило спрацьовує, хоча лист потрібний.
Додамо виняток для друга? Тоді постане питання, що робити з іншими відправниками. Перевірятимемо ще й посилання? Самої наявності посилання теж недостатньо: воно може вести на потрібний документ. Кожне уточнення вимагає вирішити, які ознаки враховувати разом.
Штучний інтелект, або ШІ, — широка галузь створення систем для таких задач, як розпізнавання, робота з мовою, планування та прийняття рішень. Це не назва одного алгоритму. До неї належать і підходи з явно заданими знаннями, правилами та пошуком варіантів розв’язку, і машинне навчання — отримання корисних закономірностей із даних. Системи можуть поєднувати ці підходи. Таку широку рамку описує меморандум OECD про визначення системи ШІ, с. 6–9.
Тому межа не проходить між «звичайними програмами, які мають правила» та «ШІ без правил». Навчання теж виконує програма. Різниця в нашому прикладі вужча: частину способу розрізняти листи ми хочемо отримати з прикладів, замість вручну передбачати кожне поєднання ознак.
Що саме навчається
Спочатку визначимо задачу: для кожного листа потрібно вибрати одну з двох категорій — «спам» або «не спам». Такий вибір категорії називають класифікацією.
Для навчання зберемо листи, для яких відповідь уже відома. Наприклад, небажану рекламу й очікувані повідомлення. Позначка категорії біля листа — це мітка. Разом лист і мітка утворюють навчальний приклад. Такий підхід називають навчанням з учителем: «учитель» тут означає наявність відповідей для порівняння.
Модель — обчислювальна конструкція, яка перетворює вхідні дані на результат. Уявімо простий варіант: вона враховує слова, посилання та інші вибрані ознаки листа. Наскільки кожна ознака впливає на відповідь, визначають числові налаштування — параметри.
Під час навчання алгоритм порівнює відповіді моделі з відомими мітками й змінює параметри, намагаючись зменшити помилки. Це опис одного поширеного способу навчання, а не всіх можливих систем ШІ. Основні поняття розібрано в курсі Google про навчання з учителем.
Люди все одно задають рамку роботи. Що вважати спамом: будь-яку рекламу чи лише небажану? Чи була людина підписана на розсилку? Якщо ця відмінність важлива, але її немає в даних, задача вже має прогалину. Назва «навчання» не звільняє нас від потреби добре сформулювати питання.
Навіщо листи, на яких модель не вчилася
Модель може чудово відповідати на знайомі приклади й погано — на нові. Надмірне пристосування до навчальних даних називають перенавчанням. Бажана здатність переносити знайдені закономірності на нові випадки — узагальненням. Google про перенавчання та узагальнення.
Уявімо, що всі спам-листи в нашій маленькій навчальній добірці написані великими літерами. Модель могла б ухопитися саме за це. Але друг іноді пише «ВІТАЮ!», а реклама може бути цілком стриманою. Успіх на такій добірці ще не показує, чи ми навчили фільтр потрібного розрізнення.
Тому частину прикладів відкладають для перевірки. Модель отримує листи без міток, а люди, які її оцінюють, порівнюють відповіді з відомими категоріями. Якщо багато разів підбирати модель за одним і тим самим набором, можна ненавмисно підлаштуватися і під нього. Для добору використовують валідаційний набір, а для фінальної оцінки залишають окремий тестовий. Google про розподіл даних.
Перевірка має стосуватися майбутніх умов роботи. Добірка коротких рекламних листів мало скаже про фільтрацію довгих робочих листувань іншою мовою. Навіть чесний тест відповідає на обмежене питання: як ця модель поводилася на цих даних.
Новий лист — уже інша стадія
Після навчання й перевірки приходить новий лист. Ми подаємо його моделі й отримуємо результат. Застосування навченої моделі називають інференсом, або виведенням.
Навчання змінює параметри моделі; інференс використовує модель для отримання відповіді. У нашому спрощеному фільтрі параметри під час застосування залишаються фіксованими. Можна створити систему, яка донавчається, але сам факт отримання нового листа цього не означає. Різницю між стадіями та можливість подальшого оновлення пояснює OECD, с. 8–9.
На схемі простеж, де відомі відповіді допомагають змінювати модель, а де лише перевіряти її. На останньому кроці вже немає готової правильної відповіді, яку ми подаємо разом із листом.
Одна модель: від прикладів до нового листа
Навчання
Листи + відомі мітки«Забери виграш!» → спам «Зустріч о третій» → не спамАлгоритм змінює параметриПорівнює відповіді моделі з мітками.Навчена модельЗберігаємо отримані налаштування.Перевірка
Інші листиНе використовувалися для навчання. Мітки приховано від моделі.Та сама модельПараметри під час перевірки не змінюються.Відповіді ↔ відомі міткиОцінюємо пропуски спаму й помилкові блокування.Застосування
Новий лист«Вітаємо з перемогою у шкільному турнірі!»Перевірена модельВикористовує вже налаштовані параметри.Припустімо, відповідь: «спам»Можлива помилка: це очікуване привітання від школи.
Модель також не дорівнює всій поштовій програмі. Програма отримує повідомлення, запускає потрібні перевірки й вирішує, куди його покласти. Висновок моделі — одна зі складових цього процесу. Саме тому фраза «ШІ відхилив лист» приховує кілька різних рішень, які корисно розглядати окремо.
Де тут нейромережа й генеративний ШІ
Ми вже маємо два поняття: ШІ як широку галузь і машинне навчання як групу методів. Нейронна мережа — один із типів моделей, які можна навчати.
У типовій мережі обчислювальні вузли отримують числа, перетворюють їх із використанням параметрів і передають результати далі. Групи таких вузлів утворюють шари. Назва «нейрон» не робить вузол біологічною клітиною, а сама наявність мережі не доводить людського способу мислення чи свідомості. Обчислювальну будову показує курс Google про вузли й шари.
Генеративний ШІ описує інший бік системи: вона створює вміст — наприклад, текст, зображення або звук. Наш фільтр вибирає категорію листа. Генеративній системі можна поставити іншу задачу: написати чернетку відповіді на нього. Google про типи задач машинного навчання й генерацію.
Ці назви відповідають на різні питання:
| Назва | Що вона допомагає уточнити |
|---|---|
| Штучний інтелект | Про яку широку галузь систем і задач ідеться? |
| Машинне навчання | Чи отримуємо ми закономірності з даних? |
| Нейронна мережа | Який тип обчислювальної моделі використовуємо? |
| Генеративний ШІ | Чи створює система новий вміст? |
Тому генерація не є обов’язковою «наступною сходинкою» кожної нейромережі. Мережа може класифікувати листи. А здатність моделі писати текст сама по собі ще не говорить, наскільки добре вона впорається з конкретним проханням.
Користь видно в результаті та способі його перевірити
Повернімося до пошти. Визначити категорію листа, оцінити час відповіді й написати відповідь — три різні задачі. Для кожної потрібні свої дані та критерій успіху. Та сама логіка допомагає розібратися й з іншими застосуваннями.
| Задача | Що подаємо системі | Що отримуємо | Як оцінити користь |
|---|---|---|---|
| Розпізнавання або класифікація | Лист чи фотографію | Категорію, знайдений об’єкт | Порівняти з перевіреною відповіддю; розглянути види помилок |
| Числовий прогноз | Маршрут і дані про рух | Оцінку тривалості поїздки | Зіставити з фактичним часом у багатьох поїздках |
| Рекомендація | Уподобання та історію прослуховування | Добірку музики | Перевірити, чи допомагає вона знайти те, що хочеться слухати |
| Генерація | Завдання, контекст і вимоги | Текст, зображення або інший вміст | Звірити з вимогами; для фактичного тексту перевірити твердження |
Це приклади класів задач, описаних у вступі Google до машинного навчання, а не оцінки конкретних продуктів.
Для листа «зроби ввічливіше» корисний результат може означати збережений зміст і кращий тон. Для прохання «додай дату події» одного гарного стилю вже недостатньо — дата має бути правильною. Вимога до перевірки залежить від задачі, навіть якщо обидві відповіді виглядають як кілька речень.
Дві помилки спам-фільтра, які не варто змішувати
Очікуване привітання від школи потрапило у спам — це хибне спрацювання. Небажана реклама пройшла у вхідні — це пропуск. Обидва результати неправильні, але для читача пошти їхні наслідки різні.
Можна відправляти у спам усі листи: тоді небажані повідомлення не потраплять у вхідні, зате зникне вся корисна пошта. Можна не блокувати нічого: потрібні листи залишаться, але фільтр не виконуватиме своєї задачі. Отже, одного запитання «чи знаходить він спам?» замало. Треба одночасно бачити, скільки потрібних листів він забирає. Цю різницю формалізують показники якості класифікації.
Причина помилки не завжди одна. У нашому прикладі модель могла надто покластися на слово «перемога». У даних могло бракувати звичайних привітань. Або сама мітка була непевною: рекламну розсилку одна людина замовляла, інша — ні. Це можливі пояснення навчального прикладу, не діагноз будь-якого реального фільтра.
Щоб з’ясувати причину, потрібні дані про його роботу. Окремий невдалий лист показує конкретну помилку; серія успішних листів теж не доводить безпомилковості в усіх умовах. Для оцінки потрібна добірка, яка представляє різні випадки, а не лише зручні приклади.
Чому переконливе речення може бути хибним
У генерації помилка виглядає інакше: замість неправильної категорії ми можемо отримати вигаданий факт, написаний цілком природною мовою.
Мовна модель оцінює закономірності послідовностей текстових одиниць — токенів. Токеном може бути слово, частина слова або окремий символ. Під час генерації продовження система використовує модель, щоб послідовно добирати наступні токени з урахуванням доступного контексту. Так можна будувати речення, перекладати або стискати текст. Google про мовні моделі й токени.
Але правдоподібне продовження й підтверджений факт — різні критерії. Уявімо прохання назвати дату шкільного турніру, якої немає в наданому листі. Відповідь може мати бездоганну форму: день, місяць, рік, навіть пояснення. Форма не створює відсутнього доказу.
Генеративні системи справді можуть подавати хибний вміст упевнено й додавати вигадані посилання або обґрунтування. У звіті NIST це описано як конфабуляцію; також уживають умовну назву «галюцинація». Тут це технічний термін для помилкового виходу, а не твердження про людські переживання моделі. NIST, Generative AI Profile, §2.2.
Тому повторне прохання до тієї самої системи «перевір себе» саме по собі не дає незалежного підтвердження. Для дати турніру ним буде оголошення організаторів або інше відповідне першоджерело.
Починай із задачі, закінчуй перевіркою
Замість загального «допоможи з листом» можна сформулювати конкретне прохання: «Склади коротку ввічливу відповідь. Підтвердь участь; дату й місце візьми тільки з цього оголошення. Якщо їх немає, залиш питання до організаторів». Тепер зрозуміло, що система отримала, що має повернути та що перевірятиме людина.
Корисний порядок роботи такий:
- Назви результат. Категорія, прогноз, добірка чи чернетка — це різні очікування.
- Дай потрібний контекст. Умови й вихідні дані, без яких задача неоднозначна.
- Заздалегідь визнач перевірку. Порівняння з оригіналом, розрахунок, тест або відповідне першоджерело.
- Переглянь наслідки помилки. Відредагувати незграбну фразу й пропустити важливий лист — різна ціна невдачі.
Спам-фільтр може розпізнати незнайомий лист, бо навчання налаштувало модель на закономірності в прикладах. Вони бувають корисними, але можуть не відповідати новому випадку. Генерація розширює можливі результати, проте не скасовує цього розриву між відповіддю системи та її перевіркою.
Спробуй зараз придумати два повідомлення: потрібне зі словом «виграш» і небажане без нього. Уже ця пара покаже, чому простого слова недостатньо. Наступне питання — які дані й перевірка допомогли б розрізнити саме ці випадки.