Системы MRKL (Modular Reasoning, Knowledge and Language, произносится как "miracle" ну или "чудо") представляют собой нейро-символическую архитектуру, которая объединяет LLM (нейронные вычисления) и внешние инструменты, такие как калькуляторы (символьные вычисления), для решения сложных задач.
Система MRKL состоит из набора модулей (например, калькулятор, погодный API, база данных и т.д.) и маршрутизатора, который решает, как "направить" входящие запросы на естественном языке в соответствующий модуль.
Простым примером системы MRKL является LLM, который может
использовать приложение калькулятор. Это одномодульная система, где LLM является маршрутизатором.
На вопрос Сколько будет 100*100?
, LLM может выбрать извлечь числа из подсказки, а затем сказать системе MRKL использовать приложение калькулятора для вычисления результата.
Это может выглядеть следующим образом:
Сколько будет 100*100?
CALCULATOR[100*100]
Система MRKL увидит слово CALCULATOR
и вставит 100*100
в приложение калькулятора.
Эта простая идея может быть легко распространена на различные инструменты символьных вычислений.
Рассмотрим следующие дополнительные примеры применения:
Какова сейчас цена акций Apple?
Текущая цена - DATABASE[ВЫБРАТЬ цену ИЗ акций ГДЕ компания = "Apple" И время = "сейчас"].
Какая погода (weather) в Нью-Йорке?
Погода - WEATHER_API[Нью-Йорк].
Я воспроизвел пример MRKL системы из оригинальной статьи, используя Dust.tt,
ссылка здесь.
Система читает математическую задачу (например, Сколько будет 20 раз по 5^6?
), извлекает числа и операции, и переформатирует их для приложения калькулятора (например, 20*5^6
). Затем он отправляет переформатированное уравнение в приложение-калькулятор Google и возвращает результат. Обратите внимание, что в оригинальной статье выполняется оперативная настройка маршрутизатора (LLM), но в данном примере я этого не делаю. Давайте рассмотрим, как это работает:
Сначала я создал простой набор данных (dataset) на вкладке Dust Datasets
.
Затем я переключился на вкладку Specification
и загрузил набор данных с помощью блока data
.
Далее я создал блок llm
, который извлекает числа и операции. Обратите внимание, что в подсказке я сообщил, что мы будем использовать калькулятор Google. Модель, которую я использую (GPT-3), вероятно, имеет некоторые знания о калькуляторе Google из предварительного обучения.
Затем я создал блок code
, который запускает простой код javascript для удаления пробелов из завершения.
Наконец, я сделал блок search
, который отправляет переформатированное уравнение в калькулятор Google.
Ниже мы видим окончательные результаты, которые все верны!
Не стесняйтесь клонировать и экспериментировать с этой платформой [здесь] (https://dust.tt/trigaten/a/98bdd65cb7).
MRKL был разработан AI21 и первоначально использовал их J-1 (Jurassic 1) LLM.
Смотрите этот пример системы 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. ↩