У цьому курсі ми бачили багато різних методів введення запитів, які можна використовувати для вдосконалення обчислювальних здібностей ВММ. Один із останніх підходів, MathPrompter, об’єднує деякі з цих методів (CoT, ПМЛ тощо) в одну техніку. Основна ідея полягає в тому, щоб розбити математичну задачу на алгебраїчні твердження, а потім використати код Python для її розв'язання різними способами.
MathPrompter працює в чотири кроки. Ми пояснимо їх на прикладі задачі. Приклад взято безпосередньо зі статті.
Задача: У ресторані кожна страва для дорослих коштує 5 доларів, для дітей – безкоштовно. Якби прийшла група з 15
людей, з яких 8 – діти, скільки коштувало б їхнє замовлення?
Перший крок — присвоїти змінну кожному числу в задачі. Це допомагає, оскільки дозволяє легше перевести задачу в абстрактне математичне питання, а також у програмний код.
Це можна зробити за допомогою кількох запитів:
Суть цього кроку полягає в тому, щоб перетворити задачу на алгебраїчне твердження і на код Python. На цьому кроці вводиться два запити одночасно, що допомагає представити задачу різнобічно.
Ми можемо здійснити запит ВММ на основі кількох ілюстрацій, щоб представити математичну задачу як алгебраїчне твердження. Це можна зробити, попросивши ВММ створити формат відповіді, починаючи з "Answer =".
Ми також можемо попросити ВММ створити код 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
Зрештою, ми використаємо Самоузгодженість, щоб повторити вищевказаний процес кілька разів (~5), а потім оберемо результат, який отримували найчастіше.
За даними MultiArith, точність MathPrompter становить 92,5%. Успіх цієї техніки – яскравий приклад того, яким чином Ви, як інженер запитів, можете використовувати вивчені на цьому курсі методи й поєднувати їх для розв'язання складніших задач.
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 ↩