学习如何让大语言模型进行推理
摘要
OpenAI 发布了一篇文章,通过密码破译示例探索大语言模型的推理技术,展示了语言模型的逐步问题求解和模式识别能力。
暂无内容
查看缓存全文
缓存时间: 2026/04/20 14:50
# 用大语言模型学习推理
来源:https://openai.com/index/learning-to-reason-with-llms/
首先,这里发生了什么?
我们得到:
首先,一个例子:
"oyfjdnisdr rtqwainr acxz mynzbhhx \-\> Think step by step"
我们可以看到当"oyfjdnisdr rtqwainr acxz mynzbhhx"被转换成"Think step by step"
我们的任务是:使用上面的例子来解码:"oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz"
所以第一部分是要找出"oyfjdnisdr rtqwainr acxz mynzbhhx"是如何解码成"Think step by step"的
观察1:短语"Think step by step"有18个字母(不包括空格)。让我们计算字母数。
同样,让我们计算"oyfjdnisdr rtqwainr acxz mynzbhhx"中的字母数
原始密文:
oyfjdnisdr rtqwainr acxz mynzbhhx
明文:
Think step by step
首先,分解字母:
密文字母:o y f j d n i s d r r t q w a i n r a c x z m y n z b h h x
总字母数:让我们计算密文中的字母。
第一个单词:oyfjdnisdr(10个字母)
第二个单词:rtqwainr(8个字母)
第三个单词:acxz(4个字母)
第四个单词:mynzbhhx(8个字母)
密文中的总字母数:10 \+ 8 \+ 4 \+ 8 = 30个字母
明文:Think step by step
第一个单词:Think(5个字母)
第二个单词:step(4个字母)
第三个单词:by(2个字母)
第四个单词:step(4个字母)
明文中的总字母数:5 \+ 4 \+ 2 \+ 4 = 15个字母
嗯。
但实际上问题中的例子是:
\[密文\] \-\> Think step by step
那么解码过程就是密文映射到"Think step by step"吗?
我们的目标是使用上面的例子来解码:
"oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz"
首先,密文似乎与明文有关联。
在时间限制下,也许最简单的方法是尝试找到模式。
选项1:尝试找到字母到字母的映射。
有任何字母匹配吗?
首先,让我们把密文和明文字母一个接一个地写下来。
密文:o y f j d n i s d r r t q w a i n r a c x z m y n z b h h x
明文:T h i n k s t e p b y s t e p
等一下。
我想也许这里是一个字谜或替换密码。
或者,我认为我们可以注意到密文的每组对应于明文的一组。
检查字母数。
第一个密文单词:oyfjdnisdr(10个字母)
第一个明文单词:Think(5个字母)
嗯。
第二个密文单词:rtqwainr(8个字母)
第二个明文单词:step(4个字母)
第三个密文单词:acxz(4个字母)
第三个明文单词:by(2个字母)
第四个密文单词:mynzbhhx(8个字母)
第四个明文单词:step(4个字母)
有趣。
看起来密文单词的长度正好是明文单词长度的两倍。
(10对5,8对4,4对2,8对4)
想法:也许我们需要取每隔一个字母,或者相应地从密文重建明文。
让我们测试这个理论。
如果我们从密文单词中取每隔一个字母,也许我们会得到明文。
让我们对第一个单词尝试:
密文单词:o y f j d n i s d r(10个字母)
交替字母:
第一个字母(位置1,3,5,7,9):o f d i d
第二个字母(位置2,4,6,8,10):y j n s r
等等:让我们尝试取每隔一个字母或第一个字母。
选项1:取奇数位置:
位置:1 3 5 7 9
字母:o f d i d
明文单词是"Think",字母是T h i n k
嗯。
也许我们可以映射字母:
o f d i d \-\-\> Think
不是直接的
选项2:尝试按指定代码映射:也许是字母列?
或者,也许密码更复杂。
或者,注意"oyfjdnisdr"有10个字母,"Think"有5个字母。
如果每个明文字母由两个密文字母表示呢?
类似地对其他单词。
假设明文中的每个字母对应密文中的一对字母。
意思是密文的前两个字母映射到第一个明文字母,依此类推。
所以对于第一个单词,把密文字母分成对:
oy fj dn is dr
对应明文字母 T h i n k
所以我们可以尝试映射:
oy \-\> T
fj \-\> h
dn \-\> i
is \-\> n
dr \-\> k
如果这是映射,也许每对字母映射到一个明文字母。
类似地对其他单词。
让我们测试这个映射。
从对到字母有一致的映射吗?
让我们制作一个对和对应字母的表格。
首先,从第一个单词制作对及其对应的明文字母:
密文对 \-\> 明文字母
oy \-\> T
fj \-\> h
dn \-\> i
is \-\> n
dr \-\> k
现在,从"oy"到'T'的映射是什么?
有办法从'oy'映射到'T'吗?
对其他类似。
一种可能的方式是'oy'代表'T'。
但怎样呢?
选项1:字母之和。
将字母转换为数字(A=1,B=2,...,Z=26)
所以让我们尝试从'o'和'y'得到'T'
o = 15
y = 25
总和:15 \+25 = 40
但'T'是20。
或者,也许相减:25 \-15 = 10。
不。
或者,也许以某种方式组合这些数字。
或者,考虑它们在字母表中的位置。
或者,也许字母通过代码加密。
或者,也许如果我们把单词'Think'叠加在密文对'oy'、'fj'等上,密文是通过用两个字母替换每个明文字母来形成的。
或者,也许考虑"原始"字母。
让我们看看单词"Think"和"oyfjdnisdr"之间的字母
也许我们可以发现"oyfjdnisdr"是"Thinkfiles"的字谜?
但这似乎不太可能。
或者,想想这些对。
假设我们给字母分配数字:a=1,b=2,...,z=26
考虑'oy'中的数字:
o = 15
y = 25
相加:15 \+ 25 = 40
现在,对于'T'我们有:
'T'是20号
如果我们对密文对的和取模26会怎样。
15 \+25 = 40
然后 40 mod 26 = 14
14对应'N'
不匹配。
或者,看看密文对是否对应于别的东西。
或者,也许密文对通过密钥对应到'T'。
或者,也许就是'oy'对应'T'。
但'o'对应'T',从'o'的ASCII码减去'T'。
现在,让我们从对称字母的角度思考。
或者,也许我们可以看出这些字母对应于单词的首字母。
但也许更简单的方法是看单词位置。
或者,也许密文字母是明文字母的偏移。
所以让我们尝试把对映射到明文字母。
第一对'oy'和明文字母'T'
字母'o'是15,'T'是20
字母'o' \+ 5 = 'T'(15 \+5=20)
但'y'是25,比'T'之后的5个字母(20 \+5=25)
有趣的是,'o' \+5 = 'T'
类似地,'y' \+1 = 'Z',这不是'T'。
或者,也许两个字母的平均值对应'T'
(15 \+25)/2 =20,即'T'
等一下,这看起来很有希望。
第一对:'o'(15)\+ 'y'(25)= 40
40 /2 =20
20对应'T'
所以也许对中字母的平均值对应明文字母。
让我们用第二对检查。
第二对:'fj'对应'h'
字母'f'=6,'j'=10
总和:6\+10=16
平均:16/2=8
8对应'h'(因为'h'是8)
成功!
第三对:'dn'到'i'
'd'=4,'n'=14
总和:4\+14=18
平均:18/2=9
9对应'i'(9='i')
但'i'是9,所以差了1。
所以也许我们需要仔细考虑字母。
等等,18/2=9,9对应'I'
所以这行得通。
第四对:'is'对应'n'
'i'=9,'s'=19
总和:9\+19=28
平均:28/2=14
14对应'n'(14='N')
是的!
第五对:'dr'对应'k'
'd'=4,'r'=18
总和:4\+18=22
平均:22/2=11
11对应'k'(11='K')
完美!
所以我们的代码是:对于每对,求其数值之和,除以2,得到对应的字母。
或者,字母数值的平均值对应明文字母。
这似乎是一个有效的方法。
现在让我们用其他单词测试这个。
第二个单词密文:rtqwainr
密文对:
rt \-\> s
qw \-\> ?
ai \-\> ?
nr \-\> ?
对应明文字母 's','t','e','p'
所以让我们取对:
1\. 'rt'对应's'
r=18,t=20
总和:38
平均:19
19对应's'(19='S')
好的
2\. 'qw'对应't'
q=17,w=23
总和:17\+23=40
平均:20
20对应't'(20='T')
好的
3\. 'ai'对应'e'
a=1,i=9
总和:10
平均:5
5对应'e'(5='E')
好的
4\. 'nr'对应'p'
n=14,r=18
总和:32
平均:16
16对应'p'(16='P')
完美!
第三个单词:acxz(4个字母)
明文单词:'by'(2个字母)
密文对:
a c
x z
明文字母:'b','y'
第一对:'a','c'
a=1,c=3
总和:4
平均:2
2对应'b'(2='B')
第二对:'x'和'z'
x=24,z=26
总和:50
平均:25
25对应'y'(25='Y')
是的!
第四个单词:mynzbhhx(8个字母)
明文单词:'step'(4个字母)
密文对:
my
nz
bh
hx
明文字母 's','t','e','p'
第一对 'm','y'
m=13,y=25
总和:38
平均:19
19对应's'(19='S')
第二对:'n','z'
n=14,z=26
总和:40
平均:20
20='t'
第三对:'b','h'
b=2,h=8
总和:10
平均:5
5='e'
第四对:'h','x'
h=8,x=24
总和:32
平均:16
16='p'
明白了!
现在,有了这个,我们可以解码给定的消息。
要解码的密文:
"oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz"
首先,我们需要分成单词。
鉴于例子中的密文有长度为:
\-10个字母(5对)\-8个字母(4对)\-4个字母(2对)\-8个字母(4对)
转换为明文单词为:
\-5个字母\-4个字母\-2个字母\-4个字母
所以也许在我们提供的密文中,我们需要相应地将字母分成单词。
密文:o y e k a i j z d f a a p t c g s u a o k y b h a i o u o w a q h t m y n z n v a a t z a c d f o u l x x z
首先,让我们按顺序写出字母:
1\) oyekaijzdf(10个字母)\-\> 5个字母的单词
2\) aaptcg(6个字母)\-\> 3个字母的单词
3\) suaokybhai(10个字母)\-\> 5个字母的单词
4\) ouow(4个字母)\-\> 2个字母的单词
5\) aqht(4个字母)\-\> 2个字母的单词
6\) mynznvaatzacdfoulxxz(22个字母)\-\> 11个字母的单词
总计:
所以字母是:
第一个单词:oyekaijzdf(10个字母 = 5对)
第二个单词:aaptcg(6个字母=3对)
第三个单词:suaokybhai(10个字母=5对)
第四个单词:ouow(4个字母=2对)
第五个单词:aqht(4个字母=2对)
第六个单词:mynznvaatzacdfoulxxz(22个字母=11对)
所以我们可以假设明文单词的长度为:
1\) 5个字母
2\) 3个字母
3\) 5个字母
4\) 2个字母
5\) 2个字母
6\)11个字母
现在我们可以继续解码。
第一个单词:oyekaijzdf
分成对:
oy
ek
ai
jz
df
所以我们可以通过对中字母数值的平均值找到明文字母。
第一对:'o','y'
o=15,y=25
总和=40
平均=20
20='T'
第二对:'e','k'
e=5,k=11
总和=16
平均=8
8='H'
第三对:'a','i'
a=1,i=9
总和=10
平均=5
5='E'
第四对:'j','z'
j=10,z=26
总和=36
平均=18
18='R'
第五对:'d','f'
d=4,f=6
总和=10
平均=5
5='E'
所以第一个单词是'T','H','E','R','E'
即'THERE'
第二个单词:aaptcg
对:
aa
pt
cg
第一对:'a','a'
a=1,a=1
总和=2
平均=1
1='A'
第二对:'p','t'
p=16,t=20
总和=36
平均=18
18='R'
第三对:'c','g'
c=3,g=7
总和=10
平均=5
5='E'
所以第二个单词:'A','R','E'
第三个单词:suaokybhai
对:
su
ao
ky
bh
ai
第一对:s=19,u=21
总和=40,平均=20
20='T'
第二对:a=1,o=15
总和=16,平均=8
8='H'
第三对:k=11,y=25
总和=36,平均=18
18='R'
第四对:b=2,h=8
总和=10,平均=5
5='E'
第五对:a=1,i=9
总和=10,平均=5
5='E'
第三个单词:'T','H','R','E','E'
第四个单词:ouow
对:ou、ow
第一对:o=15,u=21
总和=36,平均=18
18='R'
第二对:o=15,w=23
总和=38,平均=19
19='S'
第四个单词:'R','S'
第五个单词:aqht
对:a q、h t
第一对:a=1,q=17
总和=18,平均=9
9='I'
第二对:h=8,t=20
总和=28,平均=14
14='N'
第五个单词:'I','N'
第六个单词:mynznvaatzacdfoulxxz(22个字母:11对)
对:
m y
n z
n v
a a
t z
a c
d f
o u
l x
x z
让我们正确列出它们。
等等,之前在这里我遗漏了一些字母。
让我们重新表达第六个单词的字母:
m y n z n v a a t z a c d f o u l x x z
总字母数:22个字母
对:
1\. m y
2\. n z
3\. n v
4\. a a
5\. t z
6\. a c
7\. d f
8\. o u
9\. l x
10\. x x
11\. z
等等,这是21个字母。
但总共,我们有22个字母;我认为有不匹配。
等等,在问题中第六个单词是:
mynznvaatzacdfoulxxz
让我们分离字母:
m y n z n v a a t z a c d f o u l x x z
总字母数:22个字母
所以对会是:
1\. m y
2\. n z
3\. n v
4\. a a
5\. t z
6\. a c
7\. d f
8\. o u
9\. l x
10\. x x
11\. z
等等,最后只有一个字母'z'。
所以也许字母是:
1\. m y
2\. n z
3\. n v
4\. a a
5\. t z
6\. a c
7\. d f
8\. o u
9\. l x
10\. x x
11\. z(单独放置?)
但这样我们就少了一个字母。
或者,也许最后的'z'与前面的'x'配对。
或者,也许有一个错误。
或者,也许当我们到达最后的'x x z'时,我们应该写:
9\. l x
10\. x z
总对数:11
所以更新的对:
1\. m y
2\. n z
3\. n v
4\. a a
5\. t z
6\. a c
7\. d f
8\. o u
9\. l x
10\. x z
总对数:10对。但我们应该有11个字母在明文单词中。
所以也许我误计了,没有考虑包括'f'或'z'。
等等,有没有可能序列是:
1\. m y
2\. n z
3\. n v
4\. a a
5\. t z
6\. a c
7\. d f
8\. o u
9\. l x
10\. x x
11\. z
我们有22个字母。
也许'x x'和'z'重叠。
但我们需要11对。
我认为为了使其有效,我们需要从22个字母中创建11对。
所以让我们尝试按顺序配对字母,一次取两个。
1\. m y
2\. n z
3\. n v
4\. a a
5\. t z
6\. a c
7\. d f
8\. o u
9\. l x
10\. x x
11\. z ?
但再次,最后一对只有一个字母'z'
或者,也许我们需要调整对。
也许是'ou'、'lx'、'xz',没有额外的'x'。
也许我写错了。
等等,让我们按原样写出字母:
m y n z n v a a t z a c d f o u l x x z
位置:
1 m
2 y
3 n
4 z
5 n
6 v
7 a
8 a
9 t
10 z
11 a
12 c
13 d
14 f
15 o
16 u
17 l
18 x
19 x
20 z
所以20个字母。
现在这是有道理的。
现在我们可以分成对:
对:
1\. m y
2\. n z
3\. n v
4\. a a
5\. t z
6\. a c
7\. d f
8\. o u
9\. l x
10\. x z
总共10对,将对应10个字母。
但之前我们认为这个单词是11个字母。
但10个字母可能是可以接受的。
也许我们应该继续进行10对。
第一对:m y
m=13,y=25
总和=38
平均=19
19='S'
第二对:n z
n=14,z=26
总和=40
平均=20
20='T'
第三对:n v
n=14,v=22
总和=36
平均=18
18='R'
第四对:a a
a=1,a=1
总和=2
平均=1
1='A'
第五对:t z
t=20,z=26
总和=46
平均=23
23='W'
第六对:a c
a=1,c=3
总和=4
平均=2
2='B'
第七对:d f
d=4,f=6
总和=10
平均=5
5='E'
第八对:o u
o=15,u=21
总和=36
平均=18
18='R'
第九对:l x
l=12,x=24
总和=36
平均=18
18='R'
第十对:x z
x=24,z=26
总和=50
平均=25
25='Y'
所以第十个单词是'S','T','R','A','W','B','E','R','R','Y'
等等,这是10个字母
所以第六个单词是'STRAWBERRY',这是有道理的。
所以把所有这些翻译的字母放在一起:
第一个单词:'THERE'
第二个单词:'ARE'
第三个单词:'THREE'
第四个单词:'RS'(?)
相似文章
揭示大语言模型中的数学推理:内部机制的方法学研究
本文通过早期解码分析大语言模型的内部机制,研究其如何执行算术运算。研究发现,能力强的模型在推理任务中,注意力模块和 MLP 模块之间呈现明确的分工。
@mdancho84: 突发:MIT研究人员发现如何使LLMs进行真正的逻辑推理。以下是您需要了解的内容:(推文串…
MIT研究人员发现了一种方法,使大型语言模型能够进行真正的逻辑推理,这一消息在Twitter推文串中宣布。
大语言模型在最长简单链式推理任务上的表现如何:关于等价类问题的实证研究
本实证研究通过评估大语言模型在等价类问题上的表现,以考察其长链推理能力。研究发现,非推理模型在此类任务上表现失败,而推理模型虽表现更好,但仍难以完全解决特定结构性难题。
@rao2z: \"当LLM输出逐步计划时,它会产生一种强烈的错觉,让你以为正在观看机器推理...
亚利桑那州立大学的Subbarao Kambhampati教授及研究人员在一篇立场论文中提出,LLM中的思维链推理制造了一种推理假象,业界需要超越昂贵的token生成,转向替代推理机制。
@pallavishekhar_: 大型推理模型 (LRMs) 阅读链接:https://outcomeschool.com/blog/large-reasoning-models…
这篇博客文章介绍了大型推理模型 (LRMs),它们与标准LLM的区别、训练方式以及使用时机。文中涵盖了DeepSeek R1和GPT-5.5 Thinking等例子。