Как language representation связан с тест-тайм компьютингом?

Краткий тезис

Language representation (языковое представление) в RAG — это способ кодирования документов и запросов: от простых плотных эмбеддингов до сложных структурных форматов (графы, иерархии, синтаксические деревья). Test-time computing (инференсные вычисления) — это дополнительные затраты на этапе ответа: многократные запросы к LLM, реранкинг, итеративное уточнение, loops|агентные циклы. Связь прямая: чем более структурировано представление, тем больше тест-тайм вычислений требуется для его обработки, но за счёт этого может сократиться число итераций агента и повыситься качество. Ключевой trade-off — между cost per request и суммарной эффективностью.


1. Термин: Language representation (языковое представление)

В контексте RAG это способ преобразования текста в форму, пригодную для поиска и генерации. Основные типы:

  • Плотные эмбеддинги (dense embeddings) — векторное представление (например, от BERT или E5). Простота, низкая стоимость, но теряется структура.
  • Разреженные представления (sparse embeddings, SPLADE) — более интерпретируемые, но требуют особых индексов.
  • Структурированные представления — графы знаний (KG-RAG), иерархические индексы (chunks|parent-child chunks), деревья синтаксического разбора (syntactic trees).
  • Гипертекстовые представления — связки чанков с метаданными, ссылками (Obsidian-подобные графы).

Каждый тип имеет разный уровень структурированности: от плоских списков до многомерных графов. Чем выше структурированность, тем больше информации о связях и иерархии, но сложнее её обработать на этапе поиска.


2. Термин: Test-time computing (инференсные вычисления)

Это вычислительные затраты, которые происходят в момент получения ответа пользователя, в отличие от предварительной обработки (индексации). Включают:

  • Поиск (retrieval) — вычисление сходства между эмбеддингом запроса и документами.
  • Реранкинг (re-ranking) — дополнительный проход с LLM для уточнения результатов.
  • Многократные генерации — несколько вызовов LLM (chain-of-thought, self-consistency, multi-step retrieval).
  • Агентные циклы — планирование, выполнение инструментов, обратная связь.
  • Сложные пайплайны — графовые алгоритмы (PageRank на документных графах), кластеризация на лету.

Cost per request (стоимость одного запроса) растёт с увеличением тест-тайм вычислений. Latency (задержка) тоже увеличивается.


3. Прямая связь: структурированность → сложность обработки

Тип представленияУровень структурированностиТребуемые тест-тайм вычисленияТипичный cost per requestКачество retrieval
Плотные эмбеддинги (FAISS)Низкий1 поиск ANN (k-NN)НизкийСреднее
Разреженные эмбеддинги (SPLADE)СреднийПоиск по инвертированному индексу + пост-обработкаСреднийВыше
Иерархические чанки (parent-child)СреднийДвухуровневый поиск: сначала parent, потом childСреднийВысокое (контекст)
Графовые представления (KG-RAG)ВысокийПоиск сущностей, обход графа, алгоритмы (например, BFS)ВысокийОчень высокое (связи)
Синтаксические деревьяОчень высокийПарсинг зависимостей, сравнение поддеревьевОчень высокийСпецифичное (точность)

Пример: В простой RAG с плотными эмбеддингами тест-тайм вычисление — один dot product. В agentic RAG с графовым представлением агент может сначала найти ключевые сущности, потом обойти граф соседей и отфильтровать релевантные подграфы — это +2-3 LLM вызова.


4. Основной trade-off: стоимость vs. количество итераций агента

Агент в agentic RAG обычно выполняет несколько шагов: analyse, retrieve, reason, act. Если представление слабое (только эмбеддинги), агент может совершать много итераций, переписывая запросы, дополняя контекст, перепроверяя факты. Если представление богатое (графы семантических связей), агент за один шаг получает больше релевантного контекста, и число итераций снижается.

Уравнение trade-off

Общая стоимость ≈ (cost per итерация) × (число итераций)
  • Слабое представление: cost per итерация низкий, но число итераций высокое (3-5).
  • Сильное представление: cost per итерация высокий (из-за сложного поиска), но число итераций низкое (1-2).

Оптимум зависит от задачи: для фактологических QA (один факт) выгоднее слабое представление; для multi-hop вопросов (несколько связанных фактов) — сильное.


5. Влияние на качество и точность

