Prompt инжиниринг

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

Промпт-инжиниринг — это дисциплина по разработке и оптимизации промптов (запросов) для эффективного взаимодействия с большими языковыми моделями (LLM). Качество промпта напрямую определяет точность, релевантность и безопасность ответа модели. Эта область стремительно развивается, переходя от ручного подбора инструкций к созданию сложных агентных систем и использованию моделей со встроенными механизмами рассуждений.

Базовые принципы и структура промпта

Хотя единого стандарта не существует, эффективные промпты строятся на общих подходах, предлагаемых разными исследователями и компаниями (например, 6 стратегий от OpenAI или практические руководства от Anthropic).

  • Эффективный промпт часто включает следующие компоненты:
    • Роль (Persona): Задает контекст и стиль поведения модели ("Ты — старший научный сотрудник...").
    • Инструкции (Instructions): Четкие, пошаговые указания, что нужно сделать.
    • Контекст (Context): Необходимая информация для выполнения задачи.
    • Примеры (Examples): Демонстрация желаемого формата или стиля (few-shot prompting).
    • Формат вывода (Output Format): Указание на структуру ответа (например, JSON, Markdown).

Техники улучшения рассуждений (Reasoning)

Эти техники заставляют модель "думать" более структурированно.Важное замечание (Эмерджентность): Эффективность техники `Chain‑of‑Thought` проявляется только на больших моделях (≈100 млрд параметров и выше), модели меньшего размера демонстрируют несущественный эффект либо ухудшение результатов.

  • Chain-of-Thought (CoT): Инструкция модели генерировать пошаговое рассуждение перед финальным ответом ("Думай по шагам").
  • Вариации и альтернативы CoT:
    • Self-Consistency: Генерация нескольких цепочек рассуждений и выбор наиболее частого ответа путем "голосования".
    • Tree-of-Thoughts (ToT): Исследование нескольких путей рассуждений в виде дерева, с оценкой и возвратом на предыдущие шаги.
    • Graph-of-Thought (GoT): Продвинутая техника, имеющая две основные реализации: одна моделирует рассуждения как граф для более гибких логических потоков (Besta et al.), другая фокусируется на слиянии путей рассуждений (Yao et al.).
  • Встроенные механизмы рассуждений (Reasoning Models): Сообщается о разработке нового поколения моделей (таких как o1 и o3 от OpenAI), которые изначально обучаются с внутренними цепочками рассуждений. Это позволяет им выполнять сложные задачи без явного CoT-промптинга.

Управление контекстом и работа с памятью

С ростом контекстных окон появляются новые вызовы и решения.

  • Контекстные окна (2024-2025):
Модель Максимальное контекстное окно
Google Gemini 2.0 Pro 2 млн токенов
Google Gemini 1.5 Pro 2 млн токенов
Anthropic Claude 3.5 Sonnet ~200 тыс токенов
OpenAI GPT-4o ~128 тыс токенов

Начиная с марта 2025 года, Google Gemini 2.5 Pro представлен с контекстным окном в 1 млн токенов, а версия Pro-Experimental обещает 2 млн токенов в мае 2025.

  • Retrieval-Augmented Generation (RAG): Классический RAG дополняет промпт информацией из внешних баз данных. Современные реализации включают:
    • GraphRAG: Использует графы знаний для извлечения более семантически связанных данных.
    • Мультимодальный RAG: Работает не только с текстом, но и с изображениями, аудио и видео.
    • Agentic RAG: Интегрирует RAG в агентные циклы, где агент самостоятельно решает, когда и какую информацию искать.
  • Техники для длинного контекста: Для эффективной работы с большими окнами используются продвинутые, но часто проприетарные техники, такие как Cascading KV Cache и Infinite Retrieval.

Продвинутые техники: агенты и инструменты

  • Использование инструментов (Tool Usage):
    • Function Calling: Встроенная в модели (GPT-4, Claude 3.5) возможность вызывать внешние API.
    • Model Context Protocol (MCP): Согласно некоторым предварительным отчётам (требуется подтверждение), развивается новый стандарт для унификации API инструментов, поддерживаемый Microsoft.
  • Агенты и фреймворки (2024-2025):
    • LangChain (v0.3): С выходом LangChain v0.3 (сентябрь 2024) фреймворк полностью перешёл на Pydantic 2 и прекратил поддержку Python 3.8 в соответствии с EOL-сроком в октябре 2024.[1]
    • AutoGen: Полностью перешел на асинхронную, событийно-ориентированную архитектуру (actor model).
    • CrewAI: Быстро набирающий популярность высокопроизводительный фреймворк для оркестрации многоагентных систем.
  • No-code платформы: Инструменты вроде AutoGen Studio позволяют создавать и настраивать сложных агентов без написания кода.

Техники снижения галлюцинаций

Галлюцинации (генерация фактически неверной информации) остаются ключевой проблемой. По данным на 2024 год, их уровень варьируется от 3% до 16% у ведущих моделей, а экономический ущерб от них оценивается в десятки миллиардов долларов.

  • Классические методы: RAG, запрос цитирования, настройка параметров генерации (температура, top-p).
  • Современные подходы к выравниванию (Alignment):
    • Constitutional AI (CAI): Метод, предложенный Anthropic, где модель обучается следовать набору принципов ("конституции"), используя AI-сгенерированную обратную связь.
    • Direct Preference Optimization (DPO): Более простая и эффективная альтернатива RLHF. Исследования DPO в мультимодальных VLMs (например, для радиологических отчётов) фиксируют снижение галлюцинаций в 3–4.8 раза.

Паттерны промптов: актуальное состояние

Многие паттерны (Persona, Output Customization) остаются актуальными.

  • Требуют переосмысления:
    • Fact Check List Pattern: Признан ненадежным. Модели плохо справляются с самопроверкой фактов через промптинг и требуют интеграции с внешними верификационными системами.
  • Новые паттерны (2024-2025):
    • Meta-prompting: Использование одной LLM для генерации и оптимизации промптов для другой LLM.
    • Mixture-of-Experts (MoE) Prompts: Создание промптов, которые динамически обращаются к разным "экспертным" частям модели.
    • Мультимодальные паттерны: Структуры промптов, включающие текст, изображения и другие типы данных для комплексных запросов.

Ссылки

Литература

  • Radford, A. et al. (2019). Language Models are Unsupervised Multitask Learners. PDF.
  • Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
  • Li, X. L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
  • Liu, Y. et al. (2021). Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity. arXiv:2104.08786.
  • Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
  • Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Zhang, Z. et al. (2022). Automatic Chain of Thought Prompting in Large Language Models. arXiv:2210.03493.
  • Zhou, D. et al. (2022). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models. arXiv:2205.10625.
  • Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
  • Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
  • Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
  • Chang, K. et al. (2024). Efficient Prompting Methods for Large Language Models: A Survey. arXiv:2404.01077.
  • Genkina, D. (2024). AI Prompt Engineering Is Dead. IEEE Spectrum. [2].
  • Li, Z. et al. (2024). Prompt Compression for Large Language Models: A Survey. arXiv:2410.12388.
  • Liang, X. et al. (2024). Internal Consistency and Self-Feedback in Large Language Models: A Survey. arXiv:2407.14507.
  • Li, W. et al. (2025). A Survey of Automatic Prompt Engineering: An Optimization Perspective. arXiv:2502.11560.
  • Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. EMNLP 2025. PDF.
  • Yang, B. et al. (2025). Hallucination Detection in Large Language Models with Metamorphic Relations. arXiv:2502.15844.

Примечания

  1. «LangChain v0.3». https://python.langchain.com/docs/versions/v0_3/.[1]