Conceptos
Cómo funciona la optimización
El contrato de ejecución y puntuación, los tipos de artefacto y los motores para cada tipo.
Skynet es Optimize Anything: un solo producto que mejora cualquier artefacto con tus datos y tu métrica. Todas las ejecuciones usan el mismo contrato de ejecución y el mismo contrato de métrica. El tipo de artefacto decide qué motores pueden trabajar con él.
El contrato común
Cada ejecución tiene dos archivos. run.py ejecuta el artefacto sobre un caso. metric.py puntúa la salida.
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."}artifactes la versión actual que propone el optimizador.inputes un dict que contiene los campos de entrada de un caso.expectedes el valor esperado del caso, oNonecuando el caso no tiene ninguno.scoredevuelve un par: un número y un dict con una cadena"feedback".
El módulo auxiliar skynet ofrece llm, Image y log. Una llamada a llm desde el código de ejecución va al modelo de tarea. Una llamada a llm desde la métrica va al modelo de la métrica.
Lee Métricas y evaluadores para conocer el contrato completo de la métrica.
Tipos de artefacto y motores
| Tipo de artefacto | Motores |
|---|---|
| Prompt | Auto, GEPA, Best-of-N, AutoResearch, Meta-Harness, AutoSaddler, ShinkaEvolve |
| Código | Los mismos que Prompt |
| Texto | Los mismos que Prompt |
| Programa DSPy | Auto, DSPy GEPA, DSPy MIPROv2, DSPy BootstrapFewShot |
Los motores se agrupan en dos familias:
- Los motores nativos tratan el artefacto como una caja negra. Trabajan con artefactos de tipo Prompt, Código y Texto.
- Los optimizadores de DSPy trabajan dentro de un programa DSPy. Solo trabajan con artefactos de tipo Programa DSPy.
DSPy MIPROv2 y DSPy BootstrapFewShot necesitan pares (casos con salidas esperadas). Con una única entrada, un programa DSPy solo puede usar Auto y DSPy GEPA.
Artefactos de tipo Prompt, Código y Texto
Los motores nativos tratan el artefacto como una caja negra. Un motor propone una versión nueva, ejecuta run(artifact, input) sobre los casos y lee la puntuación y los comentarios.
Los seis motores nativos usan métodos de búsqueda distintos:
- GEPA hace evolucionar las versiones mediante reflexión y mantiene un frente de Pareto.
- Best-of-N pide al modelo de reflexión propuestas independientes y conserva la mejor.
- AutoResearch, Meta-Harness, AutoSaddler y ShinkaEvolve usan un agente de código para proponer versiones.
Lee Motores para conocer cada motor y sus ajustes.
Artefactos de tipo Programa DSPy
Un programa DSPy es un tipo de artefacto. Tu run.py construye un dspy.Module a nivel de módulo y lo llama dentro de run. Si el archivo tiene más de un módulo, llama program al que quieres optimizar.
Qué ocurre cuando se ejecuta un optimizador de DSPy:
- Skynet encuentra tu módulo y envuelve tu función
runa su alrededor. Cada caso pasa por tu propiorun. - El optimizador de DSPy compila el programa con los casos de entrenamiento.
- Selecciona con los casos de validación.
- El ganador es el texto de las instrucciones de cada predictor, más el estado compilado completo del módulo. El estado incluye las demostraciones few-shot.
Las puntuaciones finales miden el mismo programa que guarda Skynet.
| Optimizador | Lee el texto de los comentarios |
|---|---|
| DSPy GEPA | Sí |
| DSPy MIPROv2 | No, solo la puntuación |
| DSPy BootstrapFewShot | No, solo la puntuación |
DSPy BootstrapFewShot no usa un modelo de reflexión.
Auto
Auto es la opción predeterminada en el asistente.
- En un artefacto de tipo Prompt, Código o Texto, Auto explora con cinco motores nativos y luego continúa con GEPA desde la mejor versión.
- En un programa DSPy, Auto ejecuta DSPy GEPA.
Las dos formas de Auto leen el texto de los comentarios de tu métrica.
Qué motor elegir
| Tu situación | Usa |
|---|---|
| Tienes un prompt que ejecuta un modelo | Un artefacto de tipo Prompt. Empieza con Auto. |
| Tienes código que quieres más rápido, barato o correcto | Un artefacto de tipo Código. Empieza con Auto. |
| Tienes un documento o una configuración | Un artefacto de tipo Texto. Empieza con Auto. |
| Tienes un programa DSPy | Un artefacto de tipo Programa DSPy. Empieza con Auto. |
| Quieres demostraciones few-shot elegidas de tus datos | Un artefacto de tipo Programa DSPy con DSPy BootstrapFewShot o DSPy MIPROv2 |