Last updated on August 7, 2024
MRKL Systems (Modular Reasoning, Knowledge and Language, siguiendo una lógica fonética inglesa, se prouncia "miracle") son una arquitectura neuro-simbólica que combina LLMs (computación neuronal) y herramientas externas como calculadoras (computación simbólica) para resolver problemas complejos.
Un sistema MRKL está compuesto por un conjunto de módulos (por ejemplo, una calculadora, una API del clima, una base de datos, etc.) y un enrutador que decide cómo "enrutar" las consultas en lenguaje natural entrantes al módulo apropiado.
Un ejemplo simple de un sistema MRKL es un LLM que puede usar una aplicación de calculadora. Este es un sistema de un solo módulo, donde el LLM es el enrutador. Cuando se le pregunta: "¿Cuál es el resultado de 100*100?", el LLM puede elegir extraer los números de la consulta y luego decirle al sistema MRKL que use una aplicación de calculadora para calcular el resultado. Esto podría verse así:
¿Cuál es el resultado de 100*100?
CALCULADORA[100*100]
El sistema MRKL vería la palabra "CALCULADORA" e insertaría "100*100" en la aplicación de calculadora. Esta idea simple se puede expandir fácilmente a varias herramientas de computación simbólica.
Considere los siguientes ejemplos adicionales de aplicaciones:
¿Cuál es el precio de las acciones de Apple ahora?
El precio actual es BASE DE DATOS [SELECCIONAR precio DE acciones DONDE empresa = "Apple" Y tiempo = "ahora"].
¿Cómo está el clima en Nueva York?
El clima es API DEL CLIMA[Nueva York].
He reproducido un ejemplo del sistema MRKL del artículo original, utilizando Dust.tt, vinculado aquí. El sistema lee un problema matemático (por ejemplo, ¿Cuánto es 20 por 5^6?
), extrae los números y las operaciones, y los reformatea para una aplicación de calculadora (por ejemplo, 20*5^6
). Luego envía la ecuación reformateada a la aplicación de calculadora de Google y devuelve el resultado. Tenga en cuenta que el artículo original realiza una optimización rápida en el enrutador (el LLM), pero no lo hago en este ejemplo. Veamos cómo funciona esto:
Primero, hice un conjunto de datos simple en la pestaña Datasets
de Dust.
Luego, cambié a la pestaña Specification
y cargué el conjunto de datos utilizando un bloque data
.
A continuación, creé un bloque llm
que extrae los números y operaciones. Observe cómo en el prompt le dije que estaríamos usando la calculadora de Google. El modelo que uso (GPT-3) probablemente tiene algún conocimiento de la calculadora de Google desde el preentrenamiento.
Luego, hice un bloque code
, que ejecuta un código JavaScript simple para eliminar los espacios de la finalización.
Finalmente, hice un bloque search
que envía la ecuación reformateada a la calculadora de Google.
¡A continuación, podemos ver los resultados finales, que son todos correctos!
Siéntase libre de clonar y experimentar con este playground aquí.
MRKL fue desarrollado por AI21 y originalmente utilizó su LLM J-1 (Jurassic 1).
Vea este ejemplo de un sistema MRKL construido con 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. ↩