Главная / Разборы

Разбор

DSPy - компилятор для LLM-запросов

DSPY - это акадмеческий OpenSource проект, его задача была показать концепцию автопромтинга, чтобы не тратить время на ручное улучшение prompt-инструкций. Разработчики AI-приложений тратят десятки часов на ручную настройку промтов и отладку цепочек действий, зачастую коррекция одного места ломает качественные метрики в других тестах. DSPy предложил принципиально новый метод: вместо текстовых prompt, собирать готовую функцию с наилучшей комбинацией узлов принятия решений (Prompt, retrieval, few-shots, ChainOfThought, React). Создавать своего рода компилятор для работы с LLM-запросами

Проект DSPY показал практическую пользую академического концепта. Дальше эту идею подхватили и начали развивать в разные оптимизаторы: MIPROv2, BetterTogether и LeReT (статья оптимизаторов), а также архитектуры программ, такие как STORM, IReRa. Сам фреймворк особо не обновляется, но активно продолжается во многих проектах. А также создал новые готовые фреймворки:

Немного о фреймворках-последователях: APE Framework (создать первичный prompt) - единоразово сгенерировать Prompt. Работает в режиме 2 LLM в кольце, пересобирает варианты для получения Топ-K вариантов. Из коробки содержит разные стратегии генерации Prompt. Помогает получить максимум качества на слабенькой модели и небольшом обучающем датасете. Работает только в узле Prompt, иногда в Few-Shots.

Adalflow (добавить узлы, отладить вызовы ReAct) - подходит для отладки цепочки сообщений. Работает во всем пайплайне LLM оптимизации (prompt, few-shots, CoT, Tool-Call, Retreival). Выстраиваем всю цепочку обращений и с помощью переменных указываем что дорабатывать и отправляем на обучение. Результатом получаем прирост метрик (от 5 до 40% прирост). После обучения пайплайна получаете .ckpt файл (выичлительный граф) - сериализованный Python объект. Просто вызываете его и получаете ответ.

Zenbase (few-shots поверх prompt) - спин-офф стартап от создателей DSPY. Помогает выстроить Production Ready автоулучшение промтп. Помогает объединить наработки с APE и Adalflow с пользовательскими оценками. И дооптимизировать запросы, чтобы снизить стоимость, увеличить качество и персонализацию под запросы клиента. Например поверх AdalFlow выстраивает слой персонализации под клиента в онлайн-режиме на основе его прошлых обращений.

К чему это все? Хочется решить задачу автоулучшение промтов, тк это одна из самых скучных и долгих задач в AI-разработке. Ты создал проект, настроил сценарии интеграции и дальше делаешь 100500 тестов, чтобы модель отвечала именно так как ты этого хочешь и выполняла те действия которые от нее ожидаются.

Впервые опубликовано: @corporate_ai.

Читать дальше