Перейти до вмісту
Сторінки

Основні поняття

Як працює оптимізація

Контракт запуску й оцінювання, види артефактів і рушії для кожного виду.

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

Пов’язані сторінки