Почему Chat-GPT – это не интеллект (хоть и искусственный)

Уже примерно год прошел с тех пор, как ChatGPT начал своё триумфальное шествие по планете. Сразу же всем крупным компаниям, связанным с IT-технологиями (и не только), срочно понадобился свой «ИИ». В частности, сейчас развитием своих ChatGPT-подобных систем усиленно занимаются Яндекс, Сбербанк и другие компании.

Феноменальные способности чат-бота по генерации осмысленных текстов привели к огромному валу новостей в стиле «ИИ скоро заменит всех %название профессии%!». Крупные корпорации действительно стали вовсю использовать данную технологию и внедрять её в свои продукты. К примеру, появился помощник для написания программ GitHub Copilot.

Кажется, что индустрия развивается огромными шагами и в обозримом будущем мы сможем увидеть появление сильного ИИ, который вознесет человечество на доселе невиданную высоту.

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

Как устроен ChatGPT

Чтобы понять, что в перспективе сможет делать недавно возникший «искусственный интеллект» необходимо чуть подробнее разобраться в принципах его работы. Все, что делает ChatGPT, это генерирует следующее слово в последовательности слов. Делает он это на основании хитрых алгоритмов, очень отдаленно напоминающих работу системы набора текста T9.

Вот набираете вы в Whatsapp`е текст «В лесу родилась…» и система вам услужливо подсказывает следующее слово, угадайте какое.

Почему Chat-GPT – это не интеллект (хоть и искусственный)

Ну чем не «интеллект»?

Именно для того, чтобы научить систему правильно предсказывать следующие слова и производится её обучение на основании огромного количества текстов. Однако, если просто посчитать вероятность появления одного слова после другого, мы получим при генерации лишь бессвязный набор слов, лишь отдаленно напоминающий осмысленный текст, поэтому система устроена чуть сложнее.

Для начала стоит уточнить, что тексты подаются на вход нейросети в виде так называемых токенов, т.е. обычных чисел (размером 2 байта). Но в данном случае каждое слово не равно токену. На вот этой страничке можно токенизировать небольшой текст чтобы посмотреть, как это работает.

Для примера разобьем фразу «В лесу родилась ёлочка» на токены. Получается 14 токенов на 4 слова, т.е. по 3.5 токена на слово.

Почему Chat-GPT – это не интеллект (хоть и искусственный)

Я загрузил в токенизатор более длинный кусок текста из романа «Война и мир» и внезапно получилось 3.53 токена на слово. Т.е. для русского языка это нормальное соотношение. В аннотации к токенизатору приводится информация о том, что для текстов на английском языке соотношение заметно меньше – 1.33 токена на слово. Вероятно, русские слова более сложны для разделения на части (суффиксы, окончания и вот это всё).

Можно заметить, что буква «л» в тексте выше в двух местах кодируется разными числами. Это из-за того, что в первом случае токеном является сочетание «пробел+буква».

Такое разбиение текста на более мелкие «куски» позволяет уменьшить количество параметров (очевидно, разных «слогов» намного меньше, чем слов в языке), а также решить проблему изменчивости слов (падежи, окончания и т.п.).

Я пока не выяснил, делается ли расчет параметров для каждого «слога», или всё-таки они «склеиваются» в полноценные слова в некоей внутренней базе данных (для этого недостаточно просто пройтись по верхам). Видимо, для этого придется создать свой мини-ChatGPT.

Также мне не совсем понятен процесс обработки текстов на разных языках. ChatGPT обучался преимущественно на английских текстах (по крайней мере на начальных этапах), соответственно, возникает вопрос, переводится ли входной текст на английский перед вычислением следующего слова или для каждого языка существует своя мини-модель. Впрочем, в контексте этой статьи это не так важно.

Помимо гигантского набора токенизированных текстов при обучении не используются какие-то явные логические построения или алгоритмы типа «трех законов робототехники» или моральных установок в стиле «не убей, не укради и т.п.». Хотя, если эти логические или моральные императивы оформить в виде текста и использовать для обучения наравне с другими текстами, они тоже будут учтены, но косвенно, а не как жестко заданные условия.

Это очень важный момент. В интернет выкладывали много примеров, как ChatGPT удалось заставить сгенерировать код активации Windows или выдать инструкцию по изготовлению каких-нибудь коктейлей Молотова. На тот момент просто не было механизмов, блокирующих или усложняющих получение таких результатов (сейчас этот момент, что называется, прокачали, но об этом позже).

Но вернемся к устройству нашего «ИИ».

Задача ChatGPT, как уже упоминалось выше, это предсказание следующего слова (или последовательности токенов) в последовательности слов. Т.е. на вход системы подается текст (наш вопрос «чату»), а ChatGPT его просто продолжает. Причем каждое сгенерированное слово ответа добавляется к входному запросу, затем цикл «вычисления» очередного слова повторяется.

Именно для того, чтобы понять какое слово должно быть следующим в последовательности и необходимо обучение.

Максимальная длина обрабатываемого ChatGPT-3 запроса составляет 4096 токенов или около 3000 английских слов (если писать на русском, то, соответственно, немногим больше 1000 слов).

Как понять, какое слово должно следовать за текстом из 3000 слов? Легко – взять все возможные последовательности из 3001 слова и посчитать вероятность появления 3001-го слова в зависимости от предыдущих 3000.

Однако тут есть 2 проблемы. Во-первых, это слишком большой объем данных (и вычислительных мощностей). Во-вторых, человечество не написало еще все возможные тексты (и не сможет этого сделать), так что даже теоретически невозможно точно рассчитать все вероятности.

Вот, к примеру, задаете вы ChatGPT следующий запрос: «Придумай сказку про Зеленую Шапочку, которая несла бабушке борщ и встретила в лесу медведя». Всего лишь 14 слов из возможных 3000, но их нет в базе данных для обучения, потому что этот текст вы только что придумали. Но ChatGPT вам запросто выдаст отличную сказку. Вот она:

Почему Chat-GPT – это не интеллект (хоть и искусственный)

Как так получается? Дело в том, что ChatGPT, по сути, никогда не знает точного продолжения переданной ему текстовой последовательности. Он ее буквально вычисляет (очень приблизительно) на основании ранее созданной модели, состоящей их миллиардов параметров.

Представим, что каждое слово в изначальной последовательности (пусть это будет текст «В лесу родилась») – это переменная, имеющая значение (номер токена в виде числа). К примеру: Х1 = 3456 («В»), Х2 = 2789 («лесу»), Х3 = 6567 («родилась»). В зависимости от этих чисел и их последовательности (это тоже важно) ChatGPT подбирает некие коэффициенты (a, b, c …) и вычисляет уравнение: aX1 + bX2 + cX3 = Х4, где Х4 = номер нового токена/слова.

Почему Chat-GPT – это не интеллект (хоть и искусственный)

Так как число подаваемых на вход слов конечно, можно за некий конечный период времени натренировать модель, т.е. подобрать, условно, все 3000 коэффициентов для того, чтобы с некоей приемлемой вероятностью успеха вычислять 3001-е слово в последовательности.

Само собой, в реальности все это на порядки сложнее и количество параметров исчисляется миллиардами. Но суть остается неизменной: внутри ChatGPT нет никакого «интеллекта», знаний, норм морали, самосознания и тому подобных вещей. Это просто очень большая база данных, которая может на основании статистических данных генерировать текст, очень похожий на созданный разумным человеком.

Кстати, у ChatGPT-4 размер запроса увеличили в 8 раз, так что возможность абсолютно правильного предсказания ответа стала еще меньше.

Еще в 2001 году вышла работа по искусственному интеллекту Эмили М. Бендер (говорящая фамилия, не так ли?) "Об опасностях стохастических попугаев: могут ли языковые модели быть слишком большими?». Стохастические (вероятностные) попугаи – это, собственно, и есть большие языковые модели, к которым относится и наш ChatGPT. Они просто очень убедительно повторяют те тексты, на которых их обучали, не понимая при этом их сути. Ни о каком «интеллекте», разумеется, тут речи идти не может.

Использование таких моделей может даже принести вред, введя пользователей в заблуждение. К примеру, можно спросить у ChatGPT, какова вероятность появления слова «ёлочка» после текста «В лесу родилась». Первый ответ был таким.

Почему Chat-GPT – это не интеллект (хоть и искусственный)

Выглядит достоверно. Но стоит немного переписать запрос (первый запрос состоял из двух вопросов, основного и уточняющего, а второй – из одного более подробного) и выдача кардинально меняется).

Почему Chat-GPT – это не интеллект (хоть и искусственный)

Поменялось первое слово ответа ("конечно" вместо "поняла") и все «вероятности». Очевидно, что ChatGPT (это GPT-3) не знает правильного ответа на мой вопрос, но выдает нечто, очень похожее на требуемый ответ и одновременно бессмысленное.

В похожую ситуацию попал некий адвокат из США, когда попросил ChatGPT найти судебные прецеденты по его делу. В результате чат-бот просто «выдумал» пару прецедентов, причем сделал это довольно убедительно, так что даже опытный адвокат ничего не заподозрил.

Почему Chat-GPT – это не интеллект (хоть и искусственный)

Все это заставляет поумерить пыл энтузиастов и повнимательнее присмотреться к новой технологии.

Другие недостатки больших языковых моделей (в т.ч. ChatGPT)

Выше я указал на склонность ChatGPT к «выдумыванию» фактов, особенно, если речь идёт о каких-то числовых значениях. Например, это часто бывает при попытке заставить ChatGPT решать математические задачи.

Казалось бы, решение простое – давайте дообучим модель на большем количестве математических примеров, и она станет гениальным математиком!

Насколько я знаю, какую-то языковую модель (кажется, это была все-таки не ChatGPT, а LLaMA) пробовали дообучать, причем обучающие примеры просто генерировали с помощью самой же модели (просто их потом корректировали вручную). И действительно, с решением математических задач языковая модель стала справляться получше, но качество ответов в, скажем так, других областях, стало хуже.

Кстати, еще летом стали появляться новости, что ChatGPT стал хуже справляться с генерацией ответов из-за дообучения.

Почему Chat-GPT – это не интеллект (хоть и искусственный)

Считаю это вполне реальным из-за особенностей работы этих моделей. Если обратить внимание на сложность моделей ChatGPT, то она растет от версии к версии довольно сильно:

ChatGPT-1 – 0.175 млрд. параметров

ChatGPT-2 – 1.5 млрд. параметров

ChatGPT-3 – 175 млрд. параметров

ChatGPT-4 – 1000 млрд. параметров

Да, количество параметров огромно, но оно все равно конечно. Количество же запросов или примеров, на которых обучаются языковые модели теоретически бесконечно. Языковые модели просто физически не могут включить в себя всю возможную информацию. Соответственно, дообучая модель под конкретную области знаний (математические задачи, к примеру), мы как бы вытесняем из базы данных все другие области, и модель начинает с ним справляться хуже.

В принципе, эту проблему можно попытаться обойти, продолжая увеличивать количество параметров или разделяя модель на более мелкие специализированные модели (например, «математиков», «врачей» и т.п.). В принципе, прогресс в этом направлении уже идёт.

Другим серьезным недостатком языковых моделей и ChatGPT в частности, является предвзятая выборка обучающих данных. Ну, математических примеров это вряд ли касается, о вот каких-то политических и моральных вопросов – на 100%.

Да, сейчас языковые модели стараются избегать вопросов на острые социальные или политические темы, но нет гарантии, что в будущем это не измениться и при попытке узнать сколько существует гендеров, мы с удивлением прочитаем что их уже 60+ а для того, чтобы посещать женскую душевую достаточно просто сказать, что ты считаешь себя женщиной.

Если при этом крупные корпорации просто отключат прямой доступ к поисковикам типа Гугла или Яндекса, то мы очень быстро попадем в дивный новый мир.

Отдельно стоит отметить обнаруженный исследователями способ «хакнуть» ChatGPT при помощи нелепых запросов. Недавно была новость про то, что, если попросить чат-бота повторять какое-то слово или выражение бесконечное число раз, он может выдать некоторые конфиденциальные данные.

Почему Chat-GPT – это не интеллект (хоть и искусственный)

Это проблема как раз является следствием самого механизма работы языковой модели. Как я уже отмечал выше, модель обучается на «разумных» текстах для выдачи таких же разумных ответов. Но если на вход подать «информационный мусор», то результат может быть непредсказуем, что и происходит в примере выше. Предусмотреть же все возможные виды таких «информационных диверсий» невозможно по определению, можно только купировать уже найденные путем добавления дополнительных условий в алгоритм работы.

Перспективы развития этого «не-ИИ»

Несмотря на фундаментальные ограничения больших языковых моделей их усиленными темпами «прокачивают» как будто от этого зависит выживание человечества. Обозначу несколько интересных направлений.

1) Защита от дурака

На входе и выходе можно поставить дополнительные «фильтры» в виде более специализированных нейросетей. К примеру, для определения политических, сексуальных и прочих по разным причинам неприемлемых тем для общения. Такие нейросети заведомо будут проще и будут выдавать только два ответа типа «ОК» и «Не ОК». Во втором случае будет выдаваться обычная заглушка в стиле «Я не хочу об этом говорить». Судя по всему, что-то подобное уже есть, так как разговорить чат-бота на какие-то спорные темы довольно сложно.

На выходе тоже может стоять подобный «фильтр» на предмет того, не оскорбит ли ответ чьи-то чувства.

2) Дополнительные помощники для чата

Я уже упоминал, что у ChatGPT есть проблемы с решением математических задач. Технически, для решения таких задач уже есть множество специализированных программ. Остается только научить ChatGPT формировать корректные запросы к таким программам (например, через специально разработанный API) и далее транслировать ответ пользователю. Технически, это может быть проще, чем сделать из ChatGPT математика.

То же самое можно делать и с другими типами запросов. Например, какими-нибудь с вопросами по географии, химии и другим сферам деятельности.

Минусом такого подхода является стоимость запроса. Одно дело, когда запрос обрабатывает одна, достаточно отлаженная система. Другое, когда нужно поддерживать целый ворох специализированного ПО.

Я не исключаю ситуации, когда ChatGPT в текущем виде вообще упразднят, создав вместо него множество специализированных «чатов», а выбор чата возложат на пользователя. Есть вопрос по математике – обратись в одно «окошко», по программированию – в другое и так далее.

Сберовский GigaChat умеет рисовать картинки именно с помощью такого механизма. Отправляет запрос в отдельную нейросеть и выдает пользователю результат (художественная ценность этих творений такая себе).

3) Самообучение

ChatGPT-3 дообучался при помощи людей, которые оценивали его ответы. В частности, это позволило существенно повысить качество этих ответов. Однако довольно быстрый рост количества параметров и сложности моделей предполагает также и увеличение человеческого труда для обучения и контроля.

Такими темпами через несколько поколений «чатов» у нас вся планета будет заниматься вычиткой килотонн текста, генерируемых в процессе обучения каким-нибудь ChatGPT-10. Поэтому для обучения новых версий ChatGPT могут применяться предыдущие, передавая таким образом накопленный опыт, так сказать, подрастающему поколению.

Будет ли при этом расти уровень «интеллектуальности» - большой вопрос. Вполне возможно, что да. К примеру, предыдущие версии могут обрабатывать свежую информацию из интернета (к примеру, какие-то экономические и политические события, новые книги и диссертации и т.п.) и в каком-то оптимизированном виде передавать для обучения новым версиям и т.п. Либо проверять результат работы новой версии на наличие галлюцинаций или двусмысленного содержания (которое может обидеть какого-нибудь SJW-активиста).

Эпилог

Надеюсь, я развеял некоторые страхи по поводу захвата мира очередным Скайнетом или потери работы всеми работниками интеллектуального труда. Хотя большие языковые модели показали феноменальные результаты в генерации грамотных текстов, они не заменят людей и тем более их не превзойдут.

Проблема у языковых моделей именно в их принципах работы. Сколько бы гигабайт текста в них не загружали и сколько бы параметров не вычисляли они останутся все теми же стохастическими попугаями, просто более жирными и хорошо выглядящими. Под капотом это будут все те же «черные ящики», забитые доверху миллиардами коэффициентов и просто вычисляющими вероятности. Не более.

Как помощники они смогут неплохо работать, но вовсе не как субъекты, имеющие волю и интеллект и собственные интересы в этом лучшем из миров.

1010
10 комментариев

Комментарий недоступен

2

мы, по сути, те же стохастические попугаи, только с глючной памятью и низкой способностью к обучению, ведь "волей" и "собственными интересами" обладают далеко не всеВ этом есть большая доля правды. Наше поведение довольно жестко закодировано в нейронных связях нашего мозга (но некая вариативность все же остается).
Но, во-первых, у нас есть сознание, которое позволяет нам "перепрограммироваться" на лету. Во-вторых, мы можем взаимодействовать с окружающим миром (и менять окружающий мир) и получать от него информацию. Это крайне важно для мышления.
Так что сравнивать интеллект человека и языковой модели, это все равно, что счетные палочки сравнить с процессором - и то и другое позволяет делать расчеты, но это сильно разные вещи. Причем увеличение количества счетных палочек до бесконечности никак не позволит достичь производительности процессора. То же самое и с ChatGPT.

5

На хабре полно годных статей относительно функциональности ИИ. Вряд ли кто-то сейчас говорит и полноценно верит в искусственный интеллект. Однако как средство обработки информации для автоматизации некоторых процессов ИИ намного лучше человека. Физический труд, который предполагает чисто механические действия, ИИ уж точно сможет выполнять, да и писать код на основе существующего промта тоже. Так шо шерифа точно уволят скорл

2

Физический труд, который предполагает чисто механические действия, ИИ уж точно сможет выполнятьЖдем появления роботов-дворников и маляров. ))

2

Что есть мы как не огромная куча нейронов, вычисляющих функции от Вселенной?
Уверен, что даже мой ответ ты мог предугадать. Так чем мы отличаемся от Чата?

Количеством нейронов, само собой. )) Это важный параметр.

1

Комментарий недоступен