Системи MRKL (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
у відповідну програму. Цю просту ідею можна легко використовувати в різних інструментах символьних обчислень.
Розглянемо наступні додаткові приклади застосування:
What is the price of Apple stock right now?
The current price is DATABASE[SELECT price FROM stock WHERE company = "Apple" AND time = "now"].
What is the weather like in New York?
The weather is WEATHER_API[New York].
Я відтворив приклад системи 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).
Перегляньте цей приклад системи MRKL, створеного за допомогою LangChain.
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). ↩
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. ↩