Важный момент: каждой записи в обычной базе данных соответствует смысловой вектор, или эмбединг. И важно, что эти вектора создаются для целого куска информации.
Хранить большие куски с разными смыслами неразумно. А разумно — разбить информацию на смысловые чанки, кусочки, и каждому чанку задать вектор.
Почему размер имеет значение в RAG
Особенно актуально это для большой RAG-базы. Если вектору будет соответствовать большой объем информации, то небольшое количество векторов может раздуть контекст.
А если их будет сильно больше, то весь смысл RAG вообще теряется. Нам же надо прямо точечно обогатить промт.
Идеал — это гиперрелевантность
Значит, условно должна быть гиперрелевантность. Т.е. хранить инфо большими кусками — плохая практика.
В таком случае будет стандартная схема: преобразование промта в вектор, поиск по вектору того, что соответствует. И вот здесь проблема — может соответствовать условно почти всё.
Ювелирная работа с векторами
И мы берём огромный пласт информации, в котором много лишнего. А если есть чанки, то попадание в смысл будет более ювелирным.
Мы выберем только реально точечно подходящие куски, по точно подходящим векторам подберём точную информацию и обогатим промт точной информацией.

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