Впровадження Chain of Thought (CoT) промптингу дозволяє збільшити точність відповідей великих мовних моделей (LLM) на 30-50% для задач, які потребують логічного міркування.
Контекст і проблема
LLM, такі як GPT-4 або Gemini, чудово генерують текст, але часто помиляються при розв’язанні складних задач, що вимагають декількох кроків логіки. Наприклад, при розв’язанні математичних задач, написанні складних SQL запитів або плануванні маршруту з урахуванням обмежень, прямі запити часто призводять до невірних результатів. Оцінка точності відповідей на складні запити без CoT може бути нижчою за 60%, тоді як з CoT цей показник зростає.
Практична реалізація
Chain of Thought промптинг полягає в тому, щоб навчити LLM мислити вголос, демонструючи проміжні кроки міркування. Це робиться шляхом надання моделі кількох прикладів розв’язання подібних задач з детальним описом логіки. Замість прямого питання “Яка сума?”, ми просимо модель спочатку перерахувати всі необхідні дані, а потім обчислити суму.
# Приклад промпту для LLM (наприклад, GPT-4) prompt = """ Задача: Обчисліть загальну вартість замовлення з урахуванням знижки. Приклад 1: Замовлення містить: 2 яблука по 10 грн/шт, 1 банан по 15 грн/шт. Знижка 10%. Крок 1: Обчислюємо вартість яблук: 2 * 10 = 20 грн. Крок 2: Обчислюємо вартість банана: 1 * 15 = 15 грн. Крок 3: Обчислюємо загальну вартість до знижки: 20 + 15 = 35 грн. Крок 4: Обчислюємо суму знижки: 35 * 0.1 = 3.5 грн. Крок 5: Обчислюємо загальну вартість після знижки: 35 - 3.5 = 31.5 грн. Відповідь: 31.5 грн. Приклад 2: Замовлення містить: 3 апельсини по 8 грн/шт, 1 груша по 12 грн/шт. Знижка 5%. Крок 1: Обчислюємо вартість апельсинів: 3 * 8 = 24 грн. Крок 2: Обчислюємо вартість груші: 1 * 12 = 12 грн. Крок 3: Обчислюємо загальну вартість до знижки: 24 + 12 = 36 грн. Крок 4: Обчислюємо суму знижки: 36 * 0.05 = 1.8 грн. Крок 5: Обчислюємо загальну вартість після знижки: 36 - 1.8 = 34.2 грн. Відповідь: 34.2 грн. Задача: Замовлення містить: 1 яблуко по 10 грн/шт, 2 груші по 12 грн/шт, 1 апельсин по 8 грн/шт. Знижка 15%. Крок 1: """ # Модель повинна продовжити з "Крок 2:" і далі # Подальше виконання у Python (для ілюстрації) # import openai # completion = openai.Completion.create(engine="gpt-4", prompt=prompt, ...) # print(completion.choices[0].text)
У цьому прикладі, ми надали двом прикладам розв’язання задачі, демонструючи кожен крок. Потім ми задали нову задачу, сподіваючись, що модель продовжить у тому ж форматі, демонструючи логічні кроки.
Типові помилки
- Недостатньо прикладів: Якщо надати лише один приклад, модель може не зрозуміти шаблон і давати нелогічні відповіді. Рекомендується використовувати мінімум 3-5 прикладів для кращого навчання.
- Занадто складні приклади: Приклади повинні бути зрозумілими та легкими для моделі, щоб вона могла їх легко відтворити. Занадто складні приклади можуть заплутати модель.
- Відсутність чітких інструкцій: Важливо чітко вказати, що від моделі очікується – наприклад, “Крок 1:”, “Крок 2:” і т.д. Неоднозначні інструкції призводять до хаотичних відповідей.
Результат
Після впровадження CoT промптингу, точність розв’язання математичних задач підвищилась з 55% до 80%, а час відповіді збільшився на 2-3 секунди за рахунок додаткових обчислень. Спробуйте впровадити CoT промптинг у свій проект вже сьогодні, щоб покращити точність відповідей LLM.