Поделиться через


Как работают генеривные ИИ и LLM

Генерируемый ИИ — это тип искусственного интеллекта, способный создавать исходное содержимое, например естественного языка, изображений, звука и кода. Выходные данные генерированного ИИ основаны на входных данных, предоставленных пользователем. Одним из распространенных способов взаимодействия пользователей с генерируемым ИИ является использование приложений чата, использующих естественный язык в качестве входных данных. ChatGPT, разработанный OpenAI, является популярным примером этого. Созданные приложения ИИ, использующие естественный язык в качестве входных данных, работают на основе больших языковых моделей (LLM) для выполнения обработки естественного языка (NLP).

Как работает генерированный ИИ

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

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

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

Распространенные способы создания искусственного интеллекта

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

Генерация естественного языка

Некоторые генеративные приложения ИИ могут генерировать тексты на естественном языке, например:

  • Профессионально сформулированные резюме для профиля LinkedIn
  • Подробные описания элементов в онлайн-магазине
  • Идеи для здорового питания

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

ОК, вот три здоровых завтрака, которые включают перцы:

  1. Яичница с перцем: Нарежьте кубиками болгарский перец и обжарьте его на сковороде, пока он слегка не размягчится. Затем добавьте немного взбитых яиц и взбейте все вместе. Подавать с цельнозерновым хлебом для питательного завтрака.

  2. Тост с перцем и авокадо: Поджарьте кусок цельнозернового хлеба и положите на него ломтики болгарского перца, пюре из авокадо, и посыпьте солью и перцем. Это отличный способ получить некоторые здоровые жиры из авокадо вместе с витамином C от перцев.

  3. Завтрак Буррито с Перцем: обжарьте немного нарезанных болгарских перцев, лука и яичницы вместе на сковороде. Затем выложите смесь на цельнозерновую тортилью и сверху добавьте немного сальсы или острого соуса. Сверните его и насладитесь сытным и питательным завтраком.

Создание образа

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

  • Люди или вещи, появляющиеся на изображении
  • Художественный стиль для создания изображения
  • Ссылки на создание аналогичных изображений

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

Пример ИИ создал изображение слона, питающего гамбургер.

Создание звука

Некоторые созданные приложения ИИ создают звуковые выходные данные из входных данных естественного языка. В зависимости от приложения и его моделей пользователи могут иметь следующие возможности:

  • Синтезирование естественных звуковых голосов из входного текста
  • Создание музыки в определенном стиле или с участием определенных инструментов
  • Изменение входных звуковых файлов на основе заданных критериев на естественном языке

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

Создание кода

Некоторые созданные приложения ИИ создают код из входных данных естественного языка. В зависимости от приложения и его моделей пользователи могут создавать код, который:

  • На языке собственного выбора
  • Принимает определенную структуру входных и выходных данных
  • Использует конкретные технологии на основе справочной документации

Создание кода может обеспечить быстрые реализации распространенных операций, таких как сортировка или фильтрация данных, ускорение перевода кода с одного языка на другой или ответы на вопросы о технологии на основе указанной справочной документации. Например, при вводе "Показать мне, как закодировать игру tic-tac-toe с помощью C#", созданное приложение ИИ может создать следующие выходные данные:

Вот простой пример того, как можно закодировать игру tic-tac-toe в C#:

using System;

namespace TicTacToe
{
    class Program
    {
        static char[] board = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
        static int player = 1; // Player 1 will start
        static int choice; // The number the player chooses
        static int flag = 0; // Set the flag value to 0

        // Check if the position is already marked or not
        private static int CheckPosition(char mark)
        {
            for (int i = 0; i < 9; i++)
            {
                if (board[i] == mark)
                {
                    return 1;
                }
            }
            return 0;
        }

        // The rest of the generated code has been omitted for brevity
        // ...
    }
}

Этот код создает простую консольную игру крестики-нолики на C#. Он использует одномерный массив для представления доски и проверки победы или ничьи после каждого хода.

Как работают LLM

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

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

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

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

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