Перейти до основного вмісту

🟡 Математика

У цьому курсі ми бачили багато різних методів введення запитів, які можна використовувати для вдосконалення обчислювальних здібностей %%ВММ|ВММ%%. Один із останніх підходів, MathPrompter1, об’єднує деякі з цих методів (%%CoT|запити з покроковим поясненням рішень%%, %%ПМЛ|ПМЛ%% тощо) в одну техніку. Основна ідея полягає в тому, щоб розбити математичну задачу на алгебраїчні твердження, а потім використати код Python для її розв'язання різними способами.

MathPrompter працює в чотири кроки. Ми пояснимо їх на прикладі задачі. Приклад взято безпосередньо зі статті.

Задача: У ресторані кожна страва для дорослих коштує 5 доларів, для дітей – безкоштовно. Якби прийшла група з 15
людей, з яких 8 – діти, скільки коштувало б їхнє замовлення?

Крок 1: Створіть алгебраїчний шаблон

Перший крок — присвоїти змінну кожному числу в задачі. Це допомагає, оскільки дозволяє легше перевести задачу в абстрактне математичне питання, а також у програмний код.

Це можна зробити за допомогою кількох запитів:

Крок 2: Математичні запити

Суть цього кроку полягає в тому, щоб перетворити задачу на алгебраїчне твердження і на код Python. На цьому кроці вводиться два запити одночасно, що допомагає представити задачу різнобічно.

2a: Алгебраїчне твердження

Ми можемо здійснити запит ВММ на основі кількох ілюстрацій, щоб представити математичну задачу як алгебраїчне твердження. Це можна зробити, попросивши ВММ створити формат відповіді, починаючи з "Answer =".

2b: Код Python

Ми також можемо попросити %%ВММ|ВММ%% створити код Python, який розв’яже задачу. Для цього можна зробити запит у ВММ згенерувати функцію Python.

Генерування відповідей

Тепер ми можемо використовувати отримані раніше результати зіставлення для автоматичного заповнення змінних.

Зіставлення: {A: 5, B: 15, C: 8}

Алгебраїчні обчислення:

Відповідь = 5 * 15 - 5 * 8

Функція Python:

def restaurant_cost(A=5, B=15, C=8):
return A * (B - C)

Ми можемо оцінити обидві функції за допомогою Python.

Алгебраїчні обчислення:

>>> eval("5 * 15 - 5 * 8" )
35

Функція Python:

>>> restaurant_cost()
35

🟡 Крок 4: Самоузгодженість

Зрештою, ми використаємо %%Самоузгодженість|самоузгодженість%%, щоб повторити вищевказаний процес кілька разів (~5), а потім оберемо результат, який отримували найчастіше.

Висновок

За даними MultiArith2, точність MathPrompter становить 92,5%. Успіх цієї техніки – яскравий приклад того, яким чином Ви, як інженер запитів, можете використовувати вивчені на цьому курсі методи й поєднувати їх для розв'язання складніших задач.


  1. Imani, S., Du, L., & Shrivastava, H. (2023). MathPrompter: Mathematical Reasoning using Large Language Models.
  2. Roy, S., & Roth, D. (2015). Solving General Arithmetic Word Problems. Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, 1743–1752. https://doi.org/10.18653/v1/D15-1202