Промптов недостаточно: обеспечение жестких ограничений в ответах LLM
Демонстрации LLM выглядят отлично, пока они не сталкиваются со строгими требованиями.
Модели работают на вероятностях. Продакшн-системам нужны гарантии.
Я понял это, когда создавал конвейер новостей на базе ИИ для Radio del Volga в Аргентине. Система переписывает новости и создает посты для социальных сетей. Все работало хорошо, пока не возникла одна проблема. Gemini продолжала писать на «неправильном» испанском.
В Аргентине люди используют специфические слова. Они говорят «podés» вместо «puedes» и «sos» вместо «eres». Если модель использует нейтральный испанский, текст кажется неправильным для местных читателей.
Сначала я попытался улучшить промпты. Я сказал модели:
- Используй риоплатский испанский.
- Никогда не используй нейтральный испанский.
- Используй список конкретных запрещенных слов.
- Перечитай свой ответ перед отправкой.
Это помогло, но не решило проблему полностью. Официальные источники новостей возвращали модель к нейтральному испанскому. Сколько бы я ни писал в промпте, ошибки сохранялись.
Я перестал рассматривать это как проблему промптинга. Я начал рассматривать это как проблему валидации.
Некоторые вещи вероятностны, например, тон или стиль. Другие вещи детерминированы. Если текст содержит «puedes», он неверен. Вам не нужен ИИ, чтобы это понять. Вам нужен простой код.
Я добавил этап постобработки. Он запускается после того, как ИИ закончит работу. Он ищет определенные слова и заменяет их:
- puedes превращается в podés
- tienes превращается в tenés
- eres превращается в sos
Этот список невелик и безопасен. Я не пытаюсь исправить весь испанский язык. Я исправляю только те правила, которые код может проверить с полной уверенностью.
Этот урок не про испанский язык. Он о пределах промпт-инжиниринга.
Промптинг улучшает производительность, но не дает гарантий. Если правило стабильно и его можно протестировать, используйте код для его соблюдения.
Используйте LLM для генерации естественного текста. Используйте детерминированный код для соблюдения брендовых терминов, нормативных формулировок и правил форматирования.
Надежные системы разделяют обязанности: • Модель генерирует контент. • Код обеспечивает соблюдение жестких правил. • Человек принимает окончательное редакционное решение.
Source: https://dev.to/zendev2112/prompts-arent-enough-enforcing-hard-constraints-on-llm-output-2hpo
Optional learning community: https://t.me/GyaanSetuAi