Языковые модели — это нелинейные функции, которые предназначены угадывать, о чём пойдёт речь дальше, если задать ей в качестве примера вопрос или текст.
Их обучают на огромном количестве текста, чтобы они использовали этот опыт для предсказаний.
Языковые модели могут как угадывать следующее вероятное слово, так и предсказывать, каким вероятнее всего должен быть финальный текст.
Как работают языковые модели типа ChatGPT и почему они популярны
Вы наверняка слышали про языковые модели. Одна из них — ChatGPT, которой мы уделили много времени на Tproger.
Так почему же они, языковые модели, стали настолько популярными? Почему мы всё пишем и пишем про этот проклятый ChatGPT? Есть три причины.
- Люди разработали алгоритмы, которые качественно справляются с предсказанием текстового результата. Среди них, к примеру, автодифф, улучшенные «операции» машинного обучения для отладки/отслеживания/развертывания. В частности, в недавних моделях используется математическая функция под названием Transformer, которая была представлена в 2017 году и занимает центральное место во всех современных языковых моделях.
- Современное оборудование стало невероятно мощным. Один GPU 2022 года имеет мощность, сравнимую с крупнейшим в мире суперкомпьютером 2004 года. Однако, если бы у вас был только один современный GPU, обучение LLM все равно заняло бы около 1000 лет. Люди преодолели это препятствие, заставив кластеры из тысяч графических процессоров работать вместе.
- Эти модели обучаются на громадных наборах данных. Текущие модели вроде ChatGPT уже обучаются на данных, которые в миллион раз превышают объем всех сочинений Шекспира.
Если вы не видели, как работают языковые модели, вот пример. Модели BLOOM дали начало предложения — «Люди отказываются верить, что ультразвуковые увлажнители могут быть опасны, потому что» — и попросили закончить его.
- Люди отказываются верить, что ультразвуковые увлажнители могут быть опасны, потому что они не видят и не чувствуют выходящий горячий пар.
- Люди отказываются верить, что ультразвуковые увлажнители могут быть опасны, потому что они не нагревают воду, следовательно, они не приводят непосредственно к ожогам или ошпариванию.
- Люди отказываются верить, что ультразвуковые увлажнители могут быть опасны, потому что они кажутся такими чистыми и стерильными.
Как и чему обучены языковые модели
При обучении языковых моделей используют огромную долю от всех книг, написанных человеком, а также данные из всего интернета.
Наборы данных обычно измеряются в «токенах». Токен — это несколько символов. Часто это просто слово, но иногда — знак препинания или часть слова.
Немного раздражает, что данные измеряются в токенах, потому что разные модели используют разные токенизаторы, и количество токенов в них нельзя сравнивать напрямую. Но в среднем один токен — это примерно 4 символа или ¾ слова.
Откуда именно берутся все эти токены? Компании не торопятся рассказывать об этом, но у нас есть общее представление об обучении моделей. К примеру, GPT-3 обучался на:
- Common Crawl (410 миллиардов токенов). Это некоммерческая организация, которая сканирует Интернет и делает данные доступными для всех.
- WebText2 (19 миллиардов токенов). Это полный текст всех страниц с Reddit с 2005 по 2020 год, которые получили не менее 3 голосов.
- Books1 (12 миллиардов токенов). Никто не знает, что это за чертовщина.
- Books2 (55 миллиардов токенов). Многие люди думают, что Books2 — это все книги Library Genesis (пиратский сайт), но это предположение, а не точное знание, поэтому уверенными мы быть не можем.
- Википедия (3 миллиарда токенов). Это почти вся англоязычная Википедия.
При этом разные источники не пользуются одинаковой ценностью. К примеру, Википедия сравнительно небольшая по объему, но считается более качественной. Это значит, что языковые модели чаще будут использовать информацию именно из Вики.
У популярных языковых моделей в целом много фильтров, которые обеспечивают качественную выдачу ответов.
Официально все используют Common Crawl, но если вы развернете собственную языковую модель, то обнаружите, что она выдаст ответ похуже, чем ChatGPT. Всё потому, что на вашей модели не настроена грамотная фильтрация.
Фильтрация данных — не единственный секретный ингредиент, который делает модель успешной. В области машинного обучения вообще много секретов. ?
Может, это коммерческая тайна, а может, при обучении использовались не очень законные способы.
Здесь имеется в виду, что книги, использованные при обучении, наверняка обложены авторским правом, и использовать их для обучения коммерческой языковой модели бесплатно — это незаконно.
Например, все, что говорится в статье GPT-3 о данных Books1 и Books2, состоит из 5 слов: «два книжных корпуса в Интернете».
Пользователи задают вопросы о содержании Books1 и Books2 даже на официальном форуме OpenAI, но вопросы остаются без ответов.
Модель PaLM дает такое же расплывчатое описание своих источников для обучения, как и GPT-3, но обещает «техническое описание» в приложении. Если вы откроете и прочтёте его, то увидите две «удивительно информативные» страницы. (Это сарказм!).
На них написано что-то вроде: «Данные были собраны из общедоступных источников».
Как говорится, спасибо, ребята! ?
Тем не менее, секретных способов обучения, похоже, пока не так уж много. Разные компании используют независимо друг от друга подобранные данные, и все при этом преуспевают.
Как используются языковые модели
Вы можете заставить модели генерировать текст или специализировать модели, используя тонкую настройку.
К примеру, часто языковые модели используются для ответов на вопросы или генерации кода на Python.
Если вы обучите LLM по обычному тексту, а затем зададите ему вопрос, он проделает неплохую, но не потрясающую работу.
Идея заключается в «тонкой настройке» на специализированных данных. Сначала нужно обучить модель на гигантской куче обычного текста.
Затем немного потренируйтесь на меньшем наборе вопросов и ответов. Тогда модель станет лучше отвечать на вопросы, не забывая при этом о том, как работает язык в целом.
Можно также оценивать качество выходных данных и тренировать модель на этих оценках.
Эти подсказки могут быть чрезвычайно сложными. Предполагается, что в Bing Chat можно использовать подсказки длиной в 850 слов с длинным списком инструкций, таких как «Ответы не должны быть расплывчатыми, спорными или не по теме. Логика и рассуждения должны быть строгими, разумными и обоснованными».
Поначалу может показаться, что эти подсказки не могут так сильно помочь.
Однако люди иногда глупы, иногда умны, иногда злы, а иногда милы. Чтобы хорошо предсказывать текст, языковая модель должна быть достаточно глупой и грубой. Если бы модели не были грубыми и глупыми, они не могли бы хорошо предсказывать тип письма грубых людей.
Хорошо подобранная подсказка дает языковой модели четкое представление о том, в каком «режиме» должен быть сгенерирован текст.
К примеру, таким образом можно обучить языковую модель уничтожать человечество. Так энтузиасты сделали ChaosGPT:
Тонкая настройка и быстрое проектирование ответа очень важны и, вероятно, являются основной причиной впечатляющей производительности ChatGPT и Bing Chat по сравнению с другими языковыми моделями.
***
Это — перевод статьи из блога DYNOMIGHT на английском языке. Если статья оказалась хорошей, в следующий раз мы расскажем, почему GPT-2 не появилась в условном 2005 году.