Пошук уроків, статей та іншого контенту
Пояснюємо простими словами, як влаштовані великі мовні моделі та що вони насправді роблять.
LLM (Large Language Model) — це велика мовна модель, тобто система машинного навчання, яка вміє працювати з текстом: продовжувати речення, відповідати на запитання, перекладати, узагальнювати документи, генерувати код і виконувати інші завдання, пов’язані з мовою.
До LLM належать моделі на кшталт GPT, Claude, Gemini та Llama. Вони можуть вести діалог, але принцип їхньої роботи відрізняється від роботи людини. Модель не «думає» в людському сенсі й не зберігає готову базу відповідей. Вона обчислює, яка послідовність символів або токенів найімовірніше має з’явитися далі.
Назва LLM складається з трьох частин:
Large — модель має велику кількість параметрів і навчається на значних обсягах даних.
Language — основне призначення моделі — робота з мовою: текстом, кодом і пов’язаними структурами.
Model — це математична модель, параметри якої налаштовуються під час навчання.
Параметри — це числові значення, які модель змінює під час тренування. Вони визначають, як модель пов’язує слова, конструкції, факти та інші елементи контексту.
Важливо: кількість параметрів сама по собі не гарантує кращу якість. Результат також залежить від:
якості навчальних даних;
архітектури моделі;
способу навчання;
обсягу контексту;
додаткового донавчання;
методів оцінювання та фільтрації результатів.
LLM не отримує текст у вигляді готових слів. Спочатку текст розбивається на токени — невеликі фрагменти.
Токеном може бути:
ціле слово;
частина слова;
розділовий знак;
пробіл або інший службовий символ.
Наприклад, довге слово може бути поділене на кілька частин. Такий підхід дає змогу працювати не лише з відомими словами, а й із новими словами, іменами, адресами та фрагментами коду.
Після токенізації кожен токен перетворюється на числове представлення. Модель обробляє ці числа, враховує контекст і прогнозує наступний токен.
Спрощено процес можна описати так:
Користувач надсилає запит.
Запит розбивається на токени.
Модель аналізує зв’язки між токенами.
Для наступного токена обчислюється розподіл імовірностей.
Обирається один із можливих токенів.
Процес повторюється, доки не буде сформовано відповідь.
Якщо запит має вигляд:
Столиця України — це
модель може оцінити, що токен «Київ» має високу ймовірність. Але це не означає, що всередині зберігається окрема картка з відповіддю. Результат формується через числові зв’язки, набуті під час навчання.
На першому етапі модель навчають на великих масивах текстів. Це можуть бути книги, статті, документація, програмний код та інші дані, доступні для використання відповідно до умов ліцензування.
Типове завдання виглядає просто: модель отримує частину тексту й намагається передбачити наступний токен.
Наприклад:
JavaScript — це мова програмування, яка працює в
Модель має оцінити, які токени можуть продовжити речення: «браузері», «середовищі», «інтернеті» тощо.
Спочатку передбачення майже випадкові. Під час навчання модель порівнює свій прогноз із правильним токеном і змінює параметри так, щоб наступного разу помилятися менше.
Повторення цього процесу на великій кількості прикладів дає змогу моделі вивчити:
граматичні конструкції;
стилі написання;
зв’язки між поняттями;
поширені факти;
шаблони програмного коду;
структуру діалогів;
способи формулювання відповідей.
Після попереднього навчання модель можуть додатково налаштувати під конкретну поведінку. Наприклад, її навчають:
краще виконувати інструкції;
відповідати у форматі діалогу;
уникати небезпечного або забороненого контенту;
бути кориснішою для програмування;
дотримуватися певного стилю відповідей.
Для цього використовують спеціально підготовлені приклади запитів і відповідей. Також можуть залучати оцінювання людьми або автоматичні методи оцінювання.
Водночас донавчання не робить модель безпомилковою. Воно лише змінює її схильність до певних типів відповідей.
Сучасні LLM переважно побудовані на архітектурі Transformer. Її ключовий механізм — attention, або механізм уваги.
Механізм уваги допомагає моделі визначати, які частини тексту важливі одна для одної. Це особливо корисно, коли речення довге або коли значення слова залежить від контексту.
Розглянемо речення:
Марія передала Олегу книжку, бо він просив її раніше.
Щоб інтерпретувати займенники «він» і «її», потрібно врахувати зв’язки з іншими словами в реченні. Механізм уваги дає змогу аналізувати такі зв’язки.
На практиці Transformer складається з багатьох шарів. Кожен шар поступово перетворює представлення токенів, виявляючи складніші закономірності:
локальні зв’язки між словами;
граматичну структуру;
зв’язки між частинами документа;
залежності в коді;
загальний контекст запиту.
Це не означає, що модель буквально будує людське дерево розуміння. Йдеться про складні числові перетворення, які дають корисні результати під час роботи з текстом.
LLM генерує відповідь поступово — токен за токеном. Для кожного наступного токена модель обчислює ймовірності можливих варіантів.
Наприклад, після фрази:
Найбільша планета Сонячної системи — це
модель може призначити високі ймовірності токенам, пов’язаним зі словом «Юпітер».
Під час генерації можуть використовуватися різні стратегії:
вибір найімовірнішого токена;
випадковий вибір серед кількох імовірних варіантів;
обмеження кількості кандидатів;
налаштування рівня випадковості.
Через це однаковий запит іноді дає різні відповіді. Випадковість може зробити текст різноманітнішим, але водночас підвищує ризик помилок.
Модель працює не з безмежною історією. Вона має обмежене контекстне вікно — максимальну кількість токенів, яку може враховувати під час одного запиту.
До контексту можуть входити:
інструкції системи;
повідомлення користувача;
попередні репліки діалогу;
документи;
фрагменти коду;
частина відповіді, яка вже була згенерована.
Якщо текст перевищує ліміт, його частину потрібно скоротити або вилучити. Через це модель може втратити важливі деталі з початку довгого діалогу чи документа.
Велике контекстне вікно допомагає працювати з об’ємнішими матеріалами, але не гарантує, що модель однаково добре використає кожен фрагмент інформації.
Це складне питання, і відповідь залежить від того, що називати розумінням.
LLM демонструє поведінку, схожу на розуміння:
підтримує тему розмови;
пояснює складні поняття;
перефразовує текст;
знаходить закономірності;
пише програми;
аналізує взаємозв’язки між частинами запиту.
Проте модель не має людського досвіду, свідомості, власних цілей або безпосереднього сприйняття світу. Вона не бачить реальність так, як людина, якщо не підключена до окремих інструментів, наприклад камер, пошукових систем чи програм.
Тому коректніше говорити, що LLM обробляє мовні закономірності та генерує переконливий текст, а не що вона думає так само, як людина.
Залежно від моделі та додаткових інструментів LLM можуть:
відповідати на загальні запитання;
створювати та редагувати тексти;
перекладати між мовами;
стисло переказувати документи;
класифікувати текст;
витягувати структуровані дані;
пояснювати програмний код;
генерувати приклади коду;
допомагати з пошуком помилок;
створювати тести;
перетворювати текст на інший формат.
Важливо розрізняти можливості самої моделі та можливості програмного продукту, у який її інтегровано. Наприклад, чат-бот може мати доступ до пошуку, файлів або запуску коду, але це не обов’язково є властивістю базової мовної моделі.
Галюцинацією називають ситуацію, коли модель генерує правдоподібну, але неправильну інформацію.
Модель може:
вигадати неіснуюче джерело;
неправильно назвати дату або факт;
приписати бібліотеці функцію, якої немає;
подати припущення як перевірену інформацію;
створити код із непомітною помилкою.
Причина в тому, що модель оптимізована для генерації ймовірного продовження, а не для автоматичної перевірки істинності кожного твердження.
Навчальні дані мають певну дату завершення. Якщо модель не підключена до актуальних джерел, вона може не знати про:
нові версії бібліотек;
останні події;
зміни законодавства;
актуальні ціни;
нові функції програмних сервісів.
Невелика зміна запиту може вплинути на результат. Неоднозначна інструкція часто призводить до загальної або неповної відповіді.
Щоб підвищити якість, варто вказувати:
завдання;
потрібний формат;
цільову аудиторію;
обмеження;
приклад бажаного результату;
критерії перевірки.
LLM може переконливо описати неправильне міркування. Вона також може помилятися в арифметиці, послідовностях дій і складних логічних задачах.
Для критично важливих результатів потрібні додаткові перевірки, тести, джерела або виконання обчислень спеціалізованими інструментами.
Мовні моделі особливо корисні під час розроблення програмного забезпечення. Вони можуть допомогти:
пояснити незнайомий код;
запропонувати структуру функції;
написати чернетку тестів;
перетворити код між мовами;
знайти очевидні помилки;
скласти документацію;
сформувати SQL-запит;
запропонувати варіанти рефакторингу.
Однак згенерований код не варто автоматично вважати правильним. Його потрібно:
прочитати та зрозуміти;
перевірити на відповідність вимогам;
запустити локально;
протестувати на крайніх випадках;
перевірити з погляду безпеки та продуктивності;
зіставити з документацією використаних технологій.
LLM може створити код, який виглядає професійно, але містить помилки в логіці або використовує застарілий API.
Базова модель працює з інформацією, яка є в її параметрах і поточному контексті. Щоб отримувати актуальні або спеціалізовані дані, застосовують додаткові підходи.
RAG (Retrieval-Augmented Generation) — підхід, за якого перед генерацією відповіді система знаходить релевантні фрагменти у зовнішніх документах і додає їх до контексту моделі.
Це дає змогу створювати асистентів, які працюють із:
внутрішньою документацією компанії;
базою знань;
технічними інструкціями;
юридичними документами;
каталогами товарів.
RAG не усуває помилки повністю. Якщо система знайде неправильний документ або модель неправильно його інтерпретує, відповідь також може бути неточною.
Модель може не виконувати дію самостійно, а сформувати структурований запит до іншої системи. Наприклад:
пошукового сервісу;
калькулятора;
бази даних;
календаря;
середовища виконання коду.
У такій архітектурі LLM відповідає за роботу з мовою, а спеціалізований інструмент — за точне виконання конкретної операції.
Передавання даних до зовнішнього сервісу може створювати ризики для конфіденційності. Не слід без перевірки надсилати в модель:
паролі та токени доступу;
персональні дані;
приватний вихідний код;
конфіденційні документи;
комерційні таємниці;
дані клієнтів.
Перед використанням LLM у робочому процесі потрібно з’ясувати:
де обробляються дані;
чи зберігаються запити;
чи використовуються вони для навчання;
хто має до них доступ;
які налаштування приватності доступні.
LLM може назвати факт, але це не означає, що вона перевірила його в актуальному джерелі. Для новин, версій бібліотек, цін і нормативних вимог потрібна перевірка.
Стиль відповіді не показує її достовірність. Модель може використовувати впевнений тон навіть тоді, коли помиляється.
Фрази від першої особи та емоційний стиль — це результат генерації тексту. Вони не доводять наявності свідомості, почуттів або особистих переконань.
Запит «Напиши код» не визначає мову, призначення, формат вхідних даних і обмеження. Чим конкретніша інструкція, тим легше оцінити результат.
Згенерований код може містити вразливість, неправильну обробку помилок або неіснуючі методи. Його потрібно перевіряти так само, як код від іншого розробника.
Модель бачить лише доступний їй контекст або спеціально збережені дані, якщо це передбачено конкретним продуктом. Вона не обов’язково пам’ятає попередні розмови.
LLM — це велика нейронна мережа, навчена знаходити закономірності в тексті та генерувати наступні токени на основі контексту.
Ключові ідеї:
текст спочатку перетворюється на токени;
модель аналізує зв’язки між токенами;
відповідь створюється поступово;
навчання відбувається на великих масивах даних;
Transformer та механізм уваги допомагають працювати з контекстом;
модель може створювати переконливі, але неправильні відповіді;
актуальні дані, приватність і згенерований код потрібно перевіряти;
LLM — це потужний інструмент обробки мови, але не заміна критичному мисленню та спеціалізованим системам.