Более структурированное представление потенциально даёт:

  • Лучший контекст — агент видит не просто список чанков, а их иерархию и связи.
  • Меньше галлюцинаций — за счёт более релевантных документов.
  • Выше safety — легче фильтровать нерелевантные или вредные связи.

Однако есть риск over-engineering: чрезмерная структура может запутывать агента, особенно если граф построен шумно.


6. Примеры в agentic RAG

6.1 HypD (Hypothetical Document Embeddings)

Представление: гипотетический документ (сгенерированный LLM). Test-time computing: 1 генерация гипотетического текста, затем поиск эмбеддингом этого текста. Увеличивает cost per request, но повышает recall.

6.2 Multi-step retrieval с query decomposition

Представление: иерархическое (подвопросы → чанки). Агент на каждом шаге извлекает новые фрагменты, используя представление предыдущего шага. Test-time computing: N шагов × retrieval.

6.3 GraphRAG (Microsoft)

Представление: граф сущностей и связей. Test-time computing: community detection, summarisation сообществ. Высокие затраты, но для глобальных вопросов (summary по всему корпусу) качество значительно выше.


7. Как выбирать баланс на практике

  1. Оцените сложность вопросов — если преобладают простые QA, используйте плотные эмбеддинги.
  2. Измерьте recall@k — если низкий, возможно, стоит повысить структурированность (иерархия, реранкинг).
  3. Проведите A/B тест — сравните cost per request и качество (faithfulness, answer relevancy) для обоих вариантов.
  4. Учтите SLA по latency — если нужен быстрый ответ (<1s), выбирайте минимум тест-тайм вычислений.
  5. Используйте адаптивные стратегии — например, начинать с простого поиска и переключаться на сложный только при низкой уверенности (confidance-based routing). Это компромисс между cost и качеством.

8. Технологические инструменты

ИнструментТип представленияTest-time computing overhead
FAISSDense embeddingsОчень низкий
Milvus / QdrantDense + sparseНизкий
GraphDB (Neo4j, ArangoDB)ГрафовоеВысокий (зависит от запроса)
LlamaIndexИерархические индексыСредний
LangChain AgentЛюбой + агентный циклПеременный
RAPTOR (Hierarchical summarisation)Древовидное (summaries)Высокий (summarisation на лету)

9. Метрики для оценки эффективности

  • Cost per answer — суммарные вычислительные затраты (токены, время, деньги).
  • Correctness — точность ответа (F1, EM).
  • Faithfulness — соответствие фактам из документов.
  • Agent efficiency — количество итераций агента до финального ответа.
  • Latency — время ответа пользователю.

График зависимости при повышении структурированности cost per request растёт, но количество итераций падает. Оптимум — точка пересечения кривых.


Пет-проект для закрепления

Задача Выяснить, как выбор language representation влияет на cost и качество в agentic RAG для multi-hop вопросов.

Инструменты Python, LangChain, FAISS, NetworkX (для графа), OpenAI API (для генерации и эмбеддингов), RAGAS (для оценки).

Шаги:

  1. Соберите датасет вопросов, требующих соединения 2-3 фактов (например, "Кто был президентом страны, где находится Эйфелева башня?").
  2. Создайте два представления для одного корпуса документов:
    • Вариант A: чанки с плотными эмбеддингами (text-embedding-3-small).
    • Вариант B: граф сущностей на основе SpaCy + связи по общим ключевым словам (NetworkX).
  3. Создайте двух агентов:
    • Агент с простым ретривалом (1 шаг).
    • Агент с графовым обходом (находить сущность, затем обход соседей).
  4. Прогоните оба варианта на 50 вопросах, замерьте:
    • Cost (токены ввода+вывода).
    • Число вызовов LLM (итераций).
    • Correct по gold answer.
    • Faithfulness (RAGAS).
  5. Постройте scatter plot: cost vs. correctness.

Ожидаемый результат Вы увидите, что для простых вопросов вариант A дешевле и достаточно точен, а для сложных — вариант B даёт меньше галлюцинаций, хотя дороже. Сделайте вывод о trade-off.


Связь с другими вопросами

ВопросТема
194Что такое Agentic RAG и как он отличается от классического RAG?
195Как агент принимает решение, когда выполнять retrieval?
197Как планирование (planning) в агентах влияет на эффективность RAG?
198Какие метрики важны для оценки агента в RAG?
199Как проектировать multi-agent системы в RAG?
200Как управлять памятью агента в длинных сессиях?

Навигация