вступление

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

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

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

Что такое Генеративный ИИ?

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

Текст

Способность языковых моделей создавать связный текст

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

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

Изображения — Видео — Аудио

Назовите вещь, а затем увидьте, как она проявляется перед вашими глазами

Генерация изображений ИИ — еще одна захватывающая область в области генеративного ИИ. В этой области такие модели, как DALL-E, MidJourney и Stable Diffusion, штурмом взяли социальные сети.

Примеры https://www.midjourney.com/top/

Почему сейчас?

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

Какие проблемы в пространстве НЛП

Чтобы эффективно решать проблемы в пространстве НЛП, специалист по машинному обучению сталкивается с рядом проблем:

  • Сложность естественного языка. Человеческий язык многогранен, неоднозначен и зависит от контекста. Поэтому перед моделями машинного обучения возникает серьезная проблема, связанная с пониманием и созданием последовательного и осмысленного текста.
  • Проблема длинной зависимости. Во многих случаях значение предложения или фразы сильно зависит от контекста, установленного в тексте намного раньше. Традиционные модели НЛП борются с поддержанием и пониманием этих долгосрочных зависимостей.
  • Масштабируемость: крупномасштабная обработка текста требует значительных вычислительных ресурсов, что затрудняет масштабирование традиционных систем NLP для более крупных задач.
  • Отсутствие обобщения. Модели часто пытаются обобщить свое понимание языка для разных задач, жанров и языков.

Ограничение моделей RNN и LSTM

Долгое время мы пытались решить ее с помощью моделей рекуррентных нейронных сетей (RNN) и долговременной кратковременной памяти (LSTM), которые когда-то были краеугольным камнем задач НЛП, но они имеют определенные ограничения:

  • Последовательная обработка: RNN и LSTM обрабатывают данные последовательно, что требует значительных вычислительных ресурсов, особенно для длинных последовательностей. Это делает их плохо подходящими для обработки больших текстов или работы с приложениями реального времени.
  • Проблема исчезающего градиента. Хотя LSTM в некоторой степени смягчают проблему исчезающего градиента, они не решают ее полностью. Эта проблема препятствует способности модели изучать долгосрочные зависимости.
  • Сложность распараллеливания: из-за присущего им последовательного характера эти модели нельзя легко распараллелить, что ограничивает эффективность их обучения на современном оборудовании.

Трансформация, принесенная Трансформерами

Трансформеры произвели революцию в пространстве NLP, преодолев ограничения моделей на основе RNN и LSTM:

  • Механизм внимания. В Transformers введено понятие «внимание», которое позволяет модели взвешивать важность различных частей входных данных при создании выходных данных. Этот механизм эффективно решает проблему долгосрочной зависимости.
  • Распараллеливание. В отличие от RNN и LSTM, преобразователи одновременно обрабатывают все точки данных во входной последовательности, что обеспечивает эффективное распараллеливание и ускоряет время обучения.
  • Масштабируемость. Преобразователи могут обрабатывать большие последовательности данных более эффективно, чем их предшественники, что делает их более масштабируемыми для крупномасштабных задач НЛП.
  • Улучшенная производительность. Благодаря этим функциям трансформеры продемонстрировали превосходную производительность в различных задачах НЛП, таких как перевод, обобщение и анализ настроений.

Применение трансформаторов в различных модальностях

Уникальные особенности преобразователей делают их подходящими для приложений, выходящих за рамки текста, и для различных модальностей, таких как изображения, аудио и видео:

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

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

Базовое введение в трансформеры

Трансформеры — это тип архитектуры модели, представленный в статье «Внимание — это все, что вам нужно» Васвани и др. из Google Brain в 2017 году. Они особенно успешно справляются с множеством задач и послужили основой для ряда высоких -профильные модели.

Архитектура моделей трансформеров

Чтобы понять архитектуру, давайте упростим ее и разобьем на компоненты.

Есть 3 основных компонента, о которых мы можем углубиться:

1. Токенизация: (ввод и вывод)

Преобразование текста в список целых чисел

Модели машинного обучения не понимают слов, но понимают числа.

