Математика
У цьому курсі ми бачили багато різних методів введення запитів, які можна використовувати для вдосконалення обчислювальних здібностей ВММ. Один із останніх підходів, MathPrompter, об’єднує деякі з цих методів (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), а потім оберемо результат, який отримували найчастіше.
Висновок
За даними MultiArith, точність MathPrompter становить 92,5%. Успіх цієї техніки – яскравий приклад того, яким чином Ви, як інженер запитів, можете використовувати вивчені на цьому курсі методи й поєднувати їх для розв'язання складніших задач.
Footnotes
-
Imani, S., Du, L., & Shrivastava, H. (2023). MathPrompter: Mathematical Reasoning using Large Language Models. ↩
-
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 ↩