رفتن به محتوا
Skynetمستندات
صفحه‌ها

مفاهیم

بهینه‌سازی چگونه کار می‌کند

قرارداد اجرا و امتیاز، انواع آرتیفکت و موتورهای هر نوع.

Skynet همان Optimize Anything است: یک محصول که هر آرتیفکتی را بر اساس داده‌ها و معیار شما بهتر می‌کند. همهٔ اجراها از یک قرارداد اجرا و یک قرارداد معیار استفاده می‌کنند. نوع آرتیفکت تعیین می‌کند کدام موتورها می‌توانند روی آن کار کنند.

قرارداد مشترک

هر اجرا دو فایل دارد. run.py آرتیفکت را روی یک مورد اجرا می‌کند. metric.py به خروجی امتیاز می‌دهد.

from skynet import llm


def run(artifact, input):
    return llm(artifact, input=input)
  • artifact نسخهٔ فعلی‌ای است که بهینه‌ساز پیشنهاد می‌دهد.
  • input یک dict است که فیلدهای ورودی یک مورد را نگه می‌دارد.
  • expected مقدار مورد انتظار آن مورد است، یا None وقتی مورد مقدار مورد انتظار ندارد.
  • score یک جفت برمی‌گرداند: یک عدد، و یک dict با یک رشتهٔ "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

صفحه‌های مرتبط