Это процесс разбиения текста на отдельные слова или подслова, которые называются токенами (цифрами). Часто это первый шаг в конвейерах НЛП.

Предложение разбивается на слова, и каждому слову присваивается фиксированный номер.

2. Внимание

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

Таким образом, каждое входное слово представляется как токен. Затем механизм внимания вычисляет вес каждого токена на основе его релевантности текущему токену. Например:

Животное не переходило улицу, потому что оно было слишком многоуровневым

В предложении слово «оно» относится к животному, и на рисунке ниже мы видим, что модель усвоила, что наибольшее внимание следует уделять слову «животное».

Затем модель, основываясь на внимании к данному тексту, предсказывает следующее слово. Он генерирует слова одно за другим, как мы видим в пользовательском интерфейсе ChatGPT.

  1. Когда в качестве входных данных задано слово «Мой», а модель выводит «Имя» на первом шаге.
  2. На втором этапе модель предсказывает слово «есть» на основе контекста входного слова («Мой») и уже сгенерированных слов, в данном случае это «имя».

3. Кодер-декодер

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

Модели трансформеров в наши дни

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

Основные характеристики современных LLM (больших языковых моделей), которые мы можем изучить, чтобы понять разнообразие моделей:

  • Длина контекста. Максимальное количество токенов, которое можно учитывать при прогнозировании следующего токена. Обычно доступны длины контекста 2K и 4K. Самые большие на сегодняшний день ~ 65K и 100K
  • Размер словарного запаса: количество уникальных токенов, которые может понять модель.
  • Параметры: количество обучаемых весов в модели. Это могут быть миллиарды или даже триллионы параметров. Примечание. Количество параметров не является показателем производительности.
  • Токены для обучения. Количество токенов, на которых была обучена модель. Это могут быть сотни миллиардов или даже триллионы токенов.

Эти спецификации быстро растут в последние годы, поскольку LLM становятся более мощными и функциональными.

Как использовать эти модели?

Самые современные предложения поставляются в виде полного пакета, который обрабатывает аспекты токенизации и генерации. Он принимает ввод в виде текста и выводит сгенерированный текст.

Пример библиотеки трансформеров в Hugging Face

from transformers import pipeline

generator = pipeline("text-generation")
generator("In this course, we will teach you how to")
Output: 
[{'generated_text':
   'In this course, we will teach you how to understand and use '
   'data flow and data interchange when handling user data. We '
   'will be working with one or more of the most commonly used '
   'data flows — data flows of various types, as seen by the HTTP'
}]
---

В приведенном выше примере в качестве модели используется gpt2, но мы можем легко заменить его и использовать любую другую модель, доступную на Hugging Face Model Hub.

Курс Hugging Face NLP охватывает основные понятия, работу с моделями и наборами данных, а также решение задач NLP с использованием Transformers для обработки речи и компьютерного зрения. Курс направлен на подготовку учащихся к применению 🤗 Transformers для решения различных задач машинного обучения.

В качестве более простой альтернативы такие компании, как OpenAI, Google, Anthropic, Cohere и многие другие, имеют доступные API для этих моделей, которые можно интегрировать в рабочие процессы ИИ без необходимости LLM Ops.

Оценка LLM

Сравнить эти модели непросто, есть несколько ориентировочных контрольных показателей, которые можно использовать для понимания производительности этих моделей в различных задачах.

  1. У LMsys есть Chatbot Arena, которая является платформой для бенчмаркинга для больших языковых моделей (LLM), которая включает анонимные рандомизированные сражения на основе краудсорсинга.
  2. HF Open LLM Leaderboard и C-Eval Benchmark предназначены для отслеживания, ранжирования и оценки LLM и чат-ботов по мере их выпуска путем автоматического запуска нескольких эталонных тестов.

Как обучаются эти модели?

Помощник, подобный ChatGPT, проходит обучение в несколько этапов:

