Интерактивное объяснение · без формул
ChatGPT, Claude, GigaChat, Алиса — внутри у всех этих чат-ботов работает программа, которую называют языковой моделью. Дальше мы будем называть её просто «модель». Разберём по шагам, что она делает, когда вы задаёте вопрос. В каждом шаге можно что-нибудь нажать и посмотреть, что получится.
Языковая модель всё время решает одну-единственную задачу: какое слово будет следующим? Как подсказки на клавиатуре телефона — только намного умнее.
Здесь — игрушечная модель, которая знает всего несколько десятков слов и смотрит только на одно-два последних слова. Настоящая модель каждый раз учитывает весь разговор целиком — тысячи слов. Она знает от 30 до 250 тысяч «кусочков» текста и для каждого из них считает вероятность. Всё, что вы видите в ответах чат-бота, — это много-много раз повторённое «угадай следующее».
Модель читает не по буквам и не совсем по словам. Сначала текст режется на кусочки — их называют токенами. Частые слова остаются целыми, редкие делятся на части. Зачем? Так из небольшого набора кусочков можно собрать любое слово — даже то, которого модель никогда не видела.
Мы режем текст упрощённо, поэтому кусочки не совпадают со школьными слогами или морфемами. Настоящий «словарь кусочков» составляют заранее, по статистике: буквы и кусочки, которые часто встречаются вместе, склеиваются в один токен. Тексты для этого берут в основном английские, поэтому английский обычно делится на меньшее число токенов, чем русский.
Компьютер умеет работать только с числами. Поэтому у каждого кусочка-токена есть свой адрес на карте смыслов, как у дома на карте города. Похожие по смыслу слова живут по соседству. Нажмите на любое слово.
Адрес на нашей карте — это два числа: «левее-правее» и «выше-ниже». У настоящей модели адрес состоит из тысяч чисел — тысяч направлений. Представить такое пространство невозможно, но смысл тот же: близкие по значению слова оказываются рядом. Эти числа модель не получает от людей — она сама подбирает их во время обучения.
Одно слово может значить разное — всё зависит от соседей. Поэтому каждое слово оглядывается на слова перед ним и решает, какие из них для него важны. Это называют вниманием.
Модели вроде ChatGPT читают слева направо: слово может «смотреть» только на слова до себя. Так сделано специально: при обучении иначе модель просто подглядела бы ответ, а при написании ответа следующих слов и правда ещё нет. Внимание считается не один раз, а много раз параллельно («головы внимания»): одна голова следит за грамматикой, другая — за тем, кто что делает, и так далее. Цифры здесь придуманы для наглядности.
«Оглянуться на соседей и обдумать» модель делает не один раз, а много раз подряд — как будто перечитывает фразу, каждый раз понимая её чуть глубже. Каждое такое перечитывание называют слоем. В больших моделях слоёв десятки, а иногда больше сотни.
На самом деле внутри только числа — модель не пишет себе заметок словами. Описания справа — это то, как исследователи примерно расшифровывают, что «замечают» разные слои. Учёные пока только учатся читать эти числа.
В конце модель выдаёт не одно слово, а вероятности для всех возможных продолжений. Потом слово выбирается — как бросок кубика с неравными гранями. Насколько смело выбирать, задаёт настройка с забавным названием «температура» (как в физике: чем горячее, тем больше беспорядка).
При температуре около нуля модель всегда берёт самое вероятное слово: ответы предсказуемые, но однообразные. При высокой температуре маловероятные слова получают шанс — текст становится разнообразнее, но легче скатывается в бессмыслицу. Из-за этого случайного выбора один и тот же вопрос, заданный дважды, может дать разные ответы.
Выбранное слово дописывается к тексту — и весь процесс запускается заново. Так, слово за словом, получается целый ответ.
Модель «читала» огромное количество текстов и всё время угадывала следующее слово. Каждый раз проверяют, какой шанс она дала правильному слову, и чуть-чуть подкручивают её «ручки настройки» (их называют параметрами) — чтобы правильному слову в следующий раз достался шанс побольше. Сначала модель ничего не знает и угадывает почти наугад.
После чтения текстов модель умеет только продолжать текст. Чтобы она стала помощником, её доучивают на примерах хороших диалогов. Потом люди сравнивают её ответы, и модель учат чаще отвечать так, как люди оценили выше: полезнее и честнее.
Сама модель не ищет ответ в справочнике и не «думает» как человек. Она очень хорошо угадывает следующее слово — и делает это снова и снова.
Многие чат-боты умеют вдобавок заглянуть в интернет, но текст ответа всё равно пишет модель — слово за словом.