Як знайти крок, на якому з'явилася галюцинація, за допомогою походження в дусі хадисів
Чому помилки LLM народжуються на першому кроці і як ланцюжок у дусі існаду, реєстр передавачів і матриця рішень дають мультиагентним конвеєрам відповідальність на кожному кроці.
Хто сказав це моделі?
Припустімо, твердження пройшло через п'ять агентів, перш ніж дійшло до вас, і виявилося хибним. Хто з п'ятьох його вніс? Хто переформулював його в щось трохи інше? Хто за це відповідає? У більшості продакшен-конвеєрів чесна відповідь: ніхто не знає.
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 оцінює передачу, а не істину. Так надійність працювала ще до появи машин, а тепер застосовується до них.