Історія NLP, або Як людство навчає машини розмовляти

Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!

Привіт, спільното! Мене звати Катерина Богорада, сьогодні я хочу продовжити розповідь про нову епоху цифрової ери, у яку нині світ активно занурюється — це епоха штучного інтелекту.

Можливо, людство ще не до кінця усвідомлює глибину проникнення AI-технологій в наше життя, проте напевно відчуває наживо ті зміни, що беззаперечно несуться. Хоча технології машинного навчання існують та широко використовують вже не перше десятиріччя, за останній рік увага до них безсумнівно вийшла на новий рівень, давно полишивши межі технічної та наукової спільноти.

Що ж стало рушієм для такого активного їх розповсюдження та глобального божевілля на темі AI? Думаю відповідь очевидна — це поява наприкінці 2022 року ChatGPT, який, своєю чергою, привернув масову увагу і до інших AI-рішень. Останні, до речі, давно отримали «дружні інтерфейси» та не потребують здобуття докторського ступеня з Computer Science для їх цілком практичного використання.

Якщо не вдаватися глибоко у міркування, зараз можна впевнено ствердити, що ключем до таких відчутних змін стала здатність машин «розуміти» людську мову. А якщо говорити технічною — такий стрибок у розвитку штучного інтелекту першочергово забезпечують досягнення в області обробки природної мови — Natural Language Processing (NLP). Та якщо поглянути в ретроспективі на історію цієї галузі, то можна побачити, що рух до можливостей, що відкриваються нам сьогодні, був доволі поступовий.

Доцифрова ера NLP

Мова — це безпрецедентний інструмент передачі інформації, при тому не тільки базово peer-to-peer, але і на рівні людських генерацій. Саме здатність формулювати, фіксувати та передавати інформацію забезпечили людству інтелектуальний та технологічний розвиток, невідомий у решті біологічного світу. Думаю не треба навіть пояснювати, наскільки цей інструмент є складним та багатогранним.

Як не крути, саме мова є ключовою відмінністю людини від іншого тваринного світу. А відтак, цілком закономірно, що вона стала також ключем до виходу на новий рівень роботи штучного інтелекту та впритул наблизила нас до виникнення AGI (штучного інтелекту загального призначення).

Ідея створення математичної моделі мови з’явилася дуже давно. Перші намагання цифровізувати мову були ще у XIII сторіччі, у спробах одного єврейського містика створити «науку комбінування букв». А у XVII сторіччі Ляйбніц висунув теорію про те, що мова не є якимось хаотичним породженням людського розуму, а має певну теоретичну модель, яка повністю описує її структуру та не надто пов’язана з біологічними аспектами людського мислення.

За допомогою такої моделі, як він вважав, можна на основі вже відомих теоретичних концепцій, генерувати нові та складніші. А відтак «автоматично» робити наукові відкриття. Ось такий суто математичний підхід! Хоча довести цю теорію Ляйбніц так і не зміг, визнавши, що ідея «механізації» людської мови поки що не на часі, та сучасні підходи NLP багато в чому відображають його ідеї.

Хоча загальної «теорії мови» не існує, але в деякому сенсі кожна окрема мовна модель є свого роду алгоритмічною системою, що відображає принципи «роботи» мови, за якими така система наразі здатна генерувати текст цілком «по-людськи». Більш того, на великі мовні моделі сьогодні покладають саме такі очікування: робити відкриття на основі наявних знань людства!

Подальші спроби створення математичної моделі мови були більш прикладними та полягали в застосуванні комбінаторних інструментів до описання закономірностей мовотворення (типу частотності появи слів та навіть букв). Одним з важливих результатів цих спроб став Закон Ципфа (1949 р.), який мав велике значення для NLP цифрової ери та ліг в основу роботи різноманітних векторайзерів, суттєво полегшивши питання розмірності для моделей машинного навчання в майбутньому.

Лінгвістика VS математика

Історія ж самого NLP починалася у 50-х роках минулого сторіччя не стільки з математики, скільки з лінгвістики. Адже спочатку алгоритмізувати мову намагалися за допомогою численних лінгвістичних правил, які мовознавцям спочатку треба було формалізувати, а потім програмістам захардкодити. Гарним прикладом такого підходу став чат-бот Еліза, драматичну історію якого я розповідала в одному з дописів у своєму телеграм-каналі.

Цей апроач давав певні результати для окремих вузьких задач, але глобально не мав перспектив: бо скільки ж треба створити тих правил аби отримати більш-менш універсальну модель! Тому до 90-х років розвиток NLP мав дещо «прохолодну» тенденцію, аж поки друге дихання йому не надало машинне навчання.

Навіть нескладні ML-алгоритми, які тоді вийшли на певний рівень застосовуваності, навчені на досить простих частотних представленнях тексту, демонстрували набагато кращі результати в порівнянні з лінгвістичними моделями. Перспективи почали вимальовуватися.

Перепробувавши всі наявні на той момент ML-архітектури (а їхня кількість була досить-таки обмежена), дослідники взялися за задачу представлення тексту в числовому форматі (embedding). Як я зауважила трохи вище, спочатку ці представлення були простими частотними моделями. Вони отримали узагальнену назву Bag of Words.

Такі способи ембедингу розглядають текст як набір окремих слів (токенів), кожному з яких ставиться у відповідність число, яке так чи інакше пов’язане з частотою появи слова в тексті. Але ж досить очевидно, що окреме слово саме собою не є дуже інформативним, набагато більше інформації містить контекст, у якому воно вжите.

Трохи покращили ситуацію n-грами — конструкції, у яких одиницею інформації виступало не окреме слово, а частотна послідовність з n-слів (словосполучення). Але і цей підхід мав численні недоліки, головним з яких ставала розмірність простору таких конструкцій.

Natural Language Understanding, або Тлумачний словник для комп’ютера

Як можна здогадатися, проблему було вирішено — розв’язання цієї задачі стало наступною значною віхою у розвитку NLP. У 2013-му році в Google запропонували модель (а точніше підхід) ембедингу тексту — Word2Vec, що формує векторний простір слів, у якому у відповідність кожному слову ставиться вже не просто число, що відображає його частотність у тексті, а багатовимірний вектор — декілька числових значень, які визначають це слово за різними характеристиками.

Значення таких векторів обчислюються в ході навчання нейромережі на певному текстовому корпусі, який представлений у вигляді так званого ковзаючого вікна, що дозволяє «вловити» принципи взаємодії слів у тексті. Залежно від вхідного корпусу модель може мати більш специфічний або більш загальний контекст (наприклад для технічних текстів більш специфічні ембединги будуть працювати краще, ніж загальнолітературні).

Інтерпретацію такого векторного простору досить складно описати, але є дуже показовий приклад операцій над векторами слів, що демонструє цю логіку: King — Man + Women = Queen.

Тобто якщо від вектора з простору слів, що відповідає слову «Король» відняти «властивості» слова «чоловік» та додати властивості слова «жінка» — ми отримаємо вектор (звичайно, не рівний до останнього знака, але), за значеннями дуже близький до слова «королева». З чого можна зробити висновок, що розробникам таки вдалося передати комп’ютеру певне розуміння значень слів.

Іншими словами, Google розробив підхід для створення «тлумачного словника» людської мови для комп’ютерів, що відкрило широкі горизонти для подальших досліджень. Методи створення таких ембедингів продовжують розвиватися, формуючи окремий напрямок NLP, де поряд з мовними моделями створюються численні передтреновані ембединги. Але принцип залишається приблизно тим самим.

Natural Language Generation. Битва архітектур

Вище ми розібралися з тим, як дослідникам вдалося «пояснити» машинам значення слів, а саме: створити моделі текстових ембедингів, що ефективно передають певні характеристики та принципи співвживаності простих мовних елементів (слів).

Можна сказати, що на цьому етапі була повністю вирішена задача Natural Language Understanding (NLU). Це дозволило вивести на достатньо високий рівень точності моделі класифікації або семантичного аналізу текстів, але про повноцінного співбесідника у вигляді комп’ютера казати було зарано.

Подальші дослідження в області аналізу мови вже лежатимуть у площині генерації тексту машиною — Natural Language Generation. І якщо сьогодні змістовне спілкування з генеративними мовними моделями стало майже буденністю, то ще десять років тому розв’язання задачі якісної та змістовної генерації тексту мало досить туманні перспективи.

У першій декаді XXI сторіччя state-of-the-art у задачах NLP були рекурентні LSTM (Long Short-Term Memory) моделі, які сприймають текст як впорядковану послідовність токенів (слів, словосполучень) та тренуються передбачати наступний токен у такій послідовності.

Хоча перформанс цих моделей на вузьких задачах текстової аналітики є досить непоганим, та такий підхід має певні складності із загальним контекстом на довгих послідовностях. Розумні люди усіляко намагалися подолати ці складнощі, додаючи forward-backward скринінги тексту, аби, тренуючись, модель «пригадувала», що було на початку послідовності. Але відчутних покращень вони не давали.

Проблема контексту була вирішена один раз і до теперішнього часу за допомогою «механізму уваги» (attention mechanism), який запропонував у 2014 дослідник і науковець Dzmitry Bahdanau. Цей достатньо простий (у масштабах архітектур NLP) та елегантний підхід безсумнівно посів визначне місце в історії розвитку NLP.

Працюючи з текстом, механізм уваги створює цифрове зображення своєрідної синтаксичної схеми (щось на кшталт підметів, присудків та інших частин речення — ілюстративно, але не буквально). Така схема визначає «важливі» та «неважливі» токени в контексті всього тексту, поданого на вхід, та дає алгоритму «розуміння» принципів взаємозвʼязку слів у реченнях та побудови мовних конструкцій.

Здавалося б, чого ще не вистачає? Адже машини вже «розуміють» значення слів та «знають» як грамотно побудувати речення. Проте наступним каменем спотикання в цій історії стала можливість масштабування обчислень. Адже старі добрі RRN (Рекурентні нейронні мережі, одним з підвидів яких є моделі LSTM) мають досить вагомий недолік — під час тренування вони потребують повернення до попередніх станів, тому навчання такої моделі практично неможливо розподілити між нодами обчислювального кластера.

Така особливість архітектури суттєво ускладнює тренування у разі збільшення обсягів інформації та, відповідно, довжини вхідної послідовності. Отже, перспектива «вивчити весь інтернет» для такої моделі була фактично не реалізовуваною.

Проте така «дрібничка» не завадила Google зібрати все до купи та реалізувати свою систему Google Neural Machine Translation, на рейки якої у листопаді 2016-го року була повністю переведена робота сервісу Google Translate. Ця подія однозначно викликала захват у користувачів.

Не знаю хто як, але я цю зміну в роботі сервісу відчула тоді наживо, хоча сутність її зрозуміла набагато пізніше. Тоді система GNMT була стеком двох LSTM (encoder та decoder), між якими був шар, що реалізовував той самий механізм уваги, утворюючи так званий «латентний простір», що зберігає взаємозвʼязки між різними сутностями в тексті.

Родзинкою цієї архітектури та ще однією сходинкою в процесі навчання машини говорити, став підхід seq2seq моделювання. За його концепцією, нейромережа не просто оцінює ймовірність появи певного слова в тексті, а зіставляє між собою дві текстові послідовності та у такий спосіб навчається, щоб у відповідь видавати не слово, а певну послідовність слів — звичайно, бажано ще й змістовну.

Машинні перекладачі якраз є класичним прикладом такого моделювання: як інпут моделі виступає фраза однією мовою, а як таргет — та ж сама фраза, але іншою мовою. Задача енкодера — перетворити вхідний текст у відповідне цифрове представлення латентного простору, а декодера — відновити текст за цим латентним представленням.

Можна тільки припустити, якою ціною обійшлося тренування цієї моделі на той час. Адже, як ми пам’ятаємо, архітектуру LSTM-мережі неможливо розподілити між кількома процесорами. Водночас з механізмом уваги такої проблеми не виникає, оскільки він фактично «фіксує» взаємозв’язки між токенами (незалежно від того, як «далеко» вони перебувають одне від одного в тексті), та, на відміну від рекурентної мережі, у процесі навчання не потребує «пригадування».

Взявши до уваги цю перевагу «механізму уваги», дослідники почали далі експериментувати з архітектурами, дійшовши у 2017 році до геніального висновку, що «Увага — це все, що вам потрібно»! (див. Attention Is All You Need). Фактично вони відмовились від принципу рекурентного підходу та сконцентрувалися на архітектурі, яка б була послідовністю фіксованих станів.

Відтак тренування на будь-якому етапі може бути перенесене на інший процесор, і, відповідно, система стає легко масштабованою. Власне, структурним елементом цієї архітектури став шар, що реалізує той самий механізм уваги, який чудово себе зарекомендував у багатьох аспектах.

Архітектура seq2seq-моделювання, яка є стеком енкодера та декодера, базованих на механізмі «уваги», отримала назву «Трансформер» та стала срібною кулею NLP. Без перебільшень, поява трансформерів стала проривним етапом у розвитку NLP-технологій, та привернула нову хвилю уваги до цієї сфери. Саме вона лежить в основі всім відомої моделі ChatGPT та багатьох інших мовних моделей, яким сьогодні приписують здатність мислити та пророчать їхнє потенційне повстання проти людства.

Від здатності говорити до здатності мислити

Технологія трансформерів щільно увійшла в життя спеціалістів з NLP, отримавши різноманітніші реалізації у вигляді численних BERT та поступово відкривши світ великих мовних моделей, або LLM (Large Language Models), можливостями яких наразі захоплюється весь світ. Хоча архітектури таких моделей до найменших деталей пропрацьовуються розробниками, навіть вони самі не можуть впевнено пояснити, що за магія відбувається всередині цих систем та чи здатні вони насправді мислити.

Крім того, сутність архітектури трансформера, а саме: стек моделей енкодера та декодера, — що покликана порівнювати два різні набори інформації, закономірно підводить до ідеї відновлення даних з латентного простору не тільки в текст, але в інші формати. Наприклад у зображення або навіть музику.

Саме за таким принципом працюють добре відомі генератори картинок за текстовим описом на кшталт Midjournej та Stable Diffusion, які є класичними представниками так званих мультимодальних систем. Мультимодальність, своєю чергою, відкриває перспективи створення не просто «розумних» нейромереж, а й більш універсальних роботизованих систем, що «думають», образом яких є ШІ загального призначення (AGI). Та ключем до можливої появи його все ж таки стають мовні моделі та здатність «спілкуватися» з комп’ютером людською мовою.

👍ПодобаєтьсяСподобалось16
До обраногоВ обраному6
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Речення це фрактал. Слова це ідентифікатори інших речень фракталів.
Ось подивиться на приклади графічних фракталів, які вони, га?
Ще думаю — слово не можна розглядати окремо від того, що воно визначає. Тому слово повинне вказувати на більш точний/повний контекст — малюнок, відео, реальний гамбургер щойно з печі.
Слово чи декілька слів? Чим більше слів тим точніше інформація/контекст, але в цілому нативна мова це мова сповіщення, передавання шаблонів, порівнянння з якими реальності дозволяє зробити висновок про те що відбувається.
Якщо це слово мови програмування воно повинне вказувати на якійсь працюючий перевірочний тест.

