Как заставить RAG-систему работать точно: проблема больших чанков

RAG база данных

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

Хранить большие куски с разными смыслами неразумно. А разумно — разбить информацию на смысловые чанки, кусочки, и каждому чанку задать вектор.

Почему размер имеет значение в RAG

Особенно актуально это для большой RAG-базы. Если вектору будет соответствовать большой объем информации, то небольшое количество векторов может раздуть контекст.

А если их будет сильно больше, то весь смысл RAG вообще теряется. Нам же надо прямо точечно обогатить промт.

Идеал — это гиперрелевантность

Значит, условно должна быть гиперрелевантность. Т.е. хранить инфо большими кусками — плохая практика.

В таком случае будет стандартная схема: преобразование промта в вектор, поиск по вектору того, что соответствует. И вот здесь проблема — может соответствовать условно почти всё.

Ювелирная работа с векторами

И мы берём огромный пласт информации, в котором много лишнего. А если есть чанки, то попадание в смысл будет более ювелирным.

Мы выберем только реально точечно подходящие куски, по точно подходящим векторам подберём точную информацию и обогатим промт точной информацией.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *