Post #61
156
Галлюцинации LLM и как их ловят
Галлюцинация — это когда модель генерирует фактически неверное утверждение, но подаёт его как уверенный ответ.
LLM не ищет истину. Она предсказывает следующий токен:
На каждом шаге модель выдаёт логиты — сырые оценки для всех токенов словаря. После softmax они превращаются в вероятности:
Если распределение уверенное, один токен сильно доминирует.
Если распределение размытое, много токенов имеют близкие вероятности.
На этом строятся методы детекции риска галлюцинаций:
1. Logprobs
Можно смотреть вероятность каждого сгенерированного токена.
Если модель пишет конкретный факт — имя, дату, название статьи, — но токены имеют низкие logprobs, это сигнал риска.
Но важно: высокий logprob не доказывает истинность. Модель может уверенно воспроизводить ложный паттерн.
2. Entropy
Энтропия показывает неопределённость распределения токенов.
H(p) = -Σ p(x) log p(x)
Высокая энтропия = модель не имеет явного фаворита для следующего токена.
Упрощённо это можно посчитать так:
Если один токен доминирует, entropy будет низкой.
Если вероятности размазаны по нескольким токенам, entropy будет высокой.
В production это можно использовать как risk score: если на фактических утверждениях энтропия высокая, ответ нужно проверять.
3. Self-consistency
Один и тот же запрос прогоняют несколько раз с разными параметрами: temperature, top_p, seed.
Если факты плавают — даты, числа, имена, ссылки — это не знание, а генерация вероятных вариантов.
4. Semantic entropy
Обычная энтропия смотрит на токены. Но разные фразы могут означать одно и то же.
Semantic entropy группирует несколько ответов по смыслу.
Если формулировки разные, но смысл один — риск ниже.
Если модель генерирует разные факты — риск выше.
5. RAG attribution
В RAG-системах недостаточно просто подать документы в контекст.
Нужно проверить, что каждый важный claim реально поддержан retrieved chunk.
Нормальная схема:
Если утверждение есть в ответе, но его нет в найденных фрагментах, оно помечается как unsupported.
Главный вывод:
галлюцинации нельзя надёжно ловить одной метрикой.
Рабочий подход — комбинация сигналов:
logprobs + entropy + self-consistency + semantic entropy + claim extraction + RAG attribution
Модель генерирует вероятный текст. Фактом он становится только после привязки к проверяемому источнику.
#ai #llm
Галлюцинация — это когда модель генерирует фактически неверное утверждение, но подаёт его как уверенный ответ.
LLM не ищет истину. Она предсказывает следующий токен:
P(token | context)
На каждом шаге модель выдаёт логиты — сырые оценки для всех токенов словаря. После softmax они превращаются в вероятности:
logits → softmax → probabilities → next token
Если распределение уверенное, один токен сильно доминирует.
Если распределение размытое, много токенов имеют близкие вероятности.
На этом строятся методы детекции риска галлюцинаций:
1. Logprobs
Можно смотреть вероятность каждого сгенерированного токена.
Если модель пишет конкретный факт — имя, дату, название статьи, — но токены имеют низкие logprobs, это сигнал риска.
Но важно: высокий logprob не доказывает истинность. Модель может уверенно воспроизводить ложный паттерн.
2. Entropy
Энтропия показывает неопределённость распределения токенов.
H(p) = -Σ p(x) log p(x)
Высокая энтропия = модель не имеет явного фаворита для следующего токена.
Упрощённо это можно посчитать так:
import numpy as np
logits = np.array([2.4, 1.2, 0.3, -0.7]) # сырые выходы модели
probs = np.exp(logits) / np.exp(logits).sum()
logprobs = np.log(probs)
entropy = -np.sum(probs * logprobs)
print("probabilities:", probs)
print("logprobs:", logprobs)
print("entropy:", entropy)
Если один токен доминирует, entropy будет низкой.
Если вероятности размазаны по нескольким токенам, entropy будет высокой.
В production это можно использовать как risk score: если на фактических утверждениях энтропия высокая, ответ нужно проверять.
3. Self-consistency
Один и тот же запрос прогоняют несколько раз с разными параметрами: temperature, top_p, seed.
Если факты плавают — даты, числа, имена, ссылки — это не знание, а генерация вероятных вариантов.
4. Semantic entropy
Обычная энтропия смотрит на токены. Но разные фразы могут означать одно и то же.
Semantic entropy группирует несколько ответов по смыслу.
Если формулировки разные, но смысл один — риск ниже.
Если модель генерирует разные факты — риск выше.
5. RAG attribution
В RAG-системах недостаточно просто подать документы в контекст.
Нужно проверить, что каждый важный claim реально поддержан retrieved chunk.
Нормальная схема:
query → retrieval → chunks → generation → claim verification → citation check
Если утверждение есть в ответе, но его нет в найденных фрагментах, оно помечается как unsupported.
Главный вывод:
галлюцинации нельзя надёжно ловить одной метрикой.
Рабочий подход — комбинация сигналов:
logprobs + entropy + self-consistency + semantic entropy + claim extraction + RAG attribution
Модель генерирует вероятный текст. Фактом он становится только после привязки к проверяемому источнику.
#ai #llm
- 👍 34
- ❤ 33
- 🔥 28
- 🤓 8
- 👨💻 2
- 👀 2
- ❤🔥 1








