Нажмите на изображение выше, чтобы посмотреть видео этого урока
В предыдущем уроке мы узнали, как генеративный ИИ меняет технологический ландшафт, как работают большие языковые модели (LLM) и как бизнес — например, наш стартап — может применять их для своих задач и развиваться! В этой главе мы сравним и противопоставим разные типы больших языковых моделей, чтобы понять их преимущества и недостатки.
Следующий шаг в пути нашего стартапа — изучить текущий ландшафт LLM и понять, какие из них подходят для нашего сценария.
В этом уроке мы рассмотрим:
- Разные типы LLM, представленные сегодня.
- Тестирование, итерации и сравнение моделей для вашего сценария в Azure.
- Как развернуть LLM.
После прохождения этого урока вы сможете:
- Выбрать подходящую модель для вашего сценария.
- Понять, как тестировать, улучшать и оптимизировать работу модели.
- Узнать, как компании развертывают модели.
LLM можно классифицировать по архитектуре, обучающим данным и области применения. Понимание этих различий поможет нашему стартапу выбрать правильную модель для конкретной задачи, а также понять, как тестировать, улучшать и оптимизировать её работу.
Существует множество типов LLM, и выбор зависит от того, для чего вы планируете их использовать, какие у вас данные, сколько вы готовы платить и других факторов.
В зависимости от того, хотите ли вы использовать модели для работы с текстом, аудио, видео, изображениями и так далее, вы можете выбрать разные типы моделей.
-
Аудио и распознавание речи. Для этих целей отлично подходят модели типа Whisper — они универсальны и ориентированы на распознавание речи. Обучены на разнообразных аудиоданных и способны распознавать речь на нескольких языках. Подробнее о моделях типа Whisper здесь.
-
Генерация изображений. Для генерации изображений хорошо известны DALL-E и Midjourney. DALL-E доступен через Azure OpenAI. Подробнее о DALL-E здесь и в главе 9 этого курса.
-
Генерация текста. Большинство моделей обучены именно для генерации текста, и у вас есть широкий выбор — от GPT-3.5 до GPT-4. Они различаются по стоимости, при этом GPT-4 — самая дорогая. Рекомендуется ознакомиться с Azure OpenAI playground, чтобы оценить, какие модели лучше подходят по возможностям и цене.
-
Мультимодальность. Если вам нужно работать с разными типами данных на входе и выходе, обратите внимание на модели вроде gpt-4 turbo с поддержкой зрения или gpt-4o — последние релизы OpenAI, которые объединяют обработку естественного языка с визуальным восприятием, позволяя взаимодействовать через мультимодальные интерфейсы.
Выбор модели даёт базовые возможности, но этого может быть недостаточно. Часто у компании есть собственные данные, которые нужно как-то «рассказать» LLM. Существуют разные подходы к этому, о которых мы расскажем далее.
Термин Foundation Model был введён исследователями из Стэнфорда и обозначает ИИ-модель, которая соответствует следующим критериям:
- Обучается с использованием обучения без учителя или самоконтролируемого обучения, то есть на неразмеченных мультимодальных данных, без необходимости ручной разметки.
- Очень крупная модель, основанная на глубоких нейронных сетях с миллиардами параметров.
- Предназначена служить «основой» для других моделей, то есть может использоваться как стартовая точка для создания специализированных моделей путём дообучения.
Источник изображения: Essential Guide to Foundation Models and Large Language Models | by Babar M Bhatti | Medium
Для наглядности возьмём ChatGPT. Для создания первой версии ChatGPT в качестве foundation model использовалась модель GPT-3.5. Это значит, что OpenAI использовала специализированные данные для чата, чтобы создать настроенную версию GPT-3.5, оптимизированную для диалоговых сценариев, таких как чат-боты.
Источник изображения: 2108.07258.pdf (arxiv.org)
Ещё один способ классификации LLM — по типу лицензии: открытые (open source) и проприетарные.
Открытые модели доступны всем и могут использоваться кем угодно. Их часто выпускают компании или исследовательские сообщества. Такие модели можно изучать, модифицировать и адаптировать под разные задачи. Однако они не всегда оптимизированы для промышленного использования, могут уступать по производительности проприетарным моделям, а также финансирование и поддержка таких проектов могут быть ограничены. Примеры популярных открытых моделей: Alpaca, Bloom и LLaMA.
Проприетарные модели принадлежат компаниям и не доступны для публичного использования. Они часто оптимизированы для промышленного применения, но не позволяют пользователям изучать, изменять или настраивать их под свои задачи. Кроме того, такие модели обычно требуют подписки или оплаты. Пользователи не контролируют данные, на которых обучалась модель, поэтому должны доверять владельцу модели в вопросах конфиденциальности и ответственного использования ИИ. Примеры популярных проприетарных моделей: OpenAI models, Google Bard и Claude 2.
LLM также можно классифицировать по типу создаваемого ими результата.
Встраивания (embeddings) — это модели, которые преобразуют текст в числовое представление, называемое embedding. Это облегчает машинам понимание связей между словами или предложениями и может использоваться как вход для других моделей, например, для классификации или кластеризации, которые лучше работают с числовыми данными. Встраивания часто применяются в трансферном обучении, когда модель обучается на одной задаче с большим объёмом данных, а затем её веса (встраивания) используются для других задач. Пример — OpenAI embeddings.
Модели генерации изображений создают изображения. Их используют для редактирования, синтеза и преобразования изображений. Обычно они обучаются на больших наборах данных, таких как LAION-5B, и могут создавать новые изображения или редактировать существующие с помощью техник инпейнтинга, суперразрешения и колоризации. Примеры — DALL-E-3 и Stable Diffusion.
Модели генерации текста и кода создают текст или программный код. Их применяют для суммирования, перевода и ответов на вопросы. Текстовые модели обучаются на больших текстовых корпусах, таких как BookCorpus, и могут создавать новый текст или отвечать на вопросы. Модели генерации кода, например CodeParrot, обучаются на больших наборах кода, например GitHub, и могут создавать новый код или исправлять ошибки.
Чтобы объяснить разные архитектуры LLM, приведём аналогию.
Представьте, что ваш руководитель поручил вам составить викторину для студентов. У вас есть два коллеги: один отвечает за создание контента, другой — за его проверку.
Создатель контента похож на модель только с Decoder: он смотрит на тему и то, что уже написано, и на основе этого пишет курс. Такие модели хорошо создают интересный и информативный текст, но не очень хорошо понимают тему и цели обучения. Пример моделей только с Decoder — семейство GPT, например GPT-3.
Проверяющий похож на модель только с Encoder: он смотрит на написанный курс и ответы, замечает взаимосвязи и понимает контекст, но не умеет создавать контент. Пример модели только с Encoder — BERT.
Если представить, что есть кто-то, кто может и создавать, и проверять викторину, это будет модель Encoder-Decoder. Примеры — BART и T5.
Теперь поговорим о разнице между сервисом и моделью. Сервис — это продукт, предоставляемый облачным провайдером, часто представляющий собой комбинацию моделей, данных и других компонентов. Модель — это ядро сервиса, обычно foundation model, например LLM.
Сервисы оптимизированы для промышленного использования и обычно проще в применении благодаря графическому интерфейсу. Однако они не всегда бесплатны и могут требовать подписки или оплаты, взамен предоставляя доступ к оборудованию и ресурсам провайдера, оптимизируя расходы и обеспечивая масштабируемость. Пример сервиса — Azure OpenAI Service, который предлагает оплату по факту использования. Кроме того, Azure OpenAI Service обеспечивает корпоративный уровень безопасности и рамки ответственного использования ИИ поверх возможностей моделей.
Модели — это просто нейронные сети с параметрами и весами. Компании могут запускать их локально, но для этого нужно купить оборудование, построить инфраструктуру для масштабирования и приобрести лицензию или использовать открытую модель. Например, модель LLaMA доступна для использования, но требует вычислительных ресурсов.
После того как команда изучила текущий ландшафт LLM и выбрала несколько подходящих кандидатов для своих задач, следующий шаг — протестировать их на своих данных и нагрузках. Это итеративный процесс, основанный на экспериментах и измерениях. Большинство моделей, упомянутых в предыдущих разделах (модели OpenAI, открытые модели, такие как Llama2, и трансформеры Hugging Face), доступны в Каталоге моделей в Azure AI Studio.
Azure AI Studio — это облачная платформа, созданная для разработчиков, чтобы создавать приложения с генеративным ИИ и управлять всем циклом разработки — от экспериментов до оценки — объединяя все сервисы Azure AI в едином центре с удобным графическим интерфейсом. Каталог моделей в Azure AI Studio позволяет пользователю:
- Найти интересующую базовую модель в каталоге — как проприетарную, так и открытую, с возможностью фильтрации по задаче, лицензии или названию. Для удобства поиска модели организованы в коллекции, например, коллекция Azure OpenAI, коллекция Hugging Face и другие.
- Ознакомиться с карточкой модели, включающей подробное описание предполагаемого использования и данных для обучения, примеры кода и результаты оценки на внутренней библиотеке тестов.
- Сравнить показатели производительности моделей и наборов данных, доступных в индустрии, чтобы определить, какая из них лучше подходит для конкретного бизнес-сценария, через панель Model Benchmarks.
- Дообучить модель на собственных данных, чтобы повысить её эффективность для конкретной задачи, используя возможности экспериментов и отслеживания в Azure AI Studio.
- Развернуть исходную предобученную модель или её дообученную версию на удалённом endpoint для реального времени — управляемом вычислении — или безсерверном API с оплатой по факту использования — pay-as-you-go — чтобы приложения могли её использовать.
Note
Не все модели в каталоге доступны для дообучения и/или развертывания с оплатой по факту использования. Подробности о возможностях и ограничениях модели смотрите в её карточке.
Мы с нашей стартап-командой исследовали разные типы LLM и облачную платформу (Azure Machine Learning), которая позволяет сравнивать модели, оценивать их на тестовых данных, улучшать производительность и развёртывать на inference endpoint.
Но когда стоит рассматривать дообучение модели вместо использования предобученной? Есть ли другие способы повысить качество модели для конкретных задач?
Существует несколько подходов, которые бизнес может использовать, чтобы получить нужные результаты от LLM. При развертывании LLM в продакшене можно выбирать разные типы моделей с разной степенью обучения, уровнем сложности, затрат и качества. Вот несколько вариантов:
-
Промпт-инжиниринг с контекстом. Идея в том, чтобы предоставить достаточно контекста в запросе, чтобы получить нужные ответы.
-
Retrieval Augmented Generation (RAG). Ваши данные могут храниться в базе данных или на веб-ресурсе, и чтобы включить эти данные или их часть в запрос, можно извлечь релевантную информацию и добавить её в промпт пользователя.
-
Дообученная модель. Здесь модель дополнительно обучается на ваших данных, что делает её более точной и адаптированной под ваши задачи, но это может быть дорогостоящим.
Источник изображения: Four Ways that Enterprises Deploy LLMs | Fiddler AI Blog
Предобученные LLM отлично справляются с общими задачами обработки естественного языка, даже если им дать короткий запрос, например, предложение для дополнения или вопрос — так называемое «zero-shot» обучение.
Однако чем больше пользователь формулирует запрос с подробным описанием и примерами — Контекстом — тем точнее и ближе к ожиданиям будет ответ. В этом случае говорят о «one-shot» обучении, если в промпте один пример, и «few-shot» обучении, если примеров несколько. Промпт-инжиниринг с контекстом — самый экономичный способ начать работу.
У LLM есть ограничение: они могут использовать только те данные, на которых обучались, чтобы сгенерировать ответ. Это значит, что они не знают о событиях, произошедших после обучения, и не имеют доступа к непубличной информации (например, данным компании). Это ограничение можно обойти с помощью RAG — техники, которая дополняет промпт внешними данными в виде фрагментов документов, учитывая ограничения по длине промпта. Для этого используются векторные базы данных (например, Azure Vector Search), которые извлекают полезные фрагменты из различных источников и добавляют их в контекст промпта.
Этот метод особенно полезен, когда у бизнеса недостаточно данных, времени или ресурсов для дообучения LLM, но есть желание улучшить качество работы на конкретной задаче и снизить риски генерации выдуманной или вредоносной информации.
Дообучение — это процесс, использующий перенос обучения, чтобы «адаптировать» модель под конкретную задачу или проблему. В отличие от few-shot обучения и RAG, здесь создаётся новая модель с обновлёнными весами и смещениями. Для этого нужен набор обучающих примеров, состоящий из входных данных (промпт) и соответствующего им выхода (завершение). Этот подход предпочтителен, если:
-
Используются дообученные модели. Бизнес хочет применять дообученные менее мощные модели (например, embedding-модели) вместо высокопроизводительных, что позволяет сэкономить и ускорить решение.
-
Важна задержка отклика. Для конкретного сценария важна низкая задержка, и нельзя использовать слишком длинные промпты или большое количество примеров, которые не помещаются в ограничение длины промпта.
-
Необходимо быть в курсе обновлений. У бизнеса есть много качественных данных с метками и ресурсы для их постоянного обновления.
Обучение LLM с нуля — безусловно самый сложный и ресурсоёмкий подход, требующий огромных объёмов данных, квалифицированных специалистов и мощных вычислительных ресурсов. Этот вариант стоит рассматривать только если у бизнеса есть узкоспециализированный кейс и большой объём данных, ориентированных на конкретную область.
Какой подход может быть хорошим для улучшения результатов генерации LLM?
- Промпт-инжиниринг с контекстом
- RAG
- Дообученная модель
Ответ: 3, если у вас есть время, ресурсы и качественные данные, дообучение — лучший способ оставаться актуальным. Однако если вы хотите улучшить результаты, но времени мало, стоит сначала рассмотреть RAG.
Подробнее изучите, как можно использовать RAG для вашего бизнеса.
После прохождения этого урока ознакомьтесь с нашей коллекцией по генеративному ИИ, чтобы продолжить развивать свои знания в области генеративного ИИ!
Перейдите к уроку 3, где мы рассмотрим, как ответственно работать с генеративным ИИ!
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному переводу, выполненному человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.











