Stanford NLP фреймворк оптимизации программ с языковыми моделями

DSPy.

Модули, сигнатуры и оптимизация по выбранной метрике

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

Официальная документация DSPy с обзором сигнатур и оптимизаторов
Официальная документация DSPy с обзором сигнатур и оптимизаторов. Открыть источник

Сначала решите, что значит улучшение

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

Два набора примеров

Подготовьте учебные заявки с короткими описаниями, пропусками и несколькими адресами. Одна часть служит для настройки, другая остается для проверки. Запустите исходную программу и сохраните результаты. Затем примените выбранный оптимизатор и повторите отложенные задачи с теми же параметрами модели. Сравните число правильно заполненных полей и ошибки на случаях с отсутствующими данными. Удачная метрика должна различать пропуск, верное извлечение и догадку.

Сколько стоит полученное улучшение

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

Для каких задач подходит

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

Сильные стороны

  • Разделяет описание задачи и способ оптимизации
  • Официальное руководство описывает модули и метрики
Стоит учитывать

Ограничения

  • Плохая метрика поощряет неверное поведение
  • Сравнение требует отдельной выборки и учета расходов

Выбор и условия

Бесплатный режим
Да
Пробный период
Не подтверждено
Без регистрации
Не подтверждено
Русский интерфейс
Не подтверждено
Локальная установка
Да
API
Не подтверждено

«Не подтверждено» означает, что сведений недостаточно. Возможность может существовать; сверяйте условия разработчика.

Исходные форматы
Текст, Данные, Код
Результат
Код, Данные

Условия

Фреймворк доступен на открытых условиях. Цена прогонов зависит от моделей, числа проб и вычислительных ресурсов. Плохая метрика поощряет неверное поведение.

От задачи к первому результату

Практический пример

Задача
Подобрать инструкции и примеры для извлечения полей
Что подготовить
Учебные заявки с известными полями, базовая программа и отдельная контрольная выборка.

Задание или запрос

Настрой программу по метрике извлечения полей. Сравни исходный и настроенный варианты на примерах, которые не участвовали в настройке.

Ожидаемый результат

Сравнение с ошибками по полям и учетом числа вызовов модели.

Как проверить результат

  • Проверьте, что контрольные заявки не использовались оптимизатором.
  • Разберите примеры, на которых результат стал хуже.

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

Проверить подробности

Официальные источники

  1. Официальное руководство DSPy
  2. Репозиторий DSPy от Stanford NLP

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