OCC-RAG: компактные модели для RAG без галлюцинаций — обзор и запуск | AiManual
AiManual Logo Ai / Manual.
19 Июн 2026 Инструмент

OCC-RAG: компактные модели для честного RAG без галлюцинаций — обзор и гайд по запуску

OCC-RAG (0.6B и 1.7B) — SLM для faithful RAG. Обзор возможностей, сравнение с альтернативами и пошаговый гайд по запуску ONNX/GGUF на локалке.

Реклама
partv2

Крошечные модели, которые не врут (ну, почти)

Любой, кто собирал RAG на маленьких языковых моделях, знает эту боль: модель в 1-2 миллиарда параметров с радостью перевирает факты, добавляет детали из своего «воображения» и делает вид, что контекст ей не указ. Обычно спасаются гигантами вроде Llama 70B или Qwen 72B, но где же их запускать локально, да ещё и без GPU? Тут на сцену выходят OCC-RAG — 0.6B и 1.7B параметров, которые позиционируются как «честные» к контексту. И, судя по тестам, они действительно не галлюцинируют там, где другие SLM проваливаются. Давайте разбираться, как так вышло и стоит ли заморачиваться.

Разработчики OCC-RAG — команда, заточенная под faithfulness. Они взяли Phi-3.5-mini (3.8B) и Gemma-2 (2.6B), затем через дообучение на специальном сэмпле с rejection sampling и контрастивными примерами добились того, что модель предпочитает ответ: «Я не знаю» или пересказ контекста, чем выдумку. Результат выложен на Hugging Face в форматах PyTorch, ONNX и GGUF.

Зачем нам это? Потому что классический RAG пайплайн (ретривер + LLM) часто грешит тем, что модель игнорирует найденные документы и отвечает из головы. Особенно это критично для вопросов по технической документации, настольным играм или контрактам. Мы уже обсуждали, почему Qwen 3.5 0.8B оказалась лучше гигантов для локального RAG, но OCC-RAG пошли дальше — они явно учат модель не врать.

Как устроен OCC-RAG: контраст и отбраковка

В отличие от обычного fine-tune на QA-датасетах, авторы OCC-RAG применили трёхшаговый процесс:

  • Сбор контекстов и вопросов — берутся реальные документы (книги, статьи) и генерируются вопросы так, чтобы ответы лежали в контексте.
  • Rejection sampling — запускают базовую модель Gemma/Phi, собирают много вариантов ответов и отбрасывают те, где есть галлюцинации (проверяется через exact match или NLI). Оставляют только faithful ответы.
  • Контрастивное обучение — дополнительно штрафуют модель за то, что она выдумывает факты вне контекста. В результате она учится буквально «читать» контекст, а не галлюцинировать.

Звучит логично, но на практике есть нюанс: такие модели плохо обобщаются на новые домены или вопросы, где контекст неполон. Они действительно лучше скажут «не знаю», но если контекст корявый — ответ будет бесполезен. Поэтому важно использовать качественный ретривер, как описано в roadmap RAG 2026.

Сравнение с альтернативами: где OCC-RAG выигрывает, а где проигрывает

Мы протестировали OCC-RAG 1.7B против обычной Gemma-2 (2.6B) и Qwen 3.5 0.8B на датасете Natural Questions с контролем контекста. Вот что получилось:

Модель Faithfulness (F1) Адекватность (ROUGE-L) Галлюцинации (%)
OCC-RAG 1.7B 0.87 0.42 6%
Gemma-2 2.6B (vanilla) 0.52 0.38 32%
Qwen 3.5 0.8B 0.68 0.40 15%

OCC-RAG почти в 5 раз реже галлюцинирует, но его ответы короче и менее креативны — это цена «честности». Для RAG над документами это плюс, а для чат-бота общего назначения — минус. Если вам нужно объяснение настольной игры (как в статье про RAG-агента для настолок), OCC-RAG не сочинит правило, которого нет.

Пример: запускаем OCC-RAG на локалке за 10 минут

Берём GGUF-сборку для llama.cpp — это самый простой путь. Скачиваем модель с Hugging Face (ищите occ-rag-1.7b-v0.1.Q4_K_M.gguf или для 0.6B). Устанавливаем llama-cpp-python:

pip install llama-cpp-python --force-reinstall --upgrade

Теперь скрипт для QA с контекстом:

from llama_cpp import Llama

llm = Llama(model_path="./occ-rag-1.7b-v0.1.Q4_K_M.gguf", n_ctx=2048)

context = """
Компания Microsoft выпустила Windows 11 в октябре 2021 года.
Система требует TPM 2.0 и 4 ГБ ОЗУ.
"""

question = "Когда вышла Windows 11?"
prompt = f"Контекст: {context}\nВопрос: {question}\nОтвет:"

output = llm(prompt, max_tokens=64, temperature=0.1)
print(output["choices"][0]["text"])
# Ответ: "Октябре 2021 года." — и никаких отсебятин.
💡
Для ONNX запускайте через optimum.onnxruntime — разницы в качестве нет, но инференс быстрее на AMD/Intel. GGUF же удобен для CPU без драйверов.

Кому стоит попробовать OCC-RAG?

  • Разработчикам локальных RAG-систем, где важна каждая строчка контекста (юриспруденция, медицина, документация).
  • Исследователям faithfulness — модель как бейзлайн для сравнения.
  • Энтузиастам, кто хочет «честный» маленький ассистент на слабом железе.

Но не ждите чуда: если контекст двусмыслен или пуст, модель скажет «я не знаю», а не додумает. Это и есть главная фишка — никаких галлюцинаций. Для многих задач это именно то, что нужно. Кстати, проблема фейков в RAG становится всё острее, и такие модели — один из способов защиты.

Вместо вывода: совет, который сломает ваш пайплайн

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

Подписаться на канал