Предварительная подготовка

  • На этом этапе модель изучает статистические отношения между словами и фразами. На этом этапе происходит большая часть тренировочной работы.
  • Включает обучение модели на большом массиве общедоступных текстов из Интернета.
  • Для обучения таких моделей требуется большой объем вычислений на GPU (100–1000+ GPU).
  • Использует неконтролируемое обучение, то есть модель учится предсказывать следующее слово в предложении, тем самым понимая структуру языка.
  • Результатом является «базовая модель», которая имеет общее понимание языка, но не имеет специального опыта.

Контролируемая тонкая настройка

  • Это можно использовать для повышения производительности предварительно обученной модели в конкретной задаче.
  • Требуются небольшие объемы и качественные данные
  • Благодаря контролируемому подходу к тонкой настройке возможность участвовать в диалоге или чате может быть введена в базовую модель.

Моделирование вознаграждения

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

Обучение с подкреплением

  • Он используется в сочетании с моделированием вознаграждения, чтобы улучшить способность модели последовательно генерировать текст с более высоким вознаграждением.

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

Создание приложений

Несколько предложений моделей доступны в виде API и готовы к использованию на базовом уровне.

Для среднего уровня можно использовать следующие методы для адаптации базовых моделей к любым пользовательским вариантам использования:

  • Оперативная разработка: направьте модель к желаемым результатам.
  • Плагины/инструменты: подключайте модели для использования таких инструментов, как калькулятор, wolfram, пользовательские API.
  • Увеличение извлечения. Дополнение входного контекста запатентованными данными.
  • Точная настройка. Создание пользовательской модели для конкретных случаев использования.

Основы быстрой разработки

По сути, думайте о подсказке как о написании кода (псевдокода) на английском языке. Используйте инструкции и условия и укажите желаемые результаты

Нулевые подсказки:

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

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

Несколько подсказок:

Для повышения точности генерации важно описать желаемый результат с примерами того, как он должен выглядеть. Это поможет модели понять, что ожидается.

Плагины и дополнения

Расширение включает в себя загрузку контекста или информации в рабочую память LLM. Необходимость расширения возникает из-за того, что у моделей LLM есть крайний срок обучения, а у моделей OpenAI — сентябрь 2021 года. Чтобы получить доступ к любому более новому контенту, модели могут использовать подключаемый модуль веб-браузера, чтобы получить эти знания для разговора. То же самое относится и к проприетарному контенту, на котором модели не обучались, но мы можем использовать методы дополнения, чтобы получить к нему доступ.

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

  • Цепочки: добавьте больше вызовов LLM
  • Инструменты: дополнить внешним источником
  • Извлечение: дополнить корпусом большего размера

Цепочки

Цепочки — это способ расширить контекст языковой модели, объединяя несколько вызовов модели в цепочку. Это можно сделать, используя выходные данные одного вызова модели в качестве входных данных для следующего вызова. Например, можно использовать выходные данные вызова модели для создания списка возможных ответов на вопрос, а затем использовать выходные данные другого вызова модели для выбора наилучшего ответа из списка. Чтобы выполнить преднамеренное принятие решений, рассматривая несколько различных путей рассуждений, можно использовать CoT самосогласованности и метод дерева мыслей, как показано на рисунке.

Инструменты

Еще один способ расширить контекст — использовать внешние инструменты или ресурсы. Эти инструменты могут предоставлять дополнительную информацию модели, позволяя использовать более широкий спектр знаний. Например, модель может получить доступ к API или поисковым системам для получения информации в реальном времени или сбора определенных данных, относящихся к разговору. Включая эти внешние источники, модель может предлагать более точные и актуальные ответы, выходящие за рамки ее предварительно обученных знаний.

Поиск

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

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

Тонкая настройка

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

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

Однако важно помнить, что для точной настройки LLM по-прежнему требуются значительные технические знания и ресурсы. К ним относятся:

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

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

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

Рекомендации

https://www.sequoiacap.com/article/generative-ai-a-creative-new-world/

http://jalammar.github.io/generative-ai-and-ai-product-moats/

http://jalammar.github.io/how-gpt3-works-visualizations-animations/

http://jalammar.github.io/illustrated-transformer/

https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/

https://docs.cohere.com/docs/prompt-engineering

https://lifearchitect.ai/gpt-4/

https://youtu.be/bZQun8Y4L2A