Как он это делает?
Вероятность и температура. А мы точно собираемся говорить о человеческой речи?
Написание текстов часто окутано флером некой таинственности. Мы считаем, что для этого процесса нужно вдохновение, талант, особые условия, но с некоторых пор именно с помощью физических и математических терминов проще всего объяснить суть этого процесса.
Вероятность — основное понятие, описывающее работу ChatGPT. Вы даете ему первое слово, а он всего лишь подбирает к нему второе и последующие слова, чтобы получить осмысленную фразу. Скорость работы современных вычислительных машин такова, что для них не проблема перебрать миллионы фрагментов разных текстов и определить, какие слова чаще всего встречаются вместе с заданным.
Определяя каждое последующее слово, ChatGPT подбирает целый список возможных понятий и ранжирует их от самого вероятного к наименее вероятному. Например, со словом «поэт», заданным на русском языке, нейросеть, скорее всего, ассоциирует Пушкина, а не Бернса.
Однако все не так просто. Если выбирать самое вероятное из возможных слов, то текст будет банальным, пресным и никому не интересным. Чтобы достоверно имитировать человеческий язык, ChatGPT выбирает другие, менее вероятные варианты. Причем как именно он их выбирает — не знают даже его создатели. Именно поэтому использование одного и того же промпта (задания) иногда приводит к генерации довольно непохожих друг на друга текстов.
Если проранжировать все подходящие слова по степени их вероятности от 0 до 1, то оптимальным выбором станет слово, имеющее вероятность 0,8. Этот параметр называют температурным, но только потому, что он подчиняется тем же математическим зависимостям, что и температура. Никакого физического смысла в этом нет.
А как рассчитать, с какой вероятностью некое слово может продолжать начатую фразу?
Стивен Вольфрам предлагает для начала рассмотреть более простую задачу — не создание текста, а создание одного-единственного слова.
Если мы выберем в качестве первой буквы А, то с какой вероятностью следующей будет Б? Или Ы? Вероятность того, что следующей будет буква Ы, — нулевая, потому что в русском языке нет слова, начинающегося с Ы. Идем дальше.
- Для начала создадим бесконечную последовательность букв, которые могут следовать друг за другом с ненулевой вероятностью.
- Добавим пробелы, ведь длина слов в языке тоже определяется статистикой. Скорее всего, на этом этапе мы не увидим среди результатов ни одного реального слова.
- Учтем, что некоторые буквы не могут следовать друг за другом, а некоторые, наоборот, тесно связаны. Например, после гласных не может быть Ъ, а после глухого согласного не может быть звонкого. Поэтому попробуем генерировать слово, добавляя не по одной букве, а сразу по две.
- Можно двигаться дальше и, работая с огромным объемом текста, определять наиболее вероятные многобуквенные сочетания. На этом этапе мы уже начнем получать реальные слова.
- А дальше, анализируя отдельные слова, мы можем оценить, насколько часто они встречаются в речи и как взаимодействуют с другими словами. Так мы сможем генерировать словосочетания, затем — предложения, а затем и целые тексты.
Внезапное препятствие и большая языковая модель
Реализации этого алгоритма очень мешает… недостаток текстов! При объеме словаря в несколько десятков тысяч единиц число возможных комбинаций из трех слов составляет 60 трлн, а если мы попробуем предсказать комбинацию из 20 слов, то число вариантов превысит количество элементарных частиц в космосе. Человечество еще не накопило такого количества текстов и никогда не накопит, потому что большинство из них не имеет смысла.
Выход только один — создать некую модель, которая сможет оценивать вероятности чисто гипотетически, не сталкиваясь с ними в реальных текстах. Для ChatGPT основой служит большая языковая модель (БЯМ).
Как учится машина1
Это корова или овца? Или автобус?
Прежде чем более подробно говорить о языке, стоит отвлечься и рассмотреть другую проблему — распознавание образов.
В интернете мы часто сталкиваемся с капчей (помните картинки, где надо выбрать мотоциклы, светофоры, автобусы?) — человеческий интеллект отличается от машинного именно способностью уловить в искаженном размытом образе знакомые черты.
Математически обоснованный выбор. Как распознает образ машина? Например, образ некоторой цифры? Машина берет образец (идеально написанную цифру 5) и сравнивает с ним имеющееся изображение точка за точкой. Если определенное, значимое количество пикселей не совпадает — машинный интеллект делает вывод, что не совпадают и образы целиком. Если взять за переменную цвет каждого пикселя (черный или белый), то будет существовать некая функция всех этих переменных. Расчет этой функции по имеющемуся массиву данных позволит точно определить, совпадает изображение с образцом или нет.
Человеческий мозг работает немного по-другому. Он не сравнивает объект с идеалом, а вычленяет некую «суть объекта» и может узнать ее даже в сильно искаженном виде. Миллиарды нервных клеток в мозге объединены друг с другом в сложную многоуровневую сеть. Импульс, который генерирует конкретный нейрон, зависит от того, какой импульс он, в свою очередь, получил от соседей. Причем соседи различаются по «важности» — импульс от некоторых нейронов имеет приоритет. Говоря математическим языком, больший вес.
Первые 7 дней доступа — бесплатно.