Sobes.tech
Back to questions
Middle — Senior
10

Что такое HyDE (Hypothetical Document Embeddings)?

Companies where asked
Hybrid
ПАО Газпром нефть
SoftInterMob

Answer from AI

sobes.tech AI

Что хотят услышать интервьюеры:

HyDE — это техника для улучшения семантического поиска в RAG-сценариях. Вместо того чтобы искать по короткому и иногда шумному запросу, модель сначала генерирует гипотетический ответ или документ, а затем строит эмбеддинг уже по этому тексту. Это часто помогает точнее находить релевантные документы, особенно когда исходный запрос сформулирован кратко или неоднозначно.

Определение:

HyDE (Hypothetical Document Embeddings) — подход, при котором LLM генерирует “псевдодокумент” или гипотетический ответ на пользовательский запрос, а затем его embedding используется для поиска похожих реальных документов в векторной базе.

Идея в том, что embedding развернутого, содержательного текста обычно лучше отражает смысл запроса, чем embedding короткой фразы. Это особенно полезно, когда в запросе мало ключевых слов, но есть намерение пользователя.

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

Например, пользователь спрашивает: «Как уменьшить задержку в RAG-системе?»

Система по HyDE сначала просит LLM сгенерировать краткий гипотетический ответ вроде: «Задержку в RAG можно уменьшить за счет сокращения числа retrieved chunks, использования более быстрых embedding-моделей, кэширования и уменьшения размера контекста».

Затем embedding этого текста используется для поиска статей, где обсуждаются latency optimization, retrieval tuning и prompt/context reduction.

query = "Как уменьшить задержку в RAG-системе?"

hypothetical_doc = llm.generate(
    f"Напиши краткий информативный ответ на вопрос: {query}"
)

query_embedding = embedder.encode(hypothetical_doc)
docs = vector_db.search(query_embedding, top_k=5)

Пояснение кода:

В этом примере код показывает общий пайплайн HyDE.

Сначала пользовательский запрос передается в LLM, которая генерирует гипотетический текст — не фактологически обязательный ответ, а скорее “хорошо сформулированный документ” по теме запроса. Затем этот текст преобразуется в embedding. После этого векторная база ищет документы, embedding которых ближе всего к embedding гипотетического текста.

То есть поиск идет не по исходной короткой фразе напрямую, а по более насыщенному семантически тексту, который помогает лучше “раскрыть” смысл запроса.

Ключевые моменты:

  • HyDE улучшает retrieval за счет генерации гипотетического текста перед поиском.
  • Особенно полезен для коротких, расплывчатых или терминологически бедных запросов.
  • Используется в RAG как способ сделать запросный embedding более информативным.
  • Обычно повышает recall, но добавляет дополнительный шаг с LLM и, соответственно, задержку.
  • Это не генерация финального ответа пользователю, а промежуточный этап для поиска документов.
  • Подходит, когда нужно лучше сопоставлять смысл запроса и корпуса документов без точного совпадения слов.