Перейти к содержимому
Страницы

Основные понятия

Как работает оптимизация

Контракт запуска и оценки, виды артефактов и движки для каждого вида.

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

Общий контракт

У каждого запуска два файла. run.py выполняет артефакт на одном примере. metric.py оценивает выход.

from skynet import llm


def run(artifact, input):
    return llm(artifact, input=input)
  • artifact — текущая версия, которую предлагает оптимизатор.
  • input — словарь с входными полями одного примера.
  • expected — ожидаемое значение примера или None, если его нет.
  • score возвращает пару: число и словарь со строкой "feedback".

Вспомогательный модуль skynet предоставляет llm, Image и log. Вызов llm из кода запуска идёт к модели задачи. Вызов llm из метрики идёт к модели метрики.

Полный контракт метрики описан в разделе Метрики и оценщики.

Виды артефактов и движки

Вид артефактаДвижки
ПромптAuto, GEPA, Best-of-N, AutoResearch, Meta-Harness, AutoSaddler, ShinkaEvolve
КодТе же, что для промпта
ТекстТе же, что для промпта
Программа DSPyAuto, DSPy GEPA, DSPy MIPROv2, DSPy BootstrapFewShot

Движки делятся на два семейства:

  • Нативные движки работают с артефактом как с чёрным ящиком. Они работают с артефактами Промпт, Код и Текст.
  • Оптимизаторы DSPy работают внутри программы DSPy. Они работают только с артефактами Программа DSPy.

DSPy MIPROv2 и DSPy BootstrapFewShot требуют пар (примеров с ожидаемыми выходами). С единственным входом программа DSPy может использовать только Auto и DSPy GEPA.

Артефакты Промпт, Код и Текст

Нативные движки работают с артефактом как с чёрным ящиком. Движок предлагает новую версию, выполняет run(artifact, input) на примерах и читает оценку и обратную связь.

Шесть нативных движков используют разные методы поиска:

  • GEPA развивает версии через рефлексию и поддерживает фронт Парето.
  • Best-of-N запрашивает у модели рефлексии независимые предложения и сохраняет лучшее.
  • AutoResearch, Meta-Harness, AutoSaddler и ShinkaEvolve используют агента-программиста для предложения версий.

Каждый движок и его настройки описаны в разделе Движки.

Артефакты Программа DSPy

Программа DSPy — это один из видов артефактов. Ваш run.py создаёт dspy.Module на уровне модуля и вызывает его внутри run. Если в файле больше одного модуля, назовите оптимизируемый модуль program.

Что происходит при работе оптимизатора DSPy:

  1. Skynet находит ваш модуль и оборачивает вокруг него вашу функцию run. Каждый пример проходит через ваш собственный run.
  2. Оптимизатор DSPy компилирует программу на обучающих примерах.
  3. Он выбирает версию на валидационных примерах.
  4. Победитель — это текст инструкции каждого предиктора плюс полное скомпилированное состояние модуля. Состояние включает few-shot-примеры.

Итоговые оценки измеряют ту же программу, которую сохраняет Skynet.

ОптимизаторЧитает текст обратной связи
DSPy GEPAДа
DSPy MIPROv2Нет, только оценку
DSPy BootstrapFewShotНет, только оценку

DSPy BootstrapFewShot не использует модель рефлексии.

Auto

Auto — вариант по умолчанию в мастере.

  • Для артефакта Промпт, Код или Текст Auto исследует пространство с помощью пяти нативных движков, а затем продолжает с GEPA от лучшей версии.
  • Для программы DSPy Auto запускает DSPy GEPA.

Обе формы Auto читают текст обратной связи вашей метрики.

Какой движок выбрать

Ваша ситуацияЧто использовать
У вас есть промпт, который выполняет модельАртефакт Промпт. Начните с Auto.
У вас есть код, который нужно сделать быстрее, дешевле или точнееАртефакт Код. Начните с Auto.
У вас есть документ или конфигурацияАртефакт Текст. Начните с Auto.
У вас есть программа DSPyАртефакт Программа DSPy. Начните с Auto.
Вам нужны few-shot-примеры, отобранные из ваших данныхАртефакт Программа DSPy с DSPy BootstrapFewShot или DSPy MIPROv2

Связанные страницы