ReAct && MRKL

lightsong發表於2024-09-15

ReAct

https://learnprompting.org/docs/advanced_applications/react

What is ReAct?

ReAct1 (Reason + Act) is a paradigm that enables language models to solve complex tasks through natural language reasoning and actions. It allows an LLM to perform certain actions, such as retrieving external information, and then reason based on the retrieved data.

ReAct systems extend MRKL systems by adding the ability to reason about the actions they can perform.

Example

Below is an example from HotPotQA2, a question-answering dataset requiring complex reasoning. ReAct allows the LLM to reason about the question (Thought 1), take actions (e.g., querying Google) (Act 1). It then receives an observation (Obs 1) and continues the thought-action loop until reaching a conclusion (Act 3).

react qa
ReAct System (Yao et al.)

Readers with knowledge of reinforcement learning may recognize this process as similar to the classic RL loop of state, action, reward, state,... ReAct provides some formalization for this in their paper.

MRKL系統1 (Modular Reasoning, Knowledge and Language, pronounced "miracle")

https://hub.baai.ac.cn/view/23915

https://learnprompting.org/zh-Hans/docs/advanced_applications/mrkl

MRKL系統1 (Modular Reasoning, Knowledge and Language, pronounced "miracle") 是一種神經符號結構,結合了LLMs(神經計算)和像計算器(符號計算)這樣的外部工具,用於解決複雜問題。

MRKL系統由一組模組(例如計算器、天氣API、資料庫等)和一個路由器組成,決定如何將自然語言查詢“路由”到適當的模組。

一個簡單的MRKL系統示例是一個可以使用計算器應用程式的LLM。 這是一個單模組系統,其中LLM是路由器。 當被問到100*100是多少? 時,LLM可以選擇從提示中提取數字,然後告訴MRKL系統使用計算器應用程式計算結果。 這可能如下所示:

100*100是多少?

CALCULATOR [100*100]

MRKL系統將看到單詞CALCULATOR,並將100*100插入計算器應用程式中。 這個簡單的想法可以很容易地擴充套件到各種符號計算工具。

自迴歸語言模型

https://fuxi.163.com/database/872

自迴歸語言模型是一種基於統計機率的自然語言處理模型,用於生成和預測文字序列。該模型的核心思想是,利用前面的詞語序列,預測下一個詞語的機率分佈,從而生成連續的文字序列。在自然語言處理中,自迴歸語言模型是一種非常有用的技術,廣泛應用於語言生成、機器翻譯、語音識別等領域。

程式輔助語言模型(Program-aided Language Models, PAL)

https://learnprompting.org/zh-Hans/docs/advanced_applications/pal

程式輔助語言模型(Program-aided Language Models, PAL)1 是另一個MRKL系統的例子。給定一個問題,PAL能夠編寫程式碼解決這個問題。它將程式碼傳送到程式設計執行時以獲得結果。PAL的中間推理是程式碼,而CoT的是自然語言。

ReAct && MRKL
PAL 示例 (Gao et al.)

需要注意的是,PAL實際上交織了自然語言(NL)和程式碼。上面的圖片中,藍色的是PAL生成的自然語言推理。雖然圖中沒有顯示,PAL實際上在每行自然語言推理前生成'#',以便程式設計執行時將其解釋為註釋。

相關文章