DSPy — программирование языковых моделей
Декларативные сигнатуры, модули и компиляторы
Проблема: Вы часами подбирали идеальный промпт. Потом модель обновилась — и он сломался. Перешли на другую LLM — снова сломался. Как создавать промпты, которые переживают изменения?
Решение: Программируй, а не промпти
DSPy (Declarative Self-improving Python) — фреймворк, который заменяет хрупкие ручные промпты декларативными программами. Вы описываете сигнатуры — какой вход и какой выход ожидается — затем выбираете модуль рассуждения (Predict, ChainOfThought, ReAct), а компилятор автоматически оптимизирует промпт с лучшими few-shot примерами и инструкциями для ваших данных и метрики.
Представьте это как ORM для баз данных:
- 1. Определи сигнатуру: Опиши поля ввода -> вывода: "context, question -> answer"
- 2. Выбери модуль: Выбери паттерн рассуждения: Predict, ChainOfThought, ReAct или ProgramOfThought
- 3. Скомпилируй оптимизатором: BootstrapFewShot или MIPRO автоматически подбирает лучшие примеры и инструкции по метрике
- 4. Деплой скомпилированной программы: Оптимизированная программа работает с любой LLM — портабельна и воспроизводима
Где это используется?
- NLP-пайплайны: Цепочки модулей (суммаризация -> классификация -> извлечение) с автооптимизированными промптами на каждом шаге
- Оптимизация RAG: Автоматическая оптимизация запросов к поиску и генерации ответов вместе для лучших результатов
- Многошаговые вопросы: Сложные вопросы, требующие нескольких шагов рассуждения — DSPy выстраивает цепочку модулей и оптимизирует весь пайплайн
- Классификация: Автоподобранные промпты с лучшими few-shot примерами, выбранными компилятором для ваших данных
Интересный факт: DSPy создан той же группой Stanford NLP, что разработала ColBERT и Baleen. Название "DSPy" обыгрывает подход PyTorch nn.Module — сигнатуры как размерности тензоров, модули как слои нейросети.
Попробуйте сами!
Исследуй интерактивную визуализацию ниже, чтобы увидеть, как DSPy превращает ручной промпт в скомпилированную оптимизированную программу.
DSPy: программирование языковых моделей
Исследуй сигнатуры, модули, оптимизаторы и компиляцию
"context, question -> answer"
ChainOfThought(QA)
BootstrapFewShot + метрика
Автооптимизирован с лучшими примерами
Попробуй сам
Интерактивное демо этой техники
Построить систему ответов на вопросы: принимает контекст и вопрос, возвращает точный ответ
На основе предоставленного контекста, Python был впервые выпущен в 1991 году. Он был создан Гвидо ван Россумом и известен своей читаемостью кода благодаря значимым отступам.
Reasoning: Контекст прямо указывает, что Python был "впервые выпущен в 1991 году." Answer: 1991
Ручной промпт дал правильный, но многословный ответ с ненужным пересказом. Скомпилированный DSPy промпт дал краткий, сфокусированный ответ, потому что компилятор подобрал демонстрации, обучающие модель нужному формату.
Создайте бесплатный аккаунт для решения челленджей
3 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения