Generated Knowledge Prompting

[object Object]

Generated Knowledge Prompting (промптинг с генерацией знаний) — техника, при которой ответ на вопрос разбивается на два этапа: сначала модель генерирует релевантные факты и знания по теме, а затем использует эти знания для формирования точного ответа. Это двухшаговый процесс: «сначала вспомни, что знаешь, потом отвечай».

В 2026 году эту технику лучше понимать как cheap internal retrieval surrogate. Она не заменяет внешний поиск и не делает ответ автоматически grounded, но часто помогает вытащить из модели те знания, которые при прямом вопросе остаются неактивированными.

Представьте, что вас спросили: «Что полезнее — яблоко или банан?». Если ответить сразу — можно ошибиться. Но если сначала вспомнить: «Яблоки содержат много клетчатки и витамина C... Бананы богаты калием и витамином B6...» — и только потом сравнить, ответ будет точнее. Generated Knowledge работает так же: модель сначала «вспоминает» факты, потом отвечает.

Суть в двух словах

Generated Knowledge — это двухэтапный подход: сначала вы просите модель сгенерировать релевантные знания по теме (факты, определения, контекст), а затем — ответить на вопрос, используя эти знания. Это как подготовка перед экзаменом: сначала повторить материал, потом отвечать.

ПромптChatGPT
Этап 1: Сгенерируй 3-5 ключевых фактов о влиянии сна на продуктивность.

Этап 2: Используя эти факты, ответь на вопрос: оправданно ли спать по 5 часов, чтобы больше работать?
Ответ модели

Этап 1 — Генерация знаний:

  1. Взрослому необходимо 7-9 часов сна для полноценного восстановления (рекомендация ВОЗ).
  2. При хроническом недосыпе (менее 6 часов) когнитивные способности снижаются на 25-30%.
  3. Недосып увеличивает количество ошибок и время на выполнение задач.
  4. Один час дополнительного сна может повысить продуктивность на 10-15%.
  5. Хроническое недосыпание повышает риск сердечно-сосудистых заболеваний и диабета.

Этап 2 — Ответ: Нет, спать по 5 часов ради работы — стратегически невыгодно. Сэкономив 2-3 часа сна, вы теряете 25-30% когнитивных способностей. Это значит: 8 часов работы при недосыпе эквивалентны ~6 часам эффективной работы. Выгоднее спать 7-8 часов и работать с полной продуктивностью, чем спать 5 часов и работать с ошибками.

Подходит для: вопросов, требующих экспертных знаний, анализа, сравнения, принятия решений.

Что такое Generated Knowledge Prompting

Техника была предложена Liu et al. в 2022 году. Авторы обнаружили, что если перед ответом на вопрос попросить модель сгенерировать релевантные знания, точность ответов значительно возрастает — особенно на задачах, требующих здравого смысла (commonsense reasoning).

Ключевое наблюдение: модель «знает» больше, чем демонстрирует при прямом ответе. Генерация знаний «активирует» релевантную информацию, которая иначе осталась бы неиспользованной.

Как это работает

Зачем это нужно

При прямом ответе модель может:

  • Опираться на поверхностные ассоциации вместо глубоких знаний
  • Упустить важный контекст
  • Дать ответ на основе «интуиции» вместо фактов

Generated Knowledge решает эту проблему, заставляя модель сначала «активировать» нужные знания, а потом рассуждать на их основе.

Примеры использования

Вопрос, требующий экспертных знаний

ПромптClaude Sonnet 4
Этап 1: Сгенерируй 5 ключевых фактов о технологии блокчейн и её реальных применениях за пределами криптовалют.

Этап 2: На основе этих знаний ответь: стоит ли логистической компании внедрять блокчейн для отслеживания грузов?
Ответ модели

Этап 1 — Знания:

  1. Блокчейн обеспечивает неизменяемость записей — данные нельзя задним числом подделать.
  2. В логистике блокчейн используют Maersk (TradeLens) и Walmart (отслеживание продуктов).
  3. Стоимость внедрения блокчейна для среднего бизнеса: от $100K до $500K.
  4. Альтернативы: централизованные базы данных с аудитом стоят в 5-10 раз дешевле.
  5. Блокчейн оправдан при множестве недоверяющих друг другу участников (поставщик → перевозчик → склад → получатель).

Этап 2 — Ответ: Зависит от масштаба и количества участников цепи.

Стоит внедрять, если:

  • В цепи 5+ независимых участников, которые не доверяют друг другу
  • Критична неизменяемость данных (фармацевтика, продукты питания)
  • Компания крупная и может позволить себе инвестицию от $100K

Не стоит, если:

  • Цепь поставок короткая (2-3 участника)
  • Бюджет ограничен
  • Достаточно обычной базы данных с логированием

Для большинства средних логистических компаний централизованная система с аудитом будет оптимальнее и дешевле.

Сравнение с опорой на факты

ПромптChatGPT
Этап 1: Сгенерируй ключевые факты о:
- Электромобилях (расходы, экология, инфраструктура)
- Гибридных автомобилях (расходы, экология, инфраструктура)

Этап 2: Используя эти знания, порекомендуй тип автомобиля для жителя Подмосковья, который проезжает 80 км в день.
Ответ модели

Этап 1 — Знания: Электромобили:

  • Стоимость зарядки: ~1.5-2 руб/км (домашняя зарядка)
  • Запас хода: 300-500 км для современных моделей
  • Инфраструктура в РФ: ~2000 зарядных станций, в Подмосковье — ограниченно
  • Зимой запас хода падает на 20-40%

Гибриды:

  • Стоимость топлива: ~4-5 руб/км
  • Не зависят от зарядной инфраструктуры
  • Экономия топлива: 30-50% по сравнению с ДВС
  • Обслуживание дороже обычного авто, но дешевле электромобиля

Этап 2 — Рекомендация: Для жителя Подмосковья с пробегом 80 км/день рекомендую гибрид.

Почему:

  1. 80 км/день — укладывается в запас хода электромобиля, НО зимой в Подмосковье запас падает на 30-40%, а зарядная инфраструктура ограничена.
  2. Гибрид экономит 30-50% топлива (при 80 км/день ≈ 40 000 руб./год экономии) и не зависит от наличия зарядки.
  3. Если есть домашняя зарядка и гараж — электромобиль тоже хороший вариант, но с рисками зимой.

Оптимальный выбор: гибрид сейчас, электромобиль — через 3-5 лет, когда инфраструктура в Подмосковье разовьётся.

Сравнение: прямой ответ vs Generated Knowledge

Прямой ответ (без генерации знаний)
Вопрос: Что лучше для малого бизнеса — сайт или приложение? Ответ: Зависит от бизнеса. Обычно сайт проще и дешевле. (Общий, поверхностный ответ)
С Generated Knowledge (двухэтапный)
Этап 1: Сгенерируй 5 фактов о стоимости, охвате и вовлечённости для сайтов vs приложений. Этап 2: На основе этих знаний ответь, что лучше для малого бизнеса. (Подробный ответ с цифрами, нюансами и чёткой рекомендацией)
Для максимальной точности используйте Generated Knowledge + Self-Consistency: сгенерируйте 3-5 наборов знаний, получите ответ на основе каждого, и выберите наиболее частый ответ. Это особенно полезно для задач с одним правильным ответом.

Как понимать Generated Knowledge в 2026

Сегодня техника занимает промежуточное место между прямым single-shot ответом, CoT/structured reasoning и полноценным retrieval или file search. Её ценность в том, что она дешёво добавляет stage of preparation перед ответом. Иногда этого уже достаточно, чтобы модель перестала отвечать слишком поверхностно.

Где техника реально полезна

Generated Knowledge особенно полезен, когда:

  • вопрос требует background knowledge, но не обязательно внешнего поиска;
  • нужно получить более насыщенный анализ без сложной orchestration;
  • у вас мало инфраструктуры, но хочется чуть лучше quality floor.

