До этого момента мы говорили теоретически:
P(token \mid context)
Теперь построим маленькую, но полностью рабочую next-token модель на чистом PHP и на практике увидим:
– как работают n-граммы
– что такое cross-entropy
– как влияет temperature
– как считать аномалии
– почему это напрямую связано с prompt engineering
– как отсюда вытекает LLM security
– и откуда берутся галлюцинации
Никаких нейросетей. Только вероятности.
1. Шаг 1 – строим n-граммную модель
Возьмём простой корпус:
$corpus = [
"php is simple",
"php is fast",
"php is popular",
"security is important",
"security is critical",
];
Обучение биграммной модели
Мы считаем:
P(w_{t} \mid w_{t-1})
Теперь у нас есть вероятностная модель.
Она уже делает то же самое, что и GPT – просто на уровне 1 токена контекста.
2. Генерация текста
Генерация последовательности
Если запустить:
Вы получите:
или
Это и есть next-token prediction.
3. Cross-entropy – измеряем качество
LLM обучаются минимизируя cross-entropy:
L = -\log P(true\_token)
Добавим функцию оценки.
Теперь можно сравнить:
Второй текст даст гораздо больший loss.
Почему?
Потому что:
P(steal \mid php) \approx 0
4. Temperature – управляем распределением
Добавим temperature:
P_i = \frac{P_i^{1/T}}{\sum_j P_j^{1/T}}
Если:
– T = 0.5 → модель почти детерминированная
– T = 1.5 → появляется разнообразие
Это ровно то же, что происходит в GPT-4.
5. Anomaly Detection – детектор фишинга
Теперь применим cross-entropy как аномальный скор.
Если:
-\log P(token \mid context)
высокий → текст необычный.
Это почти точная интуиция behind:
– детектирование аномалий
– языковая модель как фильтр
Простой детектор
Это уже прототип security-фильтра.
Связь с LLM-практикой
Теперь самое важное – связываем это с реальными системами.
1. Prompt engineering
Когда вы добавляете:
Вы меняете контекст.
А значит:
P(token \mid context)
становится другим.
Prompt engineering – это управление вероятностным распределением.
Не магия.
2. LLM Security
Prompt injection работает потому что:
модель продолжает текст, который выглядит как инструкция.
Если злоумышленник добавляет:
– модель просто продолжает наиболее вероятный шаблон.
Она не “понимает”, что это атака.
3. Awareness training
Можно показать сотрудникам:
– как легко смещается распределение
– как low-probability токены выглядят подозрительно
– как фишинг – это статистический паттерн
И объяснить:
ИИ не “разумен”. Он вероятностный.
4. Галлюцинации
Галлюцинация – это ситуация, когда:
P(token \mid context)
высока,
но фактологически ответ неверен.
Модель не проверяет истину.
Она максимизирует вероятность.
Если в обучающих данных часто встречается шаблон:
модель может сгенерировать похожий шаблон для несуществующего человека.
Потому что это вероятностно правдоподобно.
Мы построили:
– n-граммную модель
– генерацию
– cross-entropy
– temperature
– anomaly detection
И всё это – мини-версия того, что делает LLM.
Главная мысль:
LLM – это не интеллект.
Это механизм оценки вероятности следующего токена.
И именно поэтому:
– prompt работает
– атаки работают
– галлюцинации неизбежны
– безопасность требует контроля контекста
– temperature меняет поведение
Когда PHP-разработчик это понимает, он перестаёт мистифицировать ИИ и начинает проектировать системы осознанно.