Компромисс качества и задержки в RAG¶
Автор: Salimov Shaliko Kamalovich, группа R4210
Генератор: Sphinx 8 + MyST
Retrieval-Augmented Generation (RAG) дополняет языковую модель найденными фрагментами внешней базы знаний [1]. На этой странице проверяется, как число переданных фрагментов \(k\) связано с полнотой контекста, фактической верностью ответа и задержкой.
Методика¶
Для каждого \(k \in \{1,2,4,6,8,10,12\}\) моделируются восемь повторов. Полнота контекста растёт с увеличением \(k\), тогда как лишний контекст постепенно снижает фактическую верность и увеличивает задержку. Такое поведение согласуется с наблюдением, что модель использует длинный контекст неравномерно [2].
Интегральная полезность определяется уравнением (1):
где \(R\) — полнота контекста, \(F\) — фактическая верность, а \(L\) — задержка. Веса заданы заранее и не подбирались под результат.[1]
Устройство конвейера
Запрос преобразуется в top-\(k\) фрагментов, которые образуют контекст для LLM. Параметр \(k\) одновременно управляет объёмом доступных сведений и количеством шума. Дальнейшие результаты интерпретируются по правилам из раздела Результаты.
Результаты¶
| Режим | k | Полнота | Верность | Задержка, с | S(k) |
|---|---|---|---|---|---|
| Малый контекст | 1 | 0,566 | 0,888 | 0,525 | 0,556 |
| 2 | 0,656 | 0,874 | 0,622 | 0,588 | |
| Сбалансированный | 4 | 0,757 | 0,841 | 0,867 | 0,610 |
| 6 | 0,812 | 0,814 | 1,113 | 0,610 | |
| Большой контекст | 8 | 0,842 | 0,790 | 1,408 | 0,595 |
| 10 | 0,862 | 0,732 | 1,714 | 0,563 | |
| 12 | 0,874 | 0,679 | 2,065 | 0,525 |
Максимум по неокруглённым данным достигается при \(k=6\). После этой точки небольшой прирост полноты не компенсирует снижение верности и рост задержки.
Рис. 1 Статический график Matplotlib. Качество насыщается, а задержка продолжает расти.¶
На Рис. 1 виден общий тренд. Интерактивная версия ниже позволяет сопоставить точные значения наведением курсора.
Воспроизводимый расчёт¶
1def rag_utility(recall: float, faithfulness: float,
2 latency: float, max_latency: float) -> float:
3 """Combine quality gains with a normalized latency penalty."""
4 return (
5 0.50 * recall
6 + 0.35 * faithfulness
7 - 0.15 * latency / max_latency
8 )
Полный генератор данных использует фиксированное зерно 4210, сохраняет исходные
повторы и агрегаты в CSV и создаёт оба графика из одной таблицы. Поэтому отличие
двух страниц определяется генератором сайта, а не данными.
Вывод¶
Для заданной модели полезности разумный компромисс достигается при \(k=6\). Увеличивать контекст автоматически невыгодно: полнота продолжает расти, но ответ становится медленнее и менее устойчив к нерелевантным фрагментам. Это вывод только о синтетическом сценарии; для практической RAG-системы функции из раздела Методика нужно заменить измерениями на фиксированном датасете.
Литература¶
Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Kuttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, Sebastian Riedel, and Douwe Kiela. Retrieval-augmented generation for knowledge-intensive nlp tasks. In Advances in Neural Information Processing Systems, volume 33, 9459–9474. 2020. URL: https://proceedings.neurips.cc/paper/2020/hash/6b493230205f780e1bc26945df7481e5-Abstract.html.
Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni, and Percy Liang. Lost in the middle: how language models use long contexts. Transactions of the Association for Computational Linguistics, 12:157–173, 2024. doi:10.1162/tacl_a_00638.