Бесплатный урок Официальный курс Google Skills на русском
Урок 01 · Видео · 15 мин

Введение в большие языковые модели

Урок 1 из 3 курса «Введение в большие языковые модели»: официальный курс Google Skills (Google Cloud) (Гугл) на русском языке. Этот урок бесплатный.

Урок 01 Введение в большие языковые модели

Видео открывается после входа через Telegram. Текст урока доступен без входа.

Войти через Telegram
00:00 / 00:00

Субтитры: RU / EN, переключайте кнопкой CC

Текст видео

Как дела? Меня зовут Меха. Сегодня я расскажу о больших языковых моделях. Не знаете, что это такое? Я тоже... Шучу! На самом деле я прекрасно знаю, о чём говорю.

Я инженер по работе с клиентами в Google Cloud, и сегодня я расскажу вам всё, что нужно знать о LLM, то есть о больших языковых моделях. На этом курсе вы научитесь определять большие языковые модели, описывать сценарии их использования, объяснять настройку промптов и описывать инструменты Google для разработки решений на основе генеративного ИИ. Приступим...

Что такое большие языковые модели

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

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

Что же такое большие языковые модели? Большие языковые модели представляют собой крупные языковые модели общего назначения, которые можно предварительно обучить, а затем дообучить (fine-tuning) для конкретных целей. Что означают «предварительно обученная» и «дообученная»? Отличные вопросы. Давайте разберёмся.

Представьте, что вы дрессируете собаку. Обычно собаку учат базовым командам: «сидеть», «ко мне», «лежать», «стоять». Для повседневной жизни этих команд, как правило, хватает, и собака становится воспитанным жителем города. Хороший мальчик!

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

Три главные особенности LLM

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

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

А что значит «общего назначения»? Это значит, что модели достаточно для решения типичных задач. К этой идее привели две причины. Первая: человеческий язык един независимо от конкретных задач. Вторая: ограниченность ресурсов. Лишь немногие организации способны обучать такие большие языковые модели на огромных наборах данных и с колоссальным количеством параметров. Так почему бы не поручить им создавать фундаментальные языковые модели, которыми смогут пользоваться другие?

Остались последние термины: «предварительно обученная» и «дообученная». Они означают, что большую языковую модель сначала предварительно обучают для общих целей на большом наборе данных, а затем дообучают (fine-tuning) для конкретных задач на гораздо меньшем наборе данных.

Сценарии использования LLM

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

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

Во-вторых, при адаптации под вашу конкретную задачу большим языковым моделям нужно минимум обучающих данных из вашей области. Они показывают приличное качество даже при небольшом объёме данных из предметной области. Иными словами, их можно использовать в сценариях few-shot и даже zero-shot. В машинном обучении few-shot означает обучение модели на минимальном количестве данных, а zero-shot означает, что модель может распознавать то, чему её явно не учили в процессе обучения.

В-третьих, качество больших языковых моделей постоянно растёт, когда вы добавляете данные и параметры. Большие языковые модели почти всегда строятся на основе моделей-трансформеров. Объясню, что это значит. Модель-трансформер состоит из кодировщика и декодировщика. Кодировщик кодирует входную последовательность и передаёт её декодировщику, который учится декодировать представления для нужной задачи.

От традиционного программирования к генеративным моделям

Мы прошли долгий путь от традиционного программирования через нейронные сети к генеративным моделям. В традиционном программировании правила, по которым отличают кошку, приходилось жёстко прописывать в коде. Тип: животное. Ног: четыре. Ушей: два. Шерсть: есть. Любит: клубки и кошачью мяту.

В эпоху нейронных сетей мы могли показать сети картинки с кошками и собаками и спросить: «Это кошка?» И она предсказывала, что это кошка. А по-настоящему здорово то, что в эпоху генеративных моделей мы, пользователи, можем создавать собственный контент: текст, изображения, аудио, видео и не только.

Например, такие модели, как Gemini, мультимодальная модель ИИ от Google, или LaMDA (Language Model for Dialog Applications, языковая модель для диалоговых приложений), поглощают очень-очень большие объёмы данных из множества источников в интернете и создают базовые языковые модели. Ими можно пользоваться, просто задав вопрос: набрав его в промпте или произнеся вслух. Поэтому, если вы спросите «что такое кошка?», модель выдаст всё, что узнала о кошках.

Разработка на основе LLM и традиционная разработка в машинном обучении

Сравним разработку на основе LLM с использованием предварительно обученных моделей и традиционную разработку в машинном обучении. Во-первых, для разработки на основе LLM не нужно быть экспертом. Не нужны обучающие примеры, и модель не нужно обучать. Нужно лишь продумать промпт-дизайн, то есть процесс создания промпта, который будет ясным, лаконичным и информативным. Это важная часть обработки естественного языка, или NLP (Natural Language Processing).

В традиционном машинном обучении вам нужны экспертные знания, обучающие примеры, вычислительное время и оборудование. Требований гораздо БОЛЬШЕ, чем при разработке на основе LLM.

