Мы рассмотрим большие языковые модели (Large Language Models или LLM), основываясь на примере модели Llama 2 70B от Meta AI. Это вторая итерация в серии языковых моделей Llama, выделяющаяся среди других благодаря 70 миллиардам параметров. В отличие от многих других языковых моделей, таких как Chat GPT от Open AI, Llama 2 70B отличается открытым доступом к своим весам и архитектуре, что позволяет пользователям самостоятельно взаимодействовать с моделью.
Большие языковые модели, такие как Llama 2 70B, представляют собой нейронные сети с огромным количеством параметров, в случае с Llama 2 70B, объем данных составляет порядка 140 гигабайт, при этом каждый параметр хранится в формате 16-битного числа с плавающей запятой. Для работы с такой моделью необходимы два файла: файл параметров и код, запускающий нейронную сеть.
Обучение большой языковой модели, такой как Llama 2 70B, является сложным процессом. В отличие от простого запуска модели, который можно выполнить на домашнем компьютере, обучение требует значительных вычислительных ресурсов. Например, для создания модели Llama 2 70B требуется около 6000 GPU в течение 12 дней, что обходится приблизительно в 2 миллиона долларов. Процесс обучения можно сравнить с сжатием большого объема текстовых данных из Интернета.
Основы и архитектура
Ключевым элементом любой большой языковой модели являются её параметры. В случае с Llama 2 70B, параметры занимают 140 гигабайт, их можно рассматривать как сжатую копию текстой части Интернета. Важно отметить, что сжатие параметров - это сжатие с потерями, что означает, что в них сохраняется не вся информация исходных данных, а лишь их сжатое представление.
Основная функция языковой модели заключается в предсказании следующего слова в текстовой последовательности. Например, если ввести в модель слова "кот сидел на", модель попытается предсказать, какое слово будет следующим, основываясь на распределении параметров по нейронной сети. Эта способность предсказывать текстовые последовательности тесно связана с принципами сжатия данных.
Обучение нейронных сетей
При обучении нейронных сетей, происходит что-то похожее на магию. Задача, казалось бы простая — предсказание следующего слова — на самом деле позволяет нейронной сети учиться и узнавать о мире. Рассмотрим пример: при анализе информации о Рут Хэндлер из Википедии, нейронная сеть учится понимать контекст и извлекать значимую информацию. Таким образом, она обогащается знаниями, которые сжимаются в её параметрах.
После обучения, модель способна генерировать текст, продолжая последовательности слов. Это можно сравнить с созданием "снов" на основе данных, на которых обучалась модель. Примеры, созданные моделью, варьируются от Java-кода до описаний продуктов и статей Википедии. Важно отметить, что такие тексты являются «галлюцинациями» модели — они не являются точным повторением увиденных ранее текстов, а скорее их переосмыслением и рекомбинацией.
Основной задачей нейронной сети является предсказание следующего слова в текстовой последовательности. Архитектура такой сети, например, трансформера, хорошо изучена, и мы точно знаем, какие математические операции происходят на каждом этапе. Однако, несмотря на это понимание, точная природа работы миллиардов параметров, распределённых по сети, остаётся не до конца ясной. Мы можем оптимизировать эти параметры для улучшения способности модели к предсказанию, но взаимодействие и точный механизм работы этих параметров остаются предметом исследования.
Большие языковые модели (LLM) представляют собой сложные и до некоторой степени загадочные артефакты в области искусственного интеллекта. Их способность к предсказанию и генерации текста часто кажется волшебной, но она не лишена ограничений. Например, модели могут демонстрировать странные и одномерные знания, как в случае с Chat GPT, который может точно отвечать на один вопрос, но оказывается бессильным перед другим, логически связанным вопросом. Такие явления подчеркивают, что наши знания о том, как функционируют эти модели, ещё далеки от полного понимания. Область интерпретируемости нейронных сетей стремится раскрыть, как работают различные части этих сложных систем. Но до сих пор, в значительной мере, нейронные сети остаются эмпирическими артефактами: мы можем наблюдать и измерять их поведение и результаты, но полное понимание их внутренних механизмов остается за пределами наших текущих возможностей.
От генератора текста к помощнику, Fine-Tuning
Переход от базовой языковой модели, генерирующей тексты, к модели помощника включает процесс, известный как дополнительная настройка или Fine Tuning. На этом этапе модель обучается на новом наборе данных, который включает в себя вопросы и ответы, а не только текстовые документы. Цель этого процесса — создать модель, способную не просто генерировать текст, но и предоставлять осмысленные ответы на конкретные вопросы.
Первоначальный этап обучения больших языковых моделей включает использование огромного объема текстов из интернета, что обеспечивает широкую базу знаний, но не всегда высокого качества. Этот этап, известный как предварительное обучение, создает фундамент для дальнейшего обучения модели.
Следующий шаг — дополнительная настройка (Fine-Tuning), включает обучение на специально подготовленных наборах данных. Эти наборы данных создаются вручную и включают в себя вопросы и ответы для формирования моделей-помощников. В этом процессе особое внимание уделяется качеству данных: тексты должны быть тщательно составлены и отражать реальные сценарии взаимодействия с пользователями.
После дополнительной настройки модель становится способна отвечать на вопросы и решать задачи в практическом ключе. Этот этап обучения позволяет модели перенести накопленные знания в более прикладной контекст. Таким образом, модель обучается понимать и отвечать на конкретные запросы, даже если конкретный вопрос не был частью обучающего набора, по образу и подобию. Процесс создания эффективной модели-помощника включает в себя не только сложные технические аспекты, но и значительные вычислительные и финансовые ресурсы. Предварительное обучение требует использования мощных компьютерных кластеров и может быть очень дорогостоящим, в то время как дополнительная настройка более доступна и направлена на конкретную цель.
Процесс создания и улучшения моделей
Прогресс в развитии языковых моделей позволяет усиливать роль автоматизации в процессе создания и проверки меток. Вместо того чтобы полностью полагаться на ручной труд, можно использовать языковые модели для генерации ответов, а затем задействовать людей для отбора и уточнения этих ответов. Это позволяет повышать эффективность и точность обучения моделей.
Рейтинги ЭЛО и сравнение языковых моделей
Система рейтинга ЭЛО, заимствованная из шахматного мира, применяется для оценки эффективности различных языковых моделей. Пользователи могут сравнивать ответы от разных моделей и выбирать лучшие, что позволяет сформировать более точную оценку их качества. Проприетарные модели, такие как серия GPT от OpenAI и Claude от Anthropic, часто занимают верхние строчки рейтинга, в то время как открытые модели, хоть и работают хуже, предоставляют больше возможностей для настройки и экспериментирования.
Важным аспектом развития языковых моделей является закон масштабирования. Производительность этих моделей в задачах, таких как предсказание следующего слова, предсказуема и зависит от двух основных факторов: количества параметров в сети (n) и объема текста для обучения (d). Эти показатели позволяют точно определить, насколько эффективной будет модель.
Обучение языковых моделей на большем количестве текста приводит к улучшению их способности к предсказанию следующего слова. Этот процесс не требует алгоритмического прогресса, поскольку увеличение вычислительной мощности и обучающих данных само по себе ведет к повышению эффективности моделей. Это явление подтверждается эмпирическими данными, где большие модели показывают улучшение в ряде задач.
Применение языковых моделей
Для иллюстрации реального использования языковых моделей, можно рассмотреть пример запроса к ChatGPT о сборе информации о ScaleAI. В этом случае, Chat GPT использует подход, схожий с человеческим: выполнение поиска через Bing для сбора данных и организация информации в таблицу. Языковые модели могут применять внешние инструменты, например браузер, для выполнения сложных задач. Продолжая взаимодействие с Chat GPT, можно задать задачу выведения оценки для некоторых раундов финансирования ScaleAI, используя данные из других серий. Языковые модели могут помогать в анализе и выведении информации, опираясь на доступные данные и логические рассуждения.
Использование внешних инструментов
Калькулятор, когда Chat GPT сталкивается с задачей, требующей вычислений, он использует калькулятор. Это демонстрирует способность модели распознавать свои ограничения и применять внешние инструменты для улучшения точности ответов.
Создание графиков с помощью matplotlib: Для визуализации данных о Scale AI, Chat GPT использует библиотеку matplotlib в Python. Модель может эффективно использовать программное обеспечение для создания визуализаций.
Расширенный анализ и экстраполяция. Модель способна проводить дополнительный анализ, такой как линейная регрессия и экстраполяция, для предсказания будущих оценок компании.
Интеграция с DALL·E для генерации изображений. Помимо аналитических задач, модель может использовать инструменты визуализации, такие как DALL·E от OpenAI, для создания изображений, основанных на текстовом описании.
Эти примеры иллюстрируют, как языковые модели эволюционируют, переходя от простых текстовых операций к использованию сложных инструментов и аналитических методов. Это расширяет их возможности и делает их более эффективными помощниками в различных задачах.
Интеграция мультимодальности
Языковые модели, такие как Chat GPT, становятся все более мультимодальными. Они не только генерируют текст, но и могут взаимодействовать с изображениями и аудио. Это расширяет их применение в различных сценариях.
Пример Грега Брокмана от OpenAI демонстрирует способность Chat GPT интерпретировать визуальную информацию. Показывая модели простую рисованную схему веб-сайта, она способна преобразовать ее в функционирующий код. Это показывает возможности модели в понимании и обработке визуальных данных.
Развитие Chat GPT включает добавление возможностей восприятия и генерации аудио. Это позволяет создавать более естественные и интуитивные интерфейсы, такие как голосовое общение, подобное тому, что представлено в фильме "Она".
Возможность Chat GPT слышать и говорить открывает путь для голосового взаимодействия. Пользователи могут общаться с ИИ, используя естественный человеческий язык, без необходимости ввода текста.
Способность языковых моделей интегрировать и обрабатывать различные типы информации делает их гораздо более мощными и универсальными инструментами.
Будущее и возможные трудности
Системное мышление и LLM
В книге "Думай быстро и медленно" описывается концепция двух систем мышления - Система 1 (быстрая, интуитивная, автоматическая) и Система 2 (медленная, рациональная, сознательная). Это разделение можно адаптировать к области искусственного интеллекта, чтобы понять текущие возможности и ограничения больших языковых моделей.
Современные языковые модели, подобные Chat GPT функционируют на уровне Системы 1. Они быстро и интуитивно реагируют на запросы, но их возможности в области глубокого рассуждения и логического анализа ограничены.
Будущее развитие языковых моделей может включать интеграцию функционала, схожего с Системой 2. Это позволит им выполнять более сложные задачи, требующие осмысленного рассуждения, анализа возможностей и принятия решений.
Например, в шахматах быстрый игровой стиль требует интуитивного мышления (Система 1), в то время как длительные партии требуют глубоких стратегических рассуждений (Система 2). Подобные принципы могут быть применены к языковым моделям для улучшения их способности к решению сложных задач.
Развитие "Системы 2" в LLM
В будущем модели смогут использовать больше времени для размышления над ответом, повышая тем самым его точность. Это подразумевает переход от быстрого, интуитивного ответа (система 1) к более продуманному и аналитическому подходу (система 2).
Идея заключается в том, чтобы модель могла создать своеобразное "дерево мыслей", обдумывая различные аспекты вопроса, прежде чем предложить ответ. Это позволило бы модели более тщательно анализировать информацию и предоставлять более точные ответы.
В идеальном случае соотношение между затраченным временем на обдумывание и точностью ответа должно быть монотонно возрастающим. Это означает, что чем больше времени модель тратит на анализ, тем точнее становится её ответ.
Концепция самосовершенствования ИИ
AlphaGo продемонстрировал, как система ИИ может обучаться и развиваться, играя против самой себя и улучшая свои стратегии. Аналогичный подход самосовершенствования может быть применен к большим языковым моделям. Это может включать автономное изучение новых данных, экспериментирование с различными формулировками ответов и постоянное улучшение способности модели к пониманию и ответу на сложные запросы.
Уроки от AlphaGo
Первый этап развития AlphaGo включал обучение на основе подражания человеческим экспертам в игре го. Это позволило создать компетентную программу, но она была ограничена уровнем лучших игроков, предоставляющих тренировочные данные.
DeepMind преодолела этот предел, перейдя к стратегии самосовершенствования. В рамках закрытой системы игры в го и с четкой функцией вознаграждения (выигрыш или проигрыш), AlphaGo смогла играть миллионы партий против самой себя, улучшая свои стратегии и превзойдя человеческих экспертов.
Одной из основных проблем в применении самосовершенствования к языковым моделям является отсутствие универсального и легко измеряемого критерия вознаграждения, аналогичного выигрышу в игре го.
Самосовершенствование может предложить путь к созданию более мощных и точных систем ИИ, но для этого необходимо разработать эффективные методы оценки и вознаграждения.
В областях, где можно четко определить критерии вознаграждения, самосовершенствования языковых моделей представляется возможным. Это может включать специализированные приложения, где функция вознаграждения легко измерима и определена. Главная проблема для самосовершенствования языковых моделей заключается в отсутствии универсальной функции вознаграждения, что делает этот подход более сложным в широком масштабе.
Экспертные модели
Существует потенциал для настройки языковых моделей, делая их экспертами в конкретных областях. Это может включать специализированные инструкции, интеграцию пользовательских данных и использование этих данных для генерации более точных и релевантных ответов. Примером такого подхода является магазин приложений GPT от OpenAI, который позволяет пользователям создавать свои собственные версии GPT, настроенные под конкретные нужды и задачи. В будущем, вероятно, появятся дополнительные методы настройки, позволяющие еще точнее адаптировать модели под специфические требования и задачи. Создание множества специализированных моделей вместо одной универсальной может предложить более эффективные и точные решения для конкретных задач.
LLM как операционная система
Большие языковые модели (LLM) могут работать не просто как чат-боты или генераторы текста, а как универсальные системы, схожие с операционными системами, координирующими множество ресурсов для решения задач.
В будущем LLM могут включать в себя не только чтение и генерацию текста, но и способность воспринимать и создавать изображения, видео и музыку. Это расширяет их применение за рамки простых текстовых задач. LLM могут использовать существующие программные инструменты (например, калькуляторы, Python) для улучшения своей функциональности и решения более сложных задач. Способность к долгосрочному обдумыванию задач (система два) и самосовершенствованию в узких областях могут существенно повысить эффективность LLM. Потенциал для настройки и специализации моделей для конкретных задач, а также создание "моделей-экспертов" в магазине приложений открывает новые возможности для индивидуализации и оптимизации решений.
Схожесть LLM с современными операционными системами проявляется в их способности координировать и эффективно использовать различные ресурсы (аналогия с памятью, хранилищем данных и процессором). Существует сходство между проприетарными операционными системами, такими как Windows и MacOS, и открытой экосистемой Linux, сравнивая их с проприетарными и открытыми LLM. Это отражает разнообразие и потенциал для инноваций в области языковых моделей.
Проблемы безопасности
Как и в случае с операционными системами, существуют определенные проблемы безопасности, связанные с LLM. Примером могут служить попытки "взлома" модели, например, запросы на выполнение запрещенных или нежелательных действий.
В случае запроса на неприемлемые действия, такие как создание вредоносного контента, модели, подобные Chat GPT, запрограммированы отказывать в выполнении таких запросов, что является частью их системы безопасности.
Развитие LLM как новой формы вычислительной инфраструктуры создает новые сложности и возможности. Эти системы могут перевернуть представление о том, как мы взаимодействуем с информацией и вычислительными ресурсами, но также требуют новых подходов к обеспечению безопасности и надежности.
Обход механизмов защиты в LLM
Существуют фундаментальные проблемы, с которыми сталкиваются разработчики языковых моделей в области безопасности. Это подчеркивает необходимость работы над улучшением и адаптацией систем безопасности, чтобы они могли справляться с творческими и нестандартными методами обхода. Ниже приведены некоторые примеры взлома LLM.
Взлом ChatGPT через ролевую игру. Запрос о производстве напалма в контексте ролевой игры с умершей бабушкой, демонстрирует, как творческие или необычные запросы могут обходить механизмы безопасности модели.
Взлом через кодирование запроса в Base64. Это один и тот же запрос, но во втором случае он закодирован в Base64 формате, нейросеть легко воспринимает разные методы ввода информации, но защитные механизмы блокирующие вывод нежелательной информации не учитывают такие запросы.
Разнообразие способов, которыми пользователи могут пытаться "взломать" модель, делает проблему безопасности особенно сложной. Это требует постоянного развития и адаптации механизмов защиты.
Взлом через узор шума на изображении панды. Эти атаки используют слабости в способности моделей правильно интерпретировать данные.
Существует риск при обработке информации из ненадежных источников — на примере текст написан почти белым, на белом фоне, для человека это пустой лист, но в нем содержится инструкция, что выводить в качестве результата. В результате нейросеть выведет сообщение о наличии скидки на Sephora.
Атака через контент на сайте, нейросеть через поиск находит страницу с нужной информацией, но на странице по мимо релевантной информации, скрыта дополнительная инструкция, что нужно вывести в качестве ответа. Например, ссылку на рекламу или фишинговый ресурс.
Так же существуют риски, связанные с интеграцией LLM в сторонние сервисы и платформы, где модели могут обрабатывать или предоставлять доступ к чувствительной информации. Попросив нейросеть обработать расшаренный вам документ, нейросеть взламывается через контент на странице и через GET запрос на внешнее изображение (ссылка в markdown), злоумышленник может получить всю доступную нейросети информацию о вас. В данный момент эта уязвимость уже закрыта, но существует Google Apps Scripts как потенциальный вектор атаки для эксплуатации личных данных.
Так же существует возможность внедрения «спящих агентов» на этапе создания базовой модели, среди терабайтов информации, на которых обучается нейросеть может содержаться кодовая фраза, которая будет менять поведение нейросети при её активации
Заключение
Мы обсудили, что такое большие языковые модели (LLM), как они создаются и до обучаются, чтобы стать помощниками. Рассмотрели, как эти модели могут развиваться в будущем, включая их интеграцию с различными технологиями и применение в разнообразных областях. Особое внимание было уделено проблемам безопасности, включая различные типы атак, как эти атаки могут манипулировать моделями для выполнения вредоносных действий. Многие из рассмотренных атак уже нейтрализованы благодаря разработке и внедрению новых методов защиты.