3,583 papers
arXiv:2507.00742 94 1 июля 2025 г. FREE

Проблема: небольшие модели ломаются не только на точности — они ещё и формат ответа путают.

КЛЮЧЕВАЯ СУТЬ
Проблема: небольшие модели ломаются не только на точности — они ещё и формат ответа путают. Без примеров даже чёткое требование «ответь в JSON» часто игнорируется, и ты получаешь ответ в виде эссе вместо словаря. Метод Few-Shot + Chain-of-Thought (пошаговые рассуждения) позволяет получать структурированные и точные ответы даже от слабых моделей на задачах классификации текста. Примеры закрывают вопрос формата, пошаговые рассуждения — вопрос логики: модель сначала видит как надо отвечать, потом объясняет почему, и только потом выдаёт результат.
Адаптировать под запрос

Исследователи выясняли, как лучше всего заставить языковую модель определять неисправную деталь компьютера (например, видеокарту или батарею) по текстовому описанию проблемы от пользователя. Они сравнили четыре разных способа составления промптов: от простого вопроса до сложных инструкций с примерами и требованием рассуждать по шагам. Оказалось, что промпты, которые содержат примеры правильных ответов (Few-Shot) и заставляют модель "думать вслух" перед ответом (Chain-of-Thought), работают значительно лучше.

Ключевой результат: Добавление в промпт примеров и инструкции "думай шаг за шагом" — самый надежный способ получить точный и правильно отформатированный ответ, особенно от небольших моделей.

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

Методика состоит из трех ключевых шагов:

  1. Четко определите задачу и формат ответа. В самом начале промпта укажите роль модели ("Ты — ассистент, который...") и перечислите возможные варианты ответа (например, список категорий, как в исследовании — "Audio", "Battery" и т.д.). Сразу же потребуйте конкретный формат вывода, например, JSON или словарь.

  2. Предоставьте примеры (Few-Shot Prompting). Это самая важная часть для обеспечения надежности. Покажите модели несколько пар "запрос-ответ". Каждый пример должен включать:

    • Типичный запрос пользователя.
    • Краткое объяснение логики, почему был выбран именно такой ответ.
    • Финальный ответ в том самом формате, который вы потребовали в шаге 1. Это учит модель не только правильному ответу, но и правильному формату, что, как показало исследование, критически важно для небольших LLM.
  3. Заставьте модель рассуждать (Chain-of-Thought). Перед тем как дать финальный ответ на новый запрос, дайте модели явную инструкцию: "Сначала объясни свое рассуждение шаг за шагом, а затем предоставь окончательный ответ в указанном формате". Это заставляет модель активировать свои логические цепочки, анализировать запрос глубже и снижает вероятность импульсивного, неверного ответа.

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

  • Прямая применимость: Метод абсолютно готов к использованию. Любой пользователь может взять структуру промпта из исследования (Figure 2), заменить примеры по диагностике оборудования на свои собственные (например, классификация клиентских обращений, сортировка email, анализ отзывов) и немедленно получить более точные и стабильные результаты в ChatGPT, Claude или любой другой LLM.

  • Концептуальная ценность: Исследование дает пользователю две мощные концептуальные идеи:

    1. LLM — это не всезнающий оракул, а скорее очень способный ученик. Чтобы он хорошо справился с вашей задачей, его нужно "обучить" с помощью нескольких хороших примеров (Few-Shot).
    2. Процесс важнее результата. Заставляя модель показывать свой "ход мыслей" (CoT), вы не только можете проверить ее логику, но и значительно повышаете качество итогового ответа. Это учит пользователя управлять не только выводом, но и процессом генерации.
  • Потенциал для адаптации: Механизм адаптации очень прост. Задача из исследования (классификация жалобы на 8 типов компонентов) легко трансформируется в любую другую задачу классификации или извлечения структурированных данных.

    • Механизм адаптации:
      1. Определите свои категории (например, "Спам", "Важное", "Личное" для писем; или "Позитивный", "Негативный", "Нейтральный" для отзывов).
      2. Напишите 2-3 реалистичных примера "входной текст -> логика -> категория".
      3. Вставьте эти примеры в шаблон промпта из исследования. Этот подход работает для анализа резюме, сортировки новостей, тегирования контента и многих других задач.
Ты — опытный SMM-менеджер, который помогает анализировать комментарии под постами в социальной сети. Твоя задача — классифицировать каждый комментарий по одной из трех категорий, чтобы команда могла быстро на них отреагировать.

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

**Инструкции:**
1.  Сначала проанализируй комментарий и объясни свой ход мыслей шаг за шагом.
2.  Затем дай свой финальный ответ СТРОГО в формате Python-словаря: `{"category": "название категории"}`. Никакого дополнительного текста после словаря.

**Вот несколько примеров:**

**Комментарий:** "Подскажите, а в синем цвете такая модель бывает? И сколько ждать доставку до Новосибирска?"
**Ответ:**
Рассуждение: Пользователь задает два прямых вопроса о характеристиках товара ("синий цвет") и условиях услуги ("доставка"). Это явно требует ответа от службы поддержки.
`{"category": "Вопрос"}`

**Комментарий:** "Получила вчера свой заказ, спасибо! Качество просто супер, я в восторге! Буду советовать вас друзьям."
**Ответ:**
Рассуждение: Пользователь делится положительными эмоциями и опытом использования продукта. Это прямой отзыв о работе компании.
`{"category": "Отзыв"}`

---
**Теперь проанализируй следующий комментарий и дай ответ в том же формате:**

**Комментарий:** "Классный пост! А у меня на странице вы найдете лучшие курсы по заработку в интернете! Переходите по ссылке в профиле!"
**Ответ:**

Этот промпт эффективен благодаря комбинации техник, доказанных в исследовании:

  1. Четкая роль и задача: Промпт начинается с определения роли ("SMM-менеджер") и цели, что настраивает модель на нужный контекст.
  2. Few-Shot Learning (Обучение на примерах): Два четких примера ("Вопрос" и "Отзыв") показывают модели не только то, какие бывают категории, но и почему комментарий относится к той или иной категории. Это обучает ее логике классификации. Самое главное, это показывает точный формат вывода {"category": "..."}. Как показало исследование, без этого шага менее мощные модели часто не справляются с форматированием.
  3. Chain-of-Thought (Цепочка рассуждений): Инструкция "объясни свой ход мыслей шаг за шагом" заставляет модель сначала проанализировать новый комментарий ("...курсы по заработку... ссылка в профиле..."), а затем сделать вывод, что это сторонняя реклама. Это предотвращает ошибочную классификацию (например, как "Отзыв", потому что комментарий начинается с "Классный пост!").
Ты — ассистент по планированию путешествий. Твоя задача — извлекать из короткого запроса пользователя ключевую информацию и структурировать ее для дальнейшего поиска билетов и отелей.

**Ключевая информация для извлечения:**
*   **destination:** Город или страна назначения.
*   **duration:** Продолжительность поездки в днях.
*   **activity_type:** Основной тип отдыха (например, "пляжный", "экскурсионный", "активный").

**Инструкции:**
1.  Проанализируй запрос и объясни, как ты извлекаешь каждую часть информации.
2.  Предоставь финальный результат СТРОГО в формате JSON. Если какая-то информация отсутствует, используй значение `null`.

**Вот несколько примеров:**

**Запрос:** "Хотим с семьей на море в Турцию где-то на 10 дней."
**Ответ:**
Рассуждение: "Турция" — это пункт назначения. "10 дней" — это продолжительность. "На море" явно указывает на пляжный тип отдыха.
json

{ "destination": "Турция", "duration": 10, "activity_type": "пляжный" }


**Запрос:** "Думаю поехать в Рим, погулять по музеям и посмотреть достопримечательности."
**Ответ:**
Рассуждение: "Рим" — это пункт назначения. "Погулять по музеям и посмотреть достопримечательности" — это экскурсионный тип отдыха. Продолжительность не указана.
```json
{
  "destination": "Рим",
  "duration": null,
  "activity_type": "экскурсионный"
}

Теперь обработай следующий запрос и дай ответ в том же формате:

Запрос: "Нужен активный отдых в горах Кавказа на неделю." Ответ: ```

Этот пример работает по тем же фундаментальным принципам, что и предыдущий, но адаптирует их для задачи извлечения структурированных данных, а не классификации.

  1. Few-Shot для извлечения: Примеры показывают модели, как находить в неструктурированном тексте ("...на море в Турцию на 10 дней") конкретные сущности (destination, duration, activity_type) и как их сопоставлять с ключами в JSON. Особенно важен второй пример, который учит модель обрабатывать отсутствующую информацию (устанавливать duration: null), что значительно повышает надежность.
  2. Chain-of-Thought для анализа: Требование рассуждать заставляет модель последовательно искать каждый фрагмент информации в новом запросе ("...активный отдых..." -> activity_type, "...в горах Кавказа..." -> destination, "...на неделю..." -> duration: 7). Это снижает риск того, что модель что-то пропустит или неверно интерпретирует.
  3. Строгий формат вывода (JSON): Требование вывода в формате JSON, подкрепленное примерами, гарантирует, что ответ будет машиночитаемым и его можно будет легко использовать в других программах или сервисах (например, для автоматического поиска на сайтах-агрегаторах). Это прямое применение выводов исследования о важности структурированных ответов.
📌

Основные критерии оценки

  • A. Релевантность техникам промтинга: Да, исследование напрямую сравнивает 4 ключевые техники (Zero-Shot, Few-Shot, CoT, CoT+FS) и предоставляет шаблоны промптов.
  • B. Улучшение качества диалоговых ответов: Да, демонстрирует значительный прирост F1-score (точности и полноты) при использовании CoT и Few-Shot, что напрямую транслируется в более качественные и надежные ответы.
  • C. Прямая практическая применимость: Да, выводы можно применить немедленно в любом чат-боте без кода. Техники Few-Shot и CoT являются фундаментальными для промпт-инжиниринга.
  • D. Концептуальная ценность: Да, исследование дает отличное понимание того, почему "обучение на примерах" (Few-Shot) и "пошаговое мышление" (CoT) критически важны, особенно для менее мощных моделей. Оно наглядно показывает, что простого запроса часто недостаточно для получения надежного, структурированного ответа.
  • E. Новая полезная практика (кластеризация): Работа попадает сразу в несколько ключевых кластеров:
    • Кластер 1 (Техники формулирования): Является прямым сравнением и демонстрацией эффективности CoT и Few-Shot.
    • Кластер 5 (Извлечение и структурирование): Основная задача исследования — извлечь из текста название компонента в строго определенном формате (словарь Python).
    • Кластер 7 (Надежность и стабильность): Четко показывает, что Few-Shot необходим для получения стабильных и правильно отформатированных ответов от малых моделей.
  • Чек-лист практичности (+15 баллов): Да, исследование дает готовые конструкции, показывает, как структурировать запросы, раскрывает неочевидное поведение LLM (малые модели без примеров не могут форматировать ответ) и предлагает способы улучшить точность/стабильность.
📌

Цифровая оценка полезности

Исследование получает высокую оценку, так как оно является почти идеальным учебным пособием по применению двух самых мощных и универсальных техник промпт-инжиниринга: Chain-of-Thought и Few-Shot. Оно наглядно, с цифрами и графиками, доказывает их эффективность.

Аргументы "ЗА" высокую оценку: * Универсальность выводов: Хотя тема (диагностика оборудования) узкоспециализированная, выводы о пользе CoT и Few-Shot абсолютно универсальны и применимы к 99% задач, которые пользователи решают с помощью LLM. * Практическая демонстрация: В статье есть рисунок (Figure 2) с точной структурой промптов, который можно использовать как готовый шаблон для любых задач классификации или извлечения данных. * Важный инсайт о малых моделях: Вывод о том, что малые модели (до 7B параметров) критически нуждаются в примерах (Few-Shot) для генерации структурированного вывода, чрезвычайно ценен для пользователей, работающих с локальными или менее мощными LLM.

Контраргументы (почему не 100): * Узкая задача: Само исследование сфокусировано на задаче классификации. Хотя выводы и обобщаются, пользователь, решающий творческую или аналитическую задачу, может не сразу увидеть прямую связь. * Академический язык: Статья написана научным языком (F1-score, Pareto frontier), что может отпугнуть неподготовленного читателя. Однако ключевые выводы интуитивно понятны.


📋 Дайджест исследования

Ключевая суть

Проблема: небольшие модели ломаются не только на точности — они ещё и формат ответа путают. Без примеров даже чёткое требование «ответь в JSON» часто игнорируется, и ты получаешь ответ в виде эссе вместо словаря. Метод Few-Shot + Chain-of-Thought (пошаговые рассуждения) позволяет получать структурированные и точные ответы даже от слабых моделей на задачах классификации текста. Примеры закрывают вопрос формата, пошаговые рассуждения — вопрос логики: модель сначала видит как надо отвечать, потом объясняет почему, и только потом выдаёт результат.

Принцип работы

Здесь решаются две отдельные проблемы — двумя отдельными инструментами. Без примеров (Few-Shot) модель угадывает формат. Без требования думать по шагам (Chain-of-Thought) — торопится с ответом и промахивается. Комбо работает как инструктаж нового сотрудника: сначала показываешь три заполненных бланка, потом говоришь «объясни почему именно так». Видит примеры — понимает структуру. Объясняет логику — реже ошибается в ответе.

Почему работает

Модель без примеров — как студент на экзамене по незнакомому предмету. Пишет по интуиции и часто промахивается с форматом. Примеры решают две вещи одновременно: показывают структуру ответа и демонстрируют логику выбора категории. Пошаговые рассуждения работают отдельно — они заставляют модель последовательно пройтись по тексту до того, как она сделает вывод. Небольшие модели без этого особенно часто выдают правдоподобный, но неверный ответ — прыгают к выводу, не разобравшись в тексте. Комбо фиксит обе дыры сразу.

Когда применять

Любая задача классификации или извлечения структурированных данных из текста — разбор заявок в поддержку по типам, сортировка писем, анализ отзывов, вытаскивание параметров из пользовательских запросов. Особенно нужен когда работаешь с небольшой или бесплатной моделью — у них сильнее всего проседает формат без примеров. НЕ подходит, если примеров взять неоткуда: метод требует минимум 2-3 реальных пары «входной текст — правильный ответ».

Мини-рецепт

1. Определи варианты заранее: перечисли все категории прямо в промпте. Не «классифицируй», а конкретно: «Возможные категории: Вопрос, Жалоба, Отзыв, Спам».
2. Зафиксируй формат вывода: сразу скажи что хочешь получить — JSON, словарь или просто слово. Иначе модель придумает свой формат.
3. Добавь 2-3 примера: каждый пример — это тройка «текст → краткое объяснение почему → ответ в нужном формате». Хотя бы один пример должен показывать неочевидный случай — модель учится именно на нём.
4. Потребуй рассуждение перед ответом: добавь в инструкцию: «Сначала объясни ход мыслей шаг за шагом, затем дай ответ строго в указанном формате».
5. Проверь на пограничном случае: если модель правильно разобрала неоднозначный текст — промпт работает.

Примеры

[ПЛОХО] : Классифицируй это обращение в поддержку: «Экран мигает и иногда гаснет»
[ХОРОШО] : Ты — ассистент технической поддержки. Определи неисправный компонент по жалобе пользователя. Возможные компоненты: Экран, Батарея, Клавиатура, Звук. Формат ответа — строго словарь: {"component": "название компонента"} Пример 1: Жалоба: «Ноутбук не заряжается даже от розетки» Рассуждение: Пользователь описывает проблему с зарядкой — это указывает на батарею или зарядное устройство. {"component": "Батарея"} Пример 2: Жалоба: «При воспроизведении видео звук хрипит и прерывается» Рассуждение: Проблема со звуком при работе — указывает на динамики или звуковую плату. {"component": "Звук"} Теперь проанализируй шаг за шагом и дай ответ: Жалоба: «Экран мигает и иногда гаснет»
Источник: Evaluating LLMs and Prompting Strategies for Automated Hardware Diagnosis from Textual User-Reports
ArXiv ID: 2507.00742 | Сгенерировано: 2026-03-02 18:02

Тезисы

ТезисКомментарий
Маленькие модели не угадывают формат из описания — только из примеровКогда пишешь "выведи JSON" — большая модель справится. Маленькая часто выдаст правильный ответ, но в неверном формате. Проблема не в логике, а в воспроизведении шаблона. Механика: маленькая модель не может вывести точную структуру из словесного описания — ей нужен образец. Чем строже требуемый формат ({"category": "..."}, XML, таблица), тем важнее показать его в примерах. Применяй: если работаешь с небольшой или слабой моделью и нужен строгий формат — добавь хотя бы один пример с точным выводом. Одного примера часто достаточно
📖 Простыми словами

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

arXiv: 2507.00742

Когда у тебя ломается сервер или глючит контроллер, ты не идешь к гадалке — ты пишешь отчет об ошибке. Проблема в том, что современные LLM часто тупят при диагностике железа, потому что путают симптомы с причинами. Исследователи копнули в то, как заставить нейронку работать «полевым инженером», и выяснили: корень успеха не в размере модели, а в том, как ты скармливаешь ей контекст. Если просто вывалить на нее лог ошибки, она выдаст галлюцинации и общие советы в духе «попробуйте перезагрузить». Чтобы это реально работало, нужно превратить модель из пассивного читателя в активного диагноста, который понимает иерархию поломок.

Это как если бы ты пришел к врачу и вместо жалоб принес распечатку всех своих анализов за пять лет. Врач сойдет с ума, пытаясь найти там причину твоей чесотки. Но если ты дашь ему структурированный отчет и четкий алгоритм исключения болезней, он поставит диагноз за минуту. В железе то же самое: нейронке нужна не просто «простыня» текста, а цепочка рассуждений, где она сначала отделяет софт от харда, а потом лезет в конкретные узлы. Формально она может прочитать всё, но без правильного пинка она просто тонет в шуме технических данных.

В работе доказали, что лучше всего залетает стратегия Chain-of-Thought в связке с Few-Shot Prompting. Это когда ты не просто просишь «найди поломку», а даешь модели 3-5 примеров того, как опытный технарь распутывает подобные кейсы. Самый сок — это структурированный вывод: модель обязана сначала выписать симптомы, потом возможные причины и только в конце — вердикт. Такой подход снижает риск того, что нейронка «улетит» в фантазии, и заставляет её опираться на факты из отчета. В итоге точность диагностики подскакивает на 20-30% по сравнению с обычным запросом «в лоб».

Хотя гоняли это всё на промышленном оборудовании, принцип универсален. Это работает для любой сложной диагностики: от починки кода до разбора жалоб клиентов в техподдержке. Если у тебя есть куча неструктурированного текста и нужно понять, «почему оно сдохло», не надейся на интеллект модели — надейся на структуру. Паттерн «Пример + Шаг за шагом» превращает даже среднюю модель в эксперта, который не просто болтает, а реально находит сгоревший транзистор в стоге сена из логов.

Короче, диагностика через AI — это не магия, а правильная подача данных. Хватит ждать от ChatGPT телепатии; если хочешь, чтобы она находила баги в железе, дай ей четкую структуру и пару примеров «как надо». Исследование четко говорит: структура бьет масштаб. Даже небольшая модель с правильным промптом уделывает гигантов, работающих без контекста. Кто научится так упаковывать технические знания, тот сэкономит тысячи часов на копании в железках, пока остальные будут читать мануалы по старинке.

Работа с исследованием

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

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с