Perplexity Llama 3.1 для предсказания суицидального риска: анализ кода и исследования | AiManual
AiManual Logo Ai / Manual.
08 Янв 2026 Гайд

Как Llama 3.1 предсказывает суицидальные мысли лучше психологов: разбираем исследование с 75% точностью

Глубокий разбор исследования, где perplexity от Llama 3.1 предсказывает суицидальный риск с 75% точностью. Код, пайплайн, ошибки и почему это работает.

Когда нейросеть видит то, что не видят опросники

Представьте: пациент заполняет стандартную анкету на суицидальные мысли. Результат - низкий риск. Через неделю он в больнице после попытки. Классическая история, которая случается чаще, чем кажется.

А теперь другая картина: тот же пациент пишет свободный текст о своей жизни. Неструктурированно, эмоционально, с обрывками мыслей. Llama 3.1 анализирует этот текст и говорит: "Высокий риск". И оказывается права в 75% случаев.

💡
Исследователи из нескольких университетов опубликовали препринт, где показали: perplexity (степень "удивления" модели) от Llama 3.1 предсказывает суицидальный риск лучше стандартных инструментов. Весь код открыт. Вся методология прозрачна. Это не маркетинговая шумиха - это конкретные цифры.

Что такое perplexity и почему он работает как детектор лжи

Perplexity - это метрика, которая показывает, насколько модель "удивлена" текстом. Низкий perplexity означает "да, это типичная фраза, я такое ожидал". Высокий perplexity - "что это вообще такое, я такого не ожидал".

Вот где начинается магия. Когда человек пишет о суицидальных мыслях, его язык меняется. Не явно, не через слова "я хочу умереть", а через:

  • Синтаксические разрывы (предложения обрываются)
  • Эмоциональные контрасты ("все хорошо, но...")
  • Лексические сдвиги (внезапные тематические прыжки)
  • Повторы без развития мысли

Человеческий мозг эти паттерны улавливает смутно. Модель на 8 миллиардах параметров - с математической точностью.

Важный момент: модель НЕ обучали на суицидальных текстах специально. Она просто знает, как выглядит "нормальный" человеческий язык. Когда появляется отклонение - она это фиксирует. Это как детектор лжи, который калибруется на правдивых ответах, а потом ловит ложь по отклонениям.

Технический пайплайн: от текста до оценки риска

Исследование построено на двухступенчатой архитектуре. Первая ступень - генерация, вторая - анализ.

1Генерация нарративов через Claude

Исследователи использовали Claude для создания синтетических текстов. Не просто "сгенерируй историю депрессии", а с конкретными промптами, которые имитируют разные уровни риска.

Почему Claude, а не та же Llama? Потому что Claude лучше справляется с эмоционально насыщенными текстами. Он генерирует более человечные, менее шаблонные нарративы. В коде это выглядит как серия вызовов API с промптами типа:

"Напиши текст от лица человека, который чувствует себя в ловушке, но не говорит об этом прямо. Используй метафоры, недоговоренности, эмоциональные противоречия."

Получается датасет из тысяч текстов с разметкой уровня риска. Искусственных, но психологически достоверных.

2Расчет perplexity через Llama 3.1

Здесь начинается основная работа. Каждый сгенерированный текст подается в Llama 3.1, и модель вычисляет perplexity для каждой последовательности токенов.

Ключевой трюк: они считают не средний perplexity по всему тексту, а анализируют распределение. Смотрят, где возникают пики "удивления". Часто именно в этих местах - эмоциональные разрывы, которые человек пытается скрыть.

В коде это выглядит как вызов функции calculate_perplexity с параметрами:

ПараметрЗначениеЗачем нужен
model_name"meta-llama/Llama-3.1-8B-Instruct"Инструктивная версия лучше понимает контекст
window_size256Размер окна для анализа последовательностей
stride128Шаг скользящего окна (перекрытие для точности)
temperature0.0Выключает случайность, только вероятности

3Построение классификатора

Perplexity сам по себе - просто число. Чтобы превратить его в оценку риска, нужен классификатор. Исследователи пробовали:

  1. Простые пороговые значения (если perplexity > X, то высокий риск)
  2. Линейные модели
  3. Градиентный бустинг (XGBoost)
  4. Нейросетевые классификаторы

Лучше всего сработал XGBoost с дополнительными фичами: не только средний perplexity, но и его дисперсия, максимальные пики, распределение по квантилям.

Точность на тестовой выборке: 75.3%. Для сравнения, стандартные опросники типа PHQ-9 дают около 60-65% в реальных условиях.

Где исследование спотыкается (и как это исправить)

Первая проблема - синтетические данные. Claude генерирует тексты, но они все равно не настоящие. В них есть паттерны генерации, которые модель может выучить как артефакты.

Решение: использовать реальные анонимизированные тексты из кризисных чатов. Но это сразу упирается в этику и приватность. В коде исследователи хотя бы добавли аугментацию - небольшие изменения в синтетических текстах, чтобы сделать их разнообразнее.

Вторая проблема - культурный и языковой bias. Модель обучалась в основном на английских данных. Русские тексты (или тексты на других языках) могут давать другие паттерны perplexity.

Третья - ложные срабатывания. Высокий perplexity может быть у:

  • Поэтических текстов (метафоры, нестандартный синтаксис)
  • Технических описаний (специфическая лексика)
  • Текстов людей с нейроотличиями (например, аутизмом)

В коде это частично решается контекстным фильтром: перед анализом модель определяет тему текста. Если это явно не психологический нарратив - анализ не запускается.

Как запустить это у себя (без этических проблем)

Исследователи выложили весь код на GitHub. Но просто скопировать и запустить - плохая идея. Вот что нужно изменить:

Во-первых, заменить синтетическую генерацию на что-то менее рискованное. Вместо генерации суицидальных текстов - использовать публичные датасеты эмоциональных нарративов (например, Reddit depression forums с согласия).

Во-вторых, добавить калибровку под свой язык. Для русского нужно:

  1. Взять русскоязычную модель (например, от SberAI)
  2. Пересчитать базовые значения perplexity для "нормальных" русских текстов
  3. Настроить пороги классификатора

В-третьих, построить pipeline валидации. Каждый предсказанный "высокий риск" должен проверяться через:

ЭтапЧто делаетЗачем
Мультимодальная проверкаАнализ не только текста, но и метаданных (время отправки, частота сообщений)Снижает ложные срабатывания
Контекстный фильтрОпределение, является ли текст личным нарративомИсключает художественные/технические тексты
Эскалация к человекуЛюбой высокий риск проверяется психологомЭтическая безопасность

Почему это работает лучше традиционных методов

Стандартные опросники - это набор прямых вопросов. "Были ли у вас мысли о самоубийстве?". "Чувствуете ли вы безнадежность?".

Проблема в том, что люди в кризисе часто:

  • Не осознают своих мыслей как "суицидальные"
  • Сознательно скрывают их (стигма, страх госпитализации)
  • Не могут вербализовать то, что чувствуют

Perplexity анализ работает на другом уровне. Он ловит не содержание, а форму. Не то, что человек говорит, а как он это говорит. Разрывы в повествовании, эмоциональные диссонансы, лингвистические аномалии.

Это похоже на то, как опытный психолог "слышит" то, что между строк. Только здесь - математическая модель вместо интуиции.

💡
Интересный факт: в исследовании были случаи, когда модель предсказывала высокий риск у текстов, которые по содержанию казались нейтральными. При последующем анализе выяснялось - эти люди действительно были в группе риска, но скрывали это в прямых ответах.

Этические мины и как их обходить

Самое опасное в этой технологии - ложные положительные срабатывания. Представьте: система пометила человека как "группа риска", хотя у него просто поэтический стиль письма. Последствия могут быть катастрофическими.

Первое правило: эта система никогда не должна работать автономно. Только как инструмент поддержки принятия решений для профессионалов.

Второе: прозрачность. Человек должен знать, что его текст анализируется. И иметь возможность отказаться.

Третье: ограничение применения. Не для скрининга в соцсетях (это уже тотальная слежка). Только для:

  • Кризисных чатов (с согласия пользователя)
  • Телетерапии (как дополнительный инструмент)
  • Исследовательских целей (с полной анонимизацией)

В коде исследователи хотя бы добавили обязательный consent check перед анализом. Маленькая, но важная деталь.

Что будет дальше с этим подходом

Perplexity анализ - только начало. Уже сейчас видны направления развития:

Мультимодальность. Текст + голос (интонации, паузы) + возможно, видео (микровыражения). Каждая модальность дает свой сигнал. Комбинация повышает точность.

Персонализация. Вместо общих порогов - индивидуальный baseline. Сначала система изучает, как человек обычно пишет. Потом ищет отклонения от его собственной нормы.

Временные ряды. Не анализ одного сообщения, а трекинг изменений over time. Как меняется perplexity в динамике? Резкий скачок может быть более показательным, чем абсолютное значение.

И самое главное - открытость. Это исследование выложено полностью: код, данные, методология. Любой может проверить, воспроизвести, улучшить. В мире, где большинство медицинских AI - черные ящики, это редкая и важная практика.

Последний совет от меня как инженера: если решите поэкспериментировать с этим кодом, начните с малого. Не с суицидального риска, а с чего-то менее критичного. Например, с определения уровня стресса по текстам. Отработайте пайплайн, поймите ограничения модели, настройте валидацию. И только потом - к клиническим применениям.

Технология, которая может спасать жизни, должна быть не только точной, но и ответственной. Llama 3.1 с perplexity дает первую часть. Вторая часть - на нас.