Основні поняття
Як працює оптимізація
Контракт запуску й оцінювання, види артефактів і рушії для кожного виду.
Skynet — це Optimize Anything: один продукт, який покращує будь-який артефакт на ваших даних і за вашою метрикою. Кожен запуск використовує той самий контракт запуску й той самий контракт метрики. Вид артефакту визначає, які рушії можуть із ним працювати.
Спільний контракт
Кожен запуск має два файли. run.py виконує артефакт на одному кейсі. metric.py оцінює результат.
from skynet import llm
def run(artifact, input):
return llm(artifact, input=input)def score(input, output, expected=None):
ok = output == expected
return (1.0 if ok else 0.0), {"feedback": "Match." if ok else "No match."}artifact— це поточна версія, яку пропонує оптимізатор.input— це словник із вхідними полями одного кейсу.expected— це очікуване значення кейсу абоNone, якщо кейс його не має.scoreповертає пару: число й словник із рядком"feedback".
Допоміжний модуль skynet надає llm, Image і log. Виклик llm з коду запуску йде до моделі завдання. Виклик llm з метрики йде до моделі метрики.
Повний контракт метрики описано в розділі Метрики й оцінювачі.
Види артефактів і рушії
| Вид артефакту | Рушії |
|---|---|
| Промпт | Auto, GEPA, Best-of-N, AutoResearch, Meta-Harness, AutoSaddler, ShinkaEvolve |
| Код | Те саме, що й для промпту |
| Текст | Те саме, що й для промпту |
| Програма DSPy | Auto, 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:
- Skynet знаходить ваш модуль і обгортає його вашою функцією
run. Кожен кейс проходить через ваш власнийrun. - Оптимізатор DSPy компілює програму на навчальних кейсах.
- Він обирає найкращий варіант на валідаційних кейсах.
- Переможець — це текст інструкцій кожного предиктора плюс повний скомпільований стан модуля. Стан включає 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 |