TL;DR
Исследователи проверили как современные LLM (GPT-4.1-mini, Llama 3.3, Gemma 3, Mistral 3) определяют отношение (позитивное/негативное/нейтральное) к конкретным метрикам (долг, прибыль на акцию, продажи) в финансовых отчётах и транскриптах earnings calls. Сравнили три стратегии промптинга: zero-shot, few-shot и с/без Chain-of-Thought рассуждений.
Главная находка: few-shot с CoT даёт лучший результат. Один пример с объяснением рассуждений работает лучше чем zero-shot. Добавление 5-10 примеров почти не улучшает результат — один хороший пример достаточно. Семантически похожие примеры работают на 2% лучше случайных. Контекст о компании помогает в zero-shot, но при наличии few-shot примеров эффект минимален — примеры важнее контекста.
Метод показывает что работает лучше: (1) выбери 1-3 самых похожих примера из твоих прошлых задач, (2) добавь к каждому примеру Chain-of-Thought объяснение (почему такой вывод), (3) если примеров нет — добавь краткую справку о контексте (компания, ситуация). Это не новая техника, а систематическая проверка известных подходов в финансовом домене.
Схема подхода
ZERO-SHOT (без примеров):
Промпт: [задача] + [контекст о компании]
→ Контекст помогает, но результат хуже чем few-shot
FEW-SHOT (1-3 примера):
Промпт: [пример 1 + CoT] + [пример 2 + CoT] + [задача]
→ Лучший результат
FEW-SHOT с семантическим подбором примеров:
1. Найди в своих примерах самые похожие на текущую задачу
2. Добавь CoT объяснение к каждому примеру
3. Используй в промпте
→ На 2% лучше случайных примеров
Пример применения
Задача: Ты следишь за акциями Яндекса и хочешь понять отношение к ключевым метрикам (выручка, долг, пользователи) из новостей и пресс-релизов — какие сигналы позитивные, какие негативные.
Промпт:
Определи отношение к метрике компании. Варианты: положительное, отрицательное, нейтральное.
Пример 1:
Новость: "Яндекс увеличил долг на $500 млн для расширения дата-центров под нейросети."
Метрика: долг
Рассуждение: Рост долга обычно негатив, но здесь указана чёткая причина — инвестиции в стратегическое направление (AI/нейросети). Контекст "для расширения" показывает развитие, а не проблемы.
Отношение: положительное
Пример 2:
Новость: "Выручка Яндекса упала на 8% из-за ухода рекламодателей."
Метрика: выручка
Рассуждение: Падение выручки — явный негатив. Причина "уход рекламодателей" указывает на структурную проблему бизнеса, а не временный фактор.
Отношение: отрицательное
Теперь проанализируй эту новость:
"Число активных пользователей Яндекс Музыки выросло на 15% год к году, достигнув 12 млн."
Метрика: пользователи
Результат:
Модель выдаст структурированный анализ: сначала рассуждение (какие сигналы в тексте, как их интерпретировать), затем вывод (положительное/отрицательное/нейтральное). Формат повторяет паттерн из примеров — модель научилась анализировать, а не просто угадывать.
Почему это работает
Слабость LLM: Модели хорошо понимают общий sentiment, но плохо различают отношение к конкретным метрикам внутри одного текста. Например, в предложении "Долг вырос, но это позволило увеличить продажи" — отношение к долгу положительное (стратегическое решение), а не негативное (проблема). Без контекста модель часто видит "долг вырос" → автоматически негатив.
Сильная сторона LLM: Модели отлично обучаются от примеров (few-shot learning) и следуют паттернам рассуждений (Chain-of-Thought). Когда видят КАК именно нужно анализировать, воспроизводят эту логику на новых данных.
Как метод использует сильную сторону: Few-shot с CoT даёт модели шаблон рассуждений: (1) какие сигналы искать в тексте (слова, контекст, причины), (2) как взвешивать разные факторы (рост долга vs стратегическая цель), (3) к какому выводу это ведёт. Один качественный пример (k=1) с чётким объяснением работает лучше чем 10 примеров без объяснений. Модель видит НЕ только ответ, но и путь к нему.
Дополнительный инсайт: Семантически похожие примеры работают лучше потому что дают модели релевантный контекст. Если задача про "рост долга для инвестиций", а в few-shot примере "рост долга из-за убытков" — модель может неправильно применить паттерн. Похожие примеры = похожая логика анализа.
Шаблон промпта
Определи отношение к {метрика} на основе текста. Варианты: {список_вариантов}.
Пример 1:
Текст: {текст_примера_1}
Метрика: {метрика_1}
Рассуждение: {почему_такой_вывод}
Отношение: {вывод_1}
Пример 2:
Текст: {текст_примера_2}
Метрика: {метрика_2}
Рассуждение: {почему_такой_вывод}
Отношение: {вывод_2}
[Добавь 1-3 примера]
Теперь проанализируй:
Текст: {текст_для_анализа}
Метрика: {метрика}
Пояснения:
{метрика}— то, отношение к чему определяем (бюджет, сроки, выручка, пользователи, качество, etc.){список_вариантов}— обычно "положительное, отрицательное, нейтральное"{текст_примера_N}— реальные примеры из твоей практики{почему_такой_вывод}— Chain-of-Thought объяснение: какие сигналы в тексте, как их интерпретировать- Используй 1-3 примера — больше не нужно, эффект не улучшается
🚀 Быстрый старт — вставь в чат:
Вот шаблон для определения отношения к конкретным метрикам в текстах. Адаптируй под мою задачу: [опиши свою задачу — какие тексты анализируем, какие метрики, что хочешь узнать].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит про примеры из твоей практики, список метрик, формат вариантов ответа. Она возьмёт паттерн из шаблона и адаптирует под твою конкретную задачу — отношение клиентов к продукту, оценка отчётов, анализ новостей, мониторинг проектов.
Ограничения
⚠️ Сложность текста: Метод работает хуже на формальных, юридически-плотных текстах (типа отчётов SEC) чем на разговорных (earnings calls, отзывы, новости). В формальных текстах отношение часто скрыто за цифрами и сложными конструкциями — модели нужно делать вычисления и глубже понимать импликации.
⚠️ Качество примеров: Результат сильно зависит от качества few-shot примеров. Если примеры с плохим CoT рассуждением или не похожи на задачу — результат хуже. Нужно потратить время на подбор хороших примеров.
⚠️ Субъективные метрики: Метод работает лучше для объективных метрик (долг, выручка, пользователи, сроки). Для субъективных оценок (качество дизайна, удовлетворённость) может быть менее точным.
Как исследовали
Исследователи взяли финансовые отчёты (SEC Form 10-K) и транскрипты earnings calls двух компаний — MATIV Holdings и 3M — за 2020-2024. Отфильтровали предложения которые упоминают три финансовые метрики: долг, прибыль на акцию (EPS), продажи. Получилось ~120 тренировочных и ~107 тестовых примеров на метрику для SEC отчётов, ~120 тренировочных и ~193 тестовых для earnings calls.
Разметили stance (положительный/отрицательный/нейтральный) с помощью ChatGPT-o3-pro с человеческой валидацией. Согласие с людьми >97% — высокое качество разметки, можно доверять.
Сравнили 4 модели (GPT-4.1-mini, Llama 3.3-70B, Gemma 3-27B, Mistral 3-24B) в разных сценариях: zero-shot vs few-shot (k=1, 5, 10 примеров), с контекстом vs без контекста, с Chain-of-Thought vs без CoT, случайные примеры vs семантически похожие примеры.
Ключевые результаты: GPT-4.1-mini лучший (87.8% точность), Llama 3.3 второй (83%). Few-shot с CoT лучше zero-shot в среднем на 4-5%. Семантически похожие примеры лучше случайных на ~2%. k=1 достаточно — больше примеров почти не помогает. Контекст помогает в zero-shot, но не в few-shot (примеры важнее контекста). Earnings calls проще для анализа чем формальные SEC отчёты (разговорная речь vs юридический язык).
Почему такие результаты: Few-shot даёт модели конкретный паттерн рассуждений, CoT показывает КАК думать, а не только ЧТО ответить. Один хороший пример с объяснением работает как инструкция — модель видит логику и воспроизводит её. Больше примеров не помогает потому что создаёт шум и противоречия в рассуждениях — модель путается между разными паттернами.
Адаптации и экстраполяции
💡 Адаптация для бизнес-отчётов: Тот же подход работает для анализа внутренних отчётов компании — отношение руководителя к KPI проекта, метрикам команды, бюджетам. Просто замени финансовые метрики (долг, EPS, продажи) на свои метрики (скорость разработки, качество кода, расходы) и добавь примеры из своей практики.
💡 Адаптация для отзывов клиентов: Определи отношение клиентов к аспектам продукта (цена, функционал, поддержка, дизайн) из отзывов, твитов, тикетов. Few-shot примеры с CoT покажут модели как различать "дорого, но оправданно" (положительное к цене) от "просто дорого" (негативное).
🔧 Техника: добавить контекст только в zero-shot → экономия токенов
Если у тебя нет примеров (few-shot), добавь краткую справку о компании/продукте/проекте — это улучшит результат. Но если есть хотя бы один пример с CoT, контекст можно пропустить — примеры важнее и дают лучший результат при меньших затратах токенов.
Ресурсы
"Evaluating Large Language Models for Stance Detection on Financial Targets from SEC Filing Reports and Earnings Call Transcripts"
Nikesh Gyawali, Doina Caragea (Kansas State University), Alex Vasenkov (Mathinvestments, Inc.), Cornelia Caragea (University of Illinois Chicago)
Код и данные: https://github.com/gnikesh/llm-financial-stance
