Обновить

Как я отучил оракула молоть околесицу про ГОСТы: сказ о doc-rag без единого (почти) заморского слова

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели11K
Всего голосов 6: ↑6 и ↓0+9
Комментарии14

Комментарии 14

Господи! Хорошо то как! Это эмоции от пары первых параграфов. Спасибо тебе, добрый человек!

Какой оракул сгенерировал вам эти кощунственные картинки?

На "кощунство", максимум, КДПВ тянет и то с большой "натяжкой совы на глобус". Статья изначально планировалась, как стеб над борьбой с укоренившимися англицизмами. Прошу прощения, если оскорбил чьи-то чувства.

Картинки - откровенное кощунство. Против текста ничего не имею.

А можно таки уточнить - а чем собственно пользовались для генерации с такой стилизацией?

Вот таким промптом: "A medieval Russian scriptorium scene rendered as a stylized engraving: a seated monk-scribe (an «oracle» / wise advisor) in a long robe holds a long scroll on his lap; beside him stands a tall wooden cabinet packed with rolled scrolls and bound codices labeled «СТО», «ГОСТ», «РД». A faint geometric grid of glowing arrows floats between the cabinet and the scribe’s palm, suggesting search and retrieval. Warm candlelight, parchment textures, ink blots, no modern objects visible. Style: hand-engraved Russian icon-book illumination, muted earth tones with gold accents. Wide aspect ratio."
))))

огонь. для windows возможно как-то использовать? есть подходящая по смыслу задачка

Можно сосуд переносный в своей избе развернуть. Можно Линукс-постояльца в окошечном укладе привлечь к повинностям. Так как у меня во дворе есть homelab-изба, ее и использовал, чтобы свою избу не заграмождать.

Целевой размер ломтя — 512 словесных мер с перекрытием 64. Перекрытие нужно, чтобы смыслы не оборвались на стыке. Конкретные числа я подобрал на пробу, методом промахов и попаданий: крупнее — оракул хуже сосредотачивается, мельче — теряется связь.

Сейчас думаю над такой же задачей - нарезка документов (статей, ГОСТов, учебников) на ломти. Всё же для корректности нужно нарезать на чёткие смысловые блоки - параграфы, абзацы, группы абзацев. Для этого думаю, что в каждом документе нужно сначала искать оглавление, по нему вырезать отдельные разделы и подразделы, и каждый уже делить на группы абзацев.

  1. Используемая, по-умолчанию, модель bge-large-en-v1.5 тренировалась на блоках 256–512 токенов. Соответственно размер блока выбран с учетом этого. Выше - смысл начинает "размазываться", ниже - начинает "шуметь", теряется контекст.

  2. В дальнейшем планируется сделать рекурсивный гибрид с фолбэком на фиксированный размер. Примерно так:
    2.1. Сначала пытаемся разбить по параграфам.

    2.2. Если получившийся блок > 512 - пытаемся разбить по строки.

    2.3. Если ещё больше - по предложениям.

    2.4. В конце концов - по словам.

    2.5. После всех разбиений: соседние мелкие блоки склеиваем до 512 +- 20%

Я еще детально не продумывал структурный сплит. Только вот - в общих чертах.

Размер блока - непростая штука, особенно в таких насыщенных документах, как ГОСТы.

С одной стороны, слишком маленький (в абзац) может упустить важный связанный смысл предыдущего или последующих абзацев.

С другой стороны, слишком большой (в раздел, главу) может нести много лишнего, и если промпт будет составлен весьма широко и зацепит десяток таких длинных блоков, то на вход модели придет слишком много контекста, из которого ей сложно будет выловить наиболее ценное.

Как вариант, большие блоки пропускать через LLM-сжимальщик, который убирает воду, сжимает блок без потери основного смысла.

Но это только текст. Но есть еще таблицы и формулы.

Формула должна содержать в одном блоке и себя и расшифровку всех своих составляющих параметров (а это может быть раскидано по тексту! А некоторые из них могут представлять собой таблицы параметров!)

Таблицы можно разбить на строки (записи): Таблица х: Запись y: Параметр 1: z1, ...

Но некоторые таблицы могут быть сложнее...

А ведь есть еще и графики, и схемы и диаграммы разного качества сканирования и читаемости... Без которых может потеряться важная информация...

А если документ с OCRен, то там вообще абзацы могут быть без разделения и идти сплошным потоком.... Нюансов куча, короче.

То есть тут можно целый отдельный проект выделять - автоматизация подготовки документов

Впору учреждать "Общество разделки туш pdf"...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации