Собираем систему проверки логики в текстах: Pathway, Ollama, Llama 2.5 | AiManual
AiManual Logo Ai / Manual.
17 Янв 2026 Инструмент

Pathway + Ollama + Llama 2.5: локальный детектор логических дыр в текстах на 100 тысяч слов

Гайд по сборке полностью локальной системы для анализа консистентности в длинных документах с помощью Pathway, Ollama и Llama 2.5 7B.

Почему ваша нейросеть врёт про противоречия в документах (и как это исправить)

Давайте представим: вы даёте LLM два контракта на 50 страниц каждый. Спрашиваете: «Есть ли логические нестыковки?». Модель кропотливо (ну, или не очень) изучает текст и выдаёт красивый отчёт. С тремя найденными конфликтами. Проблема в том, что два из них она выдумала, а один реальный — пропустила.

Знакомо? Это не баг, это фича — LLM работают с текстом как с «супом из токенов», а не как с системой логических утверждений. Они отлично генерируют правдоподобный текст, но ужасно отслеживают факты, даты и условия. Особенно когда контекст переваливает за 10-20 тысяч токенов.

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

Трио, которое заменит вам юриста (ну, почти)

Pathway — это не просто ещё одна библиотека для работы с данными. Это движок для потоковой обработки с встроенной поддержкой векторных операций и (что важно) возможностью вызывать LLM как функцию. Представьте Apache Spark, но заточенный под реальное время и с нейросетями в ядре.

Ollama — наш локальный хост для моделей. Простой, эффективный, с API, который не вызывает желания разбить монитор. Мы уже сравнивали его с LM Studio в статье про «LM Studio vs llama.cpp». Ollama выигрывает в простоте развёртывания.

Llama 2.5 7B — тёмная лошадка. Не такая разрекламированная, как Llama 3, но с контекстом в 32К токенов и удивительной для своего размера логической связностью. Идеально подходит для задач, где нужна не креативность, а точность.

💡
Забудьте про GPT-4 для этой задачи. Большие модели слишком «творческие». Вам нужна стабильность, а не способность сочинять стихи про параграфы контракта.

Что умеет эта сборка (а что — нет)

МожетНе может
Обрабатывать документы до 100к+ слов потоковоПонимать сарказм или иронию в тексте
Выявлять противоречия в датах, числах, условияхЗаменять профессионального юриста или редактора
Работать полностью офлайн, без облачных APIАнализировать изображения или таблицы в PDF
Строить граф логических связей между утверждениямиРаботать в режиме реального времени на слабом железе

Собираем конструктор за 4 шага

1Поднимаем Ollama и качаем модель

Если у вас уже стоит Ollama — отлично. Если нет, ставим за пару команд. Не нужно возиться с компиляцией, как в случае с более сложными фреймворками.

Внимание: Llama 2.5 7B весит около 4.5 ГБ. Убедитесь, что есть место. И да, она работает даже на MacBook Air с M1 — проверено.

2Устанавливаем Pathway и готовим Python-окружение

Pathway ставится через pip, но требует Python 3.10+. Создаём виртуальное окружение — это обязательно, потому что зависимости специфичные.

Дополнительно ставим библиотеки для парсинга PDF. Советую использовать pypdf — он менее капризный, чем pdfplumber, особенно с кривыми сканами.

3Пишем пайплайн извлечения фактов

Вот где начинается магия. Вместо того чтобы запихивать весь текст в LLM, мы сначала разбиваем документ на логические блоки (абзацы, разделы). Потом каждый блок пропускаем через Llama 2.5 с промптом: «Извлеки все утверждения о датах, числах, условиях и действиях».

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

💡
Используйте структурированный вывод (JSON) от модели. Промпты для этого есть в нашей «Коллекции промптов».

4Строим граф и ищем конфликты

Извлечённые факты превращаем в узлы графа. Связи между ними: «противоречит», «подтверждает», «уточняет». Самый простой пример: если в одном месте сказано «срок — 30 дней», а в другом «месяц», система должна отметить это как потенциальный конфликт (потому что месяц ≠ 30 дней).

Финализируем анализ: отправляем граф (уже структурированный, компактный) в ту же Llama 2.5 с вопросом: «Какие логические противоречия ты видишь в этой сети фактов?». Теперь модель работает не с «супом», а с чёткими утверждениями. Точность вырастает в разы.

Docker или голый металл?

Можно собрать Docker-контейнер — это удобно для развёртывания на сервере. Но на локальной машине я предпочитаю нативное окружение. Почему? Потому что отладка. Когда что-то ломается (а оно ломается), копаться в контейнере — то ещё удовольствие.

Если всё же хотите контейнер, используйте многоступенчатую сборку: отдельный образ для Ollama, отдельный для Python-приложения. И не забудьте про volume для моделей — качать 4.5 ГБ при каждом запуске не самое весёлое занятие.

Проверьте, поддерживает ли ваш GPU полную точность (FP16) для Llama 2.5 7B. На некоторых картах с 8 ГБ памяти придётся использовать квантование (Q4_K_M). Точность немного упадёт, но всё равно останется выше, чем у облачных моделей на этой задаче.

Кому это нужно (спойлер: не всем)

Этот стек — не для тех, кто хочет «просто попробовать LLM». Это инструмент для конкретной задачи. Он идеально подойдёт:

  • Техническим писателям, которые проверяют консистентность документации на 500 страниц. Особенно если она постоянно обновляется.
  • Юристам в IT-компаниях, усталым от сравнения версий договоров. Система найдёт расхождения в условиях даже если они спрятаны в разных разделах.
  • Разработчикам игр, создающим сложные лор-документы. Проверить, что персонаж не умер в одной главе, а появился живым в другой — теперь не проблема.
  • Исследователям, анализирующим большие корпуса текстов (исторические документы, научные работы). Поиск противоречий в источниках автоматизируется.

Если же вам нужно просто перевести пару предложений или сгенерировать email — используйте что-то попроще. Например, Offloom или другие пользовательские решения.

Альтернативы, которые не работают (почти)

Можно попробовать Google NotebookLM — но это облако, и ваши документы улетают «на обработку». Не вариант для конфиденциальных данных.

Можно взять локальные аналоги NotebookLM — но они заточены под диалог, а не под детальный логический анализ.

Можно использовать чистый RAG с Chroma или Qdrant — но это даст только семантический поиск, а не проверку консистентности. Разные вещи.

Pathway + Ollama + Llama 2.5 — возможно, не самый простой путь. Зато он даёт контроль над каждым этапом. И работает там, где облачные модели пасуют: в длинных, сложных, конфиденциальных документах.

Попробуйте. Первый запуск займёт час. Второй — пять минут. А когда система найдёт первое реальное противоречие, которое вы пропустили, вы поймёте: оно того стоило.