просимо
😃 Основи
💼 Основні застосунки
🧙‍♂️ Середній рівень
🤖 Агенти
⚖️ Надійність
🖼️ Написання запитів для створення зображень
🔓 Злом запиту
🔨 Інструменти
💪 Налаштування запиту
🎲 Різне
📙 Словниковий довідник
📚 Бібліографічний список
📦 Рекомендовані продукти
🛸 Додаткові ресурси
🔥 У тренді
✨ Список залучених людей
⚖️ Надійність🟦 Математика

Математика

🟦 This article is rated medium
Reading Time: 1 minute
Last updated on August 7, 2024

Сандер Шульхофф

У цьому курсі ми бачили багато різних методів введення запитів, які можна використовувати для вдосконалення обчислювальних здібностей ВММ. Один із останніх підходів, 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

  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