Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

DSPy

DSPy — это фреймворк с открытым исходным кодом, который собирает конвейеры LLM из типизированных сигнатур и модулей, а затем оптимизирует их промпты по метрике.

DSPy — фреймворк с открытым исходным кодом на Python для создания приложений на базе больших языковых моделей (LLM) в виде кода, а не вручную написанных подсказок. Разработчик объявляет входные и выходные данные каждого шага, объединяет шаги в программу и поручает оптимизатору DSPy писать и настраивать подсказки или веса модели, чтобы максимизировать метрику на наборе примеров. Название расшифровывается как Declarative Self-improving Python, а сам проект описывает себя как фреймворк для программирования языковых моделей, а не для составления подсказок. Omar Khattab и коллеги из Стэнфордского университета представили DSPy в статье октября 2023 года «DSPy: компиляция декларативных вызовов языковых моделей в самоулучшающиеся конвейеры». За несколько минут компиляции несколько строк DSPy позволили GPT-3.5 и Llama-2-13B-chat создавать конвейеры, превосходившие стандартные подсказки с несколькими примерами более чем на 25% и 65% соответственно, а конвейеры с демонстрациями, написанными экспертами, — на 46% и 40%.

Сигнатуры, модули и оптимизаторы#

  • Сигнатуры: типизированные объявления входных и выходных данных шага, записанные прямо в коде как "question -> answer" или в виде класса с описанием задачи в docstring. Они задают назначение шага, оставляя формулировку подсказки DSPy.
  • Модули: стратегии выполнения сигнатуры. dspy.Predict вызывает модель один раз, dspy.ChainOfThought добавляет перед ответом поле для рассуждений, как при подсказках с цепочкой рассуждений, а dspy.ReAct запускает цикл с использованием инструментов в стиле подсказок ReAct. Модули объединяются в многошаговые программы, как слои PyTorch, например в конвейер генерации с дополнением поиском (RAG), который формирует поисковый запрос, извлекает фрагменты и отвечает на их основе.
  • Адаптеры: Преобразуют сигнатуру в сообщения чата для модели и разбирают её ответ на типизированные поля.
  • Оптимизаторы: Алгоритмы, улучшающие программу по заданной метрике. BootstrapFewShot запускает программу на обучающих примерах и сохраняет в качестве демонстраций трассировки, прошедшие проверку по метрике; MIPROv2 ищет подходящие инструкции и наборы демонстраций; BootstrapFinetune дистиллирует программу в веса модели с помощью дообучения.

Цикл оптимизации похож на обучение модели, где параметры — это подсказки:

Оптимизатор GEPA 2025 года, доступный как dspy.GEPA, анализирует трассировки выполнения программы и текстовые отзывы, поручает LLM разобраться в причинах неудач и на этой основе улучшает инструкции. В шести задачах он в среднем превзошёл метод обучения с подкреплением GRPO на 6%, а в отдельных случаях — на 20%, используя при этом до 35 раз меньше развёртываний; результат MIPROv2 он превзошёл более чем на 10%.

От сигнатуры к подсказке#

DSPy формирует подсказку по сигнатуре, поэтому ту же программу можно заново оптимизировать для новой модели, а не переписывать. Здесь входные данные — сводка детекций от Ultralytics YOLO26: Results.verbose() возвращает результат режима predict в виде короткой строки с числом объектов каждого класса. Сигнатура может принимать эту строку как текст, чтобы оптимизатор настраивал этап рассуждений на реальных результатах детекции объектов. Для формирования сообщений не нужны ни модель, ни ключ API:

import dspy
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")


class SceneQA(dspy.Signature):
    """Answer a question about a photo from the objects a detector found in it."""

    detections: str = dspy.InputField()
    question: str = dspy.InputField()
    answer: str = dspy.OutputField()


# The adapter turns the signature and inputs into the chat messages the model will receive
inputs = {"detections": results[0].verbose(), "question": "How many people are in the photo?"}
messages = dspy.ChatAdapter().format(SceneQA, demos=[], inputs=inputs)
for message in messages:
    print(f"--- {message['role']} ---\n{message['content']}")

В системном сообщении перечислены входные и выходные поля, маркеры [[ ## field ## ]], которые DSPy использует для разбора ответа, и docstring в качестве цели; в пользовательском сообщении передаётся число объектов, обнаруженных детектором. Оптимизатор улучшает эту программу, переписывая цель и добавляя в сообщения демонстрации, при этом код Python не меняется.

  • Промпт-инжиниринг: Ручное написание и редактирование подсказок. DSPy превращает эту работу в задачу оптимизации с метрикой и примерами.
  • LangChain: Фреймворк с интеграциями, инструментами и циклами агентов для создания приложений на базе LLM; подсказки поддерживает разработчик.
  • Настройка гиперпараметров: Поиск обучающих параметров по метрике на проверочной выборке — наиболее близкая аналогия поиска подсказок в DSPy.
  • Составные системы ИИ: Приложения, построенные из нескольких вызовов моделей, поисковых систем и инструментов. DSPy создана для сквозной оптимизации таких конвейеров: подсказки на каждом шаге настраиваются по итоговой метрике.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения