bannerbanner
Искусственный интеллект от А до Б
Искусственный интеллект от А до Б

Полная версия

Искусственный интеллект от А до Б

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
15 из 15

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

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

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

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

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

Рассмотрим последовательность лексем ["Я", "любовь", "еда"]. Если вероятность для "Я" равна 0,2, вероятность для "любовь" при "л" равна 0,1, а вероятность для "еда" при данных "л" и "любовь" равна 0,3, вероятность последовательности равна: 0,2 × 0,1 × 0,3 = 0,006. Математически это можно обозначить следующим образом: p(Я люблю еду) = p(I) × p(I | люблю) × p(еда | Я, любовь)

Помните, что проще работать с вероятностями на логарифмической шкале. Логарифм произведения равен сумме логарифмов, поэтому logprob последовательности лексем является суммой логпроба всех лексем в последовательности: logprob(Я люблю еду) = logprob(Я) + logprob(Я | люблю) + logprob(еда | Я, любовь). При суммировании более длинные последовательности, скорее всего, будут иметь меньший общий logprob (значения logprob обычно отрицательны, потому что log значений от 0 до 1 отрицательны). Чтобы избежать смещения в сторону коротких последовательностей, можно использовать среднее логарифмическое значение, разделив сумму последовательности на ее длину. После выборки нескольких выходных данных вы выбираете тот, у которого самый высокий средний logprob.

Другой метод выбора заключается в использовании модели вознаграждения для оценки каждого результата, как обсуждалось в предыдущем разделе. Вспомните, что и Stitch Fix, и Grab выбирают выходы, получившие высокие баллы по моделям вознаграждений или верификаторам. Компания Nextdoor обнаружила, что использование модели вознаграждения стало ключевым фактором в повышении производительности их приложения (2023 год).

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

DeepMind также доказывает ценность вычислений во время тестирования, утверждая, что масштабирование вычислений во время тестирования (например, выделение большего количества вычислительных ресурсов для генерации большего количества выходных данных во время вывода) может быть более эффективным, чем масштабирование параметров модели. В той же статье задается интересный вопрос: если LLM разрешено использовать фиксированный, но нетривиальный объем вычислений во время вывода, насколько он может улучшить свою производительность в сложной задаче?

В эксперименте OpenAI выборка большего количества выходов привела к повышению производительности, но только до определенного момента. В этом эксперименте этот показатель составлял 400 выходов. Они предположили, что по мере увеличения числа выборочных выходов вероятность нахождения состязательных выходов, которые могут обмануть верификатора, также увеличивается. Однако эксперимент в Стэнфорде показал другой вывод. Установлено, что количество решенных задач часто увеличивается логарифмически по мере увеличения числа образцов от 1 до 10 000. Хотя интересно подумать о том, можно ли масштабировать вычисления во время тестирования до бесконечности, вряд ли кто-то в производственной среде сэмплирует 400 или 10 000 различных выходов для каждого входа. Стоимость будет астрономической.

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

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

Выбор наиболее распространенных выходных данных из набора выходных данных может быть особенно полезен для задач, в которых ожидаются точные ответы. Например, если дана математическая задача, модель может решить ее несколько раз и выбрать наиболее частый ответ в качестве окончательного решения. Аналогичным образом, для вопроса с несколькими вариантами ответов модель может выбрать наиболее часто встречающийся вариант вывода. Именно так поступил Google, оценивая Gemini по бенчмарку MMLU. Они отобрали 32 результата для каждого вопроса. Это позволило модели получить более высокий балл, чем тот, который был бы достигнут при использовании только одного результата на вопрос.

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

Часто в продакшене требуются модели для генерации выходных данных в определенных форматах. Структурированные выходные данные имеют решающее значение для следующих двух сценариев:

1. Задачи, требующие структурированных результатов. Наиболее распространенной категорией задач в этом сценарии является семантический парсинг. Семантический синтаксический анализ включает в себя преобразование естественного языка в структурированный, машиночитаемый формат. Text-to-SQL – это пример семантического разбора, где выходными данными должны быть валидные SQL-запросы. Семантический парсинг позволяет пользователям взаимодействовать с API с помощью естественного языка (например, английского). Например, text-to-PostgreSQL позволяет пользователям запрашивать базу данных Postgres с помощью запросов на английском языке, таких как «Каков средний ежемесячный доход за последние 6 месяцев» вместо того, чтобы записывать это в PostgreSQL. Это пример запроса для GPT-4o на преобразование текста в регулярное выражение. Выходы являются фактическими выходами, сгенерированными GPT-4o. Другие категории задач в этом сценарии включают классификацию, в которой выходные данные должны быть допустимыми классами.

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

К структурам, поддерживающим структурированные результаты, относятся руководство, планы, инструктор и llama.cpp. Каждый поставщик моделей также может использовать свои собственные методы для улучшения способности своих моделей генерировать структурированные выходные данные. OpenAI был первым поставщиком моделей, который внедрил режим JSON в свой API для генерации текста. Обратите внимание, что режим JSON API обычно гарантирует только то, что выходные данные являются допустимым JSON, а не содержимым объектов JSON. Допустимые в остальном сгенерированные JSON также могут быть усечены и, таким образом, не поддаются анализу, если генерация останавливается слишком рано, например, когда достигается максимальная длина выходного токена. Однако, если максимальная длина лексемы установлена слишком длинной, ответы модели становятся слишком медленными и дорогостоящими.

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

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

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Конец ознакомительного фрагмента
Купить и скачать всю книгу
На страницу:
15 из 15