Практика: строим next-token модель на PHP

До этого момента мы говорили теоретически:

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-разработчик это понимает, он перестаёт мистифицировать ИИ и начинает проектировать системы осознанно.

Last updated