Головна / Статті / Як знайти крок, на якому з'явилася галюцинація, за допомогою походження в дусі хадисів

Як знайти крок, на якому з'явилася галюцинація, за допомогою походження в дусі хадисів

Чому помилки LLM народжуються на першому кроці і як ланцюжок у дусі існаду, реєстр передавачів і матриця рішень дають мультиагентним конвеєрам відповідальність на кожному кроці.

1051 слів

Хто сказав це моделі?

Припустімо, твердження пройшло через п'ять агентів, перш ніж дійшло до вас, і виявилося хибним. Хто з п'ятьох його вніс? Хто переформулював його в щось трохи інше? Хто за це відповідає? У більшості продакшен-конвеєрів чесна відповідь: ніхто не знає.

LLM видає вам відповідь, і питання в тому, звідки вона взялася. Не з якого документа, а з якого перетворення. Кожен вивід моделі — це твердження без походження. Логи є, але лог каже, що сталося, а не те, чи заслуговує передача на довіру. Мультиагентні ланцюжки все погіршують. Твердження, що пережило п'ять передач, не стає надійнішим, воно просто краще сховане.

Де насправді починаються помилки

Прийнято вважати, що галюцинації накопичуються з глибиною: довший ланцюжок — більший дрейф. Лідерборд, побудований для перевірки цієї ідеї (issue #71 у репозиторії проєкту, усе закомічено), показав інше. На загальновідомих фактах частка галюцинацій була 0%. На фактах після дати зрізу навчання моделі вона становила від 44% до 56%. І вона не змінювалася зі зростанням глибини ланцюжка.

Отже, помилка не зростає дорогою. Вона народжується на кроці 1, у момент генерації з пам'яті, коли модель тягнеться до того, чого в неї немає. Далі естафета сумлінно її копіює й нічого не додає. Це змінює те, куди ставити інструментування. Детектор дрейфу вам не потрібен. Треба знати, на якому кроці виникло твердження і чи мав цей передавач узагалі право його робити.

Метод, якому 1400 років

Ісламські вчені зіткнулися з тією самою проблемою щодо людських тверджень чотирнадцять століть тому й побудували довкола неї цілу дисципліну — критику хадисів. Вона складається з трьох контурів, які навмисно тримають окремо:

  • існад — це ланцюжок: хто кому передав повідомлення і в якому порядку.
  • ріджал — це передавачі: реєстр, що оцінює надійність кожного передавача за роллю, причому оцінка з часом застаріває.
  • матн — це зміст: чи суперечить твердження тому, що вже встановлено?

Розділення важливе, бо бездоганний ланцюжок може нести хибне твердження, а істинне може прийти зламаним ланцюжком. Система не зводить це до одного числа, бо це відповіді на різні питання.

Бібліотека ISNAD переносить кожен контур на інфраструктуру LLM:

  • Ланцюжок (існад): кожне перетворення за порядком, із хешами входу й виходу.
  • Реєстр (ріджал): надійність передавача за ролями з поправкою на свіжість.
  • Оцінка: якість ланцюжка визначає найслабший передавач.
  • Критика змісту (матн): твердження проти доказів, розраховано на під'єднання до вашого наявного критика.
  • Матриця рішень: підсумок — видати, видати із застереженням, надіслати на перевірку або помістити в карантин.
  • Підтвердження: незалежні свідки (таватур) і виявлення спільних для них помилок.
  • Обґрунтування: у межах ланцюжка, тобто те, що цей ланцюжок справді витягнув.
  • Content-madar: знімає відбитки помилок, спільних для джерел, які виглядають незалежними.

Кожне твердження проходить через таблицю 4×3, де якість ланцюжка схрещено з вердиктом щодо змісту, і виходить рівно з однією дією: видати, видати із застереженням, надіслати на перевірку або в карантин. Це дія, а не оцінка, і дію можна вбудувати в конвеєр.

Постачається як бібліотека, REST API і CLI. Працює поруч із LangChain, LlamaIndex, CrewAI, LangGraph і OpenTelemetry, а не замість них, тож упровадження не вимагає переписувати стек.

Чого вона не робить

Більшість інструментів надійності пропускають цю частину, тому варто сказати прямо.

  • Вона оцінює, хто, а не чи правда. Ланцюжок сахіх каже, що передачу добре засвідчено. Він ніколи не каже, що твердження істинне, і ISNAD не вдає, ніби це не так.
  • Оцінки порядкові: сахіх вище за хасан, далі даїф, далі мауду. Жодних "92,3% упевненості", бо жоден чесний метод такого числа не дає. Два знаки після коми в значенні довіри — просто прикраса.
  • Вона поєднується з критиками. ISNAD — це рівень передачі й навмисно не суддя змісту.
  • Усе виміряно, а не заявлено. Кожне твердження в README веде до закоміченого відтворюваного результату, поруч надруковано негативні контролі.
  • Обмеження — насамперед. Холодний старт для кожної ролі гірший, цілісність тримається лише в межах домену, незалежність можна дисконтувати, але не довести, а стелю покриття задає критик. Усе це стоїть у README на видному місці, а не сховано у виносці.

Що показують вимірювання

Зняття відбитків через content-madar знизило частку хибних спрацювань із 0,750 до 0,375 за повноти за токенами 1,0 і виявлення майже-збігів 4 із 4. В оцінці обґрунтування за ланцюжком розділення між обґрунтованими й необґрунтованими твердженнями збереглося під NLI-критиком, а захист від виродження не дає критикові обдурити метрику.

Найнезручніший результат: стелю задає критик. Сильніша крос-модельна схема, де deepseek-v4-pro оцінював deepseek-flash, маючи докази просто в контексті, однаково пропускала до 2 із 4–5 галюцинацій. Критик не замінює ухвалення рішення, і документація ISNAD каже про це відкрито, а не сподівається, що ви не перевірите.

Кому варто подивитися

  • Командам, які випускають мультиагентні конвеєри й хочуть відповідальності на кожному кроці, а не стектрейсу.
  • Медицині, праву й фінансам — усюди, де аудиторський слід важливіший за лог-файл.
  • Дослідникам, яким потрібен передреєстрований відтворюваний спосіб вимірювати галюцинації й походження.
  • Усім, хто втомився від "повірте, усе гаразд" і волів би прочитати "ось хто за це поручився і чого варте його поручительство".

Встановлення:

pip install isnad          # Python ≥ 3.11, Apache-2.0
npm i isnad                # JS verifier — verifies audit records, grading stays in Python

Репозиторій розміщено на github.com/alizahidraja/isnad. У ньому є демо в одну команду, повний стенд бенчмарків і документ ARCHITECTURE, де викладено міркування, обмеження й досі відкриті проблеми. Головна з них — незалежність ланцюжків.

ISNAD оцінює передачу, а не істину. Так надійність працювала ще до появи машин, а тепер застосовується до них.