Якщо брати всіх людей то контекстів зберігати тотально багато, а шукати по ним досить довго. Але у кожної людини свої контексти і слова що характеризують їх. Тут всього досить мало. Можливо потрібно зробити індівідуальний пошук.

До речі, можливо треба зберігати контексти у яких слова з’являються — а це більш складна задача ніж зберігати слова та зв’язки між ними. Чи менш складна...
На виході — якійсь контекст. На вході — якесь слово.

Чи не простіше/безпечніше навчити людей бути розумниками?
Бо якщо ШІ почне «думати» — генерувати варіанти та відсіювати ті що не підходять — то що він собі надумає там?
Я пам’ятаю часи, коли НЛП це була забавка психологів, які намагалися оптимізувати людські душі.
Нам всього лише потрібно навчитися програмувати біологічні нейрони. І це буде безпечніше ніж довіряти дата-центру, що він (ШІ) не найме якогось фрілансера щоб пройти капчу на форумі у даркнеті.

Те НЛП, про яке ви згадали — це нейролінгвістичне програмування (Neuro-linguistic programming), це зовсім не Natural Language Processing про яке йдеться у статті, якщо що))

Ох, бач, яке співпадіння. Відкрили очі, дякую.
Але, питання залишилося відкритим? Як що до вчити пересічних людей генерувати варіанти та відкидати ті, що не підходять. Щоб замість ШІ навчити людей думати?
Бо небезпека використання ШІ то над_велика ціна за все оте...
Я згоден на прості ієрархічні довідники (з певною оптимізацією запитів), але більша самостійність то мабуть буде біда. Чи звичайні люди настільки облінилися що знадобився новий важіль? Чи краще сказати — батіг?

Ідея «запограмувати людей бути розумними» звичайно дуже цікава, але вона лежить у геть іншій площині, і включає такий «невеличкий» аспект, що ми все ж таки хочемо жити у цивілізованому демократичному світі, тому ніхто не має права змушувати людину «бути розумною» попри її волю до цього. Чи як ви бачите реалізацію?
Щодо штучного інтелекту — то це скоріш закономірний етап технологічної еволюції, ніж задача створити якийсь батіг для людей. Навряд чи хтось з розробників керується саме такою метою. Ризики звичайно є, але вони є у будь-якої інноваційної технології — згадайте, наприклад, атомну енергетику. Та все ж це не привід відмовлятися від прогресу. Можливо не без помилок (скоріш за все не без помилок), але я думаю з часом і ШІ вийде на достатній рівень контролю та регульованості.

Та ні. Я б запропонував створити компьютерну іграшку, яка зможе розвинути розумові здібності та більш менш інтелектуально дослідить на що здатен гравець.
Що до прогресу — його треба сповільнити — планета у лихоманці.

Але, питання залишилося відкритим? Як що до вчити пересічних людей генерувати варіанти та відкидати ті, що не підходять. Щоб замість ШІ навчити людей думати?
Бо небезпека використання ШІ то над_велика ціна за все оте...
Я згоден на прості ієрархічні довідники (з певною оптимізацією запитів), але більша самостійність то мабуть буде біда.

Для людей тут поки нічого нового з точки зору технологічного прориву, давно існують продукти, які конфігуруються людьми і потребують певних нішових знань із використанням прикладної no-code / low-code платформи, або software продукти для математичного моделювання та Cad передбачали для складних і рутинних задач засоби автоматизації та можливість написання скриптів. Але раніше не було маркетингової тенденції на подібне ліпити ярлик ML, а попутно ще приплітати АІ.

Ви маєте досвід написання торгового бота, будучи в тренді потріно було його позиціонувати, як АІ-бот з передовими АІ-технологіями, який справляється з біржовою торгівлею краще людини :)

Стосовно небезпеки «АІ» для людства та загалом етичних питань, то проводяться міжнародні форуми із залученими впливовими спікерами в даному домені, також вже є напрацювання фреймворків з рекомендаціями для розробки techxplore.com/...​ificial-intelligence.html

Можливо, людство ще не до кінця усвідомлює глибину проникнення AI-технологій в наше життя

ШІ ще не існує, Turing test en.wikipedia.org/wiki/Turing_test ще ніхто не скасовував, продукт, що пройде даний тест можна буде вважати ШІ, а поки ці всі «AI» — це маркетингові маніпуляції стосовно певних рішень автоматизації.
Щоб оцінити примітивність нинішнього «AI», можете елементарно на Google Cloud платформі потренувати Document AI, Conversational AI і Visual Inspection AI щоб побачити наскільки дані рішення ще примітивні та обмежені в порівнянні навіть із некваліфікованою людиною.

Natural Language Understanding

Немає поки тут нічого розуміти, ChatGPT чи Bard нездатні замінити кваліфікованого Technical writer чи Business Analyst, вони просто є інструментами з обмеженою функціональністю та ефективністю для автоматизації деяких процесів.

Від здатності говорити до здатності мислити

Люди з низьким IQ сприймають Chatbot чи Robocall за реальну людину, але це не робить дані засоби автоматизації здатними до мислення.

Ну по-перше відкриваємо вікіпедію і дивимося визначення поняття Штучний інтелект

Шту́чний інтеле́кт (ШІ, англ. artificial intelligence, AI) — розділ комп’ютерної лінгвістики та інформатики, який швидко розвивається, і зосереджений на розробці інтелектуальних машин, здатних виконувати завдання, які зазвичай потребують людського інтелекту.

Тому твердження, що «ШІ не існує» — це чистий софізм!

По-друге, за потреби відкриваємо вікіпедію і дивимося значення слова софізм))

Але дякую, що пройшлись по заголовках статті і написали коменти не по суті. Це не дуже мотивує, але трохи розважає.

Ну по-перше відкриваємо вікіпедію і дивимося визначення поняття Штучний інтелект

Шту́чний інтеле́кт (ШІ, англ. artificial intelligence, AI) — розділ комп’ютерної лінгвістики та інформатики, який швидко розвивається, і зосереджений на розробці інтелектуальних машин, здатних виконувати завдання, які зазвичай потребують людського інтелекту.

Тому твердження, що «ШІ не існує» — це чистий софізм!

Ну, по-перше, коли ви цитували Вікіпедію, то потрібно було згадити шкільну програму, а саме, що таке доконаний вид дієслова. Це також важиво розуміти із врахуванням вашого інтересу до обробки природньої мови (NLP).

Тому твердження, що «ШІ не існує» — це чистий софізм!

По-друге, за потреби відкриваємо вікіпедію і дивимося значення слова софізм))

По-друге, як я зрозумів, Bard для вас є прикладом AI, його можна поздоровити, бо він краще за вас впорався із цитуванням Вікіпедії :) g.co/bard/share/4bba9f68c24e

Дякую за оффтопні інструкції, а також бажаю вам успіху в «АІ»-евангелізмові!

Вибачте, не зрозуміла до якого дієслова у словосполученні «штучний інтелект» я мала застосувати доконаний вид. А ось за «AI-євангелізм» прям дуже дякую! Як раз шукала влучний лаконізм для портфоліо. Дяка! =)

В даному випадку ви цитували, а не мали застосовувати доконаний вид дієслова,🤦🏻‍♂️ в процитованому він відсутній, і здається, я не просто так використав у вашій цитаті < b > і < /b >, можливо, що сучасні NLP-моделі краще за пересічну людину «розуміють» сенс bold text🙃

Я сюди зайшов прочитати як дурити людей за допомогою бла бла бла. А ви мене грузите якимось матаном.

Мова лише 30% у комунікаціях людей.

Підписатись на коментарі