推理的幻想
LLMS中推理的幻想源于它们产生连贯和上下文相关的文本的能力。当提出提示或问题时,LLM可以产生似乎是逻辑思想结果的响应。但是,这主要是由于它们的概率性质以及它们已经接受了大量文本数据的培训。 LLM从本质上学习此数据中的模式和关联,使他们可以预测给定上下文中最有可能的下一个单词或短语。
沃兹尼亚克关于智力和推理的观点
史蒂夫·沃兹尼亚克(Steve Wozniak)在《黑客想要 - 2009年》中提出的一个有趣的观点 - 批评我们经常定义情报的方式:
因此,我们不像我们所教的那样多教导思考,您知道,智力并没有定义为可以思考和思考和考虑所有可能性并提出最好的解决方案的大脑的人。哦,不,不,智慧在其他所有人中说的是完全相同的事情。像一个宗教一样,我们都很聪明,因为我说的是聪明的。并提出您自己的解决方案。
这种洞察力突出了LLM的一个关键问题:我们可以教导模型以多种和创造性的方式真正“思考”,还是他们只是模仿他们接受过培训的社会规范和模式?
理解推理
推理的核心涉及根据给定信息或证据得出结论或推断的能力。它需要逻辑,批判性思维和解决问题的技能的应用。
某些类型的推理:
尽管LLM可以通过预学的模式模仿其中的某些形式,但真正的推理需要一个故意的认知框架。
故意认知框架是一种结构化的心理方法,涉及:
从本质上讲,这是一种超越自动响应或预学模式的思维方式。它需要积极参与信息,做出明智判断的能力以及创造性地解决问题的能力。
想象一个解决犯罪的侦探。
故意的认知框架将涉及:
相反,简单的模式匹配系统可能:
通过增强学习在LLM中实施推理
注意:Openai O1功能的核心是其大规模增强学习算法。这种方法通过鼓励其产生导致纠正解决方案的思想链来教导该模型如何有效地思考。
Python示例:用GPT3.5 + COT解决的草莓问题“推理”
from openai import AzureOpenAI
# Define constants
AZURE_OPENAI_ENDPOINT = ""
AZURE_OPENAI_API_KEY = ""
az_client = AzureOpenAI ( azure_endpoint = AZURE_OPENAI_ENDPOINT , api_version = "2023-07-01-preview" , api_key = AZURE_OPENAI_API_KEY )
ai_response = az_client . chat . completions . create (
model = "gpt-35-turbo" ,
messages = [
{ "role" : "user" , "content" : "Count the occurrences of the letter 'r' in the word 'strawberry'." },
]
)
print ( "gpt-35-turbo" )
print ( ai_response . choices [ 0 ]. message . content )
print ( "------------" )
ai_response = az_client . chat . completions . create (
model = "gpt-35-turbo" ,
messages = [
{ "role" : "user" , "content" : "Count the occurrences of the letter 'r' in the word 'strawberry'." },
{ "role" : "system" , "content" : """
<chain of thought>
EXAMPLE: Count the occurrences of the letter 'p' in the word 'apple'.
To determine the number of occurrences of the letter 'p' in the word 'apple', we scan through the word letter by letter:
'a' (0), 'p' (1), 'p' (2), 'l' (0), 'e' (0).
Therefore, the letter 'p' appears 2 times.
</chain of thought>
IMPORTANT! USE ABOVE CHAIN OF THOUGHT TO GENERATE YOUR RESPONSE!
""" }
]
)
print ( "gpt-35-turbo with CoT" )
print ( ai_response . choices [ 0 ]. message . content )
print ( "------------" )输出
gpt-35-turbo
There are 2 occurrences of the letter 'r' in the word 'strawberry'.
------------
gpt-35-turbo with CoT
To determine the number of occurrences of the letter 'r' in the word 'strawberry', we scan through the word letter by letter:
- 's' (0)
- 't' (0)
- 'r' (1)
- 'a' (0)
- 'w' (0)
- 'b' (0)
- 'e' (0)
- 'r' (2)
- 'r' (3)
- 'y' (0)
Therefore, the letter 'r' appears 3 times in the word 'strawberry'.
------------
挑战和未来的方向
资源
LLM为什么不能计算?
学习到底意味着什么?