Здравствуйте, читатели! Я рад, что вы присоединитесь ко мне, и мы погрузимся в увлекательный мир моделей большого языка (LLM). Развитие LLM привлекло интерес людей в различных областях. Если вы новичок в этой теме, вы попали по адресу. В этом блоге мы рассмотрим трансформаторы, их компоненты, принципы их работы и многое другое.
Готовы начать? Давайте погрузимся!
Модели-трансформеры — это тип модели нейронной сети глубокого обучения, которая широко используется в задачах обработки естественного языка (NLP). Модели-трансформеры являются экспертами в изучении контекста заданных входных данных как последовательности и генерации на их основе новых данных. В последние годы преобразователи использовались в качестве базовых моделей во многих моделях большого языка (LLM) .
Архитектура-трансформер была представлена в июне 2017 года в статье « Внимание — это все, что вам нужно ». После появления преобразователей область НЛП радикально изменилась вокруг архитектуры преобразователей. Многие модели большого языка (LLM) и предварительно обученные модели были запущены с преобразователем в качестве основы. Давайте посмотрим краткий обзор эволюции трансформеров в области НЛП.
В июне 2018 года был представлен первый GPT (генеративные предварительно обученные трансформаторы) на базе трансформатора. Позже в том же году был запущен BERT (представления двунаправленного кодировщика от трансформаторов). В феврале 2019 года OpenAI запустила расширенную версию GPT, то есть GPT-2 . В том же году было внедрено множество предварительно обученных моделей, таких как XLM и RoBERTa , что сделало сферу НЛП еще более конкурентоспособной.
С 2020 года сфера НЛП пережила бум, появилось множество новых предварительно обученных моделей. Развитие этих моделей во многом зависело от архитектуры трансформатора. Вышеупомянутые — лишь несколько представителей из списка, тогда как в реальных сценариях существует даже множество моделей, разработанных на архитектуре-трансформере.
Прежде чем мы рассмотрим структуру трансформаторов, давайте сначала разберемся с некоторыми основными понятиями.
Предварительное обучение — это обучение модели машинного обучения (ML) с нуля. Процедура обучения начинается с первоначальной рандомизации весов модели. На этом этапе в модель для обучения передается огромный массив данных. Как правило, этот этап обучения является дорогостоящим и требует много времени.
Точная настройка — это процедура обучения, выполняемая на предварительно обученной модели с использованием информации, специфичной для предметной области. Предварительно обученные модели накопили обширные знания, что делает их менее подходящими для конкретных областей. В ходе этого процесса предварительно обученная модель повторно обучается, но с меньшими затратами, поскольку она уже изучила некоторые концепции.
Для точной настройки предварительно обученной модели мы используем технику трансферного обучения. Трансферное обучение — это метод машинного обучения, при котором модель применяет знания, полученные из одного варианта использования, для прогнозирования выводов в другом варианте использования.
Кодер в преобразователе принимает последовательность данных в качестве входных данных и генерирует последовательность векторов для данной входной последовательности. Модели кодировщиков достигают этого за счет использования присутствующих в них уровней самообслуживания. Мы обсудим эти уровни самообслуживания более подробно позже.
Эти модели часто описываются как модели с «двунаправленным» вниманием, и их часто называют моделями автоматического кодирования. Модели кодировщиков в основном используются в классификации предложений и распознавании именованных объектов (NER).
Модели только с энкодерами — это модели-трансформеры, в архитектуре которых есть только энкодеры. Они очень эффективны в таких случаях использования, как классификация текста, когда модель направлена на понимание основного представления текста.
Декодер в преобразователе принимает последовательность векторов на вход и создает последовательность выходных токенов. Эти выходные токены представляют собой слова в сгенерированном тексте. Как и кодеры, декодеры также используют множество уровней самообслуживания. Предварительное обучение моделей декодеров обычно вращается вокруг предсказания следующего слова в предложении. Эти модели лучше всего подходят для задач, связанных с генерацией текста.
Модели только с декодером — это модели-трансформеры, в архитектуре которых есть только декодеры. Они очень эффективны при генерации текста. Декодеры специализируются на генерации выходных токенов (текста). Машинный перевод и обобщение текста — это несколько случаев использования, в которых модели, основанные только на декодировании, превосходны.
Слои самообслуживания в преобразователе позволяют модели изучать долгосрочные зависимости между словами во входном тексте.
Другими словами, этот слой будет инструктировать модель уделять больше внимания конкретным словам в данном входном тексте.
Модель делает это путем расчета показателя сходства между парами текста во входной последовательности. Затем слой использует эту оценку для расчета весов входного вектора. Выходными данными этих слоев являются взвешенные входные векторы.
Теперь, когда у вас есть представление об основных концепциях кодеров, декодеров и уровней внимания, давайте углубимся в архитектуру преобразователей.
Структура модели трансформера напоминает изображение, представленное ниже.
Кодеры размещены с левой стороны, а декодеры — с правой стороны. Кодеры принимают последовательность текста в качестве входных данных и создают последовательность векторов в качестве выходных данных, которые подаются в качестве входных данных в декодеры. Декодеры сгенерируют последовательность выходных токенов. Кодеры состоят из слоев самообслуживания.
Каждый слой принимает входной вектор и возвращает взвешенный входной вектор на основе механизма самообслуживания, который мы уже обсуждали. Взвешенная сумма — это результат слоя самообслуживания.
Декодер также содержит стек уровней самообслуживания и рекуррентную нейронную сеть (RNN). Уровни самообслуживания работают так же, как и кодеры, но RNN возьмет на себя ответственность за преобразование взвешенной суммы векторов в выходные токены. Следовательно, к настоящему времени должно быть ясно, что RNN принимает взвешенные векторы в качестве входных данных и генерирует выходные токены в качестве выходных данных. Проще говоря, выходные токены — это слова, присутствующие в выходном предложении.
Чтобы получить представление о трансформерах на уровне кода, я был бы признателен, если бы вы ознакомились с этой реализацией Transformers на PyTorch .
Трансформеры произвели революцию в области искусственного интеллекта (ИИ) и обработки естественного языка (НЛП), преуспев в обработке больших объемов данных. Ведущие модели, такие как серия BERT от Google и серия GPT от OpenAI, демонстрируют свое преобразующее влияние на поисковые системы и генерацию текста.
Следовательно, они стали незаменимы в современном машинном обучении, раздвигая границы ИИ и создавая новые возможности для технологического прогресса. В результате они стали незаменимыми в современном машинном обучении, расширяя границы ИИ и открывая новые возможности для технологических достижений.
Приятного обучения!
Обратитесь к другим статьям этой серии о моделях большого языка (LLM):