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

🟡 Використання інструментів ВММ

Системи MRKL1 (Modular Reasoning, Knowledge and Language, вимовляється як "miracle" (міракл), в перекладі «чудо») — це нейро-символьна архітектура, яка поєднує ВММ (нейронні обчислення) і зовнішні інструменти, такі як калькулятори (символьні обчислення), для вирішення складних задач.

Система MRKL складається з набору модулів (наприклад: калькулятор, API погоди, база даних тощо) і маршрутизатора, який вирішує, як «направити» вхідні запити природною мовою до відповідного модуля.

Простим прикладом системи MRKL є ВММ, що може використовувати програму калькулятор. Це одномодульна система, де ВММ є маршрутизатором. На питання: What is 100*100?, ВММ може вилучити числа із запиту і надіслати їх системі MRKL для обчислення результату за допомогою програми калькулятора. Це виглядатиме приблизно так:

What is 100*100?

CALCULATOR[100*100]

Система MRKL побачить слово CALCULATOR і вставить 100*100 у відповідну програму. Цю просту ідею можна легко використовувати в різних інструментах символьних обчислень.

Розглянемо наступні додаткові приклади застосування:

  • Чат-бот, який може відповідати на запитання про фінансову базу даних, вилучаючи інформацію для формування SQL-запиту з тексту користувача.

What is the price of Apple stock right now?

The current price is DATABASE[SELECT price FROM stock WHERE company = "Apple" AND time = "now"].
  • Чат-бот, який може відповідати на запитання про погоду, вилучаючи інформацію із запиту та використовуючи API погоди.

What is the weather like in New York?

The weather is WEATHER_API[New York].
  • Або навіть набагато складніші завдання, які залежать від кількох джерел даних, як-от:
Приклад системи MRKL (AI21)

Приклад

Я відтворив приклад системи MRKL з оригінальної статті, використовуючи Dust.tt (посилання тут). Система читає математичну задачу (наприклад, What is 20 times 5^6?), вилучає числа та математичні операції, і переформатовує їх для програми калькулятора (наприклад, 20*5^6). Потім вона надсилає переформатоване рівняння до програми калькулятора Google і видає результат. Зауважте, що в оригінальній статті виконується налаштування запитів маршрутизатора (ВММ), але тут я цього не роблю. Розглянемо, як це працює:

Спочатку я створив простий набір даних (dataset) на вкладці Dust Datasets.

Потім перейшов на вкладку Specification і завантажив набір даних за допомогою блоку input.

Згодом створив блок llm, який вилучає числа та математичні операції. Зверніть увагу, що у запиті я вказав, що ми будемо використовувати калькулятор Google. Модель, яку я застосовую (GPT-3), ймовірно, має певні знання про калькулятор Google із попереднього навчання.

Потім я створив блок code, який запускає простий код JavaScript для видалення пробілів із результату задачі.

Зрештою, я створив блок search, який надсилає переформатоване рівняння до калькулятора Google.

Нижче ми можемо побачити остаточні результати, які, безперечно, правильні!

Не соромтеся копіювати та експериментувати з цією платформою тут.

Примітки

MRKL був розроблений AI21 та спочатку використовував їхні ВММ J-1 (Jurassic 1)2.

Додаткова інформація

Перегляньте цей приклад системи MRKL, створеного за допомогою LangChain.


  1. Karpas, E., Abend, O., Belinkov, Y., Lenz, B., Lieber, O., Ratner, N., Shoham, Y., Bata, H., Levine, Y., Leyton-Brown, K., Muhlgay, D., Rozen, N., Schwartz, E., Shachaf, G., Shalev-Shwartz, S., Shashua, A., & Tenenholtz, M. (2022).
  2. Lieber, O., Sharir, O., Lentz, B., & Shoham, Y. (2021). Jurassic-1: Technical Details and Evaluation, White paper, AI21 Labs, 2021. URL: Https://Uploads-Ssl. Webflow. Com/60fd4503684b466578c0d307/61138924626a6981ee09caf6_jurassic_ Tech_paper. Pdf.