Это делает подход удобным для education, brainstorming, strategy prompts, comparative answers и expert-style drafting.

Где техника быстро упирается в предел

Нужно помнить и ограничения: модель может сначала сгенерировать неточные “знания”, а потом сама же на них опереться; для свежих, меняющихся или высокоставочных фактов нужен внешний retrieval, а не внутреннее “вспоминание”; а на некоторых задачах хороший system prompt уже даёт нужную глубину. Практическое правило простое: если нужен grounded answer, идите во внешний поиск. Если нужен более содержательный answer из уже имеющихся знаний модели, Generated Knowledge всё ещё полезен.

Когда использовать

Плюсы

  • Значительно повышает точность на задачах здравого смысла
  • Активирует знания, которые модель не использует при прямом ответе
  • Прозрачный процесс — видно, на каких фактах основан ответ
  • Простой в реализации — два последовательных промпта
  • Работает с любыми моделями

Минусы

  • Увеличивает количество токенов (два этапа вместо одного)
  • Замедляет получение ответа
  • Сгенерированные знания могут быть неточными (галлюцинации)
  • Избыточен для простых фактических вопросов

Варианты применения

ЗадачаГенерируемые знанияЭффект
Вопрос-ответФакты по темеТочнее ответ
СравнениеХарактеристики каждого вариантаОбъективнее анализ
Принятие решенийПлюсы/минусы, контекстОбоснованнее рекомендация
СуммаризацияКлючевые аспекты темыПолнее охват
Написание текстаТезисы и примерыСодержательнее текст

Техническая реализация

Двухэтапный Generated Knowledge (OpenAI)

from openai import OpenAI

client = OpenAI()

def generated_knowledge(
    question: str,
    n_facts: int = 5,
) -> dict:
    """
    Generated Knowledge Prompting:
    1. Генерация релевантных знаний
    2. Ответ с опорой на знания
    """
    # Этап 1: Генерация знаний
    knowledge_response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {
                "role": "system",
                "content": (
                    "Ты — эксперт. Сгенерируй релевантные "
                    "факты и знания по теме вопроса. "
                    "Каждый факт должен быть конкретным "
                    "и проверяемым."
                ),
            },
            {
                "role": "user",
                "content": (
                    f"Вопрос: {question}\n\n"
                    f"Сгенерируй {n_facts} ключевых фактов, "
                    "которые помогут ответить на этот вопрос. "
                    "Каждый факт на новой строке."
                ),
            },
        ],
        temperature=0.3,
    )

    knowledge = knowledge_response.choices[0].message.content

    # Этап 2: Ответ с опорой на знания
    answer_response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {
                "role": "system",
                "content": (
                    "Ты отвечаешь на вопросы, опираясь "
                    "на предоставленные знания. "
                    "Используй факты для обоснования ответа."
                ),
            },
            {
                "role": "user",
                "content": (
                    f"Знания по теме:\n{knowledge}\n\n"
                    f"Вопрос: {question}\n\n"
                    "Ответь, опираясь на приведённые знания."
                ),
            },
        ],
        temperature=0,
    )

    return {
        "knowledge": knowledge,
        "answer": answer_response.choices[0].message.content,
    }


result = generated_knowledge(
    "Стоит ли использовать NoSQL базу данных "
    "для e-commerce платформы с 10 000 товарами?"
)
print(f"Знания:\n{result['knowledge']}\n")
print(f"Ответ:\n{result['answer']}")

Generated Knowledge через Anthropic API

import anthropic

client = anthropic.Anthropic()

