V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
happyn
V2EX  ›  机器学习

大模型是如何执行像数学运算、编程等精确性要求比较高的任务的?

  •  
  •   happyn · 3 天前 · 1967 次点击
    我的理解就是大模型是一个 Token 预测的网络,通过大量数据的预训练,从输入的 context 中预测下一个最有可能的 token ;那我有一个很小白的问题,诸如数学运算,比如 673 X 3666 = ? 这种运算,大模型是如何通过 token 预测得出答案的?而且之前也有一些很明显的应用,比如让大模型扮演一个编译器等等执行非常精确的运算,我实在想不通,如果不是由专有的程序,仅仅依靠神经网络,就能执行这种类似的运算吗?

    我跟 Gemini 聊了半天,发现一个非常有意思的事情,比如我问他 "请告诉我圆周率小数点后 x 位的数字",当 10 位,30 位,50 位的时候,都没有问题,但是超过一定量,比如 1000 位,它就会宕机; 如果用 deepseek 的推理模式,他就会自己计算;所以我的理解是:

    1. 大模型理解问题,是靠神经网络进行 token 预测的
    2. 大模型解决数学类的精确问题,必须是混合模型(MoE),调用专门处理精确计算的那个部分,才能得出正确答案?

    这个理解对吗?
    第 1 条附言  ·  3 天前
    感谢诸位的热情回复;特别是 @HXM 和 @kidult 推荐的文章和视频很有帮助;

    通过这些资料我大概了解了,这种数学和编程的能力真的是大模型通过神经网络学习到的,特别是数学运算,并不是背后有个专门用于计算的模块,而是在语料学习的过程中,真的获取到了用于数学运算的知识,特别是 MoE 的架构,一个数学问题,可以解析成 语义理解->问题拆分->实际运算,然后通过路由选择,分配给不同的模块进行处理,最后合并结果;


    另外关于大模型实际处理数学问题的步骤,其实还是一个很不透明的、不能精确描述的过程,@HXM 推荐的那篇文章,又检索到了 Claude 开发团队通过逆向 Transformer 的思考过程,来探究实际原理的,这个领域很有意思;
    29 条回复    2025-03-30 14:07:22 +08:00
    sujin190
        1
    sujin190  
       3 天前 via Android
    显然并不是,所谓专家网络也是神经网络哪来的精确计算模块,人也是看看书说 673x3666 咋算的,AI 也是一样的可以啊,所以人不借助工具算不准,大模型也一样啊,关于大模型为啥可以通关基础的 token 预测学习到更深刻的知识并且能思考就不是一两句话可以说清的了
    ltyj2003
        2
    ltyj2003  
       3 天前 via Android
    但是可以引导 ai 编一个程序,来实现算 1000 位的任务。
    wyntalgeer
        3
    wyntalgeer  
       3 天前
    方向就错了,人类发明二进制计算器就是为了补足人脑的运算缺陷,而人脑是大模型的天花板,你指望大模型突破人脑天花板,建议换个方向老铁
    XiLingHost
        4
    XiLingHost  
       3 天前   ❤️ 1
    大模型现在一般是通过调用外部工具来实现精确计算的,可以看看这个 https://modelcontextprotocol.io/introduction
    openai 还做了一个 function calling 标准
    xuld
        5
    xuld  
       3 天前
    原理很简单,大模型自己不会算,但它可以生成算的代码,然后执行代码。就像人类自己不会算,但他会用计算器。
    HXM
        6
    HXM  
       3 天前 via iPhone   ❤️ 4
    Antropic 前两天发了一篇探讨 LLM 可解释性的 Blog ,挺通俗易懂,里面 Mental math 小节讨论了你提出的这个问题。

    https://www.anthropic.com/news/tracing-thoughts-language-model
    happyn
        7
    happyn  
    OP
       3 天前
    如果说大模型生成代码,然后执行代码算,那么,大模型本身可以模拟编译器、解释器吗?还是说它内置了编译器、解释器?
    listenfree
        8
    listenfree  
       3 天前
    个人理解以前的直觉模型就是根据所觉的语料直接概率给你,错误率高。推理模型就不一样了,计算六位数乘六位数都没问题(我试过 Qwq32B-4bit),它根据语料学会了乘法,理论上,它就会乘法了。准确性很高。但编程和乘法比起来,就复杂多了,个人觉得编程还是直觉加少量推理确定方向个编程的走向。
    Uta
        9
    Uta  
       3 天前
    可以参考下这个视频,我觉得讲的挺不错的。在 20 分钟左右的时候又讲到你这个问题: [关于 AI 的深度研究:ChatGPT 正在产生心智吗?-哔哩哔哩] https://b23.tv/iunELVu
    happyn
        10
    happyn  
    OP
       3 天前   ❤️ 1
    @HXM 这篇文章我读完了,很有意思;按照文章里面对于 Claude 的描述,似乎它计算一个加法,并不是通过什么内置的计算器来完成的,而是完全的神经网络推理,但是跟我们想象中的人类计算加法的方式很不一样;

    有趣的是,这篇文章后面也承认,计算题目越复杂,它犯错的几率就越高,某种意义上来说,这跟大模型对话胡说八道的时候是一样的;所以,对话胡说八道是大模型的幻觉,计算错误也是大模型的幻觉,目前大模型确实表现就像人脑一样,是不能执行精确的任务的;

    另外,我在 deepseek ,Gemini 上测试,其实大模型本身并不能完整执行一些比较复杂的代码,至少我说让它计算圆周率第 9900-10000 位,他会生成正确的代码,但是自己不能执行;所以大模型内置解释器的想法也不对;

    我理解,就是大模型对于数学等任务的理解,跟人类类似,人是怎么仅仅靠思维算加法、乘法的,也许要比计算机用二进制计算复杂的多;
    happyn
        11
    happyn  
    OP
       3 天前
    比如就是一个最简单的素数乘法: 863 X 877 = ?,它在大模型的内部到底是怎么推理的?单纯的通过语料训练,就能学会乘法吗? 有这方面的文章介绍吗?
    happyn
        12
    happyn  
    OP
       3 天前
    就是计算这个乘法 863 X 877 = ?,似乎各家的模型表现也不是很统一;
    happyn
        13
    happyn  
    OP
       3 天前
    另外,可以扩展一下,就是大模型能产生自己的推理模式吗? 比如我就把乘法表和几万个乘法示例喂给他,它就能学会乘法吗?
    happyn
        14
    happyn  
    OP
       3 天前
    加法、乘法是有固定的模式的,而从编程语言代码变成二进制的可执行码,也是由固定的模式的,这个模式虽然十分复杂,但是路径是唯一的;似乎非常强的编程人员,也可以在脑子里面自动从 C 语言代码"翻译"为字节码,那么,大模型可以习得这个能力吗?似乎看起来这个过程,跟数学运算是一样的;

    所以只要算力足够强,告诉他一门语言的语法规则,譬如 Python ,大模型就可以自己生成一门编程语言的解释器?并能完美执行?
    LaurelHarmon
        15
    LaurelHarmon  
       3 天前
    不认为 next token 预测可以实现精确的乘法进位 除法这些操作,简单数字靠规律,复杂的依然无能为力。
    mumbler
        16
    mumbler  
       3 天前
    @happyn #14 以现在大模型的指令遵循能力完全没问题,给一个自己发明的语言的规则,示例放 prompt 里就能写出这个完全没学过的语言的代码,以前让它模仿鲁迅风格写文章还需要微调,现在给几篇范文就足够了,随着大模型能力进一步提升,学习能力会更强
    happyn
        17
    happyn  
    OP
       3 天前
    @mumbler 这个地方可能我没有表述清楚。我的意思是说,把一门语言的规则告诉他,当前它肯定可以用这门语言写程序,但是它能写一个解释器吗? 比如,Python 的语法规则告诉它,然后把 PEP 的文档喂给它,他可以写出一个简单的解释器吗?
    mumbler
        18
    mumbler  
       3 天前
    @happyn 肯定可以啊,但这需要大量 token ,不是一个对话就能写成的,让 cursor 肯定能写出来
    kidult
        19
    kidult  
       3 天前   ❤️ 1
    这边建议补一下大模型 基础知识,可看这个视频
    yushi17
        20
    yushi17  
       3 天前   ❤️ 1
    对 MoE 的一个经典错误理解是:以为有一个数学专家,专门解数学题,有一个编程专家,专门负责编程....

    实际上 MoE 只有一个作用:稀疏化
    LanhuaMa
        21
    LanhuaMa  
       3 天前
    @happyn #17 解释器也有一套八股文的,你把 syntax tree 之类的东西搞懂自己也能写一个解释器
    QiShine
        22
    QiShine  
       3 天前
    现在技术路线已经分化了,一种是大模型用 MLP 来逼近/模拟计算,1989 年和 1991 年研究数学的人就搞出了”万能逼近定理“,后续的研究都是怎么高效的降低错误率,一种是调用一个外置的或者内置的计算器或者解释器。这其实和人是一样的吧,我算六位数乘法也会用计算器啊,虽然我也会笔算。
    rogerer
        23
    rogerer  
       3 天前
    @sujin190 表示能力和统计意义上容易学到是两件事,LLM 到目前为止对四则运算还是有问题的。
    panda1001
        24
    panda1001  
       3 天前 via Android
    这么理解可能像人一样的计算方式
    二十以内加减法依靠记忆,还有记忆公式定理
    其他的复杂计算需要纸和笔,精确计算不依赖记忆/大脑内存不够
    大模型靠长期记忆记住二十以内加减法,应该是神经网络,也是 op 说的和想象中的人类计算加法的方式很不一样,更复杂的去尝试运用公式和解释器
    tinydancer
        25
    tinydancer  
       3 天前
    OP 是 happyn 的开发者吗?最近刚用 happyn 和朋友打完了双影奇境,体验很好,感谢 OP🥰
    cheng6563
        26
    cheng6563  
       3 天前
    你不要想太多,LLM 作为机器学习发展而来的模型,和其他模型使用方法是一样的。也就是输入数据,推理结果,输入聊天记录,推理出下一个(字)回复。
    其他功能都是 AI 产品通过外部工具连接使用,最近热门的 MCP 就是这个连接外部工具的协议。

    LLM 也是“想即为说”,1234x4321 能直接得出结果是是因为模型里面已经有现有数据。遇到其他模型里面没有的算式,你要让他笔算才能让他算对。

    https://www.promptingguide.ai/zh 这个网站我建议所有想了解 LLM 的人都看一下
    neteroster
        27
    neteroster  
       2 天前
    #20 是对的,MoE 名字有些误导,实际上稀疏化才是目的和作用。并没有什么语义理解、问题拆分等模块。
    rogerer
        28
    rogerer  
       2 天前
    @yushi17 没有这么语义化的分化,但是专家之间还是会有分化吧
    sujin190
        29
    sujin190  
       2 天前 via Android
    @rogerer 这没什么,AI 的方向估计会和人一样,擅长学习如何使用工具计算但不会擅长直接计算,只要能准确识别这是个啥数学问题就行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5783 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:33 · PVG 10:33 · LAX 19:33 · JFK 22:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.