Перейти к основному содержимому

🟡 Использование инструментов LLMs

Системы MRKL1 (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 в приложение калькулятора. Эта простая идея может быть легко распространена на различные инструменты символьных вычислений.

Рассмотрим следующие дополнительные примеры применения:

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

Какова сейчас цена акций Apple?

Текущая цена - DATABASE[ВЫБРАТЬ цену ИЗ акций ГДЕ компания = "Apple" И время = "сейчас"].
  • Чатбот, способный отвечать на вопросы о погоде, извлекая информацию из подсказки (prompt) и используя погодный API для получения информации.

Какая погода (weather) в Нью-Йорке?

Погода - WEATHER_API[Нью-Йорк].
  • Или даже гораздо более сложные задачи, которые зависят от нескольких источников данных, например, следующие:
Пример системы MRKL (AI21)

Пример

Я воспроизвел пример 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)2 LLM.

Больше

Смотрите этот пример системы 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.