def generated_knowledge_claude(
    question: str,
    domain: str = "general",
) -> dict:
    """
    Generated Knowledge через Claude.
    Поддерживает указание предметной области.
    """
    # Этап 1: Генерация знаний
    knowledge_msg = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": (
                    f"Область: {domain}\n"
                    f"Вопрос: {question}\n\n"
                    "Сгенерируй 5 экспертных фактов, "
                    "релевантных этому вопросу. "
                    "Каждый факт должен быть конкретным, "
                    "с числами или примерами где возможно."
                ),
            }
        ],
    )

    knowledge = knowledge_msg.content[0].text

    # Этап 2: Ответ
    answer_msg = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=2048,
        messages=[
            {
                "role": "user",
                "content": (
                    f"Релевантные знания:\n{knowledge}\n\n"
                    f"Вопрос: {question}\n\n"
                    "Дай развёрнутый ответ, опираясь "
                    "на приведённые знания. Ссылайся "
                    "на конкретные факты."
                ),
            }
        ],
    )

    return {
        "knowledge": knowledge,
        "answer": answer_msg.content[0].text,
    }


result = generated_knowledge_claude(
    question="Как подготовить систему к нагрузке в 10x?",
    domain="software engineering",
)
print(result["answer"])

Продвинутый паттерн: множественная генерация знаний + голосование

from openai import OpenAI
from collections import Counter
import re

client = OpenAI()

def knowledge_with_voting(
    question: str,
    n_knowledge_sets: int = 3,
) -> dict:
    """
    Generated Knowledge + Self-Consistency:
    генерируем несколько наборов знаний,
    получаем ответ от каждого,
    выбираем голосованием.
    """
    answers = []
    knowledge_sets = []

    for i in range(n_knowledge_sets):
        # Генерируем набор знаний с вариативностью
        kg = client.chat.completions.create(
            model="gpt-4o",
            messages=[
                {
                    "role": "user",
                    "content": (
                        f"Вопрос: {question}\n\n"
                        "Сгенерируй 5 релевантных фактов. "
                        "Будь оригинален — не повторяй "
                        "очевидные вещи."
                    ),
                }
            ],
            temperature=0.7,  # выше для разнообразия
        )
        knowledge = kg.choices[0].message.content
        knowledge_sets.append(knowledge)

        # Получаем ответ на основе этих знаний
        ans = client.chat.completions.create(
            model="gpt-4o",
            messages=[
                {
                    "role": "user",
                    "content": (
                        f"Знания:\n{knowledge}\n\n"
                        f"Вопрос: {question}\n\n"
                        "Ответь кратко (1-2 предложения). "
                        "В конце напиши 'ОТВЕТ: <вывод>'."
                    ),
                }
            ],
            temperature=0,
        )

        text = ans.choices[0].message.content
        match = re.search(r"ОТВЕТ:\s*(.+)", text)
        if match:
            answers.append(match.group(1).strip())

    # Голосование
    counter = Counter(answers)
    best_answer, count = counter.most_common(1)[0]

    return {
        "answer": best_answer,
        "confidence": count / len(answers),
        "all_answers": answers,
        "knowledge_sets": knowledge_sets,
    }


result = knowledge_with_voting(
    "Является ли помидор фруктом или овощем "
    "с ботанической и кулинарной точки зрения?"
)
print(f"Ответ: {result['answer']}")
print(f"Уверенность: {result['confidence']:.0%}")
Сгенерированные знания могут содержать галлюцинации. Модель «вспоминает» факты из своих обучающих данных, но может выдумать несуществующую статистику или исследование. Для критичных задач комбинируйте Generated Knowledge с RAG (поиск по внешним источникам) для верификации фактов.

Оценка эффективности

Точность на задачах здравого смысла: прямой ответ vs Generated Knowledge (NumerSense, CSQA)
Стандартный промпт65%
Chain of Thought72%
Generated Knowledge (1 набор)77%
Generated Knowledge + Voting (3 набора)82%

Данные на бенчмарках здравого смысла из статьи Liu et al. Generated Knowledge повышает точность на 12-17% по сравнению со стандартным промптом. С голосованием по нескольким наборам знаний — ещё выше.

Проверьте себя

Проверьте себя

1. Из каких двух этапов состоит Generated Knowledge Prompting?

2. Почему Generated Knowledge повышает точность?

3. Для каких задач Generated Knowledge наиболее эффективен?