~/ai — rag — chunking
‹ ai engineering09 / поиск и RAG

SEMANTIC CHUNKING · РЕЗАТЬ ПО СМЫСЛУ

Перед поиском документ режут на куски (чанки), и каждый кусок потом находят отдельно. Если разрез прошёл посреди мысли, поиск достанет половину условия. Semantic chunking режет там, где меняется тема.

01 · документ тендер на ноутбуки · 20 предложений
предмет закупкитребования к участникупоставкаоплатагарантия
Документ без заголовков, сплошным текстом. Цвета — это разметка, которую я сделал, когда писал текст. Алгоритмы её не видят, по ней мы потом проверим результат.
02 · по 200 символов самый простой способ
03 · semantic chunking эмбеддинг → расстояние → порог
0.90.60.3
порог
Столбик — насколько смысл двух предложений слева от промежутка отличается от двух справа (1 − косинус средних эмбеддингов). Режем там, где столбик выше порога и выше соседей. ● — где на самом деле меняется тема.
04 · итог сверка с разметкой автора
Эмбеддинги настоящие: каждое предложение я прогнал через модель all-MiniLM-L6-v2 (384 числа, ONNX) и вшил результат в страницу. Расстояния, пики, порог и разрезы считаются здесь, в браузере. Модель англоязычная, поэтому документ на английском. Для украинских документов взяли бы многоязычную, например multilingual-e5.
session log
~/ai $ chunk(doc)