Чтобы закрепить мысль, рассмотрим пример сценария генерации текста. Вопросно-ответные системы (question answering, QA) представляют собой раздел обработки естественного языка, который занимается автоматическими ответами на вопросы, заданные на естественном языке. QA-системы обычно обучают на большом количестве текстов и кода, и они могут отвечать на самые разные вопросы: фактологические, вопросы-определения и вопросы, касающиеся мнений. Ключевой момент в том, что для разработки таких вопросно-ответных моделей требовались знания предметной области.

Поясню на реальном примере. Знания предметной области нужны, чтобы разработать вопросно-ответную модель для ИТ-поддержки клиентов, для здравоохранения или для цепочек поставок. Но при генеративном QA модель сама создаёт свободный текст непосредственно на основе контекста. Знания предметной области не требуются!

Примеры с Gemini

Покажу ещё несколько примеров, чтобы вы оценили, насколько это здорово. Рассмотрим три вопроса, заданных Gemini, чат-боту на основе большой языковой модели, разработанному Google AI. Вопрос 1. Продажи в этом году составляют 100 000 долларов. Расходы составляют 60 000 долларов. Чему равна чистая прибыль? Сначала Gemini объясняет, как рассчитывается чистая прибыль, затем выполняет расчёт. После этого Gemini даёт определение чистой прибыли.

Вот ещё один вопрос. На складе 6000 единиц товара. Для нового заказа требуется 8000 единиц. Сколько единиц мне нужно добавить, чтобы выполнить заказ? И снова Gemini отвечает на вопрос, выполняя расчёт.

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

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

Промпт-дизайн и промпт-инжиниринг

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

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

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

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

Три вида больших языковых моделей

Существует три вида больших языковых моделей: обобщённые языковые модели (generic), модели, настроенные на инструкции (instruction-tuned), и модели, настроенные на диалог (dialog-tuned). К каждому виду нужен свой подход к составлению промптов. Начнём с обобщённых языковых моделей.

Обобщённые языковые модели предсказывают следующее слово на основе языка из обучающих данных. Вот пример обобщённой языковой модели. Допустим, дана фраза «The cat sat on...» («Кошка сидела на...»). Следующим словом должно быть «the», и вы видите, что «the» с наибольшей вероятностью окажется следующим словом. Представьте этот тип моделей как «автодополнение» в поиске.

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

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

Рассуждение по цепочке мыслей

Рассуждение по цепочке мыслей (chain-of-thought) основано на наблюдении: модели чаще приходят к правильному ответу, если сначала выводят текст, объясняющий причину ответа. Посмотрим на вопрос. У Роджера пять теннисных мячей. Он покупает ещё две банки теннисных мячей. В каждой банке по три мяча. Сколько теннисных мячей у него теперь?

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

Настройка

Но есть одна загвоздка... Загвоздка есть всегда. У модели, которая умеет всё, есть практические ограничения. Однако настройка под конкретную задачу может сделать LLM надёжнее. Vertex AI предоставляет базовые модели для конкретных задач. Давайте на реальных примерах разберём, как можно выполнять настройку.

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

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

Модель можно настроить ещё глубже с помощью дообучения (fine-tuning): вы берёте собственный набор данных и переобучаете модель, настраивая каждый вес в LLM. Для этого требуется большая задача обучения и размещение собственной дообученной модели. Вот пример медицинской базовой модели, обученной на данных здравоохранения. Она решает такие задачи, как ответы на вопросы, анализ изображений, поиск похожих пациентов и другие.

Дообучение (fine-tuning) стоит дорого и во многих случаях нереалистично, так что есть ли более эффективные методы настройки? Да. Методы параметрически эффективной настройки (PETM) позволяют настраивать большую языковую модель на ваших собственных данных без дублирования модели. Сама базовая модель при этом не изменяется. Вместо этого настраивается небольшое количество дополнительных слоёв, которые можно подключать и отключать во время инференса.

Инструменты Google Cloud для работы с LLM

Расскажу ещё о трёх способах, как Google Cloud поможет вам получить от LLM больше. Первый: Vertex AI Studio. Vertex AI Studio позволяет быстро изучать и настраивать модели генеративного ИИ, которые можно использовать в ваших приложениях в Google Cloud. Vertex AI Studio помогает разработчикам создавать и развёртывать модели генеративного ИИ, предоставляя разнообразные инструменты и ресурсы, с которыми легко начать работу. Например, там есть библиотека предварительно обученных моделей, инструмент для дообучения (fine-tuning) моделей, инструмент для развёртывания моделей в продакшене и форум сообщества, где разработчики делятся идеями и сотрудничают.

Далее Vertex AI, который особенно полезен тем, у кого мало опыта программирования. С помощью Vertex AI Agent Builder (прежнее название: Vertex AI Search and Conversation) вы можете создавать поиск и диалоги на основе генеративного ИИ для клиентов и сотрудников. Можно обойтись минимумом кода или вовсе без него, и предварительный опыт машинного обучения не нужен. Vertex AI поможет вам создать собственных чат-ботов, цифровых ассистентов, поисковые системы, базы знаний, обучающие приложения и многое другое.

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

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

Перевод официального курса Google «Введение в большие языковые модели». Оригинал на английском.

Полезные гиды