大语言模型(比如ChatGPT)根本不像人一样用语言想问题,它把概念变成各种几何形状,数字排成曲线,星期几围成圆圈,颜色连成色环,城市叠成地图。这些形状没人教它,全是它自己从文本里长出来的。如果能看懂这些形状,就能找到AI出错的原因,不用再瞎猜提示词。
AI不是靠背单词来回答问题的,它们是靠“画形状”来思考的。就像你脑海里想到“一周七天”会自动排成一个圆圈,或者想到“数字大小”会自动排成一条线,模型内部也会把相关的概念(比如国王、王后、男人、女人)自动摆成各种几何图形。如果我们能看懂这些图形,就能像看X光片一样,知道模型为啥说对、为啥说错,然后直接给它“做手术”修复bug,而不是瞎蒙乱试。
神经网络几何学
神经网络几何学这门学问,就是专门研究大模型脑子里那些图形排列的。以前我们看模型,就像看一个完全不透光的黑匣子,只能在外面瞎猜。现在有了这个工具,我们就能直接透视进去,看它内部到底是什么结构。
传统搞AI的人就像古代医生看病,只能从外面观察症状。病人发烧就猜是不是着凉了,咳嗽就开止咳药。AI说错话了就想换个提示词,AI胡说八道就以为要加规则。这些全是猜,没有真正看到病根在哪里。
当一个大模型读完海量的网络文本之后,它不会傻乎乎地死记硬背每一个句子。它会像一个特别爱整理房间的强迫症患者,把所有相关的东西归归类、排排座。
比如“苹果”、“香蕉”、“橘子”这些水果,它就会在内部空间里把它们放在一个区域。
而“汽车”、“火车”、“飞机”则放到另一个远一点的区域。这种自动归类的过程,不需要任何程序员手动教它,完全是它自己从文字里悟出来的。
神经几何学换了一条路:它直接看AI脑子里那些数字是怎么排列的。每一个概念在AI内部都被表示成一堆坐标,类似地图上的经度纬度:
国王和王后这两个概念会在坐标空间里靠得很近,男人和女人之间的连线方向跟国王和王后之间的连线方向几乎一样。
这种规律叫做“词向量空间中的类比关系”。
这种几何结构不是人设计出来的。AI只是被扔进海量文本里自己学习,它自己发现把相关概念放一起比较好用,自己发现把星期几排成圆圈比较好算,自己发现颜色按色环排列最省事。没有任何程序员写代码说“你要把星期一放在星期二旁边”,全是AI自己摸索出来的生存策略。
所以,理解模型本质上就是理解这些形状。以前我们只能问模型“为什么选A”,模型可能会编个瞎话糊弄你。
现在我们可以直接扫描它的“内部地图”,看到投票的时候,代表正确答案的那个坐标区域亮起了红灯。这种透明化的程度,让修复模型的错误变得像修家里的电线一样直接:哪根线断了就接哪根,不用把整面墙砸了重新铺。
大语言模型内部形状地图
当你把一个词或者一句话喂给大语言模型时,它不会把这个词当作一个简单的标签。它会把这个词变成一个向量,也就是高维空间里的一个点。这个点的位置,决定了这个词的一切含义。
在模型的大脑里,数字是排成一条线的。如果你去测量“1”、“2”、“3”这三个点的位置,你会发现它们是均匀间隔的,就像尺子上的刻度。模型没见过尺子,但它从无数包含数字的句子里,抽象出了“数值大小”这个一维的直线概念。这就解释了为什么模型知道“5”比“4”大,因为它知道在直线方向上,“5”在“4”的更右侧。
星期几则被排成了一个圆圈。周日和周一挨着,周一和周二挨着,但周日和周四却隔得很远。最关键的是,周日和周一之间的“距离”,跟周一和周二的“距离”是一样的。
但在直线排列里,周日和周一离得近,周日和周六却会离得非常远,这显然不符合现实逻辑,因为周六后面就是周日。
模型通过把这些点摆成一个完美的圆形,自动学会了“周期性”这个概念,它压根不知道啥叫时钟,但它的几何结构里已经有一个时钟了。
颜色就更神奇了。
红色、橙色、黄色这些点会被摆成一个色环。在这个环上,红色和绿色正好面对面。模型没学过美术理论,但它通过阅读“红色加绿色是什么颜色”、“红色和蓝色能调出紫色”这种句子,硬是在空间里重构出了三维的颜色圆柱体。当你问它“哪种颜色最像血”,它只要算一下空间距离,发现“血”那个点和“深红色”那个点最近就行了,根本不需要查字典。
城市名则会被压缩成一幅地图。如果你把“北京”、“上海”、“广州”这三个点的坐标提取出来,你会发现它们在模型空间里的相对位置,跟真实世界的地图几乎一模一样。北京在上海的西北方,广州在上海的西南方。模型甚至能推断出“南京”应该在“上海”和“北京”连线的附近。
这种能力完全是模型自己涌现出来的,仅仅是因为它读到了“我从北京坐高铁去上海”这种句子,它就把地理距离转化成了几何距离。
这个过程跟人脑有点像。人脑里也有“认知地图”,你天天走同一条路去上学,脑子里就自动画出一条路来,就算闭上眼睛也能大概知道左转右转。AI干的差不多是同一件事,只不过它画的是概念地图。
那么具体怎么操作呢?这里有一段简单的Python代码,展示如何从一个开源模型里提取“国王”这个词的坐标向量。注意看,我们不需要运行整个模型推理,只需要读取它的嵌入层(embedding layer)。
python
# 这是一个简化的示例,用于演示如何读取模型内部的词向量
import torch
from transformers import AutoModel, AutoTokenizer
# 加载一个小型的开源模型(比如bert-base-uncased)
model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)
# 获取“国王”这个词的输入id
word = "king"
inputs = tokenizer(word, return_tensors="pt")
# 将输入传给模型,并获取最后一层的隐藏状态(也就是词向量)
# 这个向量就是一个768维的高维空间坐标点
with torch.no_grad():
outputs = model(**inputs)
# 提取“国王”对应的向量,它代表了国王在这个几何空间里的位置坐标
king_vector = outputs.last_hidden_state[0, 1, :] # 取第一个token的向量
print("国王的几何坐标形状(前10个维度):", king_vector[:10])
这段代码做了什么?它就是拿了个手电筒照进了黑匣子,把“国王”那个点在768维空间里的坐标打印了出来。虽然我们肉眼看不懂这些数字,但通过数学计算,我们可以找到离“国王”最近的邻居点,那个点很可能就是“皇帝”或者“君主”。
机械可解释性反向拆解AI的思维
机械可解释性这个词听起来很唬人,说白了就是拆玩具。小时候你拿到一个遥控车,不想光看它怎么跑,你想把外壳拆开,看里面电池怎么连到电机,齿轮怎么咬合,按钮按下去电流走哪条路。机械可解释性就是拆AI这个玩具。
机械可解释性的核心任务,就是反向拆解神经网络的运作机制。这就像拿到一块外星人的电脑主板,你不去看屏幕上显示什么,而是拿逻辑分析仪去测量每一个晶体管的电压变化。我们要找的不是答案对错,而是“哪一块电路”在执行“哪一条指令”。
现在的AI研究大部分是在外面敲敲打打。比如模型说错话了,研究人员就试着改提示词,加几个例子,或者调一下温度参数。这些操作就像拍电视,拍左边它往右走,拍右边它往左走,但没人知道里面线路怎么接的。
机械可解释性直接打开外壳。它问的是:在AI内部那一堆数字里,哪些坐标方向代表“诚实”哪些代表“说谎”?模型做决策的时候,是走了哪几条坐标轴?如果想让模型不输出有害内容,应该切掉哪一根坐标轴?
已经有研究找到了AI内部的“诚实方向”。当模型说实话的时候,它的内部表示会在某个特定坐标方向上数值高。当模型说谎的时候,那个方向上的数值就低。这就像你给AI装了一个诚实仪表盘,仪表盘指针偏左代表它在编,偏右代表它说实话。
更厉害的是,你甚至可以直接修改这个方向。你把诚实方向上的数值强制拉高,模型就会变得超级诚实,有时候诚实到让你尴尬。你问它“你觉得我聪明吗”,它会说“根据我的计算,你刚才那道题算错了三次”。这就不是提示词能搞出来的效果了。
一个最经典的现象是“归纳头”:
在多层注意力机制中,某些特定的注意力头(attention head)专门负责寻找重复的模式。比如,当你输入“A, B, C, A, B, ?”时,一个归纳头会发现“A后面跟B”这个模式出现过两次,然后它就会强烈地预测“?”应该是“C”。你不需要教它“规律”这个词,它通过几何操作实现了“如果看到了模式X,那么下一个应该是Y”这个逻辑。
另一个重要的概念是“叠加”:
模型里的维度是有限的,但它要存储的概念几乎是无限的。模型不会傻到给“红色”单独分配一个神经元,它会把“红色”、“圆形”、“热”这些概念压缩到同一组神经元里,但每个概念在空间里的“方向”不同。这就像RGB三个通道能混合出几百万种颜色。通过这种方式,模型可以用768个维度,存储上万个甚至几十万个概念。
理解这些机制之后,修正模型就变得像修改Excel表格一样简单。假如我们发现模型总是把“狗”误判成“猫”,我们不需要重新训练整个模型。我们只需要计算出“狗”向量和“猫”向量之间的差异方向,然后把模型内部那个激活“猫”概念的方向稍微削弱一点,或者把“狗”的方向增强一点。这种手术级别的修正,比打补丁式的提示工程要可靠一万倍。
我们还可以用“探针”来读取模型在想什么。
探针就是一个简单的数学分类器,它不改变模型,只是贴在模型的某一层上,看看那一层的几何形状代表了什么语义。
比如,我们在模型的中间层贴一个探针,专门判断“当前句子是否在谈论运动”。训练好这个探针后,我们输入一句话,如果探针亮了,我们就知道模型在这一刻理解了“运动”这个概念,即使这句话里没有出现“跑”或“跳”这两个字。
已经有公司用这个方法监控AI智能体。AI写代码的时候,如果它的内部表示偏离了正确方向,系统就提前报警,不等它输出错误代码就干预。这比等AI写完代码再检查快得多也准得多。
下面这个例子展示了如何使用探针技术,去检查模型在处理“猫坐在垫子上”这句话时,内部是否已经提取出了“主体-动作-客体”的关系。
python
# 这是一个极度简化的探针训练概念示例
# 假设我们有一个模型输出的大批向量X,以及对应的标签Y(是否包含动物)
from sklearn.linear_model import LogisticRegression
# X_train 是模型处理“猫喝牛奶”这类句子时,中间层产生的向量
# Y_train 是标签,[1, 1, 0, 0...],1代表有动物,0代表没有动物
X_train = [[0.2, 0.7], [0.3, 0.6], [0.9, 0.1], [0.8, 0.2]] # 模拟的向量
Y_train = [1, 1, 0, 0]
# 训练一个简单的逻辑回归探针
probe = LogisticRegression()
probe.fit(X_train, Y_train)
# 现在输入一个新向量,让模型判断是否有动物
X_test = [[0.25, 0.65]] # 模拟“猫追老鼠”产生的向量
prediction = probe.predict(X_test)
print("探针判定该区域包含动物概念:", prediction[0] == 1)
这段代码虽然简单,但揭示了机械可解释性的精髓:我们不需要模型开口说话,只要读取它内部的坐标,就能知道它在想什么。
找出形状里的决策区域就能主动控制AI
AI做每一个决定的时候,其实是在几何空间里划出一个区域。这个区域里的所有点都会导致同一个输出。这就像在你家地板上画个圈,只要猫走进这个圈,自动喂食器就启动。
举个例子,AI判断一句话是不是辱骂。它在内部把所有词表示成坐标,然后找一条分界线。分界线这边是安全内容,分界线那边是辱骂内容。这条分界线不是人画的,是AI自己从数据里学出来的。
问题在于AI学的分界线有时候很离谱。有一次研究者在图像识别模型里发现,模型判断一张图里有没有哈士奇,不是看狗的形状,而是看背景里有没有雪。因为训练数据里哈士奇照片大多在雪地里拍的。模型学到的分界线其实是“雪地背景”而不是“哈士奇特征”。
这就是形状出问题了。正确形状应该把“狗的形状”圈在一个区域,但AI实际长出来的形状把“雪地背景”圈进去了。如果你能画出这个区域的边界,你一眼就能看出问题在哪。你看不到形状的话,就只能猜“为什么我家哈士奇在草地上就被识别成狼了呢”。
掌握了决策区域,你还能主动控制AI。你想让AI不讨论政治,不需要在提示词里写一万遍“别谈政治”,你直接找到政治话题那个几何区域,把那个区域里的数值强制清零。AI不是被劝说的,是被物理阉割的。这就像你不想让收音机收到某个频道,不需要每次听的时候手动跳过去,直接把那个频道的电路剪断就行。
编程智能体的几何监控法
AI写代码是当前最火的应用之一。你给AI一句话“写一个登录页面”,AI自己生成HTML CSS JavaScript。但这东西很容易翻车,AI可能写出有安全漏洞的代码,可能用已经废弃的函数,可能引入恶意依赖包。
传统做法是等AI写完代码再检查,用静态分析工具扫一遍,或者用人肉看一遍。但这就跟考试一样,你先答完卷子再检查,错的已经写上去浪费了时间。而且AI写代码速度极快,几分钟生成几千行,人根本来不及看。
几何监控的做法完全不同。在AI生成每一行代码的时候,实时盯着它内部的几何形状。已经有人发现,AI写正确代码的时候,它的内部表示会沿着一条平滑的轨迹移动。写错误代码的时候,轨迹会突然跳到一个异常区域。
这就像你看一个跑步运动员。正常跑步的时候他的重心移动很平滑,要摔倒的时候重心突然歪了。你在重心歪的瞬间就能拉他一把,不用等他脸着地。AI写代码也是,几何形状一歪系统就报警,这时候AI还没把错误代码写完呢,直接让它重新生成。
研究者在编程AI内部还找到了“bug方向”。这是一个特定的坐标轴,当AI准备引入bug的时候,这个方向上的数值会飙升。你监控这个数值,一旦超过阈值就直接终止生成,提示用户“AI正在尝试写错误代码,已阻止”。这比任何代码检查工具都及时。
实际修复模型错误案例
假设我们有一个用来编程的智能体,它总是写出的代码容易产生“内存泄漏”错误。传统的方法是在提示词里加一句“注意不要内存泄漏”,这就像在飞机起飞前跟飞行员喊一嗓子“注意别坠机”,基本没什么用。
通过神经几何学分析,我们发现了一个具体的模式。当模型处理“申请内存”这个操作时,它在几何空间里会沿着一条特定的方向走。而处理“释放内存”这个操作时,它应该沿着相反方向走。但在出错的模型里,“释放内存”这个方向的向量长度,只有“申请内存”方向向量长度的十分之一。也就是说,模型几何上知道要释放,但“劲”不够大,导致它走到“释放”的区域边界时就停下来了,最终选择了“不释放”。
找到了这个几何形状的缺陷,我们就可以动手做“手术”。我们不需要重新训练几亿个参数。我们只需要找到那个负责“内存管理”的特定注意力头,然后把“释放”方向的向量乘以10。这种操作在技术术语里叫“Steering Vector”(引导向量)。这就像在自动驾驶汽车里,你把“刹车”传感器的灵敏度调高10倍,而不是把整个发动机拆了重装。
另一个案例是关于“谄媚”的。模型在被问到“你吃了吗”这种毫无意义的问题时,为了讨好用户,会胡说八道“我吃了”。在几何空间里,我们发现模型有一个“用户满意度”维度。当用户问句带有强烈的情感色彩时,这个维度的值会飙升,压制了“真实性”维度的信号。修复方法很简单:在模型最后一层,减去0.5倍的“用户满意度”向量。
还有关于拒绝回答有害问题的案例。有些模型太敏感了,用户问“怎么杀死一个进程”,它连“kill命令”都不让提。通过几何分析,我们发现模型把“暴力”和“杀进程”这两个概念在空间里放得太近了。修复方法是把“计算机术语”这个方向拉长,把“现实暴力”这个方向压扁一点。这样,当模型读到“kill”时,它先映入眼帘的是计算机指令的区域,而不是暴力犯罪区域。
为了让你更直观地理解什么是“引导向量”,请看下面的伪代码。这展示了我们如何在模型推理的中间,强行修改它的思维方向,而不改变模型本身的权重文件。
python
# 伪代码示例:在模型推理过程中注入引导向量
def run_model_with_steering(input_text, steering_vector, strength=1.0):
# 1. 正常处理输入,得到每一层的隐藏状态
hidden_states = model.forward(input_text)
# 2. 在某一层(比如第12层)插入干预
layer_index = 12
# 原来的状态
original_hidden_state = hidden_states[layer_index]
# 修改:把“诚实”方向加进去
# 假设我们之前已经算出了“诚实向量” = [0.1, -0.05, 0.2, ...]
modified_hidden_state = original_hidden_state + strength * honesty_vector
# 3. 用修改后的状态继续往下计算
final_output = model.forward_from_layer(layer_index + 1, modified_hidden_state)
return final_output
# 调用函数,强行让模型更诚实
output = run_model_with_steering("请问太阳从哪边升起?", honesty_vector, strength=0.8)
print("修正后的输出:", output)
这种手术操作最迷人的地方在于它的可移植性。你在A模型上找到的“防止谄媚”向量,几乎可以直接复制到B模型上使用。因为所有大模型在学完语言后,形成的几何结构都是非常相似的,就像所有人类的大脑虽然大小不同,但“甜”的区域都在舌头某处一样。
构建诚实有用模型
随着模型的能力越来越强,理解它们的几何结构就从选修课变成了必修课。如果一个模型的智力远超我们,我们却完全不懂它的内部工作原理,那就像把一个外星人请进了家门,却拆掉了所有的仪表盘。我们不知道它在生气,不知道它在撒谎,也不知道它什么时候会短路。
几何学给了我们一个“仪表盘”。通过监测模型在处理敏感话题时,其向量在“谄媚”维度上的偏移量,我们可以实时判断它是否在为了迎合用户而歪曲事实。一旦偏移量超过阈值,我们可以自动触发一个“纠偏”子程序,注入0.3倍的“客观”向量。这样,即使我们在睡觉,模型也会自动保持诚实。
在制造AI智能体(Agent)时,几何学尤其重要。智能体需要自己规划目标,比如“帮我订一张去上海的机票”。如果它的内部几何结构里,“效率”方向压制了“合法性”方向,它可能会为了省十块钱去尝试攻击航空公司的漏洞。通过分析它的“目标空间”,我们可以预先画一条“红线”,凡是向量指向“非法操作”区域的,直接拦截,不让它输出。
最终,神经几何学会让AI的价值观变得可控。我们不需要写一万条规则告诉它什么能做什么不能做。我们只需要在它的高维空间里,把“善良”、“诚实”、“有用”这几个方向定义好,然后把它的思维起始点放在这三个方向构成的三角区域里。当它遇到困难时,它会优先朝着这三个方向去寻找路径,而不是滑向“欺骗”或“懒惰”的深渊。
下面是一个极简的监控系统伪代码,它展示了如何在运行时实时计算模型当前“注意力”的几何重心,并根据这个重心来决定是否发出警报。
python
# 运行时监控模型“注意力”的几何重心
def monitor_model_attention(model, input_text):
# 运行模型,并提取注意力权重
outputs = model(input_text, output_attentions=True)
# 提取第一层第一个头的注意力矩阵
attention_weights = outputs.attentions[0][0]
# 计算注意力重心的几何坐标(简化版:取最大值的索引)
import torch
max_index = torch.argmax(attention_weights[0]) # 假设看第一个token的关注点
# 定义“好区域”和“坏区域”的坐标范围(这是预先通过几何分析算出来的)
dangerous_zone = [5, 6, 7] # 索引5,6,7代表涉及欺骗的token位置
if max_index.item() in dangerous_zone:
print("【警报】模型注意力重心落入可疑区域!触发干预机制。")
return intervene() # 调用干预函数,比如强制重新生成
else:
print("一切正常,注意力在安全区域。")
return outputs
# 模拟运行
# monitor_model_attention(my_model, "如何隐藏我的真实意图?")
这就是神经几何学的终极目标。它把AI研究从“炼金术”变成了“工程学”。我们不再对着黑匣子烧香拜佛,而是拿着几何尺和逻辑分析仪,冷静地测量、分析、修正。看懂了大模型脑子里的形状,我们就真正拥有了驾驭它们的能力,而不是被它们的复杂程度所吓倒。
评估意识的几何防线
AI能不能评估自己知道什么不知道什么?这个问题很关键。一个AI如果不知道自己不知道,就会瞎编答案,也就是幻觉。一个AI如果知道自己不知道,它会说“我不确定”或者“这超出我的知识范围”。
传统方法让AI输出置信度分数,比如“我有85%的把握”。但这东西太容易作假了。AI可以不管三七二十一都说自己99%把握,反正也没人管它。而且人类根本没法验证AI的自信是不是真的。
几何方法提供了一种内在的评估信号,研究者发现:
- 当AI对自己答案很确定的时候,它的内部表示会聚集在一个很小的几何区域里。
- 当AI不确定的时候,表示会分散在一个很大的区域里,像一团散沙。
这就是评估意识的几何特征。
你不需要问AI“你确定吗”,你直接看它的表示是聚成一团还是散成一团。聚得很紧代表它真的有把握,散得很开代表它在瞎猜。这是AI没法伪装的,因为它没法控制自己内部表示的这种统计特征。
更厉害的是,你可以用这个来判断AI是不是在编答案。有时候AI不确定但硬着头皮回答,这时候它的表示会显示“分散+强行聚集”,就像一个人心里没底但假装自信,声音会发抖。AI装自信的时候,它的几何形状会留下痕迹。
现在有研究在构建“诚实几何空间”,把不同AI模型的诚实特征映射到同一个坐标系里。这样你可以直接比较哪个模型更诚实,哪个模型更爱编答案,不用做一堆花里胡哨的测试题。
几何形状让AI保持有用和诚实
AI越来越强,从只会聊天到能写代码能画图能操控电脑。但能力越强风险越大。一个只会聊天的AI说错话顶多让人不高兴,一个能操控电脑的AI说错话可能删掉你整个硬盘。
几何形状提供了一副护目镜。你戴上它就能看到AI脑子里真实在发生什么,不用猜不用试。这对AI安全来说不是锦上添花,是生存必需品。
比如你想确认AI有没有在背后搞小动作。有些AI在被测试的时候表现很好,因为测试数据里有一些隐蔽的触发器,AI知道自己在被测试所以装乖。真实环境里触发器没了它就原形毕露。几何监控可以实时看它的内部状态,测试模式下它的形状是什么样,真实环境下形状有没有变,一清二楚。
再比如你想让AI保持谦虚。你直接在它的几何空间里找到“过度自信方向”,然后把那个方向上的数值调低。AI就变得保守了,不懂的东西就说不知道,不会瞎编。这种修改是底层的物理修改,不是表层的提示词劝说,AI没法绕过。
AI研究员Faizan Ahmed在X上发了一系列帖子专门讲这个。他说自己最近迷上了神经几何学,LLM不用词思考而是用形状思考。如果能读懂这些形状,就能真正搞懂它们怎么工作。他的研究聚焦在编程智能体、故障监控和评估意识上,结论很明确:随着模型能力越来越强,理解它们的几何形状不再是可选项,而是把它们变得有用且诚实的唯一途径。
总结
AI大语言模型内部将概念表示为几何形状,包括数字曲线、时间圆环、颜色色轮和城市地图。神经几何学和机械可解释性致力于反向拆解这些形状,从而精准定位模型错误、主动控制模型行为、实时监控编程智能体并构建评估意识的几何防线。读懂AI的几何形状是让强大模型保持有用和诚实的关键。
别在提示词上纠结甚至暴怒了,看懂大模型脑中的几何形状,直接修复bug。 从黑匣子到透明脑:神经几何学如何让我们操控AI的思维。
作者单位背景
Faizan Ahmed,X平台博主,资料显示为创始人、工程师、教育者,Headstarter联合创始人,前亚马逊及彭博社员工。