Официальный релиз LangChain: изучите советы по оптимизации слов для подсказок
Криш Маниар и Уильям Фу-Хинторн
При написании подсказок мы пытаемся донести наши намерения до больших языковых моделей (Large Language Models, LLM), чтобы они могли применять эти инструкции к сложным данным. Однако четко выразить все нюансы сразу непросто. Разработка подсказок часто оптимизируется путем ручных проб и ошибок, тестирования и настройки, но такие инструменты, как DSPy и promptim, демонстрируют ценность "программирования подсказок" и систематической оптимизации подсказок. Они преодолевают разрыв между намерениями и инструкциями, измеряя и тестируя их на реальных данных. В этой статье мы:
- Пять наборов данных с проверяемыми результатами были отобраны для бенчмаркинга, что послужило толчком к оптимизации
- Были реализованы и сравнены пять методов систематического улучшения подсказок
- Оценивались три различные модели (
gpt-4o
, иclaude-sonnet
, иo1
) при оптимизации кия
Наше заключение:
- Модель, которую мы рекомендуем для оптимизации кия, выглядит следующим образом
claude-sonnet
(Лучше, чемo1
) - Оптимизация подсказок наиболее эффективна в задачах, где модель не обладает достаточными знаниями о предметной области
- В этих случаях оптимизация подсказок может повысить точность примерно на 200% по сравнению с базовыми подсказками.
- Оптимизацию подсказок можно также рассматривать как форму долговременной памяти: обучение непосредственно на основе данных и адаптация к
Что мы проверили.
Мы провели сравнительный анализ пяти популярных методов оптимизации подсказок (подробное описание приведено ниже):
- Несколько подсказок: использование учебных примеров в качестве демонстрации желаемого поведения
- Мета-подсказка: анализ и улучшение подсказок с помощью LLM
- Мета-подсказки с рефлексией: предоставление LLM возможности обдумать и критически проанализировать предложенные изменения перед подачей обновленных подсказок
- Градиенты подсказок: генерируйте "текстовые градиенты" для каждого примера в качестве предложений по улучшению, а затем примените эти предложения в другом вызове LLM.
- Эволюционная оптимизация: изучение пространства подсказок с помощью контролируемой мутации
Мы проверили эти методы на трех моделях (O1, GPT-4o и Claude-3.5-Sonnet) и протестировали их на пяти наборах данных, представляющих общие задачи, чтобы ответить на следующие основные вопросы:
- Когда советы по оптимизации наиболее эффективны?
- Какие модели фронтира подходят для оптимизации кия?
- Какие алгоритмы являются наиболее надежными?
арифметика
Мы протестировали пять методов оптимизации подсказок, каждый из которых имел свою уникальную теорию оптимизации:
Несколько подсказок
Этот подход является самым простым, когда мы выбираем до 50 примеров из обучающего набора (сэмплированных за несколько циклов обучения) и включаем их в подсказку в качестве демонстрации желаемого поведения. Этот подход имеет низкую стоимость обучения (для предложения изменений не требуются вызовы LLM), но во время тестирования Токен Более высокая стоимость (поскольку демонстрационные примеры обычно содержат больше контента, чем прямые инструкции).
Метаподсказка (Метаподсказка)
Это один из самых простых методов настройки инструкций. Сначала целевой LLM выполняет пример, а затем вычисляет оценки выходов (обратите внимание: необходимо настроить оценщик). Затем мы предоставляем Мета-критерию LLM входы, выходы, эталонные выходы (если таковые имеются) и оценки текущей подсказки по этим выходам, и просим LLM написать лучшую подсказку. Этот процесс повторяется на небольших партиях данных и периодически оценивается на сохраненном наборе разработок (dev set), чтобы сохранить подсказки, получившие наибольшее количество баллов.
Метапредложение с рефлексией (Метапредложение с рефлексией)
Предоставьте инструменты "думать" и "критиковать" поверх метапрограмм. Эти инструменты позволяют LLM записывать размышления в черновике перед отправкой обновлений подсказок, чтобы можно было использовать больше вычислительных мощностей для анализа предыдущих подсказок и обнаружения скрытых закономерностей в данных перед отправкой окончательной версии.
Градиенты Prompt (Градиенты Prompt)
В работе Pryzant et al.Автоматическая оптимизация подсказокВдохновленный "Процессом оптимизации", этот подход разделяет процесс оптимизации на несколько этапов:
- Оценка вывода текущей подсказки
- Пусть LLM генерирует специфическую обратную связь (т.е. "градиенты") для примеров неудач
- Оперативное обновление на основе этих "градиентов"
Основная идея метода заключается в том, что сбор тонкой обратной связи перед внесением изменений может обеспечить более целенаправленные предложения по улучшению, чем методы мета-подсказки.
Эволюционная оптимизация (ЭО)
Алгоритмы работают в "поколениях", причем каждое поколение оптимизируется на разных этапах. В каждом поколении алгоритмы применяют полуслучайные "мутации" к подсказкам (в данном эксперименте эти мутации генерировались LLM для обновления различных типов подсказок), а затем сохраняют наиболее эффективные подсказки.
В этих экспериментах мы использовали самую современную методику, предложенную Куи и др. PhaseEvoОн сочетает в себе подход "текстового градиента" с более глобальной вариативной стратегией, позволяющей исследовать пространство подсказок в более широком масштабе, преодолевая тем самым проблему локальной оптимальности.
набор данных
Мы создали пять наборов данных для бенчмаркинга:
- Поддержка рассылки почты 3: Каждое входящее письмо классифицируется и назначается одному из 3 процессоров.
- Поддержка рассылки почты 10: Аналогично (1), но при увеличении числа процессоров до 10 задача становится более сложной, поскольку "доменная экспертиза" каждого процессора недостаточно ясна.
- многоязычная математика: LLM предполагает решение прикладных задач по математике и написание ответов на одном из пяти языков. Целевой язык определяется темой вопроса (спорт → корейский, космос → арабский, кулинария → немецкий, музыка → английский, живая природа → русский). Оптимизатор должен обнаружить эту скрытую закономерность в данных.
- Почтовый помощник (простой)Это синтетический набор данных для проверки полезности оптимизации подсказок в задачах, где LLM уже обладает знаниями о домене. LLM должен определить, следует ли проигнорировать письмо, ответить на него или уведомить пользователя, чтобы он разобрался с ним.
- Почтовый помощник (предпочтения)Задача похожа на предыдущий набор данных, но правила задачи более тонкие. В качестве составителя правил предпочтения электронной почты мы выбрали занятого и "эксцентричного" технического гуру, который должен был обеспечить истинные метки.
в конце концов
Мы используем GPT-4o и O1 от OpenAI на пяти наборах данных, а также Антропология Claude-3.5-Sonnet был оптимизирован как мета-критерий LLM. Целевым ЛЛМ был GPT-4o-mini (т.е. мы использовали другие модели для оптимизации подсказки GPT-4o-mini).
На следующем рисунке показаны результаты оптимизации для различных наборов данных и алгоритмов:
Среднее значение относительного улучшения по всем тестовым наборам данных, 100% представляет собой удвоение точности, а 200% - утроение точности по сравнению с оригиналом.
Из результатов.Клод - более стабильная модель оптимизатораO1 более надежен, чем O1. Кроме того, O1 имеет недостатки с точки зрения времени обработки, стоимости и надежности API (конечные точки OpenAI иногда ошибочно помечают запросы как нарушающие ToS). Поэтому в настоящее время мы рекомендуем Claude-3.5-Sonnet в качестве предпочтительной модели для оптимизации подсказок. Мы будем обновлять эту рекомендацию по мере появления O3 и других новых моделей.
Что мы нашли
Приведенные выше результаты в целом подтверждают существующие литературные данные о том, что большие языковые модели (LLM) хорошо работают при проектировании входных подсказок. Эти эксперименты также показывают, когда LLM будут (или не будут) эффективны.
- Метаподсказка (Метаподсказка) существоватьПравила или предпочтения при обнаружении и другие четкие шаблоны особенно полезны, особенно когда эта информация находится за пределами исходной области знаний LLM. Это означает, что вы можете определить желаемое поведение на примере и положиться на оптимизатор, чтобы он транслировал это поведение другим LLM, если они могут следовать разумным инструкциям. Это делает возможной модель программирования с декларативным вводом подсказок.
- Мета-подсказки (настраиваются по команде) При передаче предпочтений внюанс Например, в наборе данных для классификации простых электронных писем все методы тонкой настройки входных подсказок оказались хуже методов тонкой настройки входных подсказок с несколькими выстрелами (few-shot). В этом наборе данных классификация в основном основывалась на нечетких правилах и условных суждениях, а не на явных правилах.
- объединениеМеньше подсказок для ввода образцов и тонкой настройки команд может принести дополнительные улучшения. Это контрастирует с Opsahl Ong et al. ответить пением Ван и др. Результаты исследования совпадают. Примеры могут передать больше информации, чем простые инструкции, но не могут охватитьСложные условия и правила Это может быть важной частью того, что необходимо для корпоративных агентов. С другой стороны, оптимизация входных подсказок с помощью рефлексии, "текстовых градиентов" или эволюционных алгоритмов позволяет более целенаправленно улучшать их на основе существующих характеристик производительности и наборов данных, повышая при этом эффективность Token. Эффективность Token также повышается.
- Мета-помпы не дают модели новых возможностей . Например, в наборе данных Multilingual Maths модель GPT-4o-mini не смогла преодолеть отметку 65% даже в оптимизированной конфигурации, в основном из-за ошибок в выводах. Хотя оптимизатор может подсказать модели, как проявления (Иногда рассуждения на примерах могут привести к лучшемуобраз мышления ), но они не открывают более сильных навыков рассуждения или более сложных знаний о конкретной области.
За пределами оценки
Мы создавали LangSmith, чтобы помочь командам систематически оценивать приложения LLM. Хорошая оценка позволяет выявить проблемы и понять поведение системы. Но наборы данных и метрики, созданные в процессе оценки, открывают еще более важную ценность: систематическое улучшение производительности модели путем оптимизации.
Наборы данных, используемые в наших экспериментах, хорошо справляются с оптимизацией, потому что они имеют четкую структуру,Проверяемые результаты ::
- Решения о маршрутизации с реальными метками
- Проверяемые математические ответы
- Языковые ограничения, которые могут быть проверены программой
Это важно, поскольку оптимизация по нечетким или ненадежным метрикам приводит к тому, что входные сигналы становятся не лучше, а хуже. Если LLM оценивает результат только по нечетким критериям, он будет стремиться оптимизировать его под свои собственные предубеждения, а не под ваши реальные потребности.
Если вы отслеживаете производительность приложений в LangSmith, вы уже заложили основу для эффективной оптимизации входных подсказок. Один и тот же набор данных не только помогает понять причины неудач, но и способствует систематическому улучшению. Данные, метрики и обучение образуют замкнутый цикл.
Оптимизация ввода подсказок, т.е. долговременная память
Оптимизация - это обучение, поэтому мы можем рассматривать оптимизацию входных сигналов как особую форму долговременной памяти, которая фиксирует "постоянно действующие" модели поведения.
В то время как традиционные системы памяти хранят информацию в базах данных (векторах, графиках или других форматах), Input Cue Optimisation сохраняет информацию непосредственно в входных сигналах интеллекта, делая ее всегда доступной и влияющей на каждое решение. Этот подход особенно подходит для хранения основных шаблонов, таких как правила поведения, стилевые предпочтения и ключевые черты личности.
Процесс "учись и совершенствуйся" очень похож на традиционную оптимизацию входных подсказок, с небольшими отличиями в том, как планируются обновления и где они хранятся. Методы, используемые для оптимизации входных подсказок и алгоритмов обучения, могут быть применимы и к системам памяти. Это направление мы активно изучаем.
значение
Эти результаты подтверждают наше мнение (и мнение таких исследователей, как DSPy) о том, что оптимизация входных подсказок на основе LLM может систематически улучшать входные подсказки и автоматизировать текущий процесс разработки входных подсказок, в котором доминирует ручная работа методом проб и ошибок. Если сделать этот подход более доступным для всех заинтересованных сторон, это поможет нам создавать более совершенные и сильные системы.
Однако это не универсальное решение. Наши оптимизированные входные подсказки не являются оптимальными на тестовом наборе, и улучшение варьируется в зависимости от задачи. Это говорит о том, что оптимизация входных подсказок должна рассматриваться как один из инструментов в наборе средств оптимизации приложений LLM, а не как единственный подход.
Мы планируем интегрировать эти сведения непосредственно в LangSmith, чтобы помочь командам выйти за рамки ручного ввода данных и оперативного проектирования. Наша цель - не устранить человеческие суждения, а сделать решения более систематизированными и основанными на данных.
рекуррентный эксперимент
Вы можете запустить Репозитории GitHub попал в точку all_sweeps.sh
скрипты для воспроизведения этих экспериментов.
приложение
Динамика обучения
В предыдущем разделе мы сосредоточились нав конечном итоге производительность входных подсказок на тестовом наборе. Ниже мы приводим графики динамики обучения каждого набора данных на наборе разработки. Эти графики показывают, как различные алгоритмы подходят к наборам данных, и могут быть использованы для сравнения итоговых оценок, чтобы определить, подходят ли алгоритмы к наборам данных нестабильным образом или нетоверфиттинг данных, что не позволяет добиться последовательного повышения эффективности.
Поддержка маршрутизации почты (3 класса)
Большинство оптимизаторов улучшили свои показатели по сравнению с базовыми входными подсказками, при этом градиентный и эволюционный методы показали одинаковые результаты. Примечательно, что Claude превосходит GPT-4o по всем методам; однако в наборе разработок Claude и GPT-4o не смогли добиться значительного улучшения при использовании методов мета-подсказок.

Поддержка маршрутизации почты (10 классов)
Настройки meta-cue и meta-cue+reflection, использующие GPT-4o, не смогли выучить правила классификации в этом наборе данных. Выявляется общая закономерность: если кривая остается плоской, алгоритм не смог обучиться. Если кривая быстро приближается к идеальному значению, возможно, имеет место перебор с подгонкой. Наилучшие результаты на тестовом наборе, как правило, показывают алгоритмы, которые постоянно совершенствуются на наборе разработки.

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

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

Все четыре алгоритма выучили основные правила классификации. Однако градиентный метод слабо справляется с поиском нечетких границ, в то время как другие методы предпочитают формулировать "правило приоритета" или строить дерево решений для определения критериев классификации.
Различия в поведении видны и при сравнении разных моделей оптимизаторов в рамках одного и того же алгоритма. Например, O1, похоже, предпочитает комбинировать различные техники (например, синтезировать примеры без примеров и пошаговые инструкции) и использовать свой характерный разделитель ("-") для различения наборов правил. В то время как Клод более лаконичным и прямым, а также усвоил правила приоритетов и отображения доменов. Напротив, GPT-4o генерирует наименьшую плотность информации.

© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...