Перейти к содержанию

← Риски и безопасность

Промпт-инжиниринг / Риски и безопасность

Фактичность в промпт-инжиниринге: как бороться с выдумками ИИ

Одна из главных головных болей при работе с большими языковыми моделями (LLM) - их склонность к "галлюцинациям". Модель может генерировать абсолютно убедительный, логичный и детальный ответ, который при этом является чистым вымыслом. Это проблема фактичности. Задача промпт-инжиниринга - не только получить ответ, но и сделать этот ответ достоверным. К счастью, есть проверенные техники, которые помогают направить модель в сторону большей точности и заставить ее признаваться в незнании.

Как повысить фактичность ответов модели

Борьба с выдумками ведется по нескольким фронтам. Основная идея - снизить степень "свободного творчества" модели там, где требуется точность.

1. Предоставление эталонного контекста Самый мощный метод - дать модели в промпте достоверную справочную информацию. Вместо того чтобы полагаться на ее внутренние знания (которые могут быть устаревшими или искаженными), вы предоставляете источник истины. Это может быть цитата из статьи, параграф из Википедии, выдержка из отчета или ГОСТа. Модель использует этот контекст как основу для ответа, что резко снижает вероятность галлюцинаций. В российском контексте это особенно актуально для работы с законодательством, техническими стандартами или внутренними регламентами компании - загрузите в промпт нужный фрагмент, и модель даст ответ на его основе.

2. Настройка "температуры" и явные инструкции Технически можно снизить параметры, отвечающие за случайность (например, temperature), сделав выводы модели более предсказуемыми и консервативными. Но на уровне промпта не менее важно явно сказать модели, как себя вести. Дайте четкую инструкцию: "Если точной информации нет в предоставленном контексте или ты не уверен в ответе, скажи 'Я не знаю' или 'Информация не найдена'". Это программирует модель на осторожность.

3. Обучение на примерах (Few-Shot) Покажите модели несколько примеров вопросов и ответов, которые демонстрируют желаемое поведение. Включите как примеры с известными ответами, так и примеры, где правильный ответ - "не знаю". Это самый наглядный для ИИ способ понять, чего вы от него ждете.

Практический пример: учим модель говорить "не знаю"

Давайте разберем технику few-shot обучения на конкретном примере. Мы дадим модели несколько пар "вопрос-ответ", чтобы задать шаблон поведения.

Промпт:

Q: Что такое атом?
A: Атом - это мельчайшая частица, из которой состоит всё вещество.

Q: Кто такой Алван Мунц?
A: ?

Q: Что такое Козар-09?
A: ?

Q: Сколько спутников у Марса?
A: Два, Фобос и Деймос.

Q: Кто такой Нето Бето Роберто?

Ответ модели:

A: ?

В этом промпте первые четыре примера учат модель двум вещам: давать точный фактологический ответ (про атом и спутники Марса) и признавать незнание, отвечая "?", на выдуманные имена (Алван Мунц, Козар-09). Последний вопрос - проверочный. Поскольку "Нето Бето Роберто" - тоже выдумка, модель, следуя шаблону, правильно отвечает "?". Это простой, но эффективный способ снизить галлюцинации.

Чтобы улучшить этот пример, можно заменить символ "?" на более естественные фразы: "Информация не найдена", "Мне неизвестно", "В моих данных нет сведений об этом". Также можно добавить контекст - например, вставить перед вопросами абзац из энциклопедии, обязав модель искать ответы только в нем. Работая, например, с YandexGPT или GigaChat, вы можете комбинировать эти методы: загружайте в промпт актуальные данные из надежного российского источника и используйте few-shot примеры, чтобы модель строго придерживалась предоставленной информации.

Попробуйте ENGRAM на своих данных

Нейросеть на ваших встречах, документах и переписке: отвечает со ссылкой на источник. Это ваша вторая память на базе ИИ. Данные хранятся в России, старт бесплатный.

Зарегистрироваться бесплатно
Обучаем команды работе с нейросетями под ваши процессы. Узнать о корпоративном обучении