После появления LLM ок текстовые энкодеры стали часто использовать для задач RAG.
Они позволяют превратить текст в осмысленный вектор, эмбединг, по которому можно искать релевантные куски в условной базе знаний нужную информацию, и подсовывать в контекст ллмки.
Однако следует понимать что тут есть одна идейная проблема - мы хотим что бы "вектора смысла" у
> Помогите не могу зайти в электронную почту, пишет учетка заблокирована за большое число неверных попыток, что делать?
> В случае ввода пароля более 10 раз неверно, аккаунт блокируется. Для разблокировки необходимо создать заявку в хелпдеск
смысл этих предложений немного разный, блин, одно из них вообще вопрос, а второе - утвердительное предложение. Из за чего механизм с векторным поиском может давать много сбоев.
Чуть чуть помогает исправить ситуацию - reranker-ы. Они работают чуть по другому, принимая на вход 2 куска текста - вопрос и элемент базы знаний - анализируют их вместе и возвращают число - релевантность чанка по отношению к вопросу. Можно представить что это 2 LLM -ки, с перемешанными последними слоями и Value Head-ом на конце.
Такой подход позволяет более глубоко анализировать семантику языка, но и дороже в компьюте (для проверки N чанков потребуется O(N^2) вызовов модели, когда как с векторынми механизмами O(N)), так что его имеет смысл ставить на втором этапе работы вашего RAG-а для переранжирования уже более менее релевантных кусков найденых векторным поиском
Для обучения таких штук обычно берут претреинед модельки, после чего поверх учат метриклернингом
Ну и в подарок небольшой гайд как выбрать reranker под вашу задачу, в коментариях в полном качестве
Post #111
2.15K

- 👍 8
- 🔥 3
- ❤🔥 2
- 🥰 1
- 💩 1