
Полная версия
Искусственный интеллект от А до Б
Один из особых примеров несправедливости является результатом вовлечения уязвимых субъектов в исследования негативных последствий применения систем искусственного интеллекта общего назначений. Определенные группы, такие как расовые меньшинства, экономически неблагополучные, очень больные и лица, находящиеся в лечебных учреждениях, могут постоянно рассматриваться в качестве объектов исследования из-за их доступности в условиях, где проводятся исследования. Учитывая их зависимый статус и часто поставленную под угрозу способность к свободному согласию, они должны быть защищены от опасности участия в исследованиях исключительно ради административного удобства или потому, что ими легко манипулировать в результате их болезни или социально-экономического положения.
Теоретические аспекты создания генеративных систем искусственного интеллекта.
Эта глава представляет собой всеобъемлющее, хорошо структурированное руководство по основным аспектам создания генеративных систем искусственного интеллекта. Обязательна к прочтению для любого профессионала, желающего масштабировать ИИ в масштабах всего предприятия.
Базовые модели позволили сегодня реализовать множество новых сценариев использования ИИ, одновременно снизив барьеры для входа в создание продуктов ИИ. Это превратило ИИ из эзотерической дисциплины в мощный инструмент разработки, которым может пользоваться каждый, в том числе и те, у кого нет опыта работы с ИИ.
Каждый инженер по искусственному интеллекту, создающий реальные приложения, должен прочитать эту главу. Это жизненно важное руководство по комплексному проектированию систем искусственного интеллекта, от разработки и оценки модели до широкомасштабного развертывания и эксплуатации.
В отличие от других книг, которые сосредоточены на инструментах или текущих тенденциях, которые постоянно меняются, тут предоставляются вечные фундаментальные знания. Независимо от того, являетесь ли вы менеджером по продукту или инженером, эта глава эффективно устраняет разрыв в сотрудничестве между кросс-функциональными командами, что делает ее обязательной к прочтению для всех, кто занимается разработкой ИИ.
Когда появился ChatGPT многие мои коллеги был дезориентированы. Что меня удивило, так это не размер модели или возможности. Уже несколько десятков лет сообщество ИИ знает, что масштабирование модели улучшает ее. В 2012 году отмечалось, что все эксперименты показывают, как результаты можно улучшить, просто дождавшись появления более быстрых графических процессоров и больших наборов данных.
Новые возможности ИИ не только увеличили спрос на приложения ИИ, но и снизили входной барьер для разработчиков. Начать создание приложений ИИ стало очень просто. Можно даже создать приложение, не написав ни одной строки кода. Этот сдвиг превратил ИИ из специализированной дисциплины в мощный инструмент разработки, которым может пользоваться каждый.
Несмотря на то, что внедрение ИИ сегодня кажется новым, оно основано на методах, которые существуют уже некоторое время. Статьи о моделировании языков вышли еще в 1950-х годах. Приложения с расширенной генерацией поиска (RAG) построены на технологии поиска, которая использовалась в поисковых и рекомендательных системах задолго до того, как был придуман термин RAG. Рекомендации по развертыванию традиционных приложений машинного обучения – систематическое экспериментирование, тщательная оценка, неустанная оптимизация для более быстрых и дешевых моделей – по-прежнему остаются лучшими практиками для работы с приложениями на основе базовых моделей.
Знакомость и простота использования многих методов инженерии ИИ могут ввести людей в заблуждение, заставив их думать, что в инженерии ИИ нет ничего нового. Но в то время, как многие принципы создания приложений ИИ остаются прежними, масштаб и расширенные возможности модели ИИ открывают возможности и создают проблемы, требующие новых решений. В этой главе представлена основа для адаптации базовых моделей, которые включают в себя как большие языковые модели (LLM), так и большие мультимодальные модели (LMM), к конкретным приложениям.
Существует множество различных способов создания приложения. В этой книге описываются различные решения, а также поднимаются вопросы, которые вы можете задать, чтобы оценить наилучшее решение для ваших нужд. Вот некоторые из многих вопросов, на которые эта книга может помочь вам ответить: стоит ли создавать это приложение с искусственным интеллектом? Как оценить мою заявку? Могу ли использовать ИИ для оценки результатов ИИ? Что вызывает галлюцинации? Как обнаружить и смягчить галлюцинации? Каковы лучшие практики для оперативного проектирования? Почему RAG работает? Какие существуют стратегии проведения RAG? Что такое агент? Как создать и оценить агента? Когда следует выполнять тонкую настройку модели? Когда не следует выполнять тонкую настройку модели? Какой объем данных мне нужен? Как проверить качество данных? Как сделать модель быстрее, дешевле и безопаснее? Как создать цикл обратной связи, чтобы постоянно улучшать мое приложение?
Книга в целом также поможет вам сориентироваться в ошеломляющем ландшафте искусственного интеллекта: типах моделей, оценочных тестах и, казалось бы, бесконечном количестве вариантов использования и шаблонов приложений.
Содержание этой книги проиллюстрировано с помощью тематических исследований, тщательно изучено экспертами из самых разных областей.
Инструменты быстро устаревают, но теоретические основы должны служить дольше.
DMLS фокусируется на создании приложений на основе традиционных моделей машинного обучения, что включает в себя больше табличных аннотаций данных, проектирование признаков и обучение моделей. AIE специализируется на создании приложений на основе моделей фундаментов, что включает в себя более быстрое проектирование, построение контекста и точную настройку с эффективностью параметров. Обе книги являются самостоятельными и модульными, поэтому вы можете читать любую из них по отдельности.
Поскольку базовые модели являются моделями машинного обучения, некоторые концепции имеют отношение к работе с обеими моделями. Если тема имеет отношение к AIE, но широко обсуждалась в DMLS, она все равно будет освещена в этой книге, но в меньшей степени, с указанием соответствующих ресурсов.
Обратите внимание, что многие темы рассматриваются в DMLS, но не в AIE, и наоборот. В первой главе этой книги также рассматриваются различия между традиционной инженерией машинного обучения и инженерией искусственного интеллекта. Реальная система часто включает в себя как традиционные модели машинного обучения, так и базовые модели, поэтому часто необходимы знания о работе с обеими моделями.
Однако определить, прослужит ли что-то долго, часто бывает непросто. Во-первых, что касается проблемы, как определить, является ли она результатом фундаментальных ограничений работы ИИ или она исчезнет с более совершенными моделями. Во-вторых, можно консультироваться с обширной сетью исследователей и инженеров, которые умнее, о том, что они считают наиболее важными проблемами и решениями.
Иногда можно полагаться на закон Линди, который предполагает, что ожидаемая продолжительность жизни технологии в будущем пропорциональна ее текущему возрасту. Так что, если что-то существует какое-то время, то это будет существовать еще какое-то время.
Несмотря на то, что можно создавать приложения на основе базовых моделей без опыта в области машинного обучения, базовое понимание машинного обучения и статистики может помочь вам создавать более качественные приложения и избавить вас от ненужных страданий. Вы можете прочитать эту книгу без какого-либо предварительного опыта в области машинного обучения. Тем не менее, вы будете более эффективны при создании приложений ИИ, если будете знать следующие концепции: вероятностные концепции, такие как выборка, детерминизм и распределение; концепции машинного обучения, такие как супервизия, самоконтроль, логарифмическое правдоподобие, градиентный спуск, обратное распространение, функция потерь и настройка гиперпараметров; различные архитектуры нейронных сетей, включая с прямой связью, рекуррентные и трансформаторные; такие метрики, как точность, F1, точность, полнота, косинусное сходство и пересечение, энтропия. Если вы еще не знакомы с ними, не волнуйтесь – в этой книге есть либо краткие, высокоуровневые объяснения, либо указатели на ресурсы, которые могут помочь вам быстро войти в курс дела.
Эта книга предназначена для всех, кто хочет использовать базовые модели для решения реальных проблем. Это техническая книга, поэтому язык этой книги ориентирован на технические роли, включая инженеров по искусственному интеллекту, инженеров по машинному обучению, специалистов по обработке и анализу данных, менеджеров по инженерам и технических менеджеров по продуктам. Эта книга для вас, если вы можете соотнести себя с одним из следующих сценариев: Вы создаете или оптимизируете приложение ИИ, независимо от того, начинаете ли вы с нуля или хотите перейти от этапа демонстрации к этапу подготовки к производству. Вы также можете столкнуться с такими проблемами, как галлюцинации, безопасность, задержка или затраты, и нуждаетесь в целенаправленных решениях. Вы хотите оптимизировать процесс разработки ИИ в своей команде, сделав его более систематическим, быстрым и надежным. Вы хотите понять, как ваша организация может использовать базовые модели для улучшения итоговых показателей бизнеса и как создать команду для этого.
Вы также можете извлечь пользу из книги, если принадлежите к одной из следующих групп: Разработчики инструментов, которые хотят определить недостаточно обслуживаемые области в инженерии ИИ, чтобы позиционировать свои продукты в экосистеме. Исследователи, которые хотят лучше понять варианты использования ИИ. Кандидаты на работу, которым нужна ясность в отношении навыков, необходимых для продолжения карьеры инженера по искусственному интеллекту. Всем, кто хочет лучше понять возможности и ограничения ИИ, а также то, как он может повлиять на различные роли.
Некоторые разделы погружаются немного глубже в техническую сторону. Хотя многим ранним читателям нравятся детали, они могут быть не для всех. Не стесняйтесь пропустить вперед, если вы чувствуете себя слишком запутавшимся. Книга структурирована таким образом, чтобы следовать типичному процессу разработки приложения ИИ.
Вот как выглядит этот типичный процесс и как каждая глава вписывается в него. Поскольку эта книга является модульной, вы можете пропустить любой раздел, с которым вы уже знакомы или который менее актуален для вас.
Прежде чем принять решение о создании приложения ИИ, необходимо понять, что включает в себя этот процесс, и ответить на такие вопросы, как: необходимо ли это приложение? Нужен ли ИИ? Нужно ли создавать это приложение самостоятельно? Хотя опыт машинного обучения не является необходимым для создания приложений ИИ, понимание того, как работает базовая модель, полезно для получения максимальной отдачи от нее. Далее анализируется создание базовой модели и проектные решения, оказывающие значительное влияние на последующие приложения, включая рецепт обучающих данных, архитектуру и масштабы модели, а также то, как модель обучается в соответствии с предпочтениями человека. Затем обсуждается, как модель генерирует ответ, который помогает объяснить кажущееся непонятным поведение модели, такое как непоследовательность и галлюцинации. Изменение настроек поколения модели также часто является дешевым и простым способом значительно повысить производительность модели. После того как вы приступили к созданию приложения на основе базовых моделей, оценка будет неотъемлемой частью каждого шага на этом пути. Оценка – одна из самых сложных, если не самая сложная задача в области разработки искусственного интеллекта. Качество ответа модели зависит от следующих аспектов (помимо настройки генерации модели): инструкция о том, как должна вести себя модель; контекст, который модель может использовать для ответа на запрос; сама модель. Благодаря наличию множества фреймворков тонкой настройки, сам процесс тонкой настройки часто бывает простым. Однако получить данные для тонкой настройки сложно.
Если описать ИИ после 2020 года только одним словом, то это было бы слово масштаб. Модели искусственного интеллекта, лежащие в основе таких приложений, как ChatGPT, Google Gemini и Midjourney, настолько масштабны, что они потребляют нетривиальную часть мировой электроэнергии, и мы рискуем остаться без общедоступных интернет-данных для их обучения.
Масштабирование моделей ИИ имеет два основных последствия. Во-первых, модели ИИ становятся все более мощными и способными выполнять больше задач, что позволяет использовать больше приложений. Все больше людей и команд используют ИИ для повышения производительности, создания экономической ценности и улучшения качества жизни.
Во-вторых, для обучения больших языковых моделей (LLM) требуются данные, вычислительные ресурсы и специализированные таланты, которые могут позволить себе лишь немногие организации. Это привело к появлению модели как услуги: модели, разработанные этими несколькими организациями, становятся доступными для использования другими в качестве услуги. Любой, кто хочет использовать ИИ для создания приложений, теперь может использовать эти модели для этого без необходимости вкладывать средства в создание модели.
Короче говоря, спрос на приложения ИИ вырос, в то время как барьер для входа в создание приложений ИИ снизился. Это превратило инженерию ИИ – процесс создания приложений на основе готовых моделей – в одну из самых быстрорастущих инженерных дисциплин.
Создание приложений на основе моделей машинного обучения (ML) не является чем-то новым. Задолго до того, как LLM стали популярными, ИИ уже использовался во многих приложениях, включая рекомендации по продуктам, обнаружение мошенничества и прогнозирование оттока. В то время как многие принципы создания приложений ИИ остаются прежними, новое поколение крупномасштабных, легкодоступных моделей открывает новые возможности и ставит новые задачи, которые и находятся в центре внимания этой книги.
Эта глава начинается с обзора базовых моделей, которые стали ключевым катализатором бурного развития инженерии искусственного интеллекта. По мере того, как возможности ИИ расширяются с каждым днем, прогнозировать его будущие возможности становится все сложнее. Тем не менее, существующие шаблоны приложений могут помочь раскрыть возможности сегодня и дать подсказки о том, как ИИ может продолжать использоваться в будущем.
Базовые модели возникли из больших языковых моделей, которые, в свою очередь, возникли как просто языковые модели. Хотя может показаться, что такие приложения, как ChatGPT и Copilot от GitHub, появились из ниоткуда, они являются кульминацией десятилетий технологического прогресса, первые языковые модели которого появились в 1950-х годах. В этом разделе прослеживаются ключевые прорывы, которые позволили совершить эволюцию от языковых моделей к инженерии искусственного интеллекта.
Несмотря на то, что языковые модели существуют уже некоторое время, они смогли вырасти до таких масштабов, как сегодня, только благодаря самоконтролю. В этом разделе дается краткий обзор того, что означают языковая модель и самоконтроль. Если вы уже знакомы с ними, не стесняйтесь пропустить этот раздел.
Языковая модель кодирует статистические данные об одном или нескольких языках. Интуитивно эта информация говорит нам о том, насколько вероятно появление слова в данном контексте. Например, учитывая контекст «Мой любимый цвет – __», языковая модель, кодирующая английский язык, должна предсказывать «синий» чаще, чем «автомобиль».
Статистическая природа языков была открыта столетия назад. В рассказе 1905 года «Пляшущие человечки» Шерлок Холмс использовал простую статистическую информацию на английском языке для расшифровки последовательностей загадочных фигурок. Поскольку самая распространенная буква в английском языке – E, Холмс пришел к выводу, что самая распространенная фигурка из палочек должна обозначать E.
Позже Клод Шеннон использовал более сложную статистику для расшифровки сообщений врагов во время Второй мировой войны. Его работа о моделировании английского языка была опубликована в 1951 году в его знаковой статье «Предсказание и энтропия печатного английского языка». Многие концепции, представленные в этой статье, включая энтропию, до сих пор используются для моделирования языка.
В первые дни языковая модель включала в себя один язык. Однако сегодня языковая модель может включать в себя несколько языков.
Основной единицей языковой модели является лексем. Лексема может быть символом, словом или частью слова (например, -ция), в зависимости от модели. Например, GPT-4, модель, лежащая в основе ChatGPT, разбивает фразу на токены. Разные модели OpenAI токенизируют текст по-разному. Процесс разбиения исходного текста на токены называется токенизацией. Для GPT-4 средний токен составляет примерно 3/4 длины слова. Таким образом, 100 токенов – это примерно 75 слов.
Набор всех лексем, с которыми может работать модель, – это словарь модели. Вы можете использовать небольшое количество лексем для создания большого количества отдельных слов, подобно тому, как вы можете использовать несколько букв алфавита для создания множества слов. Модель Mixtral 8x7B имеет словарный запас 32 000. Размер словарного запаса GPT-4 составляет 100 256 токенов. Метод токенизации и размер словаря определяются разработчиками модели.
Почему языковые модели используют токен в качестве единицы измерения, а не слово или символ? Можно выделить три основные причины:
1. По сравнению с символами, токены позволяют модели разбивать слова на значимые компоненты. Например, слово «телевизор» можно разбить на «теле» и «визор», причем оба компонента несут в себе некоторое значение исходного слова.
2. Поскольку уникальных лексем меньше, чем уникальных слов, это уменьшает размер словаря модели, что делает модель более эффективной.
3. Лексемы также помогают модели обрабатывать неизвестные слова. Например, такое придуманное слово, как «чебурнет», можно разделить на «чебур» и «нет», что поможет модели понять его структуру. Токены балансируют между меньшим количеством единиц, чем словами, сохраняя при этом больше значения, чем отдельные символы.
Существует два основных типа языковых моделей: маскированные языковые модели и авторегрессионные языковые модели. Они различаются в зависимости от того, какую информацию они могут использовать для прогнозирования токена:
Замаскированная языковая модель
Маскированная языковая модель обучается прогнозировать отсутствующие лексемы в любом месте последовательности, используя контекст как до, так и после отсутствующих лексем. По сути, замаскированная языковая модель обучается заполнять пробелы. Например, учитывая контекст «Мой любимый __ – синий», замаскированная языковая модель должна предсказать, что пропуск, скорее всего, является «цветом». Хорошо известным примером замаскированной языковой модели являются двунаправленные представления энкодеров от трансформаторов.
Замаскированные языковые модели обычно используются для негенеративных задач, таких как анализ тональности и классификация текста. Они также полезны для задач, требующих понимания общего контекста, таких как отладка кода, где модель должна понимать как предыдущий, так и последующий код для выявления ошибок.
Языковая модель с авторегрессией обучается прогнозировать следующую лексему в последовательности, используя только предыдущие лексемы. Он предсказывает, что будет дальше в строке «Мой любимый цвет – __». Модель авторегрессии может постоянно генерировать один маркер за другим. В настоящее время авторегрессионные языковые модели являются моделями выбора для генерации текста, и по этой причине они гораздо популярнее, чем замаскированные языковые модели.
Выходные данные языковых моделей являются открытыми. Языковая модель может использовать свой фиксированный, конечный словарь для создания бесконечного количества возможных выходных данных. Модель, которая может генерировать открытые выходные данные, называется генеративной, отсюда и термин «генеративный ИИ».
Языковую модель можно представить себе как машину для завершения: получив текст (подсказку), она пытается дополнить этот текст. Вот пример:
Подсказка (от пользователя): "Быть или не быть"
Завершение (из языковой модели): "вот в чем вопрос."
Важно отметить, что завершения – это прогнозы, основанные на вероятностях, и не гарантируется, что они верны. Эта вероятностная природа языковых моделей делает их одновременно и захватывающими, и разочаровывающими в использовании.
Как бы просто это ни звучало, завершение невероятно мощно. Многие задачи, включая перевод, обобщение, кодирование и решение математических задач, можно сформулировать как задачи на завершение. Например, если у вас есть подсказка: «Как дела на французском…», языковая модель может дополнить ее словами: «Comment ça va», эффективно переводя с одного языка на другой. В качестве другого примера, учитывая подсказку:
Вопрос: Является ли это письмо вероятным спамом? Вот электронное письмо: <содержимое электронной почты> Ответьте:
Языковая модель может дополнить его следующим образом: "Вероятный спам", что превращает эту языковую модель в классификатор спама.
Хотя завершение – это мощная сила, завершение – это не то же самое, что участие в разговоре. Например, если вы зададите вопрос машине для завершения, она может дополнить то, что вы сказали, добавив еще один вопрос вместо ответа на вопрос.
Языковое моделирование – это лишь один из многих алгоритмов машинного обучения. Также есть модели для обнаружения объектов, тематического моделирования, рекомендательных систем, прогнозирования погоды, прогнозирования цен на акции и т.д. Что особенного в языковых моделях, что сделало их центром подхода к масштабированию, вызвавшего момент ChatGPT?
Ответ заключается в том, что языковые модели можно обучать с помощью самоконтроля, в то время как многие другие модели требуют контроля. Супервизия – это процесс обучения алгоритмов машинного обучения с использованием размеченных данных, получение которых может быть дорогостоящим и медленным. Самоконтроль помогает преодолеть это узкое место в маркировке данных и создать более крупные наборы данных для обучения моделей, что позволяет эффективно масштабировать модели. Вот как это сделать.
При контроле вы помечаете примеры, чтобы показать поведение, которое должна изучить модель, а затем обучаете модель на этих примерах. После обучения модель может быть применена к новым данным. Например, для обучения модели обнаружения мошенничества используются примеры транзакций, каждая из которых помечена как «мошенничество» или «не мошенничество». После того как модель извлечет уроки из этих примеров, ее можно использовать для прогнозирования того, является ли транзакция мошеннической.
Успех моделей ИИ в 2010-х годах заключался в контроле. Модель AlexNet, положившая начало революции в глубоком обучении, была курируемая и обучалась тому, как классифицировать более 1 миллиона изображений в наборе данных ImageNet, в результате классифицировала каждое изображение по одной из 1000 категорий, таких как «автомобиль», «воздушный шар» или «обезьяна».
Недостатком контроля является то, что маркировка данных является дорогостоящей и трудоемкой задачей. Если один человек стоит 5 центов, чтобы пометить одно изображение, то пометить миллион изображений для ImageNet будет стоить 50 000 долларов. Если вы хотите, чтобы два разных человека помечали каждое изображение, чтобы вы могли перепроверить качество этикетки, это будет стоить в два раза дороже. Поскольку мир содержит более 1000 объектов, чтобы расширить возможности моделей по работе с большим количеством объектов, вам потребуется добавить метки большего количества категорий. Чтобы масштабировать до 1 миллиона категорий, стоимость маркировки увеличится до 50 миллионов долларов.
Маркировка предметов повседневного обихода – это то, что большинство людей могут делать без предварительной подготовки. Следовательно, это можно сделать относительно дешево. Однако не все задачи по маркировке так просты. Генерация переводов с латыни для модели с английского на латиницу обходится дороже. Определение того, показывает ли компьютерная томография признаки рака, было бы астрономическим по стоимости.
Самоконтроль помогает преодолеть узкое место в маркировке данных. При самоконтроле вместо того, чтобы требовать явных меток, модель может выводить метки из входных данных. Языковое моделирование является самоконтролируемым, так как каждая входная последовательность предоставляет как метки (маркеры, подлежащие прогнозированию), так и контексты, которые модель может использовать для прогнозирования этих меток. Например, предложение «Я люблю уличную еду» дает шесть обучающих выборок, как показано ниже: