реклама
Бургер менюБургер меню

Денис Соломатин – Искусственный интеллект от А до Б (страница 29)

18

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

Разработка моделей – это уровень, который чаще всего ассоциируется с традиционной инженерией машинного обучения. У него есть три основные обязанности: моделирование и обучение, инженерия наборов данных и оптимизация вывода.

Моделирование и обучение. Моделирование и обучение – это процесс создания архитектуры модели, ее обучения и тонкой настройки. Примерами инструментов в этой категории являются TensorFlow от Google, Transformers от Hugging Face и PyTorch от Meta. Разработка моделей машинного обучения требует специальных знаний в области машинного обучения. Для этого необходимо знать различные типы алгоритмов машинного обучения (например, кластеризация, логистическая регрессия, деревья решений и коллаборативная фильтрация) и архитектуры нейронных сетей (например, с прямой связью, рекуррентные, сверточные и трансформеры). Это также требует понимания того, как модель обучается, включая такие понятия, как градиентный спуск, функция потерь, регуляризация и т.д.

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

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

Предварительное обучение относится к обучению модели с нуля – веса модели инициализируются случайным образом. Для LLM предварительное обучение часто включает в себя обучение модели для завершения текста. Из всех этапов обучения предварительная подготовка часто является наиболее ресурсоемкой. Для модели InstructGPT предварительное обучение занимает до 98 % от общего объема вычислительных ресурсов и ресурсов. Предварительная подготовка также занимает много времени. Небольшая ошибка во время предварительного обучения может повлечь за собой значительные финансовые потери и значительно отбросить проект назад. Из-за ресурсоемкого характера подготовки к тренировкам это стало искусством, которым занимаются лишь немногие. Тем не менее, те, у кого есть опыт предварительного обучения больших моделей, пользуются большим спросом.

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

Многие люди используют пост-тренинг для обозначения процесса обучения модели после этапа предварительного обучения. Концептуально, пост-тренинг и тонкая настройка – это одно и то же, и их можно использовать как взаимозаменяемые. Однако иногда люди могут использовать их по-разному для обозначения разных целей. Обычно это происходит после обучения, когда оно выполняется разработчиками моделей. Например, OpenAI может провести пост-обучение модели, чтобы она лучше следовала инструкциям перед выпуском. Это тонкая настройка, когда она выполняется разработчиками приложений. Например, вы можете точно настроить модель OpenAI (которая сама могла быть обучена после обучения), чтобы адаптировать ее к вашим потребностям.

Некоторые люди используют термин «обучение» для обозначения оперативного проектирования, что не совсем верно. Инженерия наборов данных – это курирование, генерация и аннотирование данных, необходимых для обучения и адаптации моделей ИИ. В традиционной инженерии машинного обучения большинство сценариев использования являются узконаправленными – выходные данные модели могут быть только среди предопределенных значений. Например, классификация спама только с двумя возможными выходами, "spam" и "not spam", является закрытой. Базовые модели, однако, являются открытыми. Аннотировать открытые запросы гораздо сложнее, чем аннотировать закрытые – легче определить, является ли электронное письмо спамом, чем написать эссе. Таким образом, аннотация данных представляет собой гораздо более сложную задачу для инженерии ИИ.

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

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

Оптимизация логических выводов означает более быстрое и дешевое моделирование. Оптимизация инференса всегда была важна для инженерии машинного обучения. Пользователи никогда не отказываются от более быстрых моделей, а компании всегда могут извлечь выгоду из более дешевого вывода. Однако по мере того, как базовые модели масштабируются и приводят к еще более высоким затратам на вывод и задержкам, оптимизация логических выводов становится еще более важной. Одна из проблем с базовыми моделями заключается в том, что они часто являются авторегрессионными – токены генерируются последовательно. Если модели требуется 10 мс для создания токена, то для генерации выходных данных в 100 токенов потребуется секунда, а для более длинных выходных данных потребуется еще больше. Поскольку пользователи становятся печально известны своей нетерпеливостью, снижение задержки приложений ИИ до 100 мс, ожидаемой для типичного интернет-приложения, является огромной проблемой. Оптимизация логических выводов стала активной подобластью как в промышленности, так и в академических кругах.

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

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

Существование такого большого количества методов адаптации также затрудняет оценку. Система, которая плохо работает с одним методом, может работать гораздо лучше с другим. Когда Google запустил Gemini в декабре 2023 года, они утверждали, что Gemini лучше, чем ChatGPT в бенчмарке MMLU. Компания Google оценила Gemini с помощью технологии быстрой инженерии под названием CoT@32. В этой методике Gemini было показано 32 примера, в то время как ChatGPT было показано только